jtackaberry / reaticulate

An articulation management system for REAPER
Other
101 stars 46 forks source link

note-hold released at transport start #31

Closed Levitanus closed 6 years ago

Levitanus commented 6 years ago

condition:

//----------------------------------------------------------------------------
//! g="Ilya Efimov/Folk" n="Domra I"
Bank 12 5 USER IE/Folk - Domra I
//! c=legato i=staccato g=1 o=note:59
1 ART1 Pluck
//! c=legato i=tremolo g=1 o=note:57
2 ART2 Tremolo

//! c=short-light i=sul-g g=3 o=note-hold:51
32 OPT 2 SulE On 
//! c=short-light i=sul-g g=3 o=note:51
37 OPT 7 SulE Off

result: https://youtu.be/w3HUNjwDB3g

jtackaberry commented 6 years ago

Reaper sends all-notes-off on transport stop/start (configurably), but what's normally supposed to happen is Reaper will chase the program and Reaticulate will then re-trigger the note-hold.

I can't see your MIDI data, but can you confirm that you have either programs 1 or 2 later on in the MIDI events, following program 32?

Levitanus commented 6 years ago

Pity, but I can't ) But, sure, that that is it. Another point to look at this proposition: https://github.com/jtackaberry/reaticulate/issues/32 May be use for options not 32th CC, but something else, may be even couple or triple of them, to have ability to chase options being set before the articulations?

jtackaberry commented 6 years ago

32 is very complex to implement, so I accept the [very future] label on that one :)

For this one I'm thinking a workaround might be to retrigger currently held notes on after passing through an all-notes-off message. I think this would be easy enough to implement, just need to think if there are any unintended consequences.

Levitanus commented 6 years ago

U're right)

jtackaberry commented 6 years ago

As I look into this more closely, I see that in the note-hold case where Reaticulate outputs a note-on event (with no corresponding note-off event) and then transport is started, Reaper is actually fabricating a note-off event and sending it to the FX following Reaticulate in the chain.

This appears to be controlled by the setting Plug-ins / VST / "Don't send note-offs or pitch reset messages on stop/reset"

If you check this box, does your behaviour improve at all?

Levitanus commented 6 years ago

I thought we concluded, that it will) But it is not an option. Too much can go wrong without this check)

jtackaberry commented 6 years ago

Up to this point I was talking about CC123 All Notes Off. This is something else, where Reaper actually seems to keep track per VI what note-on events it sent out and forges a specific note-off event to the adjacent FX on transport start.

The problem is that Reaper is not consistent about sending CC123. Sometimes it doesn't send it at all, and sometimes it doesn't send it on all channels. Consequently my proposed workaround (of retriggering note-hold events upon CC123) is not reliable when the "Don't send note-offs or pitch reset messages on stop/reset" option is checked.

This is only an issue when groups are used.

Levitanus commented 6 years ago

Hmmm... I'll try at evening, can't understand the whole deep of problem now) Thanks