Generally it's going to be note-hold. This ensures the keyswitch note expected by the underlying instrument remains held until the next articulation is activated (in the same group).What would the event type be for non latching articulations?
I'm not really clear on that I'm afraid. Could you elaborate more and describe the behavior you're looking for (both in terms of UI and what MIDI events are emitted by Reaticulate)?Coming back to the releases of the Ventus series, I want the release articulation to be non-latching, even if there are no other upcoming events in the same bank....hope this makes sense...
Say you have a patch whose default articulation is sustain and you want (non-latching) ornaments to play, when triggered and clear up/ revert back to sustain default. In other words the ability to have either a blank articulation or ability to deselect all articulations in a bank?Generally it's going to be note-hold. This ensures the keyswitch note expected by the underlying instrument remains held until the next articulation is activated (in the same group).
I'm not really clear on that I'm afraid. Could you elaborate more and describe the behavior you're looking for (both in terms of UI and what MIDI events are emitted by Reaticulate)?
Ah, I think what you're describing is the same situation as the Bohemian violin.Say you have a patch whose default articulation is sustain and you want (non-latching) ornaments to play, when triggered and clear up/ revert back to sustain default. In other words the ability to have either a blank articulation or ability to deselect all articulations in a bank?
That should work. Thanks!Ah, I think what you're describing is the same situation as the Bohemian violin.
This is described in the documentation here, and here is the bank file for the Bohemian. (I use the term "off program" but it's a stupid term. I think your term "release articulation" is better. Or perhaps maybe "default articulation." In any case I think the capability is what you're looking for.)
This isn't supported currently. At some point I want to look at OSC and how best to accomplish this sort of thing, but for the moment, no direct OSC support.Is there a way of automatically showing articulation names from Reaticulate via MIDI or OSC so that buttons can be shown with articulations already showing when switching tracks?
Thanks for the feedback on this @tack looking forward to what you have in store in future in terms of OSC implementation to dynamically show articulationsThis isn't supported currently. At some point I want to look at OSC and how best to accomplish this sort of thing, but for the moment, no direct OSC support.
The closest thing is the control surface feedback feature. In the prerelease version, articulation changes are send to the control surface (both the bank MSB/LSB and the program number of the current articulation). But this is only useful when your control surface is already programmed to know about the set of articulations as it doesn't transmit the dynamic details of the current bank. (Doing that with MIDI would require custom sysex which probably wouldn't be too useful. OSC may have a standard for it though, need to research.)
This is fine for my use-case anyway: I have my most common articulations activatable from my keyboard. I use a Komplete S88 and have a custom page of encoders, where each encoder activates one of two articulations depending on whether I turn the encoder left or right. Reaticulate's control surface feedback feature transmits the current program number of the selected articulation and I use Bome MIDI translator to send the proper encoder value back to the S88, so it's all properly bidirectionally synced.
And while cool, that's obviously pretty esoteric and custom. I can definitely see the value in a good OSC implementation to make that kind of thing saner.
That makes sense although there currently isn't an action to activate articulation by slot number. So your banks would all have to use program 1, 2, 3, etc. which precludes using any of the factory banks which standardize on UACC.Would you agree that is the best way to do it?
Yep. With Reaper's FX presets, you'd link them to a program change on a particular channel, say channel 16. So in your FX, click the + button on the FX window and select Link to Program Change | Channel 16. Then the "articulations" in your custom bank file would output program changes for your different presets, for example:I don't use articulations, but I have been looking for a method to select patches from my touchscreen via named buttons for live performance. Can reaticulate be used to select actual .rpl patch changes?
//! c=#2f809b i=note-whole o=program:0 0 Piano //! c=#883333 i=tremolo o=program:1 1 Strings Ensemble [...]
//! colors=strings=#883333,keys=#2f809b [...] //! c=keys i=note-whole o=program:0 0 Piano //! c=strings i=tremolo o=program:1 1 Strings Ensemble [...]
The next version will have scrollbars, so it might work to touch-drag along the right edge of the window to get yourself scrolling. You might have noticed that in action in the video I posted on the Reaper forum. At some point I'll also implement different types of layouts to make better use of space at different geometries.I guess I would be limited to about a dozen buttons on my monitor, since live I have no mouse and therefore no mouse wheel.
That would be fantastic, @tack! ThanksThat makes sense although there currently isn't an action to activate articulation by slot number. So your banks would all have to use program 1, 2, 3, etc. which precludes using any of the factory banks which standardize on UACC.
Activation by slot number is any easy thing to add though. I'll include that feature in the next prerelease.
The closest thing is the action "Activate articulation by CC in group <n> on default channel (MIDI CC relative or mousewheel)"I'm thinking scroll through the list (mouseover) with an encoder, and press it to actually select the preset.... don't know if that's possible, but it would pretty awesome.
If you save each snapshot as an RPL, you can do it that way. Can be heavier than using snapshots, of course, as it may reload the instrument each time.I'm afraid I'm not aware of a means for a Reaper script to change snapshots within Kontakt. A possible kludge might be to create a custom multiscript to run in Kontakt, which could then at least be controlled via some special MIDI from Reaper, but even then I don't think it's possible for a Kontakt multiscript to adjust current snapshots of the active patches.
Well, alrighty then!! That's beyond anything I could have hoped for! I guess I will get to work on creating a script to modify reabank files to fit the format you showed above. Pity that the EnumTrackMIDIProgramNames method is broken, as the whole procedure could be automated otherwise. There is a create reabank script out there that uses NavigatePresets, but it seems to choke on slow-loading vsts.
// Reabank file for Reaticulate - http://reaticulate.com/ // // This file is a specially formatted Reabank file that is notated for use by Reaticulate. // Specification can be found here: // // http://reaticulate.com/reabank.html // //! colors=kontakt=#885533 n="Kontakt Test Bank" Bank 0 1 Kontakt Test Bank //! c=kontakt i=accented-half o=program:0 0 BeatlesTackPiano //! c=kontakt i=accented-quarter o=program:1 1 BlackPrairieMoon //! c=kontakt i=alt-circle o=program:2 2 OldLady //! c=kontakt i=alt-gypsy o=program:3 3 Rhodes Mark 1 //! c=kontakt i=alt-gypsy-eighth o=program:4 4 A SHIPS PIANO
Ah, you'll want to avoid MSB 0 as there seems to be an off-by-one bug in the code. Start at MSB 1. I'll fix that at some point.Bank 0 1 Kontakt Test Bank
I'm working on a built-in GUI editor for users to manage the banks, so ultimately how the banks are represented on the filesystem is inconsequential to most people. Supporting multiple user bank files is possible of course but I think it would only be useful to a small minority. Most users would manage the banks via the GUI.Am I correct in understanding that all user banks will go into this single file? I currently have some thousands of total patches in use (which is why I'm interested in automating the process) so this file is going to become awkward to navigate at some point.... why not have different files per vst as reaper itself does?
//! g="Orchestral Tools/Berlin Woodwinds/Exp B" n="Solo Oboe Multi" Bank 42 1 Berlin Woodwinds - Exp B - Solo Oboe