Examples
For comprehensive examples and tutorials, visit the Interactive Tutorials — no installation required.
The tutorial series covers:
Rhythm Trees — Creating and manipulating rhythm trees, rhythmic vocabulary, partitions
Temporal Units — Working with temporal structures and sequences
Tone Lattices — Harmonic spaces, embedded structures, custom lattice generators
Combination Product Sets — CPS construction, higher-dimensional sets, interactive explorer
Tone.js Custom Instruments
Klotho’s Tone.js playback engine supports custom JS instruments that can be scheduled with per-event pfields. Custom instruments must be registered in JavaScript under KLOTHO_CUSTOM_INSTRUMENTS and expose the following hooks:
create(): return a voice instance with any required Tone.js nodes.connect(inst, out): connect the voice instance to the output gain.apply(inst, pfields): apply pfields to the voice instance for each event.trigger(inst, freq, duration, time, vel, pfields): trigger the voice instance.
Optional fields:
maxPolyphony: maximum simultaneous voices for this instrument.pfields: default pfields for the instrument.defaults: defaultfreqandvelfor event scheduling.
To use custom instruments, inject a JS file when invoking the Tone.js player:
play(obj, custom_js_path="path/to/custom_instruments.js")
On the Python side, you can reference the custom instrument by name with ToneInstrument and supply default pfields if desired.