Reaticulate - articulation management for REAPER - 0.4.0 now available

Divico

Senior Member
Reaticulate tries to detect when an articulation is manually being activated. It's a cosmetic thing in that it just updates the GUI, it doesn't cause Reaticulate to emit any output events to change an articulation.

It should only happen when you've activated one of the articulations that route to channel 6 though, yeah? I mean, if CC1 value 67 activates staccato and you're currently on staccatissimo, if you manually move the modwheel to send CC1 value 67, isn't the underlying patch activating staccato anyway? Isn't it reasonable if Reaticulate reflects the underlying articulation has changed in the GUI?

(BTW the '[email protected]' in those articulations is redundant since the CC output event will already ensure subsequent events are routed to channel 6.)
Thing is if I have for example an articulation activated that sets the midi channel to 1 and than move my modwheel (my controller is sending on channel 1 by default) I still get what you see in the video. IMO this should just happen if Id be sending on Ch6 right?
 
OP
tack

tack

Damned Dirty Ape
IMO this should just happen if Id be sending on Ch6 right?
Not quite. It would depend on which channel you activated the articulation. I see from the video it's on channel 1 (the 1 with the box around it in Reaticulate's GUI), which means Reaticulate is now routing from channel 1 to channel 6. This means if you send CC1 from channel 1, Reaticulate routes that to channel 6. It sees that you're using CC1 to change articulations on channel 6, so it assumes that if it's routing some incoming CC1 to the patch there on channel 6, it must be changing the underlying articulation and so the GUI reflects that.
 

Divico

Senior Member
Not quite. It would depend on which channel you activated the articulation. I see from the video it's on channel 1 (the 1 with the box around it in Reaticulate's GUI), which means Reaticulate is now routing from channel 1 to channel 6. This means if you send CC1 from channel 1, Reaticulate routes that to channel 6. It sees that you're using CC1 to change articulations on channel 6, so it assumes that if it's routing some incoming CC1 to the patch there on channel 6, it must be changing the underlying articulation and so the GUI reflects that.
Ok but why should it route to 6 in the firste place? I havent enabled the articulation that sets Ch to 6. This happens automatically by turning the modwheel. Say I enable the first articulation which triggers Ch1. Now when I push the MOD it should send to Ch1 right and therefor not mess with the articulation wired to Ch6? Thing is it does what you see in the video. ReaControlMIDI says it sends CC1 on Ch1 before and after Reaticulate oO
 
Last edited:
OP
tack

tack

Damned Dirty Ape
Say I enable the first articulation which triggers Ch1. Now when I push the MOD it should send to Ch1 right and therefor not mess with the articulation wired to Ch6? Thing is it does what you see in the video. ReaControlMIDI says it sends CC1 on Ch1 before and after Reaticulate oO
Ah, ok. This is a bug then. Your video started with staccatissimo enabled so I didn't see anything in the video that looked wrong. But if it happens with another non channel 6 articulation active first it sounds like a regression. Will take a look. Thanks :)


Hey @tack reaticulate is a fantastic tool, started using it recently, and it really helps a lot
Great to hear! Thanks for the feedback.
 

Divico

Senior Member
Ah, ok. This is a bug then. Your video started with staccatissimo enabled so I didn't see anything in the video that looked wrong. But if it happens with another non channel 6 articulation active first it sounds like a regression. Will take a look. Thanks :)



Great to hear! Thanks for the feedback.
Here is a better video. There is something strange going on with the chasing of the articulation aswell.
View attachment 2019-12-10 13-15-01.mp4
 
OP
tack

tack

Damned Dirty Ape
There is something strange going on with the chasing of the articulation aswell.
I think the chasing behavior there makes sense in the context of this bug. When you move the playhead, Reaper chases the PC for Sustain. But Reaticulate won't think the other articulations on channel 6 are being activated unless exactly one of CC1 1, 22, 67, or 127 are observed. For CC 1, Reaper doesn't chase every prior CC value, just the latest one. And if the latest one isn't 1, 22, 67, or 127, Reaticulate won't think anything has changed.

And I suspect this is related to what you were expecting:

 

jadedsean

Active Member
Just got this installed Tack and really having fun with it too, thanks, but I seemed to be having an issue. It states on the website to click in the checkbox to always start when Reaper is loaded which I have done but for seem reason it never loads. Meaning I have to run it every time, any suggestions why this is?
 

Jaybee

Active Member
@tack I'm struggling with the legato switching on OT ARK multis which are a combo of KS for articulation but CC for legato. I've got the multi in without legato but want to be able to use the (faked) OT legato via CC30 to the Sustains, Tremolo and Portatos where necessary.

I've added CC30,127 & CC30,1 to each of the four articulations to turn the legato on/off but it's triggering weird off notes and some held notes too. I'm sure I've created a loop somewhere. With the multi approach in CSS it was all notes so not sure if I'm on the right approach. Here's the bank I have that's causing issues.

Please let me know how much of a doofus I've been here... ;)

//----------------------------------------------------------------------------
//! g="Orchestral Tools/Metropolis Ark 1" n="ARK1 Wolfenstein Strings (Low)"
//! chase=1,11,16-21,64-69
Bank 01 61 OTMA1 Wolfenstein Strings

//! c=legato i=legato o=cc:30,127/note:24
21 legato 8ves
//! c=legato i=legato o=cc:30,127/note:25
22 legato tremolo
//! c=legato i=legato o=cc:30,127/note:26
23 legato portato (long)
//! c=legato i=legato o=cc:30,127/note:27
24 legato portato (short)

