Reaticulate - articulation management for REAPER - 0.4.0 now available

OP
tack

tack

Damned Dirty Ape
After creating a bank for a next complex instrument, I want to return to my old (impossible?) request for more overall groups.. :) I remember, that Cubase has 4 groups, but it's not enough too - there are a couple of instruments with a lot of independent switchable options (for this bass 8 groups needed, see att.pic) - is it very hard limit to programming?
It's not impossible. It might not even be all that hard, if I take the easy way out. In the underlying articulation data structure managed by the JSFX, I've allocated 4 bits for the group number, which would support 16 total groups.

The basic problem is that there are a number of arrays in the JSFX that are multiples of MAX_GROUPS, and many code paths that iterate over those arrays. This means that by increasing the max number of groups from 4 to 16, some things will take 4x more memory and execute 4x slower.

That kind of increase is uncomfortable to me for what actually is a pretty fringe use-case. Needing more than 4 groups is rare. So I'd rather optimize things properly so that we're iterating over the number of groups in use, rather than MAX_GROUPS. And that just takes more effort than is worth spending right now while I have more pressing problems to solve (like the GUI bank editor :)).

A related problem is that the more groups you use, the higher the probability you'll be hit by the chasing problem: Reaper doesn't know about Reaticulate groups and only chases the last program on a given channel, as you know. It can be worked around putting the different groups in different banks assigned to separate source channels, but that's a bit of a hack. So I'd rather explore this idea and see if it's workable before bumping the groups limit.
 
OP
tack

tack

Damned Dirty Ape
Just a quick bugfix release for today in version 0.4.1.

Installing
If you're a new user (not upgrading), just follow these installation instructions.


Upgrading
If you've installed using ReaPack, you should eventually receive the update, but you can force it by following the updating instructions.


Here are the changes since 0.4.0:

Bug Fixes
  • Fixed a bug with the inline MIDI editor when the option to insert articulations at selected notes was enabled
  • Fixed a related bug where articulations would fail to insert at the edit cursor if the active item in the MIDI editor was different than the one under the edit cursor
  • When "Track selection follows MIDI editor target item" is enabled, don't vertically scroll the arrange view to show the track as that behavior ends up being particularly obnoxious
 

Dementum

New Member
Thanks to another post on the forum I tried reaticulate for a second time and for some reason I made it work this time. Now I have to rework my template, cause this is so much better then any other solution I had so far. Thank you so much for developing this. I love reaper and was super close to jump ship to Cubase to get the expression manager.
 

Stevie

Senior Member
Glad you didn't... After having used expression maps in Cubase, I hated it so much. It's basically an abandonned place. Has been implemented and never got an update ever since.
Reaticulate is the future :grin:
 

Jaybee

Active Member
Hi all,

Have just updated to latest Reaticulate via the Reapack sync (and I'm getting back into my VIs after many months away from the template due to work stuff so I'm a bit rusty). I've noticed a couple of things.

1) I've started looking at using VEPro and have VEPro 6. I've started tentatively building a new template up using it and I've just noticed that Reaticulate is not chasing the PCs at all when I'm using Kontakt inside VEPro. Natively in Reaper the PCs chase perfectly. Everything else works fine with VEPRo bar the chasing.

*Update* I've found the culprit. I have a JS Midi Nudge on the whole track to pull back CSS shorts/longs etc by 60ms etc so they are in time. I prefer doing it this way rather than nudging the notes before the grid as that messes up the score view.

If my JS Midi Nudge is ON then Reaticulate doesn't chase. If it's OFF Reaticulate chases perfectly (both Native and via VEPro)

2) My Program Change lane in the Reaper Midi Editor doesn't show any names on the PC events like I see in Reaticulate screengrabs. They're there in the Event List view (under Parameters), matching the articulation name in the Reaticulate bank but in the Piano roll view with Lanes underneath, nothing shows up. I think I may have to load my reaticulate.reabank file somewhere so they show up in the PC lane but I don't know where!

Both of these are undoubtedly pilot errors on my part. Grateful for any pointers. I've taken about ten months out and I feel like I've gone back three years in knowledge :shocked::grin:
 
Last edited:
OP
tack

tack

