[5.70] Notes Hanging with Incoming MIDI CC/Clock, and STOP Issues
Issue: Note OFF messages not getting sent on Transport STOP when Note or Clock messages are incoming:
Hello!
Experiencing lots of stuck notes with virtual instruments since I switched to Mac. Luckily, very easy to replicate. Unluckily, this happens just about every time I stop playback.
Software:
OS: Mac OSX 10.12.6
Reaper 5.70 64-bit
Observed on the following plugins:
The beloved ReaSynth
Native Instruments Kontakt 5.7.3 AU x64
Native Instruments Massive 1.5.1 AU x64
AIR Technology Vacuum Pro
To replicate:
- Create a new project
- Enable an external MIDI device for inputting MIDI data.
- Create a new "virtual instrument track"
- Select a virtual instrument (in my case Kontakt or Massive)
- Make sure that record monitoring is enabled.
- Arm the track to record from "All Channels", either on "All Inputs" or the external MIDI input
- Record a 3-note chord held for a whole note
- Press Stop on Transport
- Move playhead to just before the chord
- Send continuous clock information to REAPER (as some MIDI interface / sequencers do) or spam note information from the MIDI device (if you're playing by hand, this is kind of hard to replicate)
- Click play on the transport
- Just after the chord starts to play, click Stop on the Transport
- Playback of somewhere between 0 and 3 of the notes stops.
- Some notes continue to repeat for all eternity, like Sisyphus
- Hit F3 (Action: Send all notes off to all MIDI outputs/plugins) to stop the notes.
Relevant settings (did not make a difference either checked or unchecked):
Reset MIDI CC/Pitch:
[x] on playback start
[x] on playback stop
[x] on playback loop/skip
MIDI hardware settings:
[x] Reset by all notes off
[x] Reset by pitch/sustain
[x] Reset on Stop/stopped seek
[x] Reset on Playback
Last edited by Allspice; 02-06-2018 at 02:10 PM.
Reason: Revision of original bug report
Attached are logs documenting this fun feature, courtesy of the improved MIDI Logger JSFX (thanks DarkStar).
I ran the test about 20 times. I was assuming there was going to be some sort of all-note-off command getting ignored by NI but, alas, there just aren't enough note offs being sent for the number of notes.
Ballpark numbers:
- 40% of the time only a note off for E3 and G3 was sent.
- 40% of the time the correct note offs were sent.
- 10% of the time only 1 note off was sent.
- 10% of the time NO NOTE OFFS were sent at all (!)
Anyone else able to replicate this with any plugins? Some days it's easy to replicate and other days it just inexplicably doesn't happen, definitely happens most often with Kontakt.
Don't get any such hangs over here... (BTW, number of note-offs doesn't matter if the plugin responds to All Notes Off command (CC 123).)
How do your reset settings look like at the bottom of Preferences->Audio->MIDI Devices?
If you read the log, the plugins all respond to CC123 (sent with the F3 “panic” button). It does not look like CC123 is being sent on Transport Stop according to the logs I posted.
All the reset settings are checked, as per the original bug report post.
One of the many other VSTi's i experience hanging notes with:
Avenger
Can you use Darkstar’s midi logger to take some logs? I’m mostly interested in seeing what exactly Reaper is sending on Transport STOP since on my system it’s only sending a portion of the NOTE OFF messages you would expect.
Anyone else able to replicate this with any plugins? Some days it's easy to replicate and other days it just inexplicably doesn't happen, definitely happens most often with Kontakt.
Is resetting on stop enabled in the Preferences page I mentioned?
Yup. But it’s still only sending a portion of the needed note off messages once STOPPED, and the only way it sends CC123 is if I use “Action: Send All notes off to all midi outputs/plugins”
Do you mind taking a log to see if Transport stop on your system sends anything besides plain old note offs?
For me stuck notes happen when monitoring+record arm are enabled. I think it might be triggered when REAPER receives data from the input device at the same time playback is stopped.
Here the keyboard continuously sends Clock messages making it easier to reproduce (easier than spamming a note but that works too):
The missing note off is emitted the next time playback is started.
For me stuck notes happen when monitoring+record arm are enabled.
Ding ding ding, now we're getting somewhere.
I just ran a few tests. For simplicity’s sake, let’s refer to this issue of incomplete NOTE OFF data being sent as the “Partial STOP issue”. I tested with a Boss RC-505 and a Yamaha DTX Multi 12. I tested each separately and together, then used the Virtual MIDI Keyboard as a control. To make the test simpler, I did not intentionally send any MIDI data from these devices while testing.
Tested with Reaper 5.70
Mac OSX 10.12.6
Boss RC-505 and Yamaha DTX Multi 12
“Partial STOP issue” occurs when the following prerequisites are met:
MIDI Track contains a virtual instrument and MIDI data.
The track is armed to record from “ALL MIDI CHANNELS” on either the MIDI interface’s device input or “All Inputs”
Record monitoring is enabled on the track.
This issue does not occur when a specific MIDI channel is monitored, and it disappears when the MIDI device or devices are disabled.
Now I'm curious if it's limited to certain MIDI interfaces or if it's any enabled MIDI input device. I'll test it with a USB MIDI keyboard next. One potential issue that's occuring to me is that both the DTX Multi and the RC 505 can be used as master clocks / sequencers. I wonder if that's a factor.
Last edited by Allspice; 12-28-2017 at 11:56 PM.
Reason: clarity
For me stuck notes happen when monitoring+record arm are enabled. I think it might be triggered when REAPER receives data from the input device at the same time playback is stopped.
Here the keyboard continuously sends Clock messages making it easier to reproduce (easier than spamming a note but that works too):
The missing note off is emitted the next time playback is started.
Awesome, just duplicated this on Mac 10.12.6 with a Keith McMillen QuNexus controller. Had to play the hell out of the keyboard to get it to happen but it did.
So it looks like incoming clock messages or note data on armed channels with monitoring enabled can cause Reaper to skip some Note OFF messages when the transport is stopped.
I am seeing the same thing in AIR Vacuum Pro, also in AIR Hybrid. When I stop and then rewind to beginning and start playing, the notes (decay) will resume.
I am seeing the same thing in AIR Vacuum Pro, also in AIR Hybrid. When I stop and then rewind to beginning and start playing, the notes (decay) will resume.
I am wondering if this is an AIR thing.
Not just AIR sadly I think that's a separate but related issue to how the transport interacts with running notes. But we should certainly tackle it too! I think I'll do a separate bug report to keep it clean, since I was able to replicate that behavior with a lot of different plugins.
Are you able to replicate the issue where incoming clock/note data causes notes to hang when stopping the transport? I find it's easiest to replicate with something like a MIDI sequencer or workstation that sends clock data down the line.
Hi,
Sorry if I missed this...
But why all inputs? Isn't that kinda asking for trouble? I mean, in the 80s I'd be freaking out:-)
It will happen on any input as long as you select "All Channels" and have incoming data.
It might not be optimal but I see no reason why selecting "All Channels", monitoring, and arming the track for record should result in notes continuing to play when you press STOP. So let's fix it Also, the default "Insert virtual instrument on new track" action sets up a track with precisely these options.
Incoming CC information causes REAPER to fail to send MIDI Note On/Off messages
I used to have two other hanging note sub-issues listed in this post but I need to do more tests with different preference settings to see what's really going on.
I can't any anything technical, but I CAN confirm that I have constant problems with notes stuck on, which can't be cleared with the "F3" key.
I don't know specifically what causes them, (I suspect a missing "note off" command) but it always happens when I mute a track that has a VSTi on it, & then open it again.
It probably happens one out of 20 times.
It happens with several different instruments, from several different manufacturers.
It doesn't seem to matter if there's any cc data being transmitted at the same time.
It has nothing to do with recording, per se, just tracks with input monitoring, and the transport stopped.
The only way I know to clear it is to put the offending VSTi offline, then back on again.
--------
- And It's a bloody nightmare for live performance.
Last edited by Cableaddict; 02-06-2018 at 09:43 PM.
I'm not sure but that could be related to another bug I'm digging into where "Flush FX on Stop" results in loads of plugins not receiving NOTE OFF messages on Transport Stop. I've been meaning to do more in-depth testing when I get time.
But since you mentioned it happens when you aren't recording, just for giggles, you may want to check all your MIDI in ports with MIDI Monitor or a similar Windows program. I had a control surface in my MIDI chain that erratically sent CC data without me adjusting it- that, combined with REAPER's issue with CC data interfering with NOTE OFFs led to a lot of hanging notes.
Although that doesn't really explain why F3 doesn't kill the notes, assuming the plugins properly respond to F3 in the first place.
Can you upload a screenshot of this preferences window?
Hi,
The only time I get stuck notes nowadays, is when I run a vsti as a dedicated process. But even then not consistently.
Allspice the controls surface spurious data.....are you sure its not a ping of some sort?
Hui,for ex, sends constant super low notes constantly like..I'm here, you there? I'm here..you there?:-)
Also, jammed up midi ports will cause lags and missing data.
For ex, when adding reacontrol midi to an external midi track and leaving the default "All" channel setting on. Riding a CC fader from recontriol midi will cause havoc.
I'm not assuming you haven't thought of this as you seem to have your midishit together.
Good luck
True, I should do a slightly better test on the issue in post #23 and see if REAPER is not relaying NOTE OFFs in that situation or if it is not receiving them altogether.
As for the clock data and transport stop thing, it seems like REAPER should ensure that note off commands get sent on Transport STOP, rather than letting incoming data take preference.
[QUOTE=Allspice;1950125]
Can you upload a screenshot of this preferences window? /QUOTE]
thanks for the thoughts. It can't be any setting in the playback window, since my problem has nothing at all to do with PLAYBACK. My transport is not moving.
Regardless, I did try all sorts of changes to this window's prefs, but nothing helped.
As for the midi data, yes note offs ARE being sent. - If they weren't, then my VSTi's would be hanging BEFORE I mute the tracks, which is not the case.
For everyone still trying to de-bug this, I think my specific case is an important part of the puzzle.
Again:
transport stopped. many tracks in "record ready", just so I can hear these VSTi's as I play.
Any hangs that happen while playing can be cleared with "F3," but 95% of my hangs happen after a track is muted, and then I un-mute it. - And those hangs CANNOT be cleared by "F3."
It's as if the un-mute command itself is sending note information to the VSTi's.
And sometimes it doesn't happen for hours. Other times it happens every other time I un-mute.
All with the same session & the same settings.
FWIW, I 'jam' a lot in Reaper and I think this bug happens even when there is no midi in the timeline. I can just loop some section, set a VSTi on a track to record+monitoring, and play, and I think right after it loops the first time it gets susceptible to stuck notes, also I guess in time with something in the midi stream that is being somehow looped, even though nothing was recorded. But the faster and more furious I play, the faster I can invoke the issue.