//! c=long i=harmonics-natural o=cc:30,1/note:24
3 octaves
//! c=long i=tremolo o=cc:30,1/note:25
11 tremolo octave
//! c=short i=marcato-half o=cc:30,1/note:26
55 portato long
//! c=short i=marcato-quarter o=cc:30,1/note:27
52 portato short
//! c=short i=spiccato o=cc:30,1/note:28
45 spiccato octave
//! c=short-dark i=pizz-bartok o=cc:30,1/note:29
57 bartok col legno
//! c=long i=crescendo o=cc:30,1/note:30
102 crescendo long
//! c=long i=crescendo o=cc:30,1/note:31
106 crescendo short
//! c=long i=crescendo o=cc:30,1/note:32
107 swell
//! c=long i=dcrescendocrescendo o=cc:30,1/note:33
103 tremolo decrescendo
 
OP
tack

tack

Damned Dirty Ape
I've added CC30,127 & CC30,1 to each of the four articulations to turn the legato on/off but it's triggering weird off notes and some held notes too.
I don't actually see anything problematic with that bank (except for i=dcrescendocrescendo but that's cosmetic). I don't have ARK so I can't confirm that those are the right output events, but otherwise I think Reaticulate should be happy to send them. You can try adding a ReaControlMIDI instance with logging turned on after Reaticulate and see if it's sending any events you're not expecting.

It states on the website to click in the checkbox to always start when Reaper is loaded which I have done but for seem reason it never loads. Meaning I have to run it every time, any suggestions why this is?
If you run the action "Show REAPER resource path in explorer", navigate into the "Scripts" folder, and open __startup.lua in a text editor, can you confirm you see this somewhere within the file?

Code:
-- Begin Reaticulate startup stanza (don't edit this line)
local sep = package.config:sub(1, 1)
local script = debug.getinfo(1, 'S').source:sub(2)
local basedir = script:gsub('(.*)' .. sep .. '.*$', '%1')
dofile(basedir .. sep .. 'Reaticulate' .. sep .. 'actions' .. sep .. 'Reaticulate_Start.lua')
-- End Reaticulate startup stanza (don't edit this line)
This code is inserted by Reaticulate when you enable that option. Reaper is supposed to execute the script when it starts up.

What version of Reaper are you using and on which platform?
 

Jaybee

Active Member
@tack Thanks! Will do some debugging with ReaControlMidi for these note hangs, it's probably a coincidence. Glad I was OK on the Reaticulate programming! :thumbsup:
 

jadedsean

Active Member
If you run the action "Show REAPER resource path in explorer", navigate into the "Scripts" folder, and open __startup.lua in a text editor, can you confirm you see this somewhere within the file?

Do you mean this?
 

Attachments

OP
tack

tack

Damned Dirty Ape
As far as i can see yes.
Try setting Autostart to never, deleting the __startup.lua file, and then setting it back to "When REAPER starts". Is __startup.lua then created with the contents I mentioned above? (You would have to open it in a text editor to see.)
 

jadedsean

Active Member
Try setting Autostart to never, deleting the __startup.lua file, and then setting it back to "When REAPER starts". Is __startup.lua then created with the contents I mentioned above? (You would have to open it in a text editor to see.)
Strange i can't actually delete because doesn't exist, would you recommend a new install?
 

Attachments

OP
tack

tack

Damned Dirty Ape
Strange i can't actually delete because doesn't exist, would you recommend a new install?
Something is definitely seems wrong with your system there. Is B: a flash device or other removable media? If it's removable, is it formatted as FAT32 or NTFS?

Before abandoning your current install, try opening the command prompt as Administrator and typing:

Code:
B:
cd "\Otr 6 Reaper\Portable\OTR\Scripts"
del __startup.lua
And if that doesn't work:

Code:
ren __startup.lua __startup.bak
 

jadedsean

Active Member
Something is definitely seems wrong with your system there. Is B: a flash device or other removable media? If it's removable, is it formatted as FAT32 or NTFS?

Before abandoning your current install, try opening the command prompt as Administrator and typing:

Code:
B:
cd "\Otr 6 Reaper\Portable\OTR\Scripts"
del __startup.lua
And if that doesn't work:

Code:
ren __startup.lua __startup.bak
So its on a 2tb SSD but unfortunately i could not tell you if its FAT32 or NTFS as i'm not sure what that means(excuse my ignorance), here's another pic.
 

Attachments

OP
tack

tack

Damned Dirty Ape
So its on a 2tb SSD but unfortunately i could not tell you if its FAT32 or NTFS as i'm not sure what that means(excuse my ignorance)
NTFS and FAT32 are types of filesystems. As a 2TB SSD it's almost guaranteed to be NTFS, but you can find out for sure by right-clicking on the drive in Explorer (in "This PC") and selecting Properties, where it will show you the filsystem type in the General tab. It was just a hunch because you were using a portable install and B: is an unusual drive letter for normal drives, and FAT32 has more naming restrictions than NTFS.

Also, when you try to delete the file from Explorer and it says "could not find this item" there is a "More details" button at the bottom of the popup. You could try clicking that to see if it tells you anything useful.

So you basically have a file that shows up in Explorer but yet can't be deleted, and it doesn't seem to be related to permissions. This is the root cause, certainly, although arguably there is still a bug here in Reaticulate in that it shouldn't silently fail to write to __startup.lua. I can fix that, but I don't quite know how to fix your problem.

As an experiment, you could try another portable install in another directory and see if the same behavior exists there. And if it does, maybe try an install on C: or higher, if you have one, just on the off chance that there is something about B:. (As I said it's unusual for A: or B: to be used for harddrives. Not impossible of course, just unconventional, which means that this type of configuration will see much less real world testing.)