WIAI Soundboard
Requirements
- Raspberry Pi
- omxplayer (should be preinstalled on Raspbian)
- Python 3.4
- youtube-dl
- espeak
apt install espeak omxplayer python3.4 python3-pip python3-dbus sqlite3
pip3 install virtualenv youtube-dl
It is highly recommended to install the soundboard and its dependencies into a virtual environment to keep the system clean. To do so first create a new virtual environment in the desired folder and install the remaining Python dependencies via the pip of the virtualenv:
virtualenv --system-site-packages py
py/bin/pip install -r requirements.txt
Apache
It is also recommended to use Apache instead of the Python Flask web server.
apt install apache2 libapache2-mod-wsgi-py3
Installation
To create the initial database for the metadata, following command can
be used together with the schema file:
sqlite3 metadata.sqlite < schema.sql{.sourceCode}.
The web server user (e.g. www-data) must be in the audio and video groups. You can add them via usermod -a -G audio,video www-data.
Also the file /dev/vchiq should be writeable by the web user (e.g.
www-data). A quick & dirty way is to use chmod +rw{.sourceCode} on the
file.
For installation of the soundboard simply check out the repository and see the doplyment chapter on how to deploy it.
Deployment
Development/Debugging
For development and debugging the internal web server of Flask can be used e.g. by running following command inside the project folder:
FLASK_DEBUG=1 FLASK_APP=soundboard.py py/bin/flask run --host=0.0.0.0
Production
For production deployment Apache (or other webservers like nginx, lighttpd etc.) should be used.
For Apache a sample configuration is provided in the folder apache which can be adapted.
Please keep in mind that you may have to adjust the path to the sound files in your apache config in order to enable local playback on the clients.
Usage
Users can browse the webinterface, search for sounds and play them on the remote server or their local browser.
Additionally to the normal point and click usage there are also several keyboard shortcuts available.
Keyboard shortcuts
- Navigation items, input fields and sound buttons can be selected by using tab and shift+tab
- esc clears the search field
- enter plays the selected sound
- ctrl+k and ctrl+c kill all sounds
- ctrl+x switches between local and remote playback
- ctrl+enter kills sounds before the selected gets played
Live version
A list of sound requests and already added sounds can be found here: https://pad.wiai.de/p/soundboardTodos