[sdiy] Midi Drums
21pointy at tpg.com.au
Fri Feb 9 02:48:45 CET 2018
I seem to recall the ubiquitous Alesis SR-16 used three piezos under the front panel to give the pads “velocity”.
> On 9 Feb 2018, at 4:30 AM, Tim Ressel <timr at circuitabbey.com> wrote:
> Thanks for the info!
> I assume these are piezo elements but who knows. Maybe I'll tear it apart at some point. I am looking to make a midi-cv device that is drum-centric. It is getting interesting as I figure out just what that means. A keyboard is easy: volt per octave out with gate and trigger, plus some analog outs for pitch, mod wheel, whatever. The drum thing is not so clear. I was going to have trigger out and analog velocity i.e. how hard it got hit (?) outputs. But then someone said have a gate out, which makes no sense to me. And then I thought there should be an output that mimics what a piezo element would put out when struck. that is to say an analog output that emits a signal with both pressure and duration info. This could go into a filter for using the filter pinging method of patching a drum.
> I meant using a scope was lame for trying to interpret the midi codes. I don't think they make a scope that can decode midi.
> On 2/7/2018 9:19 PM, rsdio at audiobanshee.com wrote:
>> Hi guys and dolls,
>> A great many MIDI drum sensors start out with an audio signal, typically from a simple piezo mic. This signal is then rectified and smoothed, just like any standard envelope detector that might feed a signal meter. For pure analog systems, the envelope can be sent to a comparator with a threshold to generate a Gate signal. The peak amplitude can be used for Velocity. It’s even possible to feed the envelope directly to an output for CV, e.g., to a VCA. These kinds of designs generally cannot detect pressure or aftertouch, whether they’re pure analog or have an A/D converter. They also cannot detect any sort of Note Off. A few MIDI drums simply never send a Note Off, while others might use a preset time delay before the Note Off.
>> More advanced MIDI drums - like the drumKAT - have pressure sensitive pads, and definitely have some digital components for MIDI and other uses. These generate Note On with Velocity, and then also send Aftertouch messages whenever the amount of pressure changes. These designs can send a Note Off message at the exact moment you remove pressure from the pad, since pressure sensing is continuous.
>> Velocity is the change in position over time, and Pressure almost always corresponds to position (the amount of depression), therefore velocity can be calculated by the difference between the first two pressure readings. It’s a little tricky to use the first pressure reading alone, because there’s no way to know the exact timing of the initial moment when the pressure changed from zero to non-zero. Calculating on the first pressure value alone would result in widely varying values for Velocity. However, the first and second pressure readings will have a precise timing relative to each other, based on the sample rate, so the difference between those first two values can be used for velocity. The latter technique will be more reliable because values will not vary so wildly. The faster the sample rate for the A/D, the quicker the response.
>> I have never seen a MIDI drum with keybed style switches - but, of course, that doesn’t mean it hasn’t been done. I have heard of people making their own MIDI pads with nothing more complicated than a couple of tin foil strips that conduct when you hit the surface. Off course, a bunch of circuitry is still needed to make a MIDI drum from tin foil, but the physical sensor pad can be super simple. I would say that the audio signal technique is superior to the tin foil technique (or any single or dual switch), while the pressure sensitive pads are the ultimate.
>> With most all designs, there is some crosstalk between MIDI drum pads when there is more than one in the same box. The keybed style switches would be the only design that probably wouldn’t have crosstalk. drumKAT dealt with crosstalk by having a “learn” mode where the user would play each pad, one at a time, and the system would learn how much “false” signal is received on the pads that aren’t being played. The unit then made sure to ignore those small amounts of position-dependent bleed when you’re playing multiple pads in a kit.
>> By the way, I do not think it’s lame to take a look at the MIDI flow. This is a good way to learn how music equipment works and will often allow you to make the most of what you have. The only thing that I would consider lame is not grabbing the MIDI specifications to study what messages are available and what is supposed to happen. Unfortunately, there is some MIDI gear out there in the thirty year history of the spec that doesn’t quite do the right thing - like those rare MIDI drum pads that never send Note Off - so it pays to look closely at what’s going on, especially when you get new gear.
>> I assume you aren’t literally using an oscilloscope to look at the MIDI flow. Unless you have a ‘scope that can decode asynchronous serial bits, with 1 start bit, 8 data bits, no parity, 1 stop bit, and concert that to (hexa)decimal numbers, then you’ll probably just confuse yourself staring at the signals at that level. Instead, I would recommend any of the free programs that display MIDI messages in a more human-readable form. This way, you’ll know what those bursts are saying. No need to guess whether it’s a Pressure update or a Note Off. I actually prefer old 8-bit computers without USB-MIDI, because they can show the actual messages on the classic MIDI port without the translation that occurs on a USB-MIDI interface. Then again, it’s incredibly rare for USB-MIDI to make changes that would amount to anything significant. I just like to know what’s really going on in case something has a bug and might be generating abnormal MIDI messages. Since I’ve created several embedded MIDI devices, I’ve managed to start out with buggy code in the early stages, and having a good way to visualize the MIDI helps a lot (even if it’s just print statements fed from a classic MIDI interface).
>> Brian Willoughby
>> Sound Consulting
>> On Feb 7, 2018, at 8:10 PM, Mike HEQX <mike at heqx.com> wrote:
>>> How do they generate velocity? Is it done with an AD conversion? OR is it a timing thing between two events like a keybed?
>>> On 2/7/2018 7:38 PM, Quincas Moreira wrote:
>>>> Yeah, pads are basically just rubberized keys. They will generate the usual info, note on, note off, velocity and note number. Sometimes aftertouch too
>>>> On Wed, Feb 7, 2018 at 6:19 PM, Tim Ressel <timr at circuitabbey.com> wrote:
>>>>> So like, how do midi drums work? I am playing with a Korg Nano Pad II and looking at the midi flow with my scope (i know, lame). Something I am curious about: I get a burst when I hit a pad ( expected) and another burst when I release it. Huh? Is that a note off command? Is it treated like a key being pressed it you hit and hold?
>>>>> Btw the MidiHost thingie from HobbyTronics is pretty cool. Eventually I will have to conquer doing USB Midi on an STM32, but for now I am having fun with this gizmo. I think I'll turn this one into a new-to-old Midi Convertor, and get a few more for the Washington of it.
>> Synth-diy mailing list
>> Synth-diy at synth-diy.org
> --Tim Ressel
> Circuit Abbey
> timr at circuitabbey.com
> Synth-diy mailing list
> Synth-diy at synth-diy.org
More information about the Synth-diy