There has been some talk on these forums and elsewhere of a small gap between note on and pressure being sent over midi. There are times in a synth patch where you want velocity to control the peak of a sharp attack but then hand over control to pressure for further volume shaping (e.g. to swell beyond the initial attack peak). In some cases, the 10ms gap where pressure is being read as 0 can be a problem. I think I've isolated the cause of this gap in the firmware and a fix for this, but I'd really love some feedback about whether my fix is appropriate!
Basically, as per the MPE standard, immediately before note on is sent, a pressure value of 0 is sent. This is handled by line 1258 in the sendNewNote function in ls_handleTouches.ino:
preSendLoudness(sensorSplit, 0, 0, sensorCell->note, sensorCell->channel);
For zero readings, this function skips the midi decimation timer (which rate limits the number of pressure messages sent per second) to ensure that it is guaranteed to be sent. However, sending this zero *starts* the decimation timer, which means that the next pressure value won't be sent until the rate limit has passed, basically guaranteeing that there will *always* be a gap between note on and the first pressure reading. There's a handy function already available to temporarily disable the rate limit by resetting the timer. So we can call that function directly after the line above, and the delay should be removed, so we add the following at line 1259:
preResetLastLoudness(sensorSplit, sensorCell->note, sensorCell->channel);
This works beautifully in my testing - the first real pressure reading is sent very quickly after note on. But this is my first attempt to edit the firmware, so would be keen to get any views on whether what I've done is sensible!
Cheers!
Simon
Possible fix for approx 10ms gap in pressure response after note on
-
- KVRer
- 5 posts since 27 Sep, 2025
- KVRAF
- 2722 posts since 8 Jun, 2010
- Roger Linn Design
Hi Simon,
It's not so much that there's a 10 ms gap at the start of the note, but rather that LinnStrument is designed to send pressure update messages every 10ms, so as to not overload synths or daws, especially in MPE use. If you want a higher pressure message rate, you can try but there's a lot going on at the start of a note.
Without going into detail, there are speed limitations to the scanning of a resistance-matrix touch-sensing system as in LinnStrument. If your intent is to replace MIDI Velocity with very high speed pressure message density, I think you'll find that it won't happen on a LinnStrument. For such a use case, I recommend the Haken Continuum, which has a very high scan rate of its touch surface, and sends that high-density stream not over MIDI but rather directly to its internal Eagan Matrix synth. In doing so, it uses continuous pressure data instead of MIDI velocity. However, its Hall Effect sensing doesn't work in a matrix sensor, and is expensive.
I think it's fair to say that LinnStrument is better suited to use with MIDI synths. But Continuum is an excellent instrument if you want a high-speed pressure signal that bypasses MIDI.
It's not so much that there's a 10 ms gap at the start of the note, but rather that LinnStrument is designed to send pressure update messages every 10ms, so as to not overload synths or daws, especially in MPE use. If you want a higher pressure message rate, you can try but there's a lot going on at the start of a note.
Without going into detail, there are speed limitations to the scanning of a resistance-matrix touch-sensing system as in LinnStrument. If your intent is to replace MIDI Velocity with very high speed pressure message density, I think you'll find that it won't happen on a LinnStrument. For such a use case, I recommend the Haken Continuum, which has a very high scan rate of its touch surface, and sends that high-density stream not over MIDI but rather directly to its internal Eagan Matrix synth. In doing so, it uses continuous pressure data instead of MIDI velocity. However, its Hall Effect sensing doesn't work in a matrix sensor, and is expensive.
I think it's fair to say that LinnStrument is better suited to use with MIDI synths. But Continuum is an excellent instrument if you want a high-speed pressure signal that bypasses MIDI.