Damned Dirty Ape
*Update* I've found the culprit. I have a JS Midi Nudge on the whole track to pull back CSS shorts/longs etc by 60ms etc so they are in time. I prefer doing it this way rather than nudging the notes before the grid as that messes up the score view.
It sounds like the plugin is only adjusting the delay on notes, but not the PCs? It might be easy to hack the plugin to include PCs as well. (As an aside, eventually I want to add a per-articulation delay configuration to Reaticulate, so on a given articulation you can control note delays based on note velocity. But this is a pretty invasive and complex change, so it's more of a future thing.)

My Program Change lane in the Reaper Midi Editor doesn't show any names on the PC events like I see in Reaticulate screengrabs.
Make sure you have the CC lane called "Bank/Program Select" visible in the MIDI editor. The "Program" lane isn't the one that shows the program text. Reaticulate takes care of making sure all the reabank stuff is visible to Reaper and the program changes will resolve correctly to the right name. So you just need to show the Bank/Program Select lane in the MIDI editor.

Good luck!
 

Jaybee

Active Member
Hi Tack, Thanks for your continued development of Reaticulate, it really is fantastic. I can see you're adding to it's functionality all the time. So many times I've thought about hopping over to Cubase but Reaticulate keeps me in Reaper!

Brilliant, I can see all the names now. Oh boy, I tried everything I could think of for a few hours this morning and yet they were there all the time... in a different lane haha :)

I can live with shifting the notes back, it's really only CSS that needs major shifts on the legatos which messes with the notation view but that's way down the list of current essentials. I have another script to shift CSS notes based on velocity that was developed by a VI contributor (CRT_Midi_CSS_Nudge).

Thank you, as always!
 
OP
tack

tack

Damned Dirty Ape
0.4.3 just landed with another set of bugs squashed. Thanks everyone for your continued feedback.

Installing
If you're a new user (not upgrading), just follow these installation instructions.


Upgrading
If you've installed using ReaPack, you should eventually receive the update, but you can force it by following the updating instructions.


Here are the changes since 0.4.1 (including fixes from 0.4.2 which I forgot to announce):

Bug Fixes
  • Fixed a crasher on OSX when "Track selection follows FX focus" is enabled
  • Fixed bug where duplicating tracks containing the Reaticulate JSFX may not reflect the same bank assignments
  • Fixed an issue loading projects or importing track templates saved with older versions of Reaticulate where changes made to banks would not be automatically synced to the track
  • Fixed inserting articulations when the edit cursor is at the boundary between two MIDI items
  • Fixed a regression with the track configuration screen where it failed to properly reflect additions or removals of banks when the Refresh toolbar button was pressed
 

eagri1967

New Member
Used method "2" above to get all the Spitfire LABS articulations for Strings on one track by adding 3 instances of the LABS Vsti to one track (with an articulation loaded on each) and then adding a child track that has Reaticulate on using the following bank routing:

//----------------------------------------------------------------------------
//! g="Spitfire/Labs" n="Strings"
//! chase=1,11,16-21,64-69
Bank 04 3 LABS - Strings

//! c=long i=note-whole [email protected]
1 long
//! c=long i=note-whole [email protected]
2 ensemble
//! c=short i=staccato [email protected]
40 short

This is a great way of condensing the LABS instruments which have no form of keyswitching or UACC available inside the VSTi.

Hi,
I am relatively new to Reaper and Reaticulate. I have installed Reaticulate and today experimented with some examples copied from the factory banks. The problem is, I need a Solo Violin, and I have none of the libraries for which there are Reabank files in the Reaticulate repository on Github. I have EW Hollywood Strings but think the articulations are different, not sure whether I could just copy them.
I wanted to get into the practical use of Reaticulate by adding articulation to a Solo violin part, and as I have the EW Solo Violin, I would like to try to write a ReaBank file for it, but it's still very daunting for me. Anyway... I'm aiming at using the resulting audio of my project as an accompaniment - it is a Bach aria from the Christmas oratorio which I will sing on Christmas Eve in our church, and presumably, I won't have an organ player available, so need to create a playback track. So the time is drawing near ;) ).
The EW Solo Violin has more than 16 articulations, but I also have other instruments, namely an organ, and a cello. The organ will be a Kontakt instrument and the Solo Cello, again, from EastWest.
The midi input for the accompaniment is a section of the midi file for BWV 248 cantata 3 which I imported from classical archives into MuseScore (where I notate), clipped out the aria section and imported the resulting MIDI into Reaper. So the violin's midi input is on one track.

I have seen this post and the suggestion to have different instances of EW Play and add Reaticulate.
My questions are:

- What would be the best way to route all these articulations now that Reaticulate supports multiple busses: Would it be ok to have one MIDI output per FX (to MIDI bus 1 to 3, i.e. one each for Long, Short and Legato patches) and have Reaticulate on the very same track before the 3 EW Play instances?
Given that I'd like to keep the MIDI on one track, is this the best solution or should I rather go for a different setup?

