 |
|
|
01-28-2020, 11:32 AM
|
#1
|
Human being with feelings
Join Date: Jan 2020
Posts: 7
|
MIDI Note-off sent when starting playback
Reaper sends note-off messages to VSTi when reaper starts playing.
To reproduce:
Play some notes on a VSTi from an external MIDI Keyboard and hold them (either the keys or sustain-pedal), preferably some sustained sound (Pad, Strings, Organ ...).
Start play (Press space) in Reaper.
Result: The sound from the VSTi is cut off.
Reason: Reaper sends an note-off message for every note that is held to the VSTi. This does not happen through the track, but seemingly straight to the VSTi - it cannot be filtered out with a MIDI-Filter.
This was already reported in this thread https://forum.cockos.com/showthread.php?t=25325
According to that thread, it was fixed in 5.1. However, the problem is present in 5.9.6 and 6.03
It does not matter if reaper is in pause or in stop - note off is sent in both cases.
Very annoying in a live setup: I cannot start playing on my instrument and start reaper later.
|
|
|
01-28-2020, 12:53 PM
|
#2
|
Human being with feelings
Join Date: Jun 2009
Location: Croatia
Posts: 24,768
|
Can confirm.
|
|
|
01-28-2020, 04:05 PM
|
#3
|
Human being with feelings
Join Date: Jul 2006
Posts: 12,469
|
Confirmed (6.03 x64). Not sure why I added "FIXED" to the other thread - will remove it ...
|
|
|
01-28-2020, 04:45 PM
|
#4
|
Human being with feelings
Join Date: Oct 2007
Location: home is where the heart is
Posts: 11,968
|
As I read it, the other thread is/was about sending All notes off (CC 123) and this is about sending distinct note off messages of the currently held/playing notes, so slightly different issues, no?
|
|
|
01-28-2020, 05:00 PM
|
#5
|
Human being with feelings
Join Date: Jul 2006
Posts: 12,469
|
Not sure.
My test was the same: "Often I wanna hit the recording button and the same time a key on my midi-keyboard. If I hit the midi keybord a bit earlier than the recording button it kills my flow because this first note gets killed by Reaper".
But you might be right, Reaper now is sending individual note-offs in this case:
Code:
0: 90 35 42 [Note On] chan 1 note 53 vel 66
1: 80 35 00 [Note Off] chan 1 note 53
0 = hitting key on MIDI keyboard
1 = clicking record button in Reaper (there should be no note-off)
Last edited by Dstruct; 01-28-2020 at 05:08 PM.
|
|
|
01-28-2020, 06:18 PM
|
#6
|
Human being with feelings
Join Date: Oct 2007
Location: home is where the heart is
Posts: 11,968
|
I think I can kinda see why Reaper is doing this, because if the note is held before starting to record there's no note on to be recorded, just a note off.
But agreed, should be handled in a better way than is now.
|
|
|
01-28-2020, 06:25 PM
|
#7
|
Human being with feelings
Join Date: Jul 2006
Posts: 12,469
|
The note doesn't have to get recorded. It just doesn't have to cut (from hearing).
|
|
|
01-28-2020, 06:59 PM
|
#8
|
Human being with feelings
Join Date: Oct 2007
Location: home is where the heart is
Posts: 11,968
|
Ah yeah, OP talks about starting playback, not recording, sorry.
|
|
|
01-28-2020, 07:07 PM
|
#9
|
Human being with feelings
Join Date: Jul 2006
Posts: 12,469
|
Still the same issue.
|
|
|
02-07-2020, 11:42 PM
|
#10
|
Human being with feelings
Join Date: Jan 2020
Posts: 7
|
Update
After some more testing, I'm not sure anymore if the note-offs are actually causing the sound to stop:
When pressing the sustain-pedal and letting go of the keys, note-offs are being sent as well (normal behaviour), however, the sound is sustained.
If I press play at that point, no note-offs are being sent, however, the sound is still cut off. The logger does not show any midi-events that are sent at this stage.
Conclusion: It is probably not the note-offs that cause the sound to be cut, but some other mechanism in reaper.
|
|
|
02-16-2020, 06:16 AM
|
#11
|
Human being with feelings
Join Date: Feb 2020
Location: Netherlands, Alphen aan den Rijn
Posts: 3
|
Has anyone alerady found a workaround maybe?
For live gigs, I'd like to trigger midi-instruments, or in my case long samples such as wind or creepy cave sounds while the vocalist is talking to the crowd and other bandmembers start the intro of the song. For the start of the intro I need the clicktrack to start...
Since I use a 4 channel setup for live (1 Click, 2 drones, 3 intro/outro mp3, 4 FX) and timing these vocalists chats with the audiance in the whole track is nearly impossible. Should I start thinking about a external device te start the FX, like a tablet with VLC-player and connect this device to the 4th channel of my output DI?
Though I'm not happy this bug exists, or that there is no option box to mark wether we want this to happen or not, I'm happy to see I'm not the only one. Thanks for this post!
|
|
|
02-24-2020, 04:22 AM
|
#12
|
Human being with feelings
Join Date: Jan 2020
Posts: 7
|
Not fixed in 6.04 :-(
Quote:
Originally Posted by Jan.Cesair
Has anyone alerady found a workaround maybe?
For live gigs, I'd like to trigger midi-instruments, or in my case long samples such as wind or creepy cave sounds while the vocalist is talking to the crowd and other bandmembers start the intro of the song. For the start of the intro I need the clicktrack to start...
Since I use a 4 channel setup for live (1 Click, 2 drones, 3 intro/outro mp3, 4 FX) and timing these vocalists chats with the audiance in the whole track is nearly impossible. Should I start thinking about a external device te start the FX, like a tablet with VLC-player and connect this device to the 4th channel of my output DI?
|
My workaround (also for a live-setup):
Start another instance of reaper and use that for the click (or whatever other tracks you want to play). There's an action called "Spawn new instance" which will do that for you. Starting play in the new instance won't start play in the first instance and won't interrupt sound in the first instance.
That obviously requires that your soundcard allows connections from multiple clients at the same time. My ASIO driver allows that, so I don't have I problem there.
Other ASIO drivers apparently don't. In that case, you might try your luck with a virtual audio device to send the audio from the 2nd reaper-instance to the 1st reaper instance, and from there to your audio device.
I like triggering play/stop through my MIDI device (Korg NanoKontrol 2). Most Windows-drivers for MIDI-devices don't support multiple clients to connect to one midi-device, and I need to use my NanoKontrol for both instances of reaper.
Workaround for this is a Virtual Midi-Device, I'm using loopMidi by Tobias Erichsen. Create a track in the "main" instance (that connects to the midi-hardware), make it receive MIDI from all desired hardware devices, create a send to the virtual midi-port (track routing - MIDI-hardware-out). The 2nd instance of reaper obviously needs to enable the virtual MIDI-hardware-in (Preferences/Midi Devices) to receive the data.
To start up the system, I first need to start loopMidi, then Reaper, then spawn a 2nd instance of reaper and load my clickTrack-Project into it. More work to get started up, but then I only need to do that once before the gig.
Good lucking trying it out.
|
|
|
04-17-2020, 01:11 AM
|
#13
|
Human being with feelings
Join Date: Jan 2020
Posts: 7
|
Update
Not fixed in 6.08 :-(
|
|
|
08-01-2020, 09:56 PM
|
#14
|
Human being with feelings
Join Date: Jan 2020
Posts: 7
|
Not fixed in 6.13 :-(
|
|
|
11-11-2020, 02:11 AM
|
#15
|
Human being with feelings
Join Date: Jul 2011
Posts: 15
|
Assumingly this is still present in current version?
I spent hours yesterday for getting behind this problem.
In other threads, some guys found a connection of this problem with MIDI FX in the chain. But i removed all and it still remains.
If this is solved in new versions i would immediatly buy the upgrade from my 5.99 :-)
|
|
|
11-11-2020, 10:42 AM
|
#16
|
Human being with feelings
Join Date: Jul 2011
Posts: 15
|
Ok, i found out something in my v5.99:
If you go to preferences under Plug-ins > VST and untick the option "Don't flush syntheshizer plug-ins on stop/reset" then the holding notes aren't cut off when playback starts.
But, there's still an ugly drop.
If you go to Audio>Buffering and unselect the checkbox "Anticipate FX processing and lower interface latencies..."
Then this drop is significantly smaller, but still audible.
|
|
|
02-02-2021, 02:32 PM
|
#17
|
Human being with feelings
Join Date: Jan 2020
Posts: 7
|
Quote:
Originally Posted by MrQuarc
Ok, i found out something in my v5.99:
If you go to preferences under Plug-ins > VST and untick the option "Don't flush syntheshizer plug-ins on stop/reset" then the holding notes aren't cut off when playback starts.
But, there's still an ugly drop.
If you go to Audio>Buffering and unselect the checkbox "Anticipate FX processing and lower interface latencies..."
Then this drop is significantly smaller, but still audible.
|
Sorry, haven't been in the forum for a while, so I didn't see your reply.
Thank you for the hint with "Don't flush synthesizer". Enabling that worked like a charm. The holding notes are not cut off.
However, the drop/click on starting playback ist still there. It's not that bad with me, though. Disabling "Anticipate FX processing" does not change the amount of the click noticably.
I'm using 6.21 which appears to be the latest version.
|
|
|
09-16-2023, 09:38 PM
|
#18
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,938
|
Is there a solution for that?
I tried even a super simple JSFX player (I dont remember who is the autor, probably Saike or Geraint Luff). And even if it is no reacted to note off at all, it is still flushed so not only MIDI off send but the plugin buffer are also cleared.
Can at least "ignore_anticipative_processing" flag implemented in JSFX? So JSFX running asynchronuos to playback.
Reason: I`m trying to build live setup, to implement kind of variable-length intro. So that intro is just playing while playback is stopped. And then if I trigger Transport/Play, intro is still playing (I can fadeoff it further by the hand).
Code:
desc:wav-player
@init
mem_pos = cur_pos = 0;
handle = file_open("C:/test.wav");
file_riff(handle, num_channels, samplerate);
num_channels > 0 ? (
amt = file_mem(handle, mem_pos, file_avail(handle));
);
file_close(handle);
@sample
amt && playstate==1 ? (
spl0 = mem_pos[cur_pos];
num_channels == 2 ? (
spl1 = mem_pos[cur_pos + 1];
) : (
spl1 = mem_pos[cur_pos];
);
cur_pos += num_channels;
cur_pos > amt ? cur_pos = 0; // loop
);
while
(
midirecv(offs, m1, m2) ?
(
s = m1&$xF0;
s == $x90 ?
(
cur_pos = 0;
playstate=1;
);
midisend(offs, m1, m2);
);
);
Last edited by mpl; 09-16-2023 at 09:43 PM.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:10 PM.
|