|
|
|
01-28-2023, 07:38 AM
|
#3201
|
Human being with feelings
Join Date: Oct 2020
Posts: 80
|
Quote:
Originally Posted by helgoboss
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.
|
|
|
01-28-2023, 10:27 AM
|
#3202
|
Human being with feelings
Join Date: Oct 2022
Posts: 4
|
Quote:
Originally Posted by helgoboss
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
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
|
|
|
01-29-2023, 07:43 AM
|
#3203
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
Quote:
Originally Posted by helgoboss
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?
|
|
|
01-29-2023, 09:21 AM
|
#3204
|
Human being with feelings
Join Date: Jan 2023
Posts: 16
|
Quote:
Originally Posted by helgoboss
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
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 ?
|
|
|
02-01-2023, 12:19 AM
|
#3205
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by indigomirage
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
|
|
|
02-01-2023, 12:22 AM
|
#3206
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by Trekopep
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
|
|
|
02-01-2023, 12:24 AM
|
#3207
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by Vladistone
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)?
|
|
|
02-01-2023, 12:27 AM
|
#3208
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by WelderOriginal
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.
|
|
|
02-01-2023, 09:43 AM
|
#3209
|
Human being with feelings
Join Date: Oct 2020
Posts: 80
|
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!
|
|
|
02-01-2023, 04:43 PM
|
#3210
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by indigomirage
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.
|
|
|
02-01-2023, 11:31 PM
|
#3211
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
Quote:
Originally Posted by helgoboss
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
|
|
|
02-02-2023, 08:00 AM
|
#3212
|
Human being with feelings
Join Date: Oct 2020
Posts: 80
|
Quote:
Originally Posted by helgoboss
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!
|
|
|
02-03-2023, 08:03 PM
|
#3213
|
Human being with feelings
Join Date: Jul 2010
Posts: 16
|
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!
|
|
|
02-04-2023, 02:50 PM
|
#3214
|
Human being with feelings
Join Date: Jan 2022
Posts: 5
|
Quote:
Originally Posted by helgoboss
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.
|
|
|
02-05-2023, 10:18 PM
|
#3215
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
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.
|
|
|
02-06-2023, 02:48 AM
|
#3216
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
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.
|
|
|
02-06-2023, 10:43 AM
|
#3217
|
Human being with feelings
Join Date: Jan 2010
Location: Fjugesta, Sweden
Posts: 813
|
Quote:
Originally Posted by helgoboss
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??
|
|
|
02-06-2023, 06:21 PM
|
#3218
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by tompad
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.
|
|
|
02-06-2023, 08:02 PM
|
#3219
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
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.
|
|
|
02-07-2023, 12:32 AM
|
#3220
|
Human being with feelings
Join Date: Jan 2010
Location: Fjugesta, Sweden
Posts: 813
|
Quote:
Originally Posted by helgoboss
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".
Last edited by tompad; 02-07-2023 at 11:10 AM.
|
|
|
02-08-2023, 12:13 PM
|
#3221
|
Human being with feelings
Join Date: Sep 2020
Location: Yaroslavl, Russia
Posts: 28
|
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.
|
|
|
02-10-2023, 08:32 AM
|
#3222
|
Human being with feelings
Join Date: Jun 2018
Posts: 23
|
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.
|
|
|
02-11-2023, 05:44 AM
|
#3223
|
Human being with feelings
Join Date: Aug 2015
Posts: 3,672
|
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
|
|
|
02-11-2023, 07:16 AM
|
#3224
|
Human being with feelings
Join Date: Apr 2011
Location: Germany
Posts: 177
|
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.
|
|
|
02-11-2023, 10:18 AM
|
#3225
|
Human being with feelings
Join Date: Aug 2015
Posts: 3,672
|
Quote:
Originally Posted by Fleeesch
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.
|
|
|
02-13-2023, 12:01 AM
|
#3226
|
Human being with feelings
Join Date: Dec 2011
Posts: 49
|
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?
|
|
|
02-13-2023, 05:09 AM
|
#3227
|
Human being with feelings
Join Date: Aug 2015
Posts: 3,672
|
hey helgoboss, the way you implemented press, longpress, doublepress etc is really smart
|
|
|
02-13-2023, 05:36 PM
|
#3228
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by Vladistone
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.
|
|
|
02-13-2023, 05:38 PM
|
#3229
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by ivan_ef
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?
|
|
|
02-13-2023, 05:45 PM
|
#3230
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by TyPie
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?
|
|
|
02-13-2023, 05:50 PM
|
#3231
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by mccrabney
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!
|
|
|
02-13-2023, 05:56 PM
|
#3232
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by doghouse
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".
|
|
|
02-13-2023, 07:17 PM
|
#3233
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
Quote:
Originally Posted by helgoboss
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
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
|
|
|
02-13-2023, 07:31 PM
|
#3234
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by Vladistone
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.
|
|
|
02-13-2023, 08:22 PM
|
#3235
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,199
|
Quote:
Originally Posted by indigomirage
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",
},
},
},
},
}
|
|
|
02-13-2023, 08:46 PM
|
#3236
|
Human being with feelings
Join Date: Jul 2022
Posts: 80
|
Quote:
Originally Posted by helgoboss
...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
|
|
|
02-14-2023, 04:58 AM
|
#3237
|
Human being with feelings
Join Date: Aug 2015
Posts: 3,672
|
Quote:
Originally Posted by helgoboss
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.
|
|
|
02-14-2023, 09:58 AM
|
#3238
|
Human being with feelings
Join Date: Aug 2015
Posts: 3,672
|
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.
|
|
|
02-14-2023, 08:53 PM
|
#3239
|
Human being with feelings
Join Date: Oct 2007
Location: Portland, OR
Posts: 253
|
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.
|
|
|
02-15-2023, 07:40 AM
|
#3240
|
Human being with feelings
Join Date: Dec 2011
Posts: 49
|
Quote:
Originally Posted by helgoboss
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.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 05:23 PM.
|