A browser based interface for real-time DSP on popular embedded platforms.
Switch branches/tags
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
algorithms Merge branch 'master' of github.com:LCAV/easy-dsp Mar 9, 2017
docs-source Modified docs for the permission setup of api.php. Feb 23, 2017
docs Merge branch 'master' of github.com:LCAV/easy-dsp Feb 23, 2017
examples Removed a print from the doa example. Mar 13, 2017
js main daemon now advertises supported rates and number of channels upo… Mar 27, 2017
lamp_firmware Added lamp firmware. Mar 3, 2017
vendors plotly full added to vendors Mar 7, 2017
.gitignore Cleaned up examples, fixed check for input audio, and improved STFT a… Mar 5, 2017
COPYING Added the GPL in COPYING. Feb 23, 2017
Makefile Cleaned up Makefile (based on Sahand's). Feb 21, 2017
README.md Expanded README and added LICENSE Feb 23, 2017
api.php Enabling php to restart and stop the daemons. Feb 23, 2017
base-program.py Add the possibility to execute code from an external script Nov 28, 2016
browser-config.h main daemon now advertises supported rates and number of channels upo… Mar 27, 2017
browser-main-daemon.c main daemon now advertises supported rates and number of channels upo… Mar 27, 2017
browser-wsaudio.c main daemon now advertises supported rates and number of channels upo… Mar 27, 2017
browser-wsconfig.c Added packet headers between main daemon and wsaudio to differentiate… Feb 22, 2017
browserinterface.py main daemon now advertises supported rates and number of channels upo… Mar 27, 2017
code-server.py Auto communication of the board IP between the browser and browserint… Jan 8, 2017
index.html main daemon now advertises supported rates and number of channels upo… Mar 27, 2017
microphones.virtualhost Improve doc after Robin corrections Jan 11, 2017
start.sh Enabling php to restart and stop the daemons. Feb 23, 2017
stop.sh Reuse code of stop.sh in start.sh. Add Progress report and error hand… Feb 21, 2017
style.css Add loading of examples Jan 8, 2017

README.md

EasyDSP --- Interface for Audio Control of Embedded Microphone Arrays

EasyDSP is modular and multiplatform interface for microphone arrays based on embedded Linux platforms. It provides easy access to the audio samples collected by the microphone array and let the user run real-time processing on the stream. The result of processing can be visualized live in the browser.

EasyDSP is based on web technologies, namely websockets and javascript, for the streaming of the samples and the user interface. Python is used for the processing of the audio samples.

Currently ALSA drivers for the microphone array on the embedded platform are required. EasyDSP has been developed for the CompactSix array based on the Beaglebone Black single board computer. Due to the modular structure of the architecture, we do not forsee problems when porting to other platforms. A fork is being modified to work with the Pyramic platform with 48 microphones and based on FPGA technology.

Documentation

The documentation is in docs/ (the Markdown source is in docs-source/) or at this address: https://lcav.github.io/easy-dsp/.

Quick Install

Connect to the microphone array via ssh. Install libwebsock and Jansson and run the following commands as root.

apt-get install apache2 libapache2-mod-php5 php5 php5-common
cd /var
git clone https://github.com/LCAV/easy-dsp
cd easy-dsp
touch logs.txt
chown www-data:www-data logs.txt
cp microphones.virtualhost /etc/apache2/sites-available/microphones
a2ensite microphones
echo "Listen 8081" >> /etc/apache2/ports.conf
usermod -aG audio www-data
setfacl -m u:www-data:rw /dev/snd/*
rm /tmp/micros-audio.socket /tmp/micros-control.socket
service apache2 restart
make

See the docs for the rest of the instructions.

Authors

  • Basile Bruneau
  • Eric Bezzam
  • Robin Scheibler

License

Copyright 2016, 2017 Basile Bruneau, Eric Bezzam, Robin Scheibler

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.