[0.1.8]
TuningFork.Sfzcarries no instruments of its own. The application registers the ones it plays withTuningFork.Sfz.register/2(orregister/1for many), each with its source, licence, credit and what it is, or underconfig :tuning_fork, :sfzas before;instruments/0lists what is registered. The FreePats, E-Pianos, Splendid Grand and Karoryfer entries the library used to list are gone from it.
0.1.5
TuningFork.Sink.Tcp's:warm_up_msdefaults to0;:prime_framessets how many frames go at once before a warm-up. Its log lines are prefixedtuning_fork:like the rest of the library's.
0.1.4
TuningFork.Sink.Process— each chunk of raw signed 16-bit PCM as a{:pcm, binary}message to a process, paced to real time with:lead_msin flight.TuningFork.Sink.Tcp— raw signed 16-bit PCM over a TCP connection, paced to real time with:lead_msin flight, connecting on the first write and again every:retry_mswhen the far end is not there;:warm_up_msgives a player that buffers while it opens its device that long before real time starts.Stage.pattern_gain/2andPattern.Player.gain/2scale a pattern's whole output, sounding notes included;0.0is silence.- The README opens the tour notebook in Livebook from a badge, and names the projects this library owes to.
0.1.3
- A
TuningFork.Partsynth may be a function of the note — an instrument — andTuningFork.Kit.instrument/4makes one from any sound name, so a part plays a soundfont or a bank recording at each note. Part.repeat/3takes a string ofxand.as well as a count: a pass plays onxand keeps its place silently on..- A bank the kit does not have starts
TuningFork.Strudel.defaults/1loading, and a voice asked for withwait: truewaits for it;Strudel.defaults(wait: true)andSample.Set.load_all/2are the waited-for forms. sdis a snare name; mini-notation reads-.3.Envelope.spanning/2drops the envelope's hold, so a note asked to lastsecondsdoes — a voice with a hold, such as a soundfont's, used to ring on past it.
0.1.1
bank/2keeps the bank name on each event; the kit plays the recording registered asbank_soundwhen the bank has it, and its own drum until then. Before, a name inTuningFork.Kit.banks/0never reached the recordings.struct/2keeps every note sounding at a structural step, so a voiced chord understructsounds whole.use_synthtakes a sound name —use_synth "gm_epiano1"— played at each note through the kit.TuningFork.Kit.known?/1says which names qualify.- A sample file whose name has a space in it is fetched.
- A step whose edge fell a rounding error inside a query span could be reported twice;
Pattern.query/2leaves such slivers out.
0.1.0
First release.