- Does anyone here use the EW Solo Violin with Reaticulate and would share their Reabank file with me just for a start? What would also be very helpful would be a track template with a short sample MIDI that I could import and listen to. It would be helpful to figure out which of the articulations I should select to get the solo violin sound right. I have figured out how I add these articulations to my MIDI track, just the first notes, but the result still sounds awkward to me...
Any help would be very much appreciated. If I can get this done in time, I'll share my ReaBank file and whatever anyone could need. ( And of course, the recording, if anyone cares to listen to the Bach aria :) It's in cantata 3 of the Christmas oratorio, "Schliesse, mein Herze".)

Last but not least, @tack, thanks very very much for this great functionality :)
and to all of you who contribute!
 

Dementum

New Member
So my way of using Reaticulate and East West Instruments is to use one instance of Play and add all the articulations I need, routed to a different Midi channels. As an example for the Solo Violine here is my Bank File:

//! g="East West/Hollywood Solo Strings" n="Solo Violine"
Bank 1 30 EWHSS Solo Violine
//! c=legato-dark i=legato-vibrato [email protected]
2 Lyrical Legato
//! c=legato i=legato-bowed [email protected]
3 Legato Bow Change
//! c=legato-light i=legato [email protected]
4 Legato Expressive
//! c=short-dark i=marcato [email protected]
5 Marcato
//! c=short i=sfz [email protected]
6 Sforzando
//! c=short-light i=spiccato [email protected]
7 Spiccato
//! c=short-light i=pizz [email protected]
8 Pizzicato
I can just play on one channel and reaticulate takes care of switching to the right channel. The East West Instruments have so many articulations, that you might need to pick individual sets for your needs.
 
OP
tack

tack

Damned Dirty Ape
Given that I'd like to keep the MIDI on one track, is this the best solution or should I rather go for a different setup?
I'm afraid I'm not very familiar with PLAY instruments at all. So I'll speak generally in case it helps, even though I think you did give enough information.

If you just need one VSTi instance on the track, then you can stay within bus 1.

If the PLAY instruments are keyswitched on a single channel, then the Spitfire factory banks would be a decent model. Those banks don't bother specifying a channel (in which case it depends on the channel mapping you use when you assign the bank to the track), and just keyswitch over the different articulations on the same channel.

If the VSTi is multi-timbral such that different articulations are on different channels, then Dementum's Reabank suggestion is the way to go. That's the standard multi approach where Reaticulate will just route to different channels based on the current articulation.

On the other hand, if you do need multiple VSTi FX on the same track running in parallel, assigning them to different buses is definitely a good option. And since you said "3 EW PLAY instances" I'm gathering this is the case. It's technically possible to do all this on one bus if you don't need more than 16 channels by telling Reaper to merge with the MIDI bus on output, but IMO it's cleaner to just use different buses.

You could do this all within a single Reabank. It's like a multi-timbral instrument on steroids, instead of spanning multiple channels, now spanning multiple channels across multiple VSTi instances.

Hacking up Dementum's bank (as it's conveniently right there), maybe that looks like this:

Code:
//! g="East West/Hollywood Solo Strings" n="Solo Violine"
Bank 1 30 EWHSS Solo Violine
//! c=legato-dark i=legato-vibrato [email protected]
2 Lyrical Legato
//! c=legato i=legato-bowed [email protected]
3 Legato Bow Change
//! c=legato-light i=legato [email protected]
4 Legato Expressive
//! c=short-dark i=marcato [email protected]
5 Marcato
//! c=short i=sfz [email protected]
6 Sforzando
//! c=short-light i=spiccato [email protected]
7 Spiccato
//! c=short-light i=pizz [email protected]
8 Pizzicato
This bank assumes 3 FX instances, each assigned to input from buses 1, 2, and 3 respectively.

Alternatively, you could use separate Reabanks for each VSTi instance, and not hardcode the bus in the Reabank file. Then you would map it to the specific bus when you assign the bank to the track in Reaticulate's GUI. This could be useful if you'd like to reuse the bank on different buses on some other track. But then you'd see them shown as 3 separate banks in the UI (3 different groups separated by the bank title) which you may or may not want.

Hopefully that was helpful!
 

eagri1967

New Member
@tack - this is indeed helpful. Tomorrow, after some days of vacation I have to start working again, but I hope to try out what works best during the next evenings and weekend and report back. Thanks very much!