Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connected notes don't play if midi channel changes #227

Open
ovska opened this issue Dec 4, 2023 · 2 comments
Open

Connected notes don't play if midi channel changes #227

ovska opened this issue Dec 4, 2023 · 2 comments
Labels
Milestone

Comments

@ovska
Copy link

ovska commented Dec 4, 2023

Connected notes of the same pitch don't play if the second note's articulation uses a different midi channel.

The problem is illustrated in the pictures below, first note is on Ch1 and second on Ch2. The second note refuses to play unless there's a miniscule gap after the end of the previous note. The problem happens whether the program change event is before or at the head of the second note. If the notes have different pitch, they play as expected.
I'm not sure if this is possible to fix in Reaticulate or it's a limitation of MIDI, since I have some hazy memory of this happening in FL Studio with BRSO Articulate as well. Perhaps a note-off event needs to be processed before the articulation switch does it's thing.
This is more of an annoyance than anything else, since after years of using inferior articulation management I've memorized what articulation goes in what Kontakt instrument ;)

image

image

@jtackaberry
Copy link
Owner

Could you insert a ReaControlMIDI instance directly after Reaticulate with MIDI logging enabled, play back your test case, and share the resulting events from the ReaControlMIDI log? Also, would you be able to attach a single track RPP with that MIDI item to be sure I'm testing the right thing?

I tried your scenario out, same banks and articulations, gapless adjacent quarter notes as in your screenshot, but (un?)fortunately couldn't reproduce. This is what I see from the MIDI logger:

0: B0 20 01 [CC32 Bank Select LSB] chan 1 val 1
1: 90 36 60 [Note On] chan 1 note 54 vel 96
2: B1 20 0B [CC32 Bank Select LSB] chan 2 val 11
3: 80 36 00 [Note Off] chan 1 note 54
4: 91 36 60 [Note On] chan 2 note 54 vel 96
5: 81 36 00 [Note Off] chan 2 note 54
6: 81 36 00 [Note Off] chan 2 note 54

And this looks ok to me. Sure, there's a superfluous note-off on channel 2 but that won't hurt anything. But articulation output events (CC32) are going to the right channels, and both channels have note-on and note-off events. Can't test this with SSB directly at the minute (I'm on my Linux laptop presently) but from what I see above this should play back properly.

@jtackaberry
Copy link
Owner

jtackaberry commented Dec 5, 2023

Could you insert a ReaControlMIDI instance directly after Reaticulate with MIDI logging enabled, play back your test case, and share the resulting events from the ReaControlMIDI log? Also, would you be able to attach a single track RPP with that MIDI item to be sure I'm testing the right thing?

Ok, disregard that, I'm with you now. The superfluous note-off on channel 2 is actually the first one, not the second one, and it's the source of the problem because the timing is wrong. Definitely a bug here. Will look to fix for the next minor release.

@jtackaberry jtackaberry added the bug label Dec 5, 2023
@jtackaberry jtackaberry added this to the 0.5.12 milestone Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants