Teletype-inspired modular livecoding sound language.
Like Teletype, PHONOTYPE is a prefix programming language. For example:
+ 1 * 2 2.5
Is a statement that yields the sum of 1 and the product of 2 and 2.5: 6.
Unlike Teletype, PHONOTYPE directly produces and manipulates sound. It’s designed allow patching and repatching flows of signal and sound live in performance, and/or creating drones, self-playing generative patches, MIDI synths, drum machines, or whatever else you can dream of.
Every operation in PHONOTYPE is declarative. Instead of executing, like a line of Teletype code, it tells the audio engine (SuperCollider) what to connect to what. You can think of this much like patching a modular synth. The last line of your main (
M) script is output to the output jack. Operations do things like output various kinds of waves, delay signals, or output triggers in certain rhythms.
Norns or reasonable facsimile thereof.
MIDI controller recommended but not required.
To use PHONOTYPE:
- Install it onto Norns
- Restart the Norns, so they can see the new Engine
- Unplug keyboard from Teletype
- Plug keyboard into Norns
- Select PHONOTYPE
- Code a sound
F1…F8 on the keyboard navigates to script 1 through 8.
F9 on the keyboard navigates to the
M (main) script. This is the script that outputs sound.
ESC nagivates to the scene description.
Arrow keys choose a line to edit; enter key actually changes the line.
Shift-enter inserts a new “passthrough” line above the current one.
E 2 adjusts the fade time of the current line.
E 3 adjusts the update cycle of the current line; for example, if you adjust it to 4, then the line will update every 4 beats. This is useful for making changes on barlines.
SIN 440 in M.
Then on the next line put
* IT PERC QN .5 (
QN = quarter notes.
.5 is our env decay). We have turned the tone into some pinging sounds.
+ IT * .5 DEL.F IT * .75 M 3.
DEL.F is a delay w/ feedback. We delay by a dotted eigth with a 3s decay.
Then go back to the first line. Hit ctrl-enter to get a new line above. Make the new line say:
S+H SCL SIN .1 0 7 QN
This samples-and-holds a slow LFO on every quarter note, and scales it to 0 to 7.
SIN 440 to say
SIN N.MIN IT: use the previous line we just wrote as an index into a minor scale.
You should now have a little melody playing.
While in the scene description, Ctrl-Enter or Alt-Enter saves your scene, with the filename based on the first line of your scene description.
To load a scene, change the
scene parameter (on the params page) to a file of your choice. I have put a couple examples in the code directory of the script (though your own code will save to the data directory).
To load a fresh scene, press Ctrl-Shift-Escape.
Please see the full list of operators at README.md; it is too long for this margin to contain.
A taste to get you started:
SIN <freq> - Sine wave
PSIN <freq> <phase> - Phase-modulated sine wave
PERC <trig> <duration> - Percussive envelope
QN - Quarter note triggers
Basics idea and syntax
Using scripts for abstraction, and setting up a polyphonic MIDI synth.
- 0.1: Most of the stuff
- 0.2: Buffer operations, polyphonic midi in
Things I expect for this script in the future:
Buffer ops, both read and writeDONE
The ability to load samples into buffers from paramsDONE
- Crow CV and trigger input and output
- A “tracker view” to allow you to manually edit buffers and use them as sequencers
Polyphonic midi inputDONE
- A library to incorporate the PHONOTYPE engine in other scripts (without the editor, but loading a scene to run from params and be a synth or effect)
This script is inspired by Teletype and Dronecaster.
Thanks to @zebra, @license, and @infinitedigits for answering billions of supercollider questions and looking at my code, to @tyleretters for reviewing the documentation and making suggestions, to @zbs for feedback on the edit flow and contributing some smoothness to the edit flow, and the Teletype study group for encouragement, talking through the idea, and general awesomeness especially @nonverbalpoetry who I think was my main interlocutor in the conversation that started this mess. Also thanks to @noracodes for an aluminum panel for my shield so it looks like its big Teletype sibling.
I don’t know why PHONOTYPE got stuck all caps in my head, it just always has been. Now autocorrect on my phone keeps it up for me.
Contributions and suggestions more than welcome.
I plan to perform on PHONOTYPE at Flash Crash V. It promises to be an interesting time.