Factory soundfonts library

Mechanism is split between the YAML and the SFZ file and works as follows:

  Bass Drum 1:
    Bass Drum volume:
      midi_cc: 16
      value: 127
    Bass Drum pan:
      midi_cc: 17
      value: 64
  
  Bass Drum 2:
    Bass Drum type:
      midi_cc: 18
      value: 0
      graph_path: 'note_on'
      labels: ['Clean', 'Color 01', 'Color 02', 'Color 03', 'Color 04', 'Color 05', 'Tape', 'Tube']
      ticks: [0, 16, 32, 48, 64, 80, 96, 112]
    Bass Drum decay:
      midi_cc: 19
      value: 0
      graph_path: 'note_on'
      labels: ['Decay Short', 'Decay Medium', 'Decay Long']
      ticks: [0, 43, 86]
    Bass Drum tone:
      midi_cc: 20
      value: 0
      graph_path: 'note_on'
      labels: ['Tone A', 'Tone B', 'Tone C', 'Tone D', 'Tone E', 'Tone F']
      ticks: [0, 22, 44, 65, 86, 107]
    Bass Drum tune:
      midi_cc: 21
      value: 64

…and then the corresponding part in the SFZ:

	
  #define $BASS_DRUM_NOTE 36
 
  set_cc16=127  // Bass Drum Volume
  set_cc17=64   // Bass Drum Pan
  set_cc18=0    // Bass Drum Type
  set_cc19=0    // Bass Drum Decay
  set_cc20=0    // Bass Drum Tone
  set_cc21=64   // Bass Drum Tune
  
  
  <master>
  key=$BASS_DRUM_NOTE
  amp_veltrack=100
  pitch_keycenter=$BASS_DRUM_NOTE
  volume=-30
  volume_cc16=36
  volume_curvecc16=20
  pan=-100
  pan_oncc17=200

<group> // Bass Drum - Clean (Type mode)
  locc18=0
  hicc18=15
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_A_01.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_A_06.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=107 hicc21=127
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_B_06.wav locc19=0 hicc19=42 locc20=22 hicc20=43 locc21=107 hicc21=127
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_C_06.wav locc19=0 hicc19=42 locc20=44 hicc20=64 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_D_01.wav locc19=0 hicc19=42 locc20=65 hicc20=85 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_D_06.wav locc19=0 hicc19=42 locc20=65 hicc20=85 locc21=107 hicc21=127
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_E_06.wav locc19=0 hicc19=42 locc20=86 hicc20=106 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_F_01.wav locc19=0 hicc19=42 locc20=107 hicc20=127 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/01._Short/BD_909_Clean_Short_F_06.wav locc19=0 hicc19=42 locc20=107 hicc20=127 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_A_01.wav locc19=43 hicc19=85 locc20=0 hicc20=21 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_A_06.wav locc19=43 hicc19=85 locc20=0 hicc20=21 locc21=107 hicc21=127
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_B_06.wav locc19=43 hicc19=85 locc20=22 hicc20=43 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_C_01.wav locc19=43 hicc19=85 locc20=44 hicc20=64 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_C_06.wav locc19=43 hicc19=85 locc20=44 hicc20=64 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_D_01.wav locc19=43 hicc19=85 locc20=65 hicc20=85 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_D_06.wav locc19=43 hicc19=85 locc20=65 hicc20=85 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_E_01.wav locc19=43 hicc19=85 locc20=86 hicc20=106 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_E_06.wav locc19=43 hicc19=85 locc20=86 hicc20=106 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_F_01.wav locc19=43 hicc19=85 locc20=107 hicc20=127 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/02._Medium/BD_909_Clean_Medium_F_06.wav locc19=43 hicc19=85 locc20=107 hicc20=127 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_A_01.wav locc19=86 hicc19=127 locc20=0 hicc20=21 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_A_06.wav locc19=86 hicc19=127 locc20=0 hicc20=21 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_B_01.wav locc19=86 hicc19=127 locc20=22 hicc20=43 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_B_06.wav locc19=86 hicc19=127 locc20=22 hicc20=43 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_C_01.wav locc19=86 hicc19=127 locc20=44 hicc20=64 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_C_06.wav locc19=86 hicc19=127 locc20=44 hicc20=64 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_D_01.wav locc19=86 hicc19=127 locc20=65 hicc20=85 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_D_06.wav locc19=86 hicc19=127 locc20=65 hicc20=85 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_E_01.wav locc19=86 hicc19=127 locc20=86 hicc20=106 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_E_06.wav locc19=86 hicc19=127 locc20=86 hicc20=106 locc21=107 hicc21=127
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_F_01.wav locc19=86 hicc19=127 locc20=107 hicc20=127 locc21=0 hicc21=21
..
  <region> sample=TR-909/01._Bass_Drum/01._Clean/03._Long/BD_909_Clean_Long_F_06.wav locc19=86 hicc19=127 locc20=107 hicc20=127 locc21=107 hicc21=127
  
<group> // Bass Drum - Color 01 (Type mode)
  locc18=16
  hicc18=31
  <region> sample=TR-909/01._Bass_Drum/04._Color/Color_01/01._Short/BD_909_Color_01_Short_A_01.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=0 hicc21=21
  <region> sample=TR-909/01._Bass_Drum/04._Color/Color_01/01._Short/BD_909_Color_01_Short_A_02.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=22 hicc21=43
  <region> sample=TR-909/01._Bass_Drum/04._Color/Color_01/01._Short/BD_909_Color_01_Short_A_03.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=44 hicc21=64
  <region> sample=TR-909/01._Bass_Drum/04._Color/Color_01/01._Short/BD_909_Color_01_Short_A_04.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=65 hicc21=85
  <region> sample=TR-909/01._Bass_Drum/04._Color/Color_01/01._Short/BD_909_Color_01_Short_A_05.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=86 hicc21=106
  <region> sample=TR-909/01._Bass_Drum/04._Color/Color_01/01._Short/BD_909_Color_01_Short_A_06.wav locc19=0 hicc19=42 locc20=0 hicc20=21 locc21=107 hicc21=127
  .....

Here it is in a “single bass drum” form: using CCs I can control volume, pan, color, decay, tone type, and tuning of the drum.