Skip to content

Latest commit

 

History

History
93 lines (66 loc) · 1.96 KB

README.md

File metadata and controls

93 lines (66 loc) · 1.96 KB

bopOS

A Raspberry Pi and Arduino based framework for networked multichannel sound, light, and motion. This repo provides scaffolding for the bop library for PD Vanilla. Python scripts provide admin services (updating, rebooting, shutdown).

Requirements

  • puredata 0.54 vanilla
  • python3
  • pyOSC3

Optional Requirements for Arduino

  • pd-comport

Reads distance sensor and controls lights and stepper motor. Communicates with PD via SLIP encoded OSC over USB serial.

Installation and Setup

Flash SD using Raspberry Pi Imager

  • Choose OS RASPBERRY PI OS LITE (64-BIT)
  • Set username and password
  • configure wireless LAN
  • enable SSH
  • Flash SD

Install packages

# login
ssh pi@raspberrypi.local

# update
sudo apt-get update
sudo apt-get upgrade

# set gpu memory to 16 (if applicable)
sudo raspi-config

# install jack2
sudo apt-get install jackd2

# install git
sudo apt-get install git

# install pure-data dependencies
sudo apt-get install build-essential automake autoconf libtool gettext libasound2-dev libjack-jackd2-dev tcl tk wish

# install puredata 0.54+
cd ~
git clone https://github.com/pure-data/pure-data.git
cd ./pure-data/
./autogen.sh
./configure --enable-jack
make
sudo make install

# install pd externals
sudo apt-get install pd-comport

# add externals to local extra folder
mkdir ~/pd-externals
cd ~/pd-externals 
sudo cp -r /lib/pd/extra/* ./
sudo chown -R pi ./*

#install pip
sudo apt-get install pip

#make python virtual environment
cd ~
python3 -m venv ./venv

# install python dependencies
./venv/bin/pip install pyOSC3

Install project code

# goto home directory
cd ~

# clone this repo (or your fork)
git clone https://github.com/playablestreets/plantsOS.git

# !copy samples
# !edit scripts/start.sh to configure soundcard

# run update script 
sudo ~/plantsOS/scripts/update.sh

# pi should copy rc.local and reboot with jack, puredata, and helper.py running