Sound synthesised on the BEAM. This repository holds the tuning_fork library and the
packages around it, each published to hex.pm on its own.
| Package | What | Hex |
|---|---|---|
tuning_fork |
Voices, scores, live patterns, Sonic Pi and Strudel spellings, MIDI files, OSC. Pure Elixir, no dependencies | {:tuning_fork, "~> 0.1.12"} |
tuning_fork_speaker |
Playback through this machine's sound device (C, via miniaudio) | {:tuning_fork_speaker, "~> 0.1.12"} |
tuning_fork_midi |
MIDI devices: scores and live patterns out, a keyboard in (C, via minimidio) | {:tuning_fork_midi, "~> 0.1.12"} |
tuning_fork_samples |
Sonic Pi's 206 recordings by name, fetched as they play | {:tuning_fork_samples, "~> 0.1.12"} |
tuning_fork_composer |
A step sequencer as data, writing TuningFork source | {:tuning_fork_composer, "~> 0.1.12"} |
tuning_fork_kino |
Livebook: a streaming stage widget and five smart cells | {:tuning_fork_kino, "~> 0.1.12"} |
tuning_fork_mt32 |
MIDI played as a Roland MT-32 plays it, through your own installation of the Munt emulator | {:tuning_fork_mt32, "~> 0.1.12"} |
tuning_fork_wma |
xWMA audio (XACT wave banks and .xwma files) decoded in pure Elixir, no ffmpeg |
{:tuning_fork_wma, "~> 0.1.12"} |
tuning_fork_drafter |
Terminal front ends drawn with Drafter; needs drafter ~> 0.5 |
{:tuning_fork_drafter, "~> 0.1.12"} |
Start with tuning_fork/README.md, or hear it first: the tour
notebook is one tune written three ways — a grid, Strudel's syntax, Sonic Pi's — on the
same recordings, and opens straight into Livebook.
Each package is an ordinary Mix project in its own directory; mix test, mix credo --strict
and mix docs run inside each. Within the repository the packages depend on each other by
path, so an edit in tuning_fork is seen by the others at once.
Two projects shaped this library, and it plays their music as written:
- Sonic Pi by Sam Aaron and contributors —
live_loop,play,sleep,sample,with_fxand the rest of the vocabulary inTuningFork.SonicPi, the synth and effect names, and the 206 public-domain recordingstuning_fork_samplesfetches. - Strudel by Felix Roos, Alex McLean and contributors, and
Tidal Cycles by Alex McLean before it — the pattern model, the
mini-notation, the control names, the chord dictionaries and voicing rules, and the sound
design in superdough
that
TuningFork.Kitand the effects follow. The sample sets strudel.cc loads — uzu-drumkit, tidal-drum-machines, Dirt-Samples, VCSL by Versilian Studios, the mridangam recordings and the piano from dough-samples — are fetched from where they are published, under their own licences.
Also: WebAudioFont by Sergey Surikov for the
General MIDI soundfonts behind gm_ sounds; Jezar at Dreampoint for Freeverb, which the
reverb is; miniaudio by David Reid in tuning_fork_speaker and
minimidio by Joseph Stewart in tuning_fork_midi.
MIT, see LICENSE. Sonic Pi's recordings are CC0; the soundfonts and sample sets fetched for Strudel pieces carry their own licences, listed where they are hosted.