Subsystem
This website documents a set of software tools created by Simon Holliday.
These are tools for electronic musicians, experimental noisemakers, and people who like to remix data. They take signals from the world - sound from a microphone, radio from an antenna, mathematical algorithms, live data feeds - and turn them into MIDI and audio (musical or otherwise).
Each app works on its own, and each can feed the others. And every app is managed with Subroutine.
Subsequence
A stateful algorithmic MIDI sequencer for Python.
Subsample
A sampler that cuts separate sounds out of a live input or a recording, sorts them by how they sound, and plays them from MIDI.
Substation
An SDR band scanner that detects, demodulates, and records radio transmissions automatically.
Superconductor
A touchscreen control surface for music software.
Subroutine
A self-hosted, agent-native task and decision tracker for people and coding agents working on complex projects.
Supplemental
Python libraries built for the apps on this site, and extended for other developers to use: definitions of the MIDI specification, and of the MIDI messages popular instruments answer to.
For example, Substation scans radio bands and records the transmissions it hears. Subsample can import those recordings into its library, sorted by how they sound, and allow them to be performed as an instrument.
Subsequence plays compositions written in code, whose patterns can follow a step grid, an algorithm such as a Euclidean rhythm or a Markov chain, or a live data feed. It plays out over MIDI to synths, drum machines, DAWs, and to Subsample, and records the composition to a MIDI file for editing later.
Substation and Subsample can each tell Subsequence, over OSC, what they have just heard, so a composition can change while it plays.
Superconductor shows the composition in a browser and allows it to be modified and re-patched, by touch, or with a mouse on a computer.
Subroutine is the task tracker the others are managed with. An agent-native task and decision tracker for people and coding agents working on complex projects such as those documented here. It can also tell Subsequence (or any OSC-enabled app) when work is done, or a milestone closes, so you can actually listen to your work being done.
Subway map
- audio
- MIDI
- OSC and WebSocket
- radio, files and ideas
- planned
Every cable in words
- SDR receiver and antenna to Substation: IQ samples over USB
- Substation to Radio recordings: writes WAV or FLAC
- Radio recordings to Subsample: imported when told over OSC
- Substation to Subsequence: radio channel events over OSC
- Microphone to Subsample: live audio
- Recordings and sample packs to Subsample: imported
- MIDI controllers to Subsample: notes over MIDI
- Subsample to Sample library: writes each sample as WAV or FLAC
- Subsample to Subsequence: capture events over OSC
- Subsample to Audio output: audio
- Your composition in Python to Subsequence: patterns
- Live data to Subsequence: read by patterns
- Mathematical algorithms to Subsequence: used as generators
- MIDI controllers to Subsequence: notes, CC and clock over MIDI
- Subsequence to Subsample: notes over MIDI
- Subsequence to Drum machines, synths, and any other MIDI-enabled instruments: notes and clock over MIDI
- Subsequence to DAW and software instruments: notes over virtual MIDI
- Subsequence to MIDI file: records or renders
- Touchscreen or mouse to Superconductor: touch in a browser
- Superconductor and Subsequence: shows and controls over WebSocket
- You and your agents to Subroutine: tasks and decisions
- Subroutine to Subsequence: workspace events over OSC
- Drum machines, synths, and any other MIDI-enabled instruments to Audio output: audio
- DAW and software instruments to Audio output: audio
- MIDI files to Subsequence: import is planned
- Superconductor to Substation: configuring over WebSocket is planned
- Superconductor to Subsample: configuring over WebSocket is planned