Further technical hurdles

Further technical hurdles

November 28, 2024·this.ven
this.ven

‘I do this not because it is easy, but because I thought it would be easy.’ It seems like there’s still a lot to do before I can actually start recording. The legacy of the scorewriting workflow I got used to now comes back at me. So I need to learn new tools, adapt to new formats, and find a new workflow. However, I can do this because I want to do this. And one thing I know is: Going the hard way leads to many insights.

Scoring with a drum machine

In my last blog post I wrote about how I got used to save my ideas with a tablature editor and happened to compose and arrange with it. But that’s only half the story. Since the drums of a soundfont quickly sounded not vivid enough for me and I was curious to try out other free software, I started scoring drums with Hydrogen, the advanced drum machine.

Using the integrated Sound Library1 the drumkit Flac_GSCW-2, which is based on samples from Salvador Pelaez2, appealed to me. Hydrogen provides a lot of options to fine tune the sound of a drumkit. However, I have basically used it to better imagine the sound of the drums in my arrangements. And I ended up drictly feeding single instrument tracks, such as the kick, snare, etc., into separate tracks in Ardour in the recording step to do the fine tuning in the DAW bypassing all the advanced options of Hydrogen.

Exporting a Hydrogen Song to MIDI

My drums scores are currently saved in Hydrogen’s XML3 format and bound to the drumkits provided by Hydrogen. In order to work with the Tchimera Drum Kit, as described in the #Drums section of my pro audio documentation, I export the Hydrogen song (.h2song) to MIDI.

Hydrogen MIDI export

Exporting a song in Hydrogen to MIDI

However, importing the resulting .mid file into an Ardour MIDI track—which has been initialized with an sfizz-multi instance loading the full_kit.sfz of the Tchimera Drum Kit virtual instrument—doesn’t do the magic. While listening to the MIDI notes triggering the samples in sfizz I note that a crash cymbal is triggered instead of a low or floor tom, for example.

The reason is that the mapping of MIDI notes for the Flac-GSCW-2 drumkit in Hydrogen is different to the mapping of the Tchimera Drum Kit provided as SFZ file. The value in the Note field of the MIDI Output control bar on the lower right side of the image above reveals that the Snare instrument is mapped to note 37, for example.

Flac_GSWC-2 default mapping

First, I write down the notes used in the Hydrogen drumkit Flac_GSCW-2. The following table shows the mappings and the General MIDI (GM) standard for reference:

Note GM4 Flac_GSCW-2
36 Electric Bass Drum Kick
37 Side Stick Snare
38 Acoustic Snare Snare flam
39 Hand Clap Snare side stick
40 Electric Snare or Rimshot Snare roll
41 Low Floor Tom Snare rim shot
42 Closed Hi-hat Snare drag
43 High Floor Tom Crash 14"
44 Pedal Hi-hat Crash 14" choke
45 Low Tom Crash 18"
46 Open Hi-hat Crash 18" choke
47 Low-Mid Tom Tom 13"
48 High-Mid Tom Tom 12"
49 Crash-Cymbal 1 Ride 22" - bell
50 High Tom Tom 10"
51 Ride Cymbal 1 Ride 22"
52 Chinese Cymbal HH closed
53 Ride Bell Tom 12" flam
54 Tambourine HH open
55 Splash Cymbal Tom 10" flam
56 Cowbell HH pedal
57 Crash Cymbal 2 Tom 13" flam
58 Vibraslap Splash 6"

At first glance, this mapping appears to have been made in sequence accounting for instruments to be triggered on notes you wouldn’t expect, if you are already familiar with the GM standard.

Tchimera Drum Kit default mapping

Next, I investigate the keymap.sfz file containing the mapping of the Tchimera Drum Kit as shown in this table:

