-
Notifications
You must be signed in to change notification settings - Fork 0
Workshop Guide
Facilitator notes for a 45-minute OMO session with phones only. Shorter checklist in the repo: docs/WORKSHOP-GUIDE.md.
- Play together with phones only — no cables, minimal setup.
- Hear different music-making modes: harmony, rhythm, gesture, timbre.
- See under the hood: synthesis blocks, sensors as controllers, a tiny on-device ML pipeline.
- Test Wi‑Fi or mobile hotspot; everyone opens fourms.github.io/omo/.
- Browsers: iPhone/iPad → Safari; Android → Chrome. Avoid in-app browsers — use “Open in browser”.
- Conductor phone: full volume, Do Not Disturb on.
- Optional: filter the hub by section (
?section=rhythm, etc.) or pre-assign rows (drones / rhythm / melody). - Run through Device support on one phone; allow motion when Test motion is tapped.
- Demo flow: open an app → Audio on → touch the play surface → allow mic/motion if asked.
Open hub → Piano (or Kaoss Pad on Lead program). Everyone finds one note or pad position. Conductor counts 1–2–3–4; all release on 4.
Motion Trump (motion-wah) — “Tilt = vowel.” Conductor points up/down; group sweeps together without looking at screens.
Shepard Glide — hold the pad; tilt controls rise/fall speed. Discuss endless glide vs stepped melody. If tone stops while held, reload (service worker update) and keep finger on the pad centre.
Sampler — hold centre record button, hum or speak, release to loop; tilt shifts colour and filter.
Scrub Tape — record, then drag the tape ribbon at the bottom (DJ scrub).
Pinch Bass — two-finger spread on the pad; watch the live readout for filter and pitch.
Train & Shake — record still, sway, and shake (3+ each), or Export set / Import set for a shared demo. Open Teach (feature map + confusion matrix), try k and Compare both models.
- Ask: What could confuse the model? Read Ethics · on-device — bias across phones and bodies.
- Perform: conductor mimes three gestures; ensemble reacts.
- Conductor — set BPM, Start countdown, share link (QR, AirDrop, or short URL).
- Drones — Just Equal or Harmonizer; assign roots (e.g. F / A♭ / C / E♭).
- Rhythm — split Drum Sequencer, Circular Drum, Drumkit, Firefly, or L-System Groove.
- Melody — Markov Melody, Kaoss Pad (Beat program for pulse layer), or Mic Theremin.
- Texture — Granular Tilt, Video Sonifier, or Vocoder Choir (hold centre button, sing).
One phone on Shepard Glide or Just Equal; others silent. Discuss what felt musical vs “tech demo.”
| Duration | Focus | Apps | Notes |
|---|---|---|---|
| 10 min | Pulse only | Conductor + Firefly | No melody; listen for entrainment |
| 15 min | Camera room | Shadow Sequencer + Video Sonifier | Dim lights; discuss privacy |
| 20 min | Synthesis tour | FM Touch → Filter Ladder → Pluck Bowl | Map oscillator → filter → resonator |
| 25 min | Kaoss layer | Kaoss Pad Beat + drone row | Quantized pulse under free harmony |
| 30 min | ML ethics | Train Shake + Hum Clap | Compare k-NN on motion vs audio features |
| Role | Good starting apps |
|---|---|
| Pulse / time | Conductor, Firefly, Clap Architect |
| Grid rhythm | Drumkit, Drum Sequencer, Circular Drum, Euclidean Rings, L-System Groove |
| Drones / harmony | Just Equal, Harmonizer, Heading Choir, Swarm Bloom |
| Motion expression | Motion Trump, Shake Filter, Sound Saber, Shepard Glide |
| Melody / pitch | Piano, Kaoss Pad, Markov Melody, Flute Blow, Mic Theremin |
| Timbre / FX | Sampler, Scrub Tape, Granular Tilt, Filter Ladder, Pluck Bowl |
| Camera / room | Shadow Sequencer, Video Sonifier, Room Reverb Send |
| ML showcase | Train Shake, Hum Clap, Evo Drumkit, Gesture Regression |
Full tables: App catalog.
- Large touch targets; centre record buttons are ~5 cm on most phones.
- Train & Shake classes can be relabelled (e.g. phone low / mid / high).
- Sequencers and live readouts give visual feedback; Firefly flashes on pulse.
| Problem | Fix |
|---|---|
| Mic/camera/motion blocked | Safari (iOS) or Chrome (Android); not an in-app browser |
| No sound | Audio on; tap play surface; check mute switch (iOS) |
| Shepard stops while held | Reload page (cache update); keep finger on pad, not edge |
| Motion flat | Reload; iOS Settings → Safari → Motion & Orientation |
| Out of sync | Conductor shared link; expect ~50–100 ms spread without a server |
| Harsh room | Lower volume; fewer distortion / shake players |
- Map FM Touch or Filter Ladder to oscillator → filter → output. Where is the sensor in the chain?
- Why is k-NN (Hum Clap, Train Shake) a form of supervised learning?
- Compare Granular Tilt (cloud texture) to Pluck Bowl (resonant strikes) — ambient vs rhythmic roles?
- Kaoss Pad: how does quantizing pitch on X differ from free pitch on Mic Theremin?
- Sampler / Scrub Tape: what is stored in the audio buffer, and what does scrubbing change?