Regarding MIDI specification on aftertouch (channel and/or poly pressure).
We have stumbled upon a manufacturer of E-drum kits that in at least two of their modules send out messages in the form of (for example):
.
.
.
Note on note37
Note off note37
Aftertouch note37 value127
Note on note37
Note off note37
Aftertouch note37 value127
.
.
.
Meaning they never send a "off" message, aka value0 for the aftertouch when releasing the pad.
AFAIK a hardware controller should send continuous aftertouch messages for a note as long as the key is pressed (meaning it goes from say 0 to a max of 127 and then drops down to 0 again once released).
I would say 99% of hardware does this but this particular manufacturer does not, yet claims they follow the MIDI protocol correctly.
So, the question is, where can I read about this in the specification so I can forward them to it and get them to update their firmware? I haven't manage to find anything about this.
Thanks for any clarification on this 🙂
I'm not sure that this is anything to do with the midi specification.
Midi is all about a mechanism for controlling a midi instrument, it's nothing to do with the actual sound or the technology of the sound or its creation. These things are the responsibility, 100%, of the manufacturer of the instrument or device. What they decide should happen due to any midi command is quite up to them. If they decide that something should happen if aftertouch is implemented after the note off is implemented is their business. Not midi's. Maybe, for their specific instrument, midi off does not fully turn the note off, but merely starts an 'off' process, which can subsequently be modified by the aftertouch? Is that maybe reasonable, especially in the case of a percussion instrument? Maybe they're trying to achieve something that they feel will be outside the scope of a normal sound envelope (which acts ONLY between note on and note off)?
Im just guessing, based on my understanding of midi.
Maybe you should just ask the specific manufacturer why they do it that way. It is, after all, entirely their business.
Just out of interest, what effect do you actually hear when aftertouch is applied in the way you describe? I.e. AFTER the Note Off.
Geoff
Well, in the E-drum world, aftertouch is mainly used for cymbals to mute them, i.e. you hit a cymbal and then use your hand to press on the rim to mute it. Most if not all except this one manufacturer sends note on + note off on hit and then aftertouch 0 -> 127 -> 0 upon pressing so that we can determine when you press and release the pad.
Anyway, there should be something written about the behavior of aftertouch somewhere, i mean, the point of it is that (on a keyboard for example) you hit your key and then press it down to generate pressure 0->127->0, it is not supposed to be used as for example a CC knob, i guess technically you could do whatever since you can program aftertouch in most DAWs but there still should be some kind of 'standard' behavior for hardware controllers? How would a manufacturer even know what and how to send messages if nothing is written about it? Is it more like a silent agreement regarding how to send aftertouch? I have yet to see a keyboard being able to send aftertouch messages through a knob or slider for example.
I still stand by my comments in my earlier reply. I still think that this is nothing to do with the midi spec, as such.
I've been looking at the manuals for two of my midi devices, my Yamaha MU90r and my Korg NS5R, in particular the parts relating to the parameters for the percussion sounds. I note that both devices have a parameter which controls the response of that particular sound to the Note Off command, and I see that this response can in fact be OFF, i.e. the specific sound will receive a Note Off command but will disregard it. This leaves control of the note totally in the hands of the envelope. I assume that THIS is what's happening in the example you've found, so the Note Off command is there for some other reason (see below) and is in fact NOT stopping the note, which is in fact still playing so that Aftertouch can happily be applied to it.
So, no problem at all?
Why the Note Off command? I'd suggest that this is there to keep the software happy, to maintain the structure of the midi data, and to help with the visual display of midi events so that you have a visible ON and OFF for each note (even if the playback does NOT actually need the OFF). And ensuring compatibility with the midi spec?
Geoff
I think you are missing the point here, this has nothing to with how they trigger any samples or sounds or use software themselves, this has to do with how they send out MIDI from their device for others to use.
Lets make a simpler example regarding traditional MIDI keyboards instead:
Manufacturer1 sends a "Note on" upon pressing the key down, it then sends "aftertouch" from 0 to 127 based on how hard you press the key afterwards. Upon releasing it sends a "Note off"
Manufacturer2 + 3 + 4+ 5 etc etc does the exact same.
This is somehow now a standard behaviour (who made this rule if it is not specified anywhere? how come everyone does the same thing?) and everyone who makes VSTis to respond to MIDI events all assume that aftertouch is being sent from 0 to 127 with 127 being the greatest force.
Now ManufacturerX comes along and for some reason sends aftertouch beginning with 127 going towards 0 when pressing harder. We have to assume that this manufacturer is doing something wrong since they don't follow this presumed standard?
I would like to explain to ManufacturerX that they should in fact send aftertouch with 0 being the least amount of force and 127 being the max but I need to find a source to my claim.
Ah, that's interesting.
You're now referring to the 'pressure' parameter being reversed? That is, I agree, odd, and non-standard, and likely to cause compatibility problems.
I've just re-read your previous messages, and I don't see any explicit mention of this point before. Or even any hint that I might have missed.
You don't need any 'source'. Simply ask why, if everyone else does it 0 (minimum) to 127 (maximum) they do it reversed (127 min to 0 max). If you MUST offer a source, I'm sure the manual for one of your other devices will provide something.
Geoff
The reversed AT was just an example to make my question clearer and the question is:
Where can I read about HOW these events are supposed to be sent?
If i'm starting a company to produce MIDI keyboards there has to be some kind of guidelines for how to do these things, people can't just make them randomly and hope it works...
So, what i mean with my original post is: Every manufacturer for E-Drums sends events in the form of Note On -> Note Off -> AT0 -> AT127 -> AT0 (standard, maybe?) whereas this "faulty" manufacturer that I mentioned originally sends Note On -> Note Off -> AT127 and that's it, they currently blame us for handling their data wrong whereas we blame them, I need some kind of "proof" that we are right here.
At the top of the pages for this site, there is a link for 'Specs' which will take you to all sorts of specifications, some of these are quite substantial documents, some are more technical that others. You'll have fun trying to find a specific bit that covers the issue that is concerning you.
Again, your example above is a little off. Neither AT0 -> AT127 -> AT0 or just AT127 make any sense. Aftertouch would usually be a sequence of data, and one of the stated problems with AT (and other similar things) is that it can generate a LOT of data that might even 'flood' a receiving device. Again, I would assume that a median value of AT, say 64, might indicate a 'normal' key press, while 0 might be for a lighter press and 127 a maximum hard press. Then again, the useage might be different depending on use for 'Channel pressure' or on a key-by-key basis (polyphonic ?) if both are supported. I suspect that a 'proper' musician (player) would generate a wide range of values, and the width of the range would vary depending on the specific music.
Maybe if you told me (us) the specific device that is causing these questions, I can look up that device, and it's midi parameters, and this may explain a few things.
Geoff
Ok I feel like you try to read too much into my explanations here since you clearly just want to misinterpret my every explanation (obviously AT0 -> 127 -> 0 is an abbreviation for writing an example of the form 0, 1, 2, 3, 4, 5, 10, 15, 20, 30, 44, 50, 66, 70, 80, 90, 100, 110, 115, 120, 123, 127, 125, 124, 123, 100, 80, 70, 60, 55, 50, 10, 5, 0, I already explained that this is how devices normally do, except for the "faulty one" who sends a single AT127 message (if you read my original post again...), but there you go.
Lets just go back to the beginning, forget everything i have said so far, just... forget it...
Hi, I have a question:
Where can I read about how aftertouch (poly pressure/channel pressure) events are supposed to be sent by a MIDI device according to the MIDI specs defined by the MIDI Association. (I have read the specs and none of them explains this in detail, they simply state that the value is determined by the current pressure to the key, should we assume that a value of 0 is being sent when the pressure reaches 0?)
No, the pressure doesn't "reach zero" it starts at zero with no pressure applied.
After the key "bottoms out" when you play it and then you start to apply extra pressure to make the channel or polyphonic aftertouch come into effect.
The pressure would start at zero and move up to a maximum of 127 when pressing hard on the key.
Thus it would work in a similar way to the modulation wheel.
I can quite see how an AT127 being applied after a cymbal hit would apply maximum damping ... but ...
surely there needs to be an AT0 applied before the next hit otherwise the cymbal will sound as if played already damped.
It's a most unusual use of aftertouch and, according to the MIDI GM2 specification:
[recommended]
Rhythm Channels shall not respond to this message.
...surely there needs to be an AT0 applied before the next hit otherwise the cymbal will sound as if played already damped
Yeah exactly, this is what I try to find written somewhere in a specification.
Every electronic drum kit on the market sends a AT0 before the next hit so that the next hit isn't damped as well, but these guys i'm referring to only sends a single AT127 and claims they are doing the right thing but I have yet to find anything to disprove their claim.
It's a most unusual use of aftertouch and, according to the MIDI GM2 specification:
[recommended]
Rhythm Channels shall not respond to this message.
Well, electronic drum kits have been doing this for years and they all seem to follow a standard, not sure who has set the standard though in case the guys at the "MIDI Association" (where this forum is) hasn't been involved.
I'm not sure that they do follow "a standard" or is it a commonly agreed implementation that some don't adhere to?
I've looked through the MIDI 1.0 spec, the GM and the GM2 specs and can't find anything to define exactly how to use aftertouch for anything, really.
Just a few suggestions for vibrato or tremolo, etc.
Since the use of aftertouch in its more traditional implementation, i.e. after a key press or as embouchure pressure on an electronic wind instrument, isn't defined, just as the use of the mod wheel isn't defined, why would the MMA define the AT use for percussion when they recommend it isn't used for percussion.
One can use it for vibrato (common), wah (e.g. filter) or anything else that modifies the sound of an instrument in real time and exactly how that is applied is down to the manufacturer of the MIDI device.
But I would agree that when used to apply damping to e.g. a cymbal, it should follow 'logic' which means 127 (maximum damping) just after a hit and then minimum before the next hit.
But then if the equipment automatically, internally, does an AT0 before the next note, that's one thing less for the user to worry about.
But manufacturers are free to follow whatever they think is correct.
Hello Patrik,
Yes, clearly, I have been misunderstanding, or wrongly interpreting, or treating too literally, your various examples. I VERY MUCH apologise for this. I MOST CERTAINLY was NOT doing this intentionally, and I don't understand why you might think that I was. This clearly was making my attempt to help with your 'problem' far more difficult than it ought to have been, so it was not helping either of us.
It does seem however that you are seeking 'answers' to a 'problem' that does not really exist. John's comments would seem to support this.
Company X have decided to do certain things differently from other manufacturers. Fair enough. If their instruction manuals give the right instructions as per their hardware, then they have done all that they ought to have done. If you have been trying to apply instructions (or even logic) appropriate to other devices, and contrary to the instructions in the manuals of Company X, then you will hit problems, and I cannot help with that.
I will gladly check the manuals for device X if there is such a device, and see if that gives any hints as to the 'problem'.
Geoff
Thanks to you both for your answers, I think my question has been answered now, so I guess that this sums it up then:
1) There is no specification regarding AT more than the actual event and what data it shall contain, hardware devices are free to send these events in any way they please, be it in order or not, just as with CC events and unlike note on/off that has to be in order for them to work properly.
2) Any problems arising in a software due to a hardware device that does not follow the same protocol as other devices in the same category has to be solved purely by the software receiving the data.
In case these points truly are true, someone, somewhere, at some time surely has defined the behavior of electronic drum kits (maybe an oral agreement with the companies producing these devices?), otherwise we would have a lot of random implementations to cater for in our software, the question now is, who did this if not the MMA? (We have been doing this for more than 15 years and have not stumbled across these deviations from the "standard" until now)
If you want to try and find any clues in their manual, the device who sends different AT values is called "Alesis Surge Mesh Kit"
No, I think that the MIDI spec deliberately allows manufacturers to "break the rules", but let me explain what I mean by that.
To take conventional orchestral instruments as an example.
The piccolo typically plays from D (MIDI note 74), a little more than an ocatve above middle C (MIDI note 60), to C about 3 octaves higher.
However if the notes are being produced by a kind of synthesis there's nothing to stop a piece of equipment (e.g. a sound module) reproducing the sound down in the bass e.g. at MIDI note 24, or even lower.
It won't sound anything like a piccolo anymore, but there's no rule against it.
Similarly for a double bass playing roughly four octaves at the bottom end, maybe MIDI note 24 to note 72.
But again if you want to hear the thing at MIDI note 108 or higher there's nothing to stop a manufacturer implementing that (however daft).
Of course, if you choose to use a sampled orchestral library playing via a VSTi sample player, then you'll almost certainly find that you are, in fact, limited to the sample range recorded for each instrument.
But part of the joy of MIDI is, that as far as using it, a manufacturer is not constrained by what happens with acoustic instruments.
MIDI standards are merely there to define how we play the notes, how instruments are selected and how the notes can be modified (mod wheel, aftertouch, pitch bend, etc.).
Then GM and GM2 attempted to provide further guidance, but these are optional.
Does that make any sense?
And ... it's only a personal view.
JohnG.