Note GM and GS5 Tchimera Drum Kit
22 HIHAT_CLOSED_EDGE
23 HIHAT_HALF_BOW
24 HIHAT_HALF_EDGE
26 Finger Snap (GS) HIHAT_OPEN_EDGE
30 Scratch Pull (GS) TRASH_BOW
31 Sticks (GS) TOM_4
32 Square Click (GS) TRASH_EDGE
33 Metronome Click (GS) TOM_4_RIM
35 Acoustic Bass Drum KICK_FREE
36 Electric Bass Drum KICK_DAMP
38 Acoustic Snare SNARE_CENTER
39 Hand Clap SNARE_EDGE
40 Electric Snare or Rimshot SNARE_RIM
41 Low Floor Tom TOM_3
42 Closed Hi-hat HIHAT_CLOSED_BOW
43 High Floor Tom TOM_3_RIM
44 Pedal Hi-hat HIHAT_PEDAL
45 Low Tom TOM_2
46 Open Hi-hat HIHAT_OPEN_BOW
47 Low-Mid Tom TOM_2_RIM
48 High-Mid Tom TOM_1
49 Crash-Cymbal 1 CRASH_1_BOW
50 High Tom TOM_1_RIM
51 Ride Cymbal 1 RIDE_BOW
52 Chinese Cymbal CRASH_2_EDGE
53 Ride Bell RIDE_BELL
55 Splash Cymbal CRASH_1_EDGE
57 Crash Cymbal 2 CRASH_2_BOW
58 Vibraslap RIDE_EDGE

In addition to General MIDI, the mapping expands down to note 22 including notes that are part of the General Sound or General Standard (GS) superset and even non-percussion notes (notes below 26). And compared to GM and GS the mapping in the Tchimera Drum Kit appears to be rather less systematic. The reason is that the notes correspond to those used in typical e-drums hardware made by Alesis, Roland, and Simmons.

E-drums often provide different trigger zones to simulate different sounds produced by hitting a drum or cymbal at the bow or edge, for example. For this reason, there are six mappings for hihat sounds and three mappings for the snare. Though this doesn’t comply with the GM and GS standards it’s a good practice to not spread the notes across the whole spectrum.

Remapping in Hydrogen

The tables reveal that Flac_GSCW-2 and Tchimera Drum Kit are different drumkits providing different samples using different MIDI notes and a one-to-one match isn’t possible. However, to generate a MIDI export that triggers most of the instruments just fine (kick, snare, hihat, toms, cymbals), I can remap the notes used in Hydrogen to similar instruments of the Tchimera Drum Kit before exporting the song:

Note GM and GS Tchimera Drum Kit Flac_GSCW-2
22 HIHAT_CLOSED_EDGE HH closed
26 Finger Snap (GS) HIHAT_OPEN_EDGE HH open
36 Electric Bass Drum KICK_DAMP Kick
38 Acoustic Snare SNARE_CENTER Snare
40 Electric Snare or Rimshot SNARE_RIM Snare rim shot
41 Low Floor Tom TOM_3 Tom 13"
44 Pedal Hi-hat HIHAT_PEDAL HH pedal
45 Low Tom TOM_2 Tom 12"
48 High-Mid Tom TOM_1 Tom 10"
51 Ride Cymbal 1 RIDE_BOW Ride 22"
52 Chinese Cymbal CRASH_2_EDGE Crash 18"
53 Ride Bell RIDE_BELL Ride 22" - bell
55 Splash Cymbal CRASH_1_EDGE Crash 14"

Additional instruments in Hydrogen, such as Snare flam, Snare roll, Crash 14" choke, Splash 6" etc., are mapped to a range of notes unused in the Tchimera Drum Kit (60 to 69):

Note GM Flac_GSCW-2
60 Low Bongo Snare flam
61 High Bongo Snare side stick
62 Mute High Conga Snare roll
63 Open High Conga Snare drag
64 Low Conga Crash 14" choke
65 High Timbale Crash 18" choke
66 Low Timbale Tom 10" flam
68 Low Agogô Tom 12" flam
67 High Agogô Tom 13" flam
69 Cabasa Splash 6"

Motivation

This way I can maintain the note information (length, timing, velocity etc.) and decide to drag the note to another note for triggering another instrument while working with MIDI in Ardour or find other ways to produce the sound I intended. The additional instruments cannot occupy the same note as the regular Snare, for example. Otherwise, they would be discarded as a duplicate note on export.

Although it will take some time to get used to the features of the Tchimera Drum Kit and a lot of work will be required to find ways to maintain the intended sound of the drums I composed using Flac-GSCW-2 in Hydrogen, I am confident that I can tackle Dozen Lessons for Educationists well, soon.


  1. Chapter 10. Sound Library in the Hydrogen documentation ↩︎

  2. A drum-samples repository providing the source samples ↩︎

  3. Chapter 21. Used File Types in the Hydrogen documentation ↩︎

  4. Parameter interpretation for General MIDI (GM) Percussion in the Wikipedia ↩︎

  5. Additional percussion notes for General Standard (GS) in the Wikipedia ↩︎

Last updated on