This codebase supports a musical interactive sculpture called Out of This World Advice (OWA):
Dear reader,
This code repository has been under active development during the evolution of OWA. The software has many parts and although heavily leverages modern Node.js development practices, its integration with SuperCollider leaves the developer experience with much to be desired.
Please do reach out if you are working with this code: colin [at] awakening.io
ansible/
: Contains Ansible playbooks and roles for configuring and deploying Raspberry Piarduino/
: Code for deployment onto Arduino for handling button inputs, handles de-bouncing and discrepancies between specific piezosdocs/
: PlantUML diagrams of system architecture and data modelsgui/
: An Electron application to simulate button presses for developmentnotebooks/
: SuperCollider scratch pads for developmentphysical/
: Model files for 3d printed button mold, laser cut pieces for the totem, etc.quarks/owa/
: OWA SuperCollider package, all production SuperCollider code is contained heresounds/
: All sound resources go in this directorysrc/
: Top-level directory for Node.js source codetest/
: Top-level directory for tests of Node.js source code
Install these manually:
- SuperCollider
- sc3-plugins
- Node.js
These are installed with yarn
or Quarks.install
(steps below), they are noted here for reference.
Download the sounds (Note: this will only work from a commit where sounds were published from):
./retrieve_sounds.sh
Install the SuperCollider dependencies:
sclang install.sc
Install the Node.js dependencies:
yarn
Install owa_env
:
cp owa_env_example owa_env
Update variables for your dev instance.
Install .supercollider.yaml
:
cp .supercollider.yaml_example .supercollider.yaml
Update variables for your SuperCollider installation.
Install the GUI deps:
cd gui && yarn
cd gui/
source ../owa_env && npm run start
source owa_env && npm run start_dev
$ npm run test
Install remote Ansible roles:
$ ansible-galaxy install -r ansible_roles.yml
Set your ansible/hosts
files with your deployment machine's hostname.
$ ansible-playbook ansible/site.yml
A few notes on managing a Raspberry Pi post-deployment on the owapi wiki page.