A Raspberry Pi and Arduino based framework for networked multichannel sound and more.
- A Raspberry Pi zero or above
- A Raspberry Pi soundcard
- puredata 0.54 vanilla
- python3
- pyOSC3
- pd-comport (for arduino)
- fork this repo and clone to your computer
git clone https://github.com/[yourUserName]/bopOS --recursive
- Edit _Main.pd in Pure Data
- Edit rc.local, update.sh, and start.sh to point to your github repository
- commit and push your changes
- OS: RASPBERRY PI OS LITE
- username: pi
- hostname: bop
- configure wireless LAN
- enable SSH
- Flash SD
- boot pi and login over ssh
- update system
- install jack2
- !!! (manually enable realtime priority for Jack when prompted)
- install git, pip, pure-data dependencies, pd-comport,
- build and install puredata 0.54+
- copy PD externals to local folder
- install pyOSC to vitual environment
sudo apt-get update -y;
sudo apt-get upgrade -y;
sudo apt-get install -y jackd2;
sudo apt-get install -y git pip;
sudo apt-get install -y build-essential automake autoconf libtool gettext libasound2-dev libjack-jackd2-dev tcl tk wish;
sudo apt-get install -y pd-comport;
cd ~;
git clone https://github.com/pure-data/pure-data.git;
cd ./pure-data/;
./autogen.sh;
./configure --enable-jack;
make;
sudo make install;
mkdir ~/pd-externals;
cd ~/pd-externals;
sudo cp -r /lib/pd/extra/* ./;
sudo chown -R pi ./*; cd ~;
python3 -m venv ./venv;
./venv/bin/pip install pyOSC3
on your pi:
- install your soundcard if required
- for example for MAX9857-based i2s soundcards, make the following changes to /boot/firmware/config.txt
dtparam=i2s=on
#dtparam=audio=on
dtoverlay=hifiberry-dac
- if using arduino, also add
enable_uart=1
dtoverlay=pi3-miniuart-bt
- reboot pi
- list available soundcards
cat /proc/asound/cards
on your laptop:
- edit bopOS/scripts/start.sh to add you soundcard
- save, commit changes and push to github
on your pi:
- goto home directory, clone this repo (or your fork)
cd ~;
git clone https://github.com/zealtv/bopOS.git
run update script to
- pull lates changes from github
- download bop submodules
- copy rc.local start script to /etc
- reboot with jack, puredata, and helper.py running
- if you have speakers plugged in it might make a noise at this point
sudo ~/bopOS/scripts/update.sh
- disable serial console on pi
- interfaces > serial > disable console, enable hardware
sudo raspi-config
- reboot and test
sudo reboot