Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 01-28-2023, 07:38 AM   #3201
indigomirage
Human being with feelings
 
Join Date: Oct 2020
Posts: 79
Default

Quote:
Originally Posted by helgoboss View Post
Scrubbing is achieved using target "Project: Invoke REAPER action". The action is "Transport: Scrub/jog (MIDI CC relative/absolute only)" or "Transport: Scrub/jog fine control (MIDI CC relative only)". I don't know how the absolute control works. But the relative mode makes sense and I know it works. With a rotary encoder that natively sends relative messages it's straightforward, just map it.

I was just going to tell you to use "Make relative" or "Incremental buttons" with some adjustments to make it work for an absolute control element such as pitch wheel, but something isn't right. Doesn't work for some reason. Let me look into it.
Thank you! It occurred to me yesterday that maybe the right answer is to use a custom curve shaped like a square wave - fully on or fully off. That way you never have to worry about hitting the very highest value on the pitch wheel. I'm not fully sure how to script that _yet_ (in EEL?) but it seems achievable.

My main use case is for switching banks, but I would settle for using the PW as a scrub controller if I can't wrangle a way to display highest level folders for banks as opposed to individual tracks. Baby steps though...

Working through this I continue to be grateful for the power of ReaLearn. If I get some decent templates going I will post...


Edit - although I figured out how to write an EEL glue/curve script, I couldn't get it to fire the event only once, so incrementally, the events furred for every tiny movement of the PW. So close... Yet so far...

Last edited by indigomirage; 01-29-2023 at 08:11 AM.
indigomirage is offline   Reply With Quote
Old 01-28-2023, 10:27 AM   #3202
Trekopep
Human being with feelings
 
Join Date: Oct 2022
Posts: 4
Default

Quote:
Originally Posted by helgoboss View Post
This is an interesting use case! So you want to touch the key and while you hold it it should keep increasing a value AND when pressing harder, it should keep increasing the value faster. Is that correct?
Correct!

Quote:
Originally Posted by helgoboss View Post
Which target do you use? Do the values appear when you switch the target value unit to percent (bottom-right button in target section)?
They do! The specific use-case is using Target Type FX parameter: Set Value to set the Playback Rate on a delay effect via an Incremental button. (9 values from -2 to 2, so I use the Value sequence 2, 6, 7, 8 to give me playback rates of -1, 1, 1.5, 2) The percent values are 25, 75, 87.5, 100, which is a little harder to understand in this specific context.

Edit: Another thing that I'm trying to do that isn't working: Using an "Inverse target value (on only)" Group interaction for a Toggle button set to "Fire after timeout" doesn't trigger the inverse on the other mappings in the group. Using "Fire on press" or "Fire on double press" both work properly.

More context if it's helpful: Source is a virtual button, target is a parameter on the ReaLearn FX, that pad also has another "Fire on press" mapping. (Press turns on/off FX, press and hold shows/hides parameters for that FX, and should hide parameters for other FX)

Last edited by Trekopep; 01-28-2023 at 08:58 PM. Reason: Added another case that isn't working for me
Trekopep is offline   Reply With Quote
Old 01-29-2023, 07:43 AM   #3203
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default

Quote:
Originally Posted by helgoboss View Post
Great that you figured it out! The timer source is a good idea if you want regular switching (such as every 5 seconds). If you have more than two pages (e.g. bank #, send bus #, something else), you can also choose mode "Incremental button" instead of "Toggle button". Then with every timer tick, the page will change.

If you want non-regular switching (e.g. 5 seconds, 2 seconds, 4 seconds), that's also possible by writing your own time-based control transformation. However, it's slightly more difficult because you need to program.
There is one problem that I personally encountered when selecting an incremental mode selection button - with this configuration, it is not possible to create a group of buttons turning off when switching to another MODE button (described in the section Group interaction - Inverse control:
https://github.com/helgoboss/realear...up-interaction )
- how to combine the behavior of incremental buttons and toggle in such situations?
Vladistone is offline   Reply With Quote
Old 01-29-2023, 09:21 AM   #3204
WelderOriginal
Human being with feelings
 
Join Date: Jan 2023
Posts: 16
Default

Quote:
Originally Posted by helgoboss View Post
Which version of the APC Key 25 do you use? The new one? I only have experience with the old one.
Currently using the new one.

Quote:
Originally Posted by helgoboss View Post
So velocity translates to the actual value, in both directions. This, changing source min/max value influences the LED color.
So, what should I do if I want to send back a completely custom feedback. Does the "numeric feedback transformation" affects the complete feedback value returned to the device ? Or does it only affect the last byte ?

I would like to send [0x96, 0x00, 0x05] when toggling ON, and [0x00, 0x00, 0x05] when toggling OFF. I tried setting "x = 9830405" in the numeric feedback transformation (cause 0x950005 = 9830405) but it didn't act the way I expected. Is the numeric feedback transformation the way to go in my case ?
WelderOriginal is offline   Reply With Quote
Old 02-01-2023, 12:19 AM   #3205
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by indigomirage View Post
Thank you! It occurred to me yesterday that maybe the right answer is to use a custom curve shaped like a square wave - fully on or fully off. That way you never have to worry about hitting the very highest value on the pitch wheel. I'm not fully sure how to script that _yet_ (in EEL?) but it seems achievable.

My main use case is for switching banks, but I would settle for using the PW as a scrub controller if I can't wrangle a way to display highest level folders for banks as opposed to individual tracks. Baby steps though...

Working through this I continue to be grateful for the power of ReaLearn. If I get some decent templates going I will post...


Edit - although I figured out how to write an EEL glue/curve script, I couldn't get it to fire the event only once, so incrementally, the events furred for every tiny movement of the PW. So close... Yet so far...
I opened a ticket to check as soon as I have time, probably next week. https://github.com/helgoboss/realearn/issues/809
helgoboss is online now   Reply With Quote
Old 02-01-2023, 12:22 AM   #3206
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by Trekopep View Post
Correct!


They do! The specific use-case is using Target Type FX parameter: Set Value to set the Playback Rate on a delay effect via an Incremental button. (9 values from -2 to 2, so I use the Value sequence 2, 6, 7, 8 to give me playback rates of -1, 1, 1.5, 2) The percent values are 25, 75, 87.5, 100, which is a little harder to understand in this specific context.

Edit: Another thing that I'm trying to do that isn't working: Using an "Inverse target value (on only)" Group interaction for a Toggle button set to "Fire after timeout" doesn't trigger the inverse on the other mappings in the group. Using "Fire on press" or "Fire on double press" both work properly.

More context if it's helpful: Source is a virtual button, target is a parameter on the ReaLearn FX, that pad also has another "Fire on press" mapping. (Press turns on/off FX, press and hold shows/hides parameters for that FX, and should hide parameters for other FX)
https://github.com/helgoboss/realearn/issues/810
https://github.com/helgoboss/realearn/issues/811
helgoboss is online now   Reply With Quote
Old 02-01-2023, 12:24 AM   #3207
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by Vladistone View Post
There is one problem that I personally encountered when selecting an incremental mode selection button - with this configuration, it is not possible to create a group of buttons turning off when switching to another MODE button (described in the section Group interaction - Inverse control:
https://github.com/helgoboss/realear...up-interaction )
- how to combine the behavior of incremental buttons and toggle in such situations?
This is very unspecific. Little video showing the problem maybe? Or a minimal test project (no 3rd-party plugins, no additional stuff)?
helgoboss is online now   Reply With Quote
Old 02-01-2023, 12:27 AM   #3208
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by WelderOriginal View Post
Currently using the new one.



So, what should I do if I want to send back a completely custom feedback. Does the "numeric feedback transformation" affects the complete feedback value returned to the device ? Or does it only affect the last byte ?

I would like to send [0x96, 0x00, 0x05] when toggling ON, and [0x00, 0x00, 0x05] when toggling OFF. I tried setting "x = 9830405" in the numeric feedback transformation (cause 0x950005 = 9830405) but it didn't act the way I expected. Is the numeric feedback transformation the way to go in my case ?
"Feedback transformation" only changes the *feedback value*, which is just a number. The "Source" section is responsible for translating this number into a *feedback message*, e.g. it often converts it to the last byte of a MIDI message.

In your case, you don't want to change the last byte but also the first byte. (However, I've never seen 0x00 as a first byte, is this really the correct way to communicate with the new APC Key 25!? Or did you maybe forget sys-ex bytes F0 ... F7?) So you either need to use source "Raw MIDI" or "MIDI script".

In your case, "Raw MIDI" should be enough:
- Either with pattern "[1111 1111] 00 05" ... you would then still use "Source Max" to fine-tune the value so 0x96 (= 150) is sent in case the target is ON (not 0xFF = 256).
- Or you can also set up two mappings, one with pattern "00 00 05" and the other one with "96 00 05". Set out-of-range behavior to "Ignore" for both and adjust the "Target Min/Max" accordingly so only one ever sends feedback, depending on the target value.

If you want to send a completely custom MIDI message, use source "MIDI script". See user guide. This is the most straightforward way if you have more of a programmer's mind.

Last edited by helgoboss; 02-01-2023 at 12:41 AM.
helgoboss is online now   Reply With Quote
Old 02-01-2023, 09:43 AM   #3209
indigomirage
Human being with feelings
 
Join Date: Oct 2020
Posts: 79
Default

Hi there -

Is there a way to have Realearn page through banks such that the tracks affected are only top level folders, as oppposed to banking on ALL tracks?

I was trying to work out a way to do this by setting parameters, and calling out to an EEL function, but the approach got unwieldy very quickly.

In terms of a potential idealized solution... Perhaps there could be a store the list of top-level tracks in array somehow and when picking the track dynamically for volume faders (etc - ie - 'Tr5Vol') p[0] * 10000 + 4 referencing that array?

Would have to load/update the array based on some event/action (bonus points if decision to use folders vs tracks was set using a param/flag)

Not sure if this is something people have yet done, but I can see it being quite useful for those integrating control surfaces given Reaper's heavy leaning on folders as a substitute for busses.

Open to ideas!
indigomirage is offline   Reply With Quote
Old 02-01-2023, 04:43 PM   #3210
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by indigomirage View Post
Hi there -

Is there a way to have Realearn page through banks such that the tracks affected are only top level folders, as oppposed to banking on ALL tracks?

I was trying to work out a way to do this by setting parameters, and calling out to an EEL function, but the approach got unwieldy very quickly.

In terms of a potential idealized solution... Perhaps there could be a store the list of top-level tracks in array somehow and when picking the track dynamically for volume faders (etc - ie - 'Tr5Vol') p[0] * 10000 + 4 referencing that array?

Would have to load/update the array based on some event/action (bonus points if decision to use folders vs tracks was set using a param/flag)

Not sure if this is something people have yet done, but I can see it being quite useful for those integrating control surfaces given Reaper's heavy leaning on folders as a substitute for busses.

Open to ideas!
It supports skipping hidden tracks (by using "Dynamic (TCP)", for example). So one thing you could do is to write a script "hide" that hides all tracks except top-level folder tracks. Then you write another script "show" that shows them again. Then, whenever you want ReaLearn to bank through top-level tracks only, you execute that "hide" script. When you are done with it, execute the "show" script.

It's a workaround but a rather clean one. There's no built-in filter to achieve this.
helgoboss is online now   Reply With Quote
Old 02-01-2023, 11:31 PM   #3211
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default

Quote:
Originally Posted by helgoboss View Post
This is very unspecific. Little video showing the problem maybe? Or a minimal test project (no 3rd-party plugins, no additional stuff)?
sorry, that was my mistake. I didn't pay attention to the conditional activation of the TRACK&PLUG mappings. Only after preparing the video did I realize this oversight!
watch the Realearn video of a group of 3 button mappings:
1 - SEND incremental button (top L corner)
2 - PLUG switch button (top R corner)
3 - TRACK switch button (lower L corner)
in this reason, I cannot controled with PLUG&TRACK if SEND keeping parameter >0 (in range 1;2;3;4;5;6)
But if SEND is switched off (parameter ==0), then PLUG & TRACK buttons would activeted and thouse each other affect according the group interaction but it isn`t due to conditional activation.
https://youtu.be/vLaT-YaB22s
Vladistone is offline   Reply With Quote
Old 02-02-2023, 08:00 AM   #3212
indigomirage
Human being with feelings
 
Join Date: Oct 2020
Posts: 79
Default

Quote:
Originally Posted by helgoboss View Post
It supports skipping hidden tracks (by using "Dynamic (TCP)", for example). So one thing you could do is to write a script "hide" that hides all tracks except top-level folder tracks. Then you write another script "show" that shows them again. Then, whenever you want ReaLearn to bank through top-level tracks only, you execute that "hide" script. When you are done with it, execute the "show" script.

It's a workaround but a rather clean one. There's no built-in filter to achieve this.
Wow. It works. This is amazing. Nice and clean. THANK YOU!
indigomirage is offline   Reply With Quote
Old 02-03-2023, 08:03 PM   #3213
tho
Human being with feelings
 
Join Date: Jul 2010
Posts: 16
Default Project Seek

First thank you for Realearn it is a lot of fun, maybe too much fun because I have not been playing music....but thank you!
Second, I am playing with the "Project: seek" setting in the mapping dialogue.
I may not understand seek or jog well enough, but what I am trying to do is get seek to land on beats only not in between them. I have succeeded in doing this but at a cost. When I zoom out the speed of the edit cursor does not change.
What I would want is the following:
1. Have my midi knob control the edit cursor position
2. Only allow the edit cursor to land on beats (if this could be toggled on beat / off beat, that would be great)
3. The edit cursor speed adjusts to my zoom level. For example if I am zoomed to only a few measures one turn of the knob would move several beats, but when zoomed out to 50 measures one turn of the wheel would move many measures, but always stay on a beat.

Sorry for the long post. I may just give up and play music instead, but I thought I would post.
thanks for reading if you got this far.
Have fun everyone!
tho is offline   Reply With Quote
Old 02-04-2023, 02:50 PM   #3214
hulkss
Human being with feelings
 
Join Date: Jan 2022
Posts: 5
Default

Quote:
Originally Posted by helgoboss View Post
yes, you can map "Send feedback now" to a button. There's a *REAPER* action "ReaLearn: Send feedback to all devices" (something like that) which you can map.
Thanks. I have a "SYNC" button now. It works perfectly to update the current feedback of all OSC controls with just a tap.
hulkss is offline   Reply With Quote
Old 02-05-2023, 10:18 PM   #3215
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default Keyboard navigation

Hello Helgoboss!
I want to ask about navigating the Realearn mapping window using the keyboard only (without mouse):
- does it working proper?
in addition, I would like to be able to tabing moving, using selection of items in the list box, and order the hotkeys conbination to make changes in the mapping window. as well as restoring the active area or the cursor position when switching between comparison windows using the prev.&next buttons. tell me Please
- if there are keyboard control of changes in feature (Mac OS inclusive)
- perhaps are You working about idea to Users will have by matrix/tablesheet realearn editor is able of big massive data when produessing the new FX-instalation for DAW FX controller?

regards, Vladistone

Last edited by Vladistone; 02-06-2023 at 12:48 AM.
Vladistone is offline   Reply With Quote
Old 02-06-2023, 02:48 AM   #3216
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default

help with targetting problem. in my setup created 2 Realearn FX-instances in the FX monitor:
1-th FX - receive from PC-keystroke source to virtual buttoms.
2-nd FX - MIDI source to main DAW operation and feedback back to MIDI controller.
I can't create a combination with PC-keys & MIDI to double the controller options.
I can't re-target the FXs chain from 1th to 2nd FX by virtual buttons and parameter p() option. As realearn prompts me to signal of the FX on the master BUS only. but isn`t the next FX down into FX-monitor.

Why doesn't it see the second realearn FX instance? any ideas?

PS: sorry, I fix it by set the parameter "By ID or name (Legasy)"

Last edited by Vladistone; 02-06-2023 at 03:46 AM.
Vladistone is offline   Reply With Quote
Old 02-06-2023, 10:43 AM   #3217
tompad
Human being with feelings
 
Join Date: Jan 2010
Location: Fjugesta, Sweden
Posts: 811
Default

Quote:
Originally Posted by helgoboss View Post
That's exactly the reason why you need to modify the existing mappings that refer to tracks to use "Dynamic (MCP)" (or "Selected in MCP" if you do track banking by track selection). Do you use "DAW control" preset? This one doesn't respect track visibility in its current version. Then it's best to make the change in the Lua code of the preset, otherwise you will have to change a lot of mappings by hand. It's here: https://github.com/helgoboss/realear...aw-control.lua
Hi again Benjamin!

I thought I got this right, but noope...

I exported the mapping to clipboard and imported it
in my Sublime Text editor and then searched for Dynamic
and replaced it with Dynamic(MCP) but got only error
"unknown variant" then importing it back to ReaLearn.
I tried to write it in different ways with space between
words but no luck, what am I doing wrong??
__________________
ToDoList Obliques MusicMath Donation Some of mine and my friends music projects on Spotify
tompad is offline   Reply With Quote
Old 02-06-2023, 06:21 PM   #3218
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by tompad View Post
Hi again Benjamin!

I thought I got this right, but noope...

I exported the mapping to clipboard and imported it
in my Sublime Text editor and then searched for Dynamic
and replaced it with Dynamic(MCP) but got only error
"unknown variant" then importing it back to ReaLearn.
I tried to write it in different ways with space between
words but no luck, what am I doing wrong??
Change it in the GUI to "Dynamic (MCP)", export it as Lua and see what's the value. I can't remember it now.
helgoboss is online now   Reply With Quote
Old 02-06-2023, 08:02 PM   #3219
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default

engage attention to the strange behavior of the MIDI controller from the timer function:
when switching from an inactive Reaper window - a large number of idle timing loops are sent to the controller, which make the controller react for a long time (mostly waiting until all the feedback lights stop flashing). tell me - how can I disable this behavior of timer?

Last edited by Vladistone; 02-07-2023 at 12:16 AM.
Vladistone is offline   Reply With Quote
Old 02-07-2023, 12:32 AM   #3220
tompad
Human being with feelings
 
Join Date: Jan 2010
Location: Fjugesta, Sweden
Posts: 811
Default

Quote:
Originally Posted by helgoboss View Post
Change it in the GUI to "Dynamic (MCP)", export it as Lua and see what's the value. I can't remember it now.

Aah, of course!!

Sorry, my mind was locked after too long session with this problem. :-)


Edit:

For those that are interested - I changed
Code:
 address = "Dynamic",
 expression = "p[0] * 10000 + 0",
to

Code:
address = "Dynamic",
expression = "p[0] * 10000 + 0",
scope = "TracksVisibleInMcp",
The example is for track 1, you need to change for every track with "Dynamic".
__________________
ToDoList Obliques MusicMath Donation Some of mine and my friends music projects on Spotify

Last edited by tompad; 02-07-2023 at 11:10 AM.
tompad is offline   Reply With Quote
Old 02-08-2023, 12:13 PM   #3221
ivan_ef
Human being with feelings
 
Join Date: Sep 2020
Location: Yaroslavl, Russia
Posts: 27
Default fx parameter names on Mackie LCD

Question for Mackie Control Surface users:
I would like to use realearn to display fx plugins parameter names on Mackie Scribble LCD.
I found realearn doesn't support parameter names natively. I used {mapping names} for Scribble instead and {plugin names} for main presets but it takes too much time to make mapping group for each parameter of each effect. For example waves has different names for mono and stereo plugins.

Is there any other simple way to display fx parameter names on Mackie LCD?

Last edited by ivan_ef; 02-08-2023 at 12:27 PM.
ivan_ef is offline   Reply With Quote
Old 02-10-2023, 08:32 AM   #3222
TyPie
Human being with feelings
 
Join Date: Jun 2018
Posts: 22
Default Arturia Minilab 3

Benjamin,
Many thanks for your fantastic work!

Wondering if you have plans to support the Arturia Minilab 3. (a cool little controller!)

Edited to add:
Since I posted above, I did a read of the Realearn instructions, and I see that I should be able to easily map the controls.
I'm looking forward to getting up and running with this.

Last edited by TyPie; 02-11-2023 at 07:28 AM.
TyPie is offline   Reply With Quote
Old 02-11-2023, 05:44 AM   #3223
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,660
Default

hello, i bought ReaLearn a long time ago but haven't used it much until now due to some issues that have now been resolved.

i dove into the vst and some of the documentation yesterday, and it's looking really good. however, i had a use case that doesn't look like it's supported, and i wonder if someone else has a suggestion.

let's say i have a controller with a number of faders, and i want them to control the parameters whose envelopes are active/visible on the selected track.

so if if track A has 2 envelopes, vol and pan, the controller's first two faders would control vol and pan.

but then if i click track B, which has 4 envelopes for the ADSR amp envelope of a synth, the first 4 faders would then control these parameters, instead.

is this possible? i looked into assigning the faders to TCP controls, but it just links to the parameter directly rather than a general "track X TCP control Y"

TLDR user wants ReaLearn to allow per-track active envelope assignments to auto-populate to the controller's faders
__________________
mccrabney scripts: MIDI edits from the Arrange screen ala jjos/MPC sequencer
|sis - - - anacru| isn't what we performed: pls no extra noteons in loop recording
| - - - - - anacru|sis <==this is what we actually performed.
mccrabney is offline   Reply With Quote
Old 02-11-2023, 07:16 AM   #3224
Fleeesch
Human being with feelings
 
Fleeesch's Avatar
 
Join Date: Apr 2011
Location: Germany
Posts: 172
Default

I took a look at the options / user guide, looks like targeting parameters by envelope index isn't available for Realearn. Sounds pretty handy nonetheless, could limit a lot of menu diving / bank switching.

Last edited by Fleeesch; 02-11-2023 at 11:04 AM.
Fleeesch is offline   Reply With Quote
Old 02-11-2023, 10:18 AM   #3225
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,660
Default

Quote:
Originally Posted by Fleeesch View Post
targeting parameters by envelope index
great summary, thanks, that'll be handy for the FR. yeah, i hope to see something like that. would be very convenient to have my endless encoders automatically populated by/learned to envelopes as i add automation to the track.
__________________
mccrabney scripts: MIDI edits from the Arrange screen ala jjos/MPC sequencer
|sis - - - anacru| isn't what we performed: pls no extra noteons in loop recording
| - - - - - anacru|sis <==this is what we actually performed.
mccrabney is offline   Reply With Quote
Old 02-13-2023, 12:01 AM   #3226
doghouse
Human being with feelings
 
Join Date: Dec 2011
Posts: 49
Default recalling SWS Snapshots with realearn?

Hi, i am just starting to wrap my head around realearn. But stumbled over this problem: i can not recall the snapshots made wit SWS. Did i miss something?
doghouse is offline   Reply With Quote
Old 02-13-2023, 05:09 AM   #3227
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,660
Default

hey helgoboss, the way you implemented press, longpress, doublepress etc is really smart
__________________
mccrabney scripts: MIDI edits from the Arrange screen ala jjos/MPC sequencer
|sis - - - anacru| isn't what we performed: pls no extra noteons in loop recording
| - - - - - anacru|sis <==this is what we actually performed.
mccrabney is offline   Reply With Quote
Old 02-13-2023, 05:36 PM   #3228
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by Vladistone View Post
engage attention to the strange behavior of the MIDI controller from the timer function:
when switching from an inactive Reaper window - a large number of idle timing loops are sent to the controller, which make the controller react for a long time (mostly waiting until all the feedback lights stop flashing). tell me - how can I disable this behavior of timer?
You are right. I think this only happens when "Preferences => Audio => Close audio device when stopped and application is inactivate" is ticked (which I personally always switch off). In this case, the audio engine doesn't run when REAPER is inactive and when it starts again, all enqueued messages will be sent to the device. Things pile up. It probably would be better to not send anything at all in that case or just send the latest message for the corresponding feedback element.
helgoboss is online now   Reply With Quote
Old 02-13-2023, 05:38 PM   #3229
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by ivan_ef View Post
Question for Mackie Control Surface users:
I would like to use realearn to display fx plugins parameter names on Mackie Scribble LCD.
I found realearn doesn't support parameter names natively. I used {mapping names} for Scribble instead and {plugin names} for main presets but it takes too much time to make mapping group for each parameter of each effect. For example waves has different names for mono and stereo plugins.

Is there any other simple way to display fx parameter names on Mackie LCD?
Look for "target.fx_parameter.name" in the user guide. Did you try that?
helgoboss is online now   Reply With Quote
Old 02-13-2023, 05:45 PM   #3230
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by TyPie View Post
Benjamin,
Many thanks for your fantastic work!

Wondering if you have plans to support the Arturia Minilab 3. (a cool little controller!)

Edited to add:
Since I posted above, I did a read of the Realearn instructions, and I see that I should be able to easily map the controls.
I'm looking forward to getting up and running with this.
Ah yes. The best thing is to map it yourself. When I mapped the MiniLab mkII, everything was straightforward aka learnable. Except for the pad LEDs, they needed custom sys-ex. Have a look at the MiniLab mkII preset. Maybe MiniLab 3 works the same way?
helgoboss is online now   Reply With Quote
Old 02-13-2023, 05:50 PM   #3231
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by mccrabney View Post
hello, i bought ReaLearn a long time ago but haven't used it much until now due to some issues that have now been resolved.

i dove into the vst and some of the documentation yesterday, and it's looking really good. however, i had a use case that doesn't look like it's supported, and i wonder if someone else has a suggestion.

let's say i have a controller with a number of faders, and i want them to control the parameters whose envelopes are active/visible on the selected track.

so if if track A has 2 envelopes, vol and pan, the controller's first two faders would control vol and pan.

but then if i click track B, which has 4 envelopes for the ADSR amp envelope of a synth, the first 4 faders would then control these parameters, instead.

is this possible? i looked into assigning the faders to TCP controls, but it just links to the parameter directly rather than a general "track X TCP control Y"

TLDR user wants ReaLearn to allow per-track active envelope assignments to auto-populate to the controller's faders
Where did you buy ReaLearn? It's free, actually

This is an interesting use case and not possible right now. But it would just be a matter of adding a new target type. At first I was gonna write "adding a new FX parameter selector", but envelopes can be multiple things.

Please add a feature request on GitHub!
helgoboss is online now   Reply With Quote
Old 02-13-2023, 05:56 PM   #3232
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by doghouse View Post
Hi, i am just starting to wrap my head around realearn. But stumbled over this problem: i can not recall the snapshots made wit SWS. Did i miss something?
What did you try so far? It should be just a matter of picking the right action in target "Project: Invoke REAPER action".

You also might be interested in ReaLearn's own snapshot solution (targets "ReaLearn: Take/load mapping snapshots".
helgoboss is online now   Reply With Quote
Old 02-13-2023, 07:17 PM   #3233
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default

Quote:
Originally Posted by helgoboss View Post
You are right. I think this only happens when "Preferences => Audio => Close audio device when stopped and application is inactivate" is ticked (which I personally always switch off). In this case, the audio engine doesn't run when REAPER is inactive and when it starts again, all enqueued messages will be sent to the device. Things pile up. It probably would be better to not send anything at all in that case or just send the latest message for the corresponding feedback element.
Thanks for the help Benjamin. I will try these recommendations today. I had read before about this method of troubleshooting audio engine problems, but I didn't realize the relationship between audio and MIDI messages. now I will know!

Quote:
Originally Posted by helgoboss View Post
Look for "target.fx_parameter.name" in the user guide. Did you try that?
I have tried these target destination options but have not been able to display data on channels strip LCD monitors. maybe I'm missing details in the glue settings?
I also tried to study the feedback to several scribble strip at the same time (Where FX titles are longer than 7 MCU LCD segments). By analogy, as it is implemented in Logic surface control:
- when the length of the feedback string is distributed over several nearby elements of LCD screens. Without cutting off a line of text.
But I have not been able to figure out the principle of calculating the required space for a message and the logic of distributing parts of a word over neighboring elements of the MPC/TPC track channels.
Benjamin, do you have any idea about the logic of such a distribution as shown in the video?
https://youtu.be/G6D226-MfKE
Vladistone is offline   Reply With Quote
Old 02-13-2023, 07:31 PM   #3234
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by Vladistone View Post
I have tried these target destination options but have not been able to display data on channels strip LCD monitors. maybe I'm missing details in the glue settings?
I also tried to study the feedback to several scribble strip at the same time (Where FX titles are longer than 7 MCU LCD segments). By analogy, as it is implemented in Logic surface control:
- when the length of the feedback string is distributed over several nearby elements of LCD screens. Without cutting off a line of text.
But I have not been able to figure out the principle of calculating the required space for a message and the logic of distributing parts of a word over neighboring elements of the MPC/TPC track channels.
Benjamin, do you have any idea about the logic of such a distribution as shown in the video?
https://youtu.be/G6D226-MfKE
In order to display text feedback of any kind, you need to set source section to MIDI / Display / Mackie LCD. In the glue section, you need to switch to "Textual feedback: Text expression". Then you can enter text into the text field below and it should appear on the display. In the source section, you can select display "All" and line "2" in order to merge all channel strip LCD monitors into one, occupying the second line. If you do that, no other active mapping should interact with those portions of the displays. Doing so would cause display conflicts. Doing more fine-grained layout logic is currently not possible with the "Mackie LCD" source. If you need that, "MIDI script" source is the way to go ... but it forces you to write the complete display logic yourself, which can be overwhelming.
helgoboss is online now   Reply With Quote
Old 02-13-2023, 08:22 PM   #3235
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,126
Default

Quote:
Originally Posted by indigomirage View Post
Thank you! It occurred to me yesterday that maybe the right answer is to use a custom curve shaped like a square wave - fully on or fully off. That way you never have to worry about hitting the very highest value on the pitch wheel. I'm not fully sure how to script that _yet_ (in EEL?) but it seems achievable.

My main use case is for switching banks, but I would settle for using the PW as a scrub controller if I can't wrangle a way to display highest level folders for banks as opposed to individual tracks. Baby steps though...

Working through this I continue to be grateful for the power of ReaLearn. If I get some decent templates going I will post...


Edit - although I figured out how to write an EEL glue/curve script, I couldn't get it to fire the event only once, so incrementally, the events furred for every tiny movement of the PW. So close... Yet so far...
I have no idea why it didn't work when I tried it last time but I looked into it again, and the following setup works ("Import from clipboard"). Moving the pitch bend up will scrub forward, releasing it will do nothing. Moving the pich bend down will scrub backward, releasing it will do nothing.

Code:
{
    kind = "MainCompartment",
    version = "2.14.3",
    value = {
        mappings = {
            {
                id = "OiV0Pm_L97uVnBBNdK-td",
                name = "PItch wheel: Scrub backward",
                source = {
                    kind = "MidiPitchBendChangeValue",
                    channel = 0,
                },
                glue = {
                    absolute_mode = "MakeRelative",
                    source_interval = {0, 0.5},
                    out_of_range_behavior = "Ignore",
                    step_size_interval = {0.01, 0.05},
                    encoder_filter = "DecrementOnly",
                },
                target = {
                    kind = "ReaperAction",
                    command = 992,
                    invocation = "Relative",
                },
            },
            {
                id = "mUuYGIEXEQ1oYLkt-uDvH",
                name = "PItch wheel: Scrub forward",
                source = {
                    kind = "MidiPitchBendChangeValue",
                    channel = 0,
                },
                glue = {
                    absolute_mode = "MakeRelative",
                    source_interval = {0.5, 1},
                    out_of_range_behavior = "Ignore",
                    step_size_interval = {0.01, 0.05},
                    encoder_filter = "IncrementOnly",
                },
                target = {
                    kind = "ReaperAction",
                    command = 992,
                    invocation = "Relative",
                },
            },
        },
    },
}
helgoboss is online now   Reply With Quote
Old 02-13-2023, 08:46 PM   #3236
Vladistone
Human being with feelings
 
Join Date: Jul 2022
Posts: 80
Default

Quote:
Originally Posted by helgoboss View Post
...In the source section, you can select display "All" and line "2" in order to merge all channel strip LCD monitors into one, occupying the second line. If you do that, no other active mapping should interact with those portions of the displays. Doing so would cause display conflicts. Doing more fine-grained layout logic is currently not possible with the "Mackie LCD" source. If you need that, "MIDI script" source is the way to go ... but it forces you to write the complete display logic yourself, which can be overwhelming.
I got it! Thanks too much
Vladistone is offline   Reply With Quote
Old 02-14-2023, 04:58 AM   #3237
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,660
Default

Quote:
Originally Posted by helgoboss View Post
Where did you buy ReaLearn? It's free, actually

This is an interesting use case and not possible right now. But it would just be a matter of adding a new target type. At first I was gonna write "adding a new FX parameter selector", but envelopes can be multiple things.

Please add a feature request on GitHub!
ha! i must have donated instead then - like i say, it was years ago, in the Before Times
edit, it wasn't even that long ago, i donated in 2021

see you on GitHub with a FR. thanks for your consideration.
__________________
mccrabney scripts: MIDI edits from the Arrange screen ala jjos/MPC sequencer
|sis - - - anacru| isn't what we performed: pls no extra noteons in loop recording
| - - - - - anacru|sis <==this is what we actually performed.
mccrabney is offline   Reply With Quote
Old 02-14-2023, 09:58 AM   #3238
mccrabney
Human being with feelings
 
mccrabney's Avatar
 
Join Date: Aug 2015
Posts: 3,660
Default

hm, i'm trying to show an empty FX chain using
Type: "FX chains: Browse FX"
and Display: "FX Chain (limited feedback)"

but i get "Failed to hit target: FX not available"

am i doing something wrong, or is this setup not able to show an empty FX chain? after adding an arbitrary FX, this action works as expected.
__________________
mccrabney scripts: MIDI edits from the Arrange screen ala jjos/MPC sequencer
|sis - - - anacru| isn't what we performed: pls no extra noteons in loop recording
| - - - - - anacru|sis <==this is what we actually performed.
mccrabney is offline   Reply With Quote
Old 02-14-2023, 08:53 PM   #3239
BaronStinky
Human being with feelings
 
BaronStinky's Avatar
 
Join Date: Oct 2007
Location: Portland, OR
Posts: 252
Default

Can realearn work with HUI? I have an older board with HUI control, just wondering if it's worth investigating realearn or if I'd be spinning my wheels needlessly. I tried searching this thread, but didn't come up with anything. The user guide mentions HUI with the Mackie Control preset, but that doesn't seem to work at all.
__________________
www.radiounready.com
BaronStinky is offline   Reply With Quote
Old 02-15-2023, 07:40 AM   #3240
doghouse
Human being with feelings
 
Join Date: Dec 2011
Posts: 49
Default

Quote:
Originally Posted by helgoboss View Post
What did you try so far? It should be just a matter of picking the right action in target "Project: Invoke REAPER action".

You also might be interested in ReaLearn's own snapshot solution (targets "ReaLearn: Take/load mapping snapshots".
well, i spent some time on it but perhaps more important i watched all of your videos.
Great help but i think the process of defining the targets is a little shortcoming.
I thougt "learning" is by just clicking with the mouse on an action, but this does NOT work with a lot of targets. i.e. the recalling of a SWS snapshot or the click on the mute button of an additional hardware output. I understand that you are focused on some fancy features like transforming but i think you somehow lost the compass (i bet you know i am from germoney too now) on what and in wich order a newbie need the infos to get startet. Btw., i did not found anything comparable to the SWS snapshot system in realearn. My plan is to use realearn mostly for intergrating hardware outboard Fx, some AUX sends to them and recalling Mixerscenes (SWS snapshot cover that very well). I am used to dub classic reggae on a hardwaredesk and would love to keep it simple and straight forward.
Right now i am using quite a lot reaper custom actions and some realearn mapping mostly when i need an encoder button but wonderung if it would be possible just to use realearn alone.
doghouse is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:57 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.