What's new

Reaticulate - articulation management for REAPER - 0.5.13 now available

Hi @tack ,

What would the event type be for non latching articulations?

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...
 
What would the event type be for non latching articulations?
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).

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...
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)?
 
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)?

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?
 
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?
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.)
 
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.)

That should work. Thanks!
 
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 in advance!
 
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?
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.

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.
 
Last edited:
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.

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.
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 articulations :)
 
I've been playing around with Reaticulate and am loving it! I'm definitely going to switch over from using Inspector. @tack I have a midi controller with 16 pads that I was using to trigger articulations using Inspector and I want to do the same with Reaticulate so I assigned them to send program changes over a dedicated cc to trigger articulations. I would like to keep it standardized to switch whatever articulations I have loaded for various libraries so I was thinking of setting the 1st pad to program 1 to trigger the first art, 2nd pad to program 2 for 2nd art, etc instead of using the UACC standard. Would you agree that is the best way to do it?
 
Would you agree that is the best way to do it?
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.

Activation by slot number is any easy thing to add though. I'll include that feature in the next prerelease.
 
I was just looking into this, after seeing a post about your gui on the Reaper forum. 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?

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. Unless there's some way to have multiple pages.... I'll have a look at the code, but curious what you think. Hacking it might be within my limited skillset...

I love the look and feel! If you and lokasenna get together on a gui project, I'll be excited to see what you come up with.
 
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?
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:

Code:
//! c=#2f809b i=note-whole o=program:0
0 Piano
//! c=#883333 i=tremolo o=program:1
1 Strings Ensemble
[...]


Here I used custom colors but you could also use any of the named colors. Or you can name your custom colors if you intend to reuse them a lot:

Code:
//! 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
[...]


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.
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 could probably implement some type of touch scrolling as well, to make it friendly to touch interfaces. You're not the first to mention this use-case so it'd be a good idea. I've logged the issue so I don't forget about it.

Thanks for the feedback!
 
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.

Activation by slot number is any easy thing to add though. I'll include that feature in the next prerelease.

That would be fantastic, @tack! Thanks
 
Wow, what a surprising bit of good news! Thanks for the quick response!

I do still prefer page buttons to scrolling--it's too easy to select a preset when you are just trying to scroll, and when loading large sample sets in Kontakt, a wrong selection can be a bummer....

although if I could control scrolling from an external control surface, that would be best of all. 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.
 
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.
The closest thing is the action "Activate articulation by CC in group <n> on default channel (MIDI CC relative or mousewheel)"

This lets you scroll through the articulations with an encoder, but it actually activates them. This is fine for articulations on the loaded patch, since selection is usually a pretty lightweight action, but in your case with presets it could be pretty painful, as you point out.

I'm curious if anyone else is interested in this capability? By "this" I mean an action to scroll through but not actually activate articulations, and then a separate action to activate the highlighted one?

Actually nevermind. I have another use-case for this type of interaction so I think it makes sense to implement it. Tracking the enhancement here.
 
Last edited:
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.

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.
 
Actually nevermind. I have another use-case for this type of interaction so I think it makes sense to implement it. Tracking the enhancement here.

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.
 
Okay, I am trying to get this working. I edited the user reabank file thus. I'm getting the bank to show up in the dropdown menu, but when I select it and go back to the articulations window it says 'no banks on this track'....

Code:
// Reabank file for Reaticulate - https://reaticulate.com/
//
// This file is a specially formatted Reabank file that is notated for use by Reaticulate.
// Specification can be found here:
//
//      https://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

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?
 
Bank 0 1 Kontakt Test Bank
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. :)


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?
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.

In terms of navigation during bank selection on a given track, bear in mind you can categorize your banks. You just need to annotate the bank:

Code:
//! g="Orchestral Tools/Berlin Woodwinds/Exp B" n="Solo Oboe Multi"
Bank 42 1 Berlin Woodwinds - Exp B - Solo Oboe

This will put the "Solo Oboe Multi" bank in a nested menu Orchestral Tools | Berlin Woodwinds | Exp B.

The component before the first slash is by convention expected to be the Vendor, and the second is the Product, but ultimately you can put whatever you want in here, and arbitrarily nest as many submenus as you want.

Future versions of Reaticulate will make selection a lot easier, being able to search by substring to filter the list of available banks to choose from.
 
Oh my dogs, christmas was nothing like this!!

To think, some odd little edge-case capability of your tool has just solved the most vexing problem with moving my live setup to reaper.... Thank you sir!!

Where do I go to contribute? This is huge!

I also discovered that on my fast desktop computer, the reabanks creation script seems to run fine. It even loaded up all my kontakt patches without complaining.... well, at least the 20-some I've made test RPL's for so far.

So then here are a couple of hacks I've added to make this work. First I added the numbers 1-148 to the end of the articulation png. Then I added the text to the articulation.lua script to label them. Then I altered the 'reabank from focused effect' to create a reaticulation file for selecting presets. It is so quick and easy! The hardest part is creating the RPL's from vsts that don't expose presets, and that's really just a matter of selecting and saving each one from that tiny kludgey '+' menu that can't be addressed from the API....

I know people on the reaper forums have been complaining about a lack of submenus for selecting patches in vsts, particularly when the preset lists gets really long, so there may actually be an audience for this.... although if the script to create the reabank is unreliable that's a pretty big missing piece.

Anyway, here are those files. Hope you would consider making these changes to the main tree, but if not I can keep on kludgin'....

Here's a few other FRs and notes:

1.I will probably hide the midi channel selection and the filter box to save real estate. I don't see a use for the midi ch setting in performance, and the filter box is useless without a keyboard. You might consider putting in an option to hide them legitimately for this particular usage.

2.What would be more useful to me in this space would be buttons to select actual banks. I have maybe 700 kontakt presets at present, and while it's great that I can now split them into multiple banks, selecting those banks is still going to be troublesome--the stock windows/gtk menu is too small to control reliably from a touchscreen, and getting to it means pressing that tiny window icon un the upper right. Maybe you could have an option to create a set of buttons for any banks that are in the same subfolder as the current bank, or something like that? Maybe it would even make sense to sort articulations that way, as an alternative to filtering--one that doesn't require any typing...

3.If you do implement touch scrolling, please make it possible to disable it. While I am playing, I can't reliably select a button without 'micro-scrolling'.... I am very excited about being able to scroll from an encoder, though, so I will be fine with it disabled.

Thanks again!
-eric
 

Attachments

  • reaticulatePresetHacks.zip
    35.5 KB · Views: 7
Top Bottom