Sonic Pi's sample bank for TuningFork: 206 recordings, public domain, fetched from Sonic Pi's repository the first time each is played and kept under $XDG_CACHE_HOME/tuning_fork/samples.

{:tuning_fork, "~> 0.1"},
{:tuning_fork_samples, "~> 0.1"}

With this package started, every name in the bank plays wherever a drum name does:

s("bd_haus*4 elec_blip")                                # a Strudel pattern
part(bpm: 120, synth: Kit.voice("perc_bell", 1))        # a loop
sample :perc_bell, rate: 0.5                            # the Sonic Pi vocabulary
TuningFork.Samples.load!(:ambi_choir)                   # the recording itself

Names

The names are Sonic Pi's. TuningFork.Samples.names/0 lists all 206; TuningFork.Samples.families/0 groups them by prefix:

FamilySome of them
bdbd_haus bd_808 bd_fat bd_tek bd_zum bd_boom
snsn_dub sn_dolf sn_zome sn_generic
hathat_snap hat_zap hat_tap hat_bdu hat_metal
drumdrum_heavy_kick drum_snare_hard drum_cymbal_closed drum_cowbell drum_roll
elecelec_blip elec_beep elec_ping elec_twang elec_bell elec_snare
percperc_bell perc_snap perc_swash perc_till perc_door
ambiambi_choir ambi_drone ambi_piano ambi_lunar_land ambi_glass_hum
bassbass_hit_c bass_hard_c bass_thick_c bass_trance_c bass_dnb_f
looploop_amen loop_amen_full loop_breakbeat loop_industrial loop_garzul
tablatabla_ghe1 tabla_na tabla_tas1 tabla_te1 tabla_tun1
glitchglitch_bass_g glitch_perc_1 glitch_robot_1
vinylvinyl_backspin vinyl_hiss vinyl_rewind vinyl_scratch
guitguit_e_fifths guit_e_slide guit_em9 guit_harmonics
miscmisc_burp misc_crow misc_cineboom
mehackitmehackit_phone_1 mehackit_robot_1
arovanearovane_beat_a … arovane_beat_e
tbdtbd_pad_1 tbd_perc_hat tbd_highkey_c4 tbd_fxbed_loop
rideride_tri ride_via

A pitched recording is played at its own speed unless the voice is told what note it is (Sample.load! takes a :root). A number after the name — bd_haus:2 — picks a file where a name holds several, and is the same recording where it holds one.

Loading

A recording is fetched on its first use and decoded from FLAC — TuningFork.Flac is pure Elixir — then kept in TuningFork.Sample.Bank. On a live stage a recording still on its way is silent for that hit and plays from the next; TuningFork.Samples.prefetch/0 fetches all 206 (34 MB) in the background beforehand, and a pattern or loop prefetches the names it is about to play. TuningFork.Samples.source/1 points the package at another directory of <name>.flac files, local or on the web, for a machine without access to GitHub.

Licence

Every recording is under Creative Commons Zero. priv/SOURCES.md is Sonic Pi's own list of where each came from on freesound.org, and of the sets donated by Uwe Zahn (Arovane) and The Black Dog. The collection itself is Sonic Pi's, by Sam Aaron and contributors, and this package would be nothing without it.