Hi there! Here I am with another (maybe?) dumb MIDI question.
I just bought a used Roland HD-1 electronic drums, an old entry level kit I liked a lot for its compact size and its very low budget price. When I play it with its default kits (thus not connecting it to the PC via MIDI) it seems all ok: pad and pedal responses are good and hi-hat feel seems all right even playing a bit with open/closed patterns. But when I connect it to the PC I experience a weird feel when playing hi-hat open/close pattern, more specifically:
I can use the electronic drums as a MIDI controller, when I connect the cable it is recognized by jack on my AVLinux distro and I can connect it to a MDI track on ardour. I can play all the pads and the responses are good, but when I play the hi-hat I don’t get the typical “swishh” you’d hear when you play the hi-hat closed and then open it immediately after, causing the cymbal to make the “close hi-hat noise” and then progressively switching to the “open hi-hat noise” as you release the pedal. Obviously I can’t get the other way around sound (play the hi-hat open and then “chocking it” when pressing the pedal) either.
It feels like there’s a too “sharp” transition from a sample to the other one, so - for example - when I play the hi-hat without pressing the pedal (open hi-hat) and then press the pedal it doesn’t “choke” it, but just plays the “closed by pedal” (“foot chick” maybe?) hi-hat noise, making it sound really weird.
As far as I can read from the official manual (page 21) hi-hat data should be transmitted using control change (CC #4) so I maybe have to fiddle with this, possibly assigning different samples to different CC values? Can I do this in ardour?
For my tests I used “Black Pearl” and “Red Zeppelin” kits from the AVL Drumkits bundle, maybe I have to switch to another drumkit/plugin which supports more soft transitions? I was also reading about choke groups but I didn’t really understand very well how these works…
The problem is that the drum instruments you are using are not really designed to be used with MIDI controllers and were more designed for use by editing the notes within Ardour (or some other MIDI sequencing tool).
This has been discussed before:
Specifically:
Really, I don’t think there’s a good full solution to this. The Roland hi-hat MIDI seems to designed to be used with Roland Drum modules. I haven’t extensively researched this, but I’ve not come across any MIDI instrument plugin on any platform that can interpret these MIDI codes fully.
And, surprisingly to me, even Roland doesn’t seem to have an instrument plugin for this; they sell different drum packs, but these only seem to be available to install into one of the compatible hardware drum modules.
Personally, I have found DrumGizmo more amenable to use with a MIDI eDrum set, but even this is an imperfect solution and won’t solve your hi-hat issue.
That’s sad… You’re telling me there’s no way to interpret midi changes sent by the roland HD-1 using the correct samples in ardour (or in the drums plugins used in standalone mode of course)?.. Guess I was too optimistic so
I was actually thinking there could be a way to tell the plugin which sample it has to play based on pedal pressure and (maybe) the note you triggered just a moment before (e.g. you hit the hi-hat and then release the pedal). Especially knowing that the pedal sent continuous CC values…
Assuming you aren’t talking about rewriting the plugin to support this, it might be possible by pre-processing the MIDI before it gets to the instrument, but it’s not going to be simple task, and I doubt it is possible with a simple mapping function. But there’s the MIDI collection from @x42 which may give you some tools to try.
I suspect it could be done using a LUA plugin (do these support MIDI?) but this would require some LUA coding.
Note that the AVL Drumkits instrument is Open Source and on Github, and I’m sure Robin would welcome a PR if you are a coder.
I did a little more research and, apparently, there are some commercial drum plugins which can use CC hi-hat values, including Get Good Drums, EZDrummer, Superior Drummer, and Steven Slate Drums.
But these are commercial and may not be available on your OS.
You may want to look into tchackpoum, as he seems to be back in business. He used to offer his stuff as a SFZ instrument (which you could use with sfizz or sforzando), but seems to concentrate just on Reaper now, but maybe you can make a deal. The videos he has of playing these samples on a Roland kit are impressive.
In general I think there are some flaws in the Soundfont2 format (AVL-Drumkits use SF2) that also make it not ideal for drumming with MIDI controllers/drumkits. First of all it’s an ancient standard and has filename character size limitations which I found out the hard way… Samples that have filenames that are too long will be truncated and lose their numerical order in velocity layers and I would hazard to guess there are numerous homemade Soundfonts floating around out there that have this issue and the authors don’t even know it. I discovered it and fixed it in the AVL-Drumkits but I still hear peculiar other issues specifically with Ride Cymbals that do not exist in the SFZ or Hydrogen versions. None of this is in any way a fault in the LV2 implementation that @x42 has made, his work as always is brilliant but only so much can be done with the SF2 format itself and it isn’t really seeing a lot of new attention these days.
Oh right, that kit does have a hi-hat splash. I found that some drum modules send a different midi keycode when you tap and release the pedal. I’m not sure if Roland does that. You’ll see that I have key codes listed for Alesis and Simmons, but not Roland: tchimera-drum-kit/keymap.sfz at master · michaelwillis/tchimera-drum-kit · GitHub
If anybody happens to know of a midi key code that Roland uses to represent a hi-hat splash, I’ll happily update the keymap.
I looked up the midi key map for the Roland HD-1, it’s even more simplistic than the TD-1K:
Pad
Note number
Kick
36
Snare
38
Tom1
48
Tom2
45
Tom3
43
Hi-Hat (Open)
46
Hi-Hat (Closed)
42
Foot Close
44
Crash
49
Ride
51
I don’t know of a way to make SFZ instruments respond to CC#4 without a key event. Maybe my beard isn’t gray enough, and some other SFZ wizard can do it.
Yes, I read that previously. In that explanation it references a separate MIDI note for the splash, which many drum kits don’t have(certainly not the budget Roland eKits).
Mind you, these eKits don’t seem to support pedal splash with their own on-board sounds either IME.
I actually believe that, in that case, you would need some sort of MIDI pre-processing to detect the Note Off event for the pedal, or the change in CC value and to generate a new Note On value for the SFZ engine to generate a splash sound.
Then the mute groups described in the documentation could apply.