Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 03-04-2014, 05:08 AM   #1
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default Program changes won't work correctly after bank changes

[I found this using Guitar Rig 4, because it is the only plugin I own that let me write bank changes...plese check this with some other plugins if you can, so we can found if it's a Reaper or Guitar Rig bug]


1. Record some MIDI with a plugin supporting bank and program changes
2. While recording, first write some bank changes using your MIDI controller, then write some program changes.
3. Hit stop, then play from the start of the recording
4. The bank and program are changing correctly when the play cursor move across them, but if you try to place the cursor IN BETWEEN some program changes, the preset never changes.
5. If you repeat all of the above, but with no bank changes, the program changes works correctly also when you put the cursor in the middle of them.

Anyone can confirm this?
maxdis is offline   Reply With Quote
Old 03-04-2014, 05:45 AM   #2
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,815
Default

I can't reproduce this with basic testing. Could you possibly post a simple RPP that has a couple of bank and program changes, to demonstrate the problem?
schwa is offline   Reply With Quote
Old 03-04-2014, 10:04 AM   #3
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default

this is a test project containing some bank changes at the beginning and some program changes later on; with Guitar Rig 4 the bug happens everytime (don't know with other plugins)



Quote:
Originally Posted by schwa View Post
I can't reproduce this with basic testing. Could you possibly post a simple RPP that has a couple of bank and program changes, to demonstrate the problem?
Attached Files
File Type: rpp bank-program-changes.RPP (11.1 KB, 169 views)
maxdis is offline   Reply With Quote
Old 03-04-2014, 10:46 AM   #4
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,815
Default

Where in that project should I start playback to see the problem?
schwa is offline   Reply With Quote
Old 03-04-2014, 10:59 AM   #5
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,680
Default

Quote:
Originally Posted by maxdis View Post
4. The bank and program are changing correctly when the play cursor move across them, but if you try to place the cursor IN BETWEEN some program changes, the preset never changes.
I cannot confirm this - If I start playback at 13.1.00 (with 2 PC messages before that point), I get the following in a MIDI Monitor:



At 13.100, the 'current' Bank Select and Program Change messages are sent followed by the other 2 as they are encountered

And GR switches as expected.
Attached Images
File Type: png PC_messages_01.png (4.6 KB, 434 views)
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 03-04-2014, 10:59 AM   #6
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default

You can start from the beginning of the midi item, and after the various bank changes, you can try to jump with the cursor in the spaces between the program changes...but you can also start from the last bank change, it will be the same (at least here)

Quote:
Originally Posted by schwa View Post
Where in that project should I start playback to see the problem?
maxdis is offline   Reply With Quote
Old 03-04-2014, 11:14 AM   #7
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,680
Default

Ah ha - now I can confirm some oddness:

If I put an audio clip on the same track (that is, in parallel with the MIDI clip containing the BS / PC messages) then not all of the Program Change messages are sent to GR.

If I put the audio clip on another track and Send that track to the GR track then the PC messages are sent to GR as expected.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 03-04-2014, 11:19 AM   #8
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,815
Default

The first program change message in the item is at position 11.3.00. If you seek playback to any position after 11.3.00, REAPER will chase the program change message (for example, if you seek to 15.1.00, REAPER will send program 3, which matches the program change event at 14.1.33).

If you seek playback to any position before 11.3.00, REAPER will not chase the program change message, because there is no earlier message to chase. You may be able to solve your specific problem by inserting a program change 0 message at the very start of the item.
schwa is offline   Reply With Quote
Old 03-04-2014, 11:30 AM   #9
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default

thank you for pointing that, I didn't notice it, I'll check this out tomorrow. BTW are you using GR 4?

Quote:
Originally Posted by DarkStar View Post
Ah ha - now I can confirm some oddness:

If I put an audio clip on the same track (that is, in parallel with the MIDI clip containing the BS / PC messages) then not all of the Program Change messages are sent to GR.

If I put the audio clip on another track and Send that track to the GR track then the PC messages are sent to GR as expected.

Last edited by maxdis; 03-04-2014 at 11:36 AM.
maxdis is offline   Reply With Quote
Old 03-04-2014, 11:36 AM   #10
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default

Hi Schwa, did you tried this using some VST/VSTi? If I write Program Changes only, it will work as you're saying, but if I write some Bank Changes before them (as in the project I sent), then the program change won't work in the space between them. Too bad I can check this in Guitar Rig only, so I don't know if it's a GR or Reaper bug.

Quote:
Originally Posted by schwa View Post
The first program change message in the item is at position 11.3.00. If you seek playback to any position after 11.3.00, REAPER will chase the program change message (for example, if you seek to 15.1.00, REAPER will send program 3, which matches the program change event at 14.1.33).

If you seek playback to any position before 11.3.00, REAPER will not chase the program change message, because there is no earlier message to chase. You may be able to solve your specific problem by inserting a program change 0 message at the very start of the item.
maxdis is offline   Reply With Quote
Old 03-04-2014, 01:50 PM   #11
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,815
Default

Quote:
Originally Posted by maxdis View Post
Hi Schwa, did you tried this using some VST/VSTi? If I write Program Changes only, it will work as you're saying, but if I write some Bank Changes before them (as in the project I sent)
I am testing this using the logging function of ReaControlMIDI. This lets you see exactly what is being sent to the plug-in.

Can you very specific? For example, seek to position X, expect the result to be Y, instead the result is Z?
schwa is offline   Reply With Quote
Old 03-04-2014, 03:02 PM   #12
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,680
Default

schwa - I think I've found it: if the MIDI clip containing the PC messages is on the same track as the audio clip (or recording?), then the PC messages are not to GR if the the audio is playing.

Have a look at the attached Licecap. [removed, as no longer relevant]

The last BS message (bank 8) and the third PC message (PC #3) are not being sent. ReaControlMIDI's log shows the same.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 03-04-2014 at 04:06 PM.
DarkStar is offline   Reply With Quote
Old 03-04-2014, 03:14 PM   #13
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,815
Default

DarkStar, I think that's an unrelated issue, and not a bug. I think the OP is seeing some messages not get chased properly on seeking. What you are seeing is the normal item mix behavior (enclosed items replace enclosing items). The smaller audio item masks the longer MIDI item, because the expected use case of putting a small media item within a longer one is to "patch" a piece of media.
schwa is offline   Reply With Quote
Old 03-04-2014, 04:04 PM   #14
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,680
Default

Oops, sorry if I confused things - I keep forgetting that that setting is a Project Setting, so I never check it when loading someone-else's project.

"I'll get my coat."
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 03-05-2014, 05:35 AM   #15
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default

ok, these are some licecaps (I don't know why the cursor looks that way in these gifs, but I think you can understand what it's happening)


here the presets changes fine, because the cursor move across the various Program Changes:





here I'm jumping the cursor in the middle of the Program Changes, and as you can see the preset never changes:





Quote:
Originally Posted by schwa View Post
I am testing this using the logging function of ReaControlMIDI. This lets you see exactly what is being sent to the plug-in.

Can you very specific? For example, seek to position X, expect the result to be Y, instead the result is Z?
maxdis is offline   Reply With Quote
Old 03-05-2014, 07:28 AM   #16
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,815
Default

In your 2nd gif, REAPER is definitely sending the program change messages to the plug-in.

The only difference between what happens when the play cursor runs over a program change message, and when you seek in between program change messages, is that when seeking, the bank select and program change messages are both chased. In other words, when seeking, the plug-in receives both the most recent bank select and the most recent program change message, at the same time.

Perhaps this is confusing that particular plug-in, but I believe it is the correct behavior. You could test this by creating a bank/program select message that modifies both the bank and the program at the same time, and let the play cursor pass over it normally. If the plug-in does not respond, that would indicate a bug in the plug-in.

schwa is offline   Reply With Quote
Old 03-06-2014, 09:58 AM   #17
maxdis
Human being with feelings
 
Join Date: Mar 2008
Posts: 417
Default

I downloaded the Guitar Rig 5 demo, and it seems that the bug has been fixed on the new version. I'm writing to Native Instruments, and I really hope they can fix it in version 4 too...

Thanks for the help
maxdis is offline   Reply With Quote
Old 03-06-2014, 10:29 AM   #18
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,680
Default

I hope you are successful, but NI generally only updates the latest major version of each product.

Meanwhile you might need to go with that workaround I described previously (if it works reliably )
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 03-06-2014, 12:47 PM   #19
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,798
Default

Quote:
Originally Posted by maxdis View Post
I downloaded the Guitar Rig 5 demo, and it seems that the bug has been fixed on the new version. I'm writing to Native Instruments, and I really hope they can fix it in version 4 too...
They never do that. You will have to upgrade to 5.
EvilDragon is online now   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:30 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.