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

Reply
 
Thread Tools Display Modes
Old 01-17-2022, 06:30 AM   #1921
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 97
Default

Quote:
Originally Posted by helgoboss View Post
ReaLearn has a target named "Track: Set touch state" or similar, too lazy to look up the name at the moment You need to map the touch/release events sent by your touch-capable controller (or TouchOSC in your case) to this target, then writing automation in touch mode works as intended.

However, even without that, it shouldn't result in erratic data to be written. The only negative effect should be that it keeps overwriting existing automation data even you have taken your finger from the touchscreen already. So if you get erratic data, maybe something else is wrong?
Amazing! Thank you! I kept reading that as a function to change automation modes. I blame lack of sleep. This is really great and will likely yield the control I've been trying to build since switching to Reaper!
mks is offline   Reply With Quote
Old 01-17-2022, 04:31 PM   #1922
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 97
Default

I wanted to ask about one aspect that can hopefully find solutions with Realearn. Having a good time over here getting my controllers setup It was two questions but I solved the OSC text string situation.

Is there any way to have the track order follow either the mixer or arrange visibility? Specifically, ignoring folded folder tracks? Currently I’m playing with track selections and the dynamic assignment function. Combined with reaper track selection snapshots. Which may ultimately be more powerful, albeit a bit slower to work with. Perhaps there’s some use of “dynamic” that would follow track visibility of Reaper.

Thanks. Realearn has become really amazing!

Last edited by mks; 01-17-2022 at 07:27 PM.
mks is offline   Reply With Quote
Old 01-18-2022, 12:06 PM   #1923
jimosity
Human being with feelings
 
Join Date: Jul 2007
Location: Cincinnati, Ohio
Posts: 33
Default ReaLearn note to PC

I've been playing with ReaLearn and I'm not quite sure how if it can do this, and if so, how to get there.
I'd like to take an incoming midi note from a controller and have it map to a specific Program Change. Is that possible?
jimosity is offline   Reply With Quote
Old 01-18-2022, 03:18 PM   #1924
Mavriq
Human being with feelings
 
Mavriq's Avatar
 
Join Date: Aug 2016
Location: Thunder Bay, Canada
Posts: 275
Default ReaLearn Bank Monitor

Some users have requested a way to be able to monitor which bank is active. I put together a script that allows this.

[edit]

At this point it just displays the bank and track information in the script window itself, but I'm looking to expand that further. Looking for feedback on what people may want.

The script will switch out the track layouts so you can highlight which ones are active.


Bank 1. Tracks 1-8 Knobs Red to Indicate they are active

Last edited by Mavriq; 01-19-2022 at 09:25 PM.
Mavriq is offline   Reply With Quote
Old 01-19-2022, 04:01 PM   #1925
Miscreant
Human being with feelings
 
Miscreant's Avatar
 
Join Date: Mar 2012
Posts: 247
Default

I have a question about using a Boss FS-5L Latching footswitch as a controller. (https://www.sweetwater.com/store/det...ing-footswitch).

This footswitch is 'latching' because it has discrete on/off states: one press turns and keeps it on; one more press turns and keeps it off. I have this footswitch hooked up via a regular guitar cable to my midi controller, which is a Yamaha Motif 7.

Previously I used my Motif's sustain pedal to execute the following actions:

1. Two presses: play metronome
2. One press: play/stop w.o pre-roll
3. One (longer) press: record with metronome

Here is a screenshot of the settings: https://imgur.com/rYG9Ra8 Everything works great.

I am now trying to execute the same actions with the Boss FS-5L (so I can free up my sustain pedal for...sustain). But unfortunately I cannot get it working as (1)-(3) describe.

The only functionality I get is after a double-press of the footswitch, action (2) above runs. But, as my screenshot shows, this action should run after only a single (quick) press.

I figure the issue I am running into stems from the fact that this Boss pedal is latching and therefore has discrete on/off states, unlike the sustain pedal. But I am not certain.

So my question is: what configuration (if any) will allow me to run actions (1)-(3) above in the way I currently trigger them with my sustain pedal (i.e. double press, one press, one longer press)?

EDIT #2: are all my problems solved simply by returning this and getting the unlatched pedal instead? https://www.sweetwater.com/store/det...ing-footswitch

Last edited by Miscreant; 01-19-2022 at 06:58 PM. Reason: Speeling
Miscreant is offline   Reply With Quote
Old 01-19-2022, 06:16 PM   #1926
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,856
Default

Quote:
Originally Posted by jimosity View Post
I'd like to take an incoming midi note from a controller and have it map to a specific Program Change. Is that possible?
It's not a MIDI translator. MIDI-Ox can do that, though it's not the most user-friendly program. There are probably plugins that do as well.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 01-20-2022, 02:51 AM   #1927
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by Reaktor:[Dave] View Post
Thanks, that's working!

I'm trying to page through the parameters of my virtual instruments, but still with the conversion to MIDI CCs workflow. The basic setup looks like this:
1) one ReaLearn instance as InputFX, converting incoming MIDI messages to specific MIDI CCs that fit the current page of parameters of the track's VSTi. No Feedback is set up at this stage, this is purely done to reroute my fader messages to the respective CCs that a certain VSTi expects as input.
Ah okay, so here you use ReaLearn as a simple MIDI converter in order to conform to the VSTi's internal CC-to-parameter mapping (you can't use ReaLearn because you don't write automation envelopes and therefore offline rendering wouldn't work). BTW, this part could also be done using JSFX.

Quote:
Originally Posted by Reaktor:[Dave] View Post
2) one ReaLearn instance before the VSTi, letting through matched and unmatched events, purely for creating feedback to my controller:
2.1) textual feedback to the channel's display line #1 displaying the plugin's parametername
2.2) numeric feedback to the channel's display line #2 displaying the plugin's parameter value
What's the "Feedback output" of that instance?

Quote:
Originally Posted by Reaktor:[Dave] View Post
2.3) conversion from the MIDI CC message to the VSTi's parameter (purely for making feedback work for the two points above)
Mmh, this one I don't get. Why do you need that? Feedback for 2.1 and 2.2 should work without having any additional mapping?

Quote:
Originally Posted by Reaktor:[Dave] View Post
2.4) conversion from the MIDI CC message to the controller's original input message via "MIDI: Send message" to the feedback output (this one is where I'm having problems with)
This one I don't get either. Why not just use 2.1 and 2.2 and use your controller output device as "Feedback output"? Then you can put that ReaLearn instance actually anywhere. It doesn't have to be in the same chain.


Quote:
Originally Posted by Reaktor:[Dave] View Post
I'd expect this setup to take my controllers input, convert it so the messages arrive at the CC numbers expected by the VSTi (this one is working) and also send feedback to the faders of my control surface (this one only works partially). Feedback to the display is working fine (only when track is record-enabled, works fine during playback, when stopped and when changing the parameter from within the VSTi). But feedback to the faders has some problems like it's always being sent during playback disregarding whether the track is actually record-enabled. It's also not working when changing a parameter from within the VSTi's GUI.
Well, I'm not completely getting the feedback part, see my points above. There shouldn't be any MIDI CC conversion necessary for the feedback direction. You need that conversion only for control direction (for making offline rendering work).

Quote:
Originally Posted by mks View Post
I wanted to ask about one aspect that can hopefully find solutions with Realearn. Having a good time over here getting my controllers setup It was two questions but I solved the OSC text string situation.

Is there any way to have the track order follow either the mixer or arrange visibility? Specifically, ignoring folded folder tracks? Currently I’m playing with track selections and the dynamic assignment function. Combined with reaper track selection snapshots. Which may ultimately be more powerful, albeit a bit slower to work with. Perhaps there’s some use of “dynamic” that would follow track visibility of Reaper.

Thanks. Realearn has become really amazing!
Best open a FR at https://github.com/helgoboss/realearn/issues.

Quote:
Originally Posted by jimosity View Post
I've been playing with ReaLearn and I'm not quite sure how if it can do this, and if so, how to get there.
I'd like to take an incoming midi note from a controller and have it map to a specific Program Change. Is that possible?
Quote:
Originally Posted by foxAsteria View Post
It's not a MIDI translator. MIDI-Ox can do that, though it's not the most user-friendly program. There are probably plugins that do as well.
ReaLearn also can act as MIDI translator (target "MIDI: Send message"). If you want to map a specific note to a specific program change, no problem. "Learn source" the specific note and select "MIDI: Send message" target, pick "Program change", e.g. "Channel 1" and set both Target Min and Max to the same value (the desired program change value).

If you need more complicated stuff, I can strongly recommend writing JSFX.

Both approaches keep everything nicely within the REAPER project (something you can't achieve with MIDI-Ox).

Quote:
Originally Posted by gvanbrunt View Post
Some users have requested a way to be able to monitor which bank is active. I put together a script that allows this.
Cool! Let me know if you need deeper access to ReaLearn from ReaScript. I guess at the moment you just query VST parameter values, but there's this awesome feature "named parameters" of REAPER's VST extensions API, which lets a VST expose parameters that can have arbitrary names and arbitrary values, e.g. strings. If you need some, open a FR.

Quote:
Originally Posted by gvanbrunt View Post
I figure the issue I am running into stems from the fact that this Boss pedal is latching and therefore has discrete on/off states, unlike the sustain pedal. But I am not certain.
If this is the issue, you can choose source character "Toggle-only button (avoid!)" for that mapping. This source character interprets each incoming messages as "On", even the "Off" message

Quote:
Originally Posted by gvanbrunt View Post
So my question is: what configuration (if any) will allow me to run actions (1)-(3) above in the way I currently trigger them with my sustain pedal (i.e. double press, one press, one longer press)?


EDIT #2: are all my problems solved simply by returning this and getting the unlatched pedal instead? https://www.sweetwater.com/store/det...ing-footswitch

Please try above setting first. The main idea of ReaLearn is to work with any controller, allowing reuse of older stuff, not buying new stuff and saving the world from electrical waste
helgoboss is offline   Reply With Quote
Old 01-20-2022, 07:13 AM   #1928
Miscreant
Human being with feelings
 
Miscreant's Avatar
 
Join Date: Mar 2012
Posts: 247
Default

Quote:
Originally Posted by helgoboss View Post

If this is the issue, you can choose source character "Toggle-only button (avoid!)" for that mapping. This source character interprets each incoming messages as "On", even the "Off" message




Please try above setting first. The main idea of ReaLearn is to work with any controller, allowing reuse of older stuff, not buying new stuff and saving the world from electrical waste
Thanks, Helgo. I have been playing with the 'Toggle-only (avoid!)' setting, but unfortunately I am finding it unreliable.

For example, I can get it working most of the time to engage my 'play metronome' action with the 'fire on double press' setting. I say 'most of the time' because sometimes the double press doesn't engage and to get it working I have to re-learn the MIDI source. Similarly, if after engaging the action with the double press I press the foot controller once, then I cannot turn the action off with a double press. I have to stop the transport in other ways (e.g. with my typing keyboard).

For another, on 'Toggle-only (avoid!)' I cannot engage my two other assigned actions with one press timed between 100-500 ms, nor with one long press (>500ms). Neither setting gets any response in Reaper when I engage the footswitch.

Edit #1: I will add that one difference between the 'play metronome', which works, and the other two actions is that the 'play metronome' action is a toggle action (it records on/off states in Reaper). This might explain why the 'Toggle-only (avoid!)' setting does not work for these other two actions.

Last edited by Miscreant; 01-20-2022 at 07:20 AM.
Miscreant is offline   Reply With Quote
Old 01-20-2022, 07:36 AM   #1929
fbeauvaisc
Human being with feelings
 
Join Date: Nov 2018
Location: Montreal
Posts: 281
Default Icon Platform M+

Hi,

I've recently switched from an X-Touch compact to a Platform M+ controller. With the X-Touch, I was using the midi mode and it worked perfectly.

I only need a few motorized faders with midi feedback mostly selected track's volume and send levels. The rest is mapped to things like metronome volume, CC1, CC11, Last touch etc...

I'm using an instance of realearn 2 in the monitoring FX. I ran into issues with "User Defined" mapping with the M+. The fader would go crazy if I mapped more than 1 parameter. In my case, Selected Volume and Send Levels. With only 1 parameter mapped, it works flawlessly but mapping more than 1 makes the fader behave a little crazy.

So after reading in the manual that it worked better with "Mackie Control", I went with that and downloaded the M+ preset from Reapack. It solved the fader going crazy thing and I can now map a bunch of faders with midi feedback and all works well.

My main issue is that now, all faders use the motors and reverts to zero when not receiving parameters. For exemple, I tried to map a fader to metronome volume using "Invoke Reaper Action" and it works but as soon as I let go of the fader, the motors reverts to zero. Same goes with Global : Last touch parameter.

Is there a way to disable the motors on some faders. Disabling the midi feedback on those specific mapped faders does nothing. They still physically move back to zero when I let go of them.

I've tried to look through the manual but I couldn't find a solution for this.

Any thoughts?

Thanks!
fbeauvaisc is offline   Reply With Quote
Old 01-20-2022, 09:46 AM   #1930
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by Miscreant View Post
Thanks, Helgo. I have been playing with the 'Toggle-only (avoid!)' setting, but unfortunately I am finding it unreliable.

For example, I can get it working most of the time to engage my 'play metronome' action with the 'fire on double press' setting. I say 'most of the time' because sometimes the double press doesn't engage and to get it working I have to re-learn the MIDI source. Similarly, if after engaging the action with the double press I press the foot controller once, then I cannot turn the action off with a double press. I have to stop the transport in other ways (e.g. with my typing keyboard).

Edit #1: I will add that one difference between the 'play metronome', which works, and the other two actions is that the 'play metronome' action is a toggle action (it records on/off states in Reaper). This might explain why the 'Toggle-only (avoid!)' setting does not work for these other two actions.
Source, Glue, Target ... these are totally independent sections in ReaLearn. Looks like you have configured your source section correctly if it works in general, so I wouldn't worry about it anymore. Worry about your target choice instead. "Project: Invoke REAPER action" provides different ways to trigger REAPER actions. But all REAPER actions work differently, this is not so much under ReaLearn's control. If you need an action that toggles, you should find an action that toggles by itself. I've explained this in pretty much detail here in the user guide.


Quote:
Originally Posted by Miscreant View Post
For another, on 'Toggle-only (avoid!)' I cannot engage my two other assigned actions with one press timed between 100-500 ms, nor with one long press (>500ms). Neither setting gets any response in Reaper when I engage the footswitch.
There's no way measuring press duration can work with your button. If your button doesn't send a MIDI message when it's released, how can ReaLearn (or any other software) possibly know how long you have pressed it? If you need to distinguish between different press durations, you either need to configure your button to act as momentary button (e.g. send 127 on press and 0 on receive) or get a new controller which can do this. In both cases you don't need "Toggle-only (avoid!)" anymore (which is simply a hack for poor controllers that don't send messages on button release).

Quote:
Originally Posted by fbeauvaisc View Post
Hi,

I've recently switched from an X-Touch compact to a Platform M+ controller. With the X-Touch, I was using the midi mode and it worked perfectly.

I only need a few motorized faders with midi feedback mostly selected track's volume and send levels. The rest is mapped to things like metronome volume, CC1, CC11, Last touch etc...

I'm using an instance of realearn 2 in the monitoring FX. I ran into issues with "User Defined" mapping with the M+. The fader would go crazy if I mapped more than 1 parameter. In my case, Selected Volume and Send Levels. With only 1 parameter mapped, it works flawlessly but mapping more than 1 makes the fader behave a little crazy.

So after reading in the manual that it worked better with "Mackie Control", I went with that and downloaded the M+ preset from Reapack. It solved the fader going crazy thing and I can now map a bunch of faders with midi feedback and all works well.

My main issue is that now, all faders use the motors and reverts to zero when not receiving parameters. For exemple, I tried to map a fader to metronome volume using "Invoke Reaper Action" and it works but as soon as I let go of the fader, the motors reverts to zero. Same goes with Global : Last touch parameter.

Is there a way to disable the motors on some faders. Disabling the midi feedback on those specific mapped faders does nothing. They still physically move back to zero when I let go of them.

I've tried to look through the manual but I couldn't find a solution for this.

Any thoughts?

Thanks!
Does it work when you map the faders to something "normal" (not REAPER actions, they are special and bad with feedback, see my reply to the other question), such as track volume? Do they stay at the position of the volume?
helgoboss is offline   Reply With Quote
Old 01-20-2022, 10:51 AM   #1931
fbeauvaisc
Human being with feelings
 
Join Date: Nov 2018
Location: Montreal
Posts: 281
Default

Quote:
Originally Posted by helgoboss View Post


Does it work when you map the faders to something "normal" (not REAPER actions, they are special and bad with feedback, see my reply to the other question), such as track volume? Do they stay at the position of the volume?
Yes it works perfectly fine with selected send levels and selected track volume.

For reaper actions or global last touch parameter, even when I deactivate midi feedback, the faders always want to physically go back to zero in mackie control mode. They do work in the sens that they send the right values to the right parameters but the faders are always pulled back down by the motors.

Just to be clear, I don't want feedback on those fonctions like metronome volume, CC1 and CC11 and last touch parameter. I only want feedback on Selected track's Sends and Selected Track's Volume and that works well.

In midi mode the X-Touch works flawlessly but the Platform M+ in user define mode has issues when more than 1 parameter is set for midi feedback.
fbeauvaisc is offline   Reply With Quote
Old 01-20-2022, 06:49 PM   #1932
fbeauvaisc
Human being with feelings
 
Join Date: Nov 2018
Location: Montreal
Posts: 281
Default

My bad I got it working, I found out that with pitch bend, faders react better than with CC and it makes sens. I can't remember if I ran into this with the X-Touch.

So I now command the motorized fonctions with Pitch Bends messages and use CC for passive faders and it works perfectly.

Thanks!
fbeauvaisc is offline   Reply With Quote
Old 01-20-2022, 08:36 PM   #1933
Fergler
Human being with feelings
 
Fergler's Avatar
 
Join Date: Jan 2014
Posts: 4,762
Default

Why is it that ReaLearn can see OSC from Lemur but Reaper can't? o.0
__________________
Check out my hip-hop, funk-rock band Theatre Crisp
Fergler is offline   Reply With Quote
Old 01-22-2022, 05:43 AM   #1934
Reaktor:[Dave]
Human being with feelings
 
Reaktor:[Dave]'s Avatar
 
Join Date: Jun 2010
Location: Berlin
Posts: 512
Default

Quote:
Originally Posted by helgoboss View Post
Ah okay, so here you use ReaLearn as a simple MIDI converter in order to conform to the VSTi's internal CC-to-parameter mapping (you can't use ReaLearn because you don't write automation envelopes and therefore offline rendering wouldn't work). BTW, this part could also be done using JSFX.
True, this instance is just a MIDI converter. However, I want this to be paged, so clicking a button would jump to the next 8 parameters of the plugin that I have defined. I'm hoping to achieve this with ReaLearn.

Quote:
Originally Posted by helgoboss View Post
What's the "Feedback output" of that instance?
It's set to "D 400", the controller I'm using.

Quote:
Originally Posted by helgoboss View Post
Mmh, this one I don't get. Why do you need that? Feedback for 2.1 and 2.2 should work without having any additional mapping?
It's a Kontakt-specific (or maybe even a library-specific?) hack because Kontakt doesn't update its host parameters on incoming MIDI CCs. It isn't necessary for other plugins like u-he's plugins.

Quote:
Originally Posted by helgoboss View Post
This one I don't get either. Why not just use 2.1 and 2.2 and use your controller output device as "Feedback output"?
I still need to get feedback to the fader. 2.1 and 2.2 only target the controller's display. However, you're right, I don't need to convert the incoming MIDI CC data to the controller's feedback but I can create a mapping between the plugin's parameter and the virtual fader from the controller compartment. I just didn't think of that because at that stage, the controller's data has been converted already and needs to be converted back, but a mapping between the parameter and the controller compartment automatically does that!
Btw., I found a way to convert and feedback the incoming MIDI CC data to the controller by using "MIDI script (feedback only)" as source. But your suggestion is better!

Quote:
Originally Posted by helgoboss View Post
Then you can put that ReaLearn instance actually anywhere. It doesn't have to be in the same chain.
So I could put this instance in the monitor fx chain? How could I scale this approach to support multiple Kontakt libraries from that one instance?
Reaktor:[Dave] is offline   Reply With Quote
Old 01-22-2022, 04:13 PM   #1935
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,856
Default

Quote:
Originally Posted by Fergler View Post
Why is it that ReaLearn can see OSC from Lemur but Reaper can't? o.0
The Reaper OSC system knows it's obsolete so it just doesn't even try anymore.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 01-23-2022, 06:13 PM   #1936
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 97
Default Parameter does not release write automation

I'm trying to write automation in touch mode, and it seems the parameter does not release once touched. Is this intended behaviour?
mks is offline   Reply With Quote
Old 01-24-2022, 01:28 AM   #1937
BenjyO
Human being with feelings
 
Join Date: Nov 2011
Posts: 165
Default

Is it possible to get textual feedback using only MIDI? I believe SysEx messages should be able to do it but I'm not sure. I've been banging my head over this for the last couple of days but I'm not getting any closer and feel like I'm way over my head. I'll appreciate any help.

Here's what I'm trying to achieve:
I'm using an iPad and the new TouchOSC app as my controller and I want to get textual feedback (e.g. track name or track's volume value) back to TouchOSC and display it in a "label control". I know this can be done with OSC but I want to avoid OSC for the following reason: I want to be able to use the ReaLearn mappings offline through a wired connection. TouchOSC supports wired connections but only for MIDI (through TouchOSC Bridge). So as far as I understand all of this, if I want to have an offline set-up, I need to figure out a way to do this over MIDI.

Here's what I've done so far:
I've managed to send SysEx messages from TouchOSC to ReaLearn by creating a "button control" in TouchOSC and setting its MIDI message to "F0 00 20 6B 7F 42 02 00 10 77 00 F7" SysEx message (following the first example in the ReaLearn user guide). I mapped that message via the "Raw MIDI / SysEx" control type to a track's volume fader. According to the user guide that message sends a 100 % value and when pressing that button in TouchOSC, the track's fader in Reaper really moves to its maximum value. I couldn't get any feedback however. I monitored through ReaLearn's own outgoing messages log and through TouchOSC's own messages log. I do have feedback enabled and I tried out all of the feedback options for this mapping but nothing worked. My next attempt would be to change that "button control" in TouchOSC to a "label control" and see where I can get from there but I got stuck here.

Also I'm using latest ReaLearn pre-release version.

So, does anyone have an idea of what I can try next or where I made a mistake? I feel like I'm missing something here.

Also: Where can I easily (or is that asking for too much?) learn what kind of SysEx messagest to use in the first place and how to convert them into meaningful text or numbers in TouchOSC? The new TouchOSC has powerful lua scripting capabilites which I've tried out already so I believe translation of incoming SysEx messages should be possible. I read the section about this topic in ReaLearn's user guide but I don't get it ... :/
How does one know that "F0 00 20 6B 7F 42 02 00 10 77 00 F7" means a 100 % value? AFAIK SysEx messages are sort of like OSC: you - the manufacturer of a MIDI hardware device or the user of TouchOSC where you can set up the SysEx message - define what they mean.
__________________
My music on YT | My music on BandCamp
BenjyO is offline   Reply With Quote
Old 01-24-2022, 03:48 AM   #1938
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by BenjyO View Post
Is it possible to get textual feedback using only MIDI? I believe SysEx messages should be able to do it but I'm not sure. I've been banging my head over this for the last couple of days but I'm not getting any closer and feel like I'm way over my head. I'll appreciate any help.

Here's what I'm trying to achieve:
I'm using an iPad and the new TouchOSC app as my controller and I want to get textual feedback (e.g. track name or track's volume value) back to TouchOSC and display it in a "label control". I know this can be done with OSC but I want to avoid OSC for the following reason: I want to be able to use the ReaLearn mappings offline through a wired connection. TouchOSC supports wired connections but only for MIDI (through TouchOSC Bridge). So as far as I understand all of this, if I want to have an offline set-up, I need to figure out a way to do this over MIDI.
I think you will keep your head banging much longer if you pursue this way. Unless TouchOSC is able to decode Mackie LCD text sys-ex data (or at least a sequence of ASCII bytes) and display it as text. Maybe it is (I haven't looked into scripting). Let's see if anyone chimes in and proves that it can.

But I think even if you could get it to work in theory, the clean way would be to make OSC work over wire. This is not so much a feature that TouchOSC should support, but your iPad and your machine running REAPER. As soon as you manage to establish a wired network connection between iPad and Mac/PC, you have it solved. That's possible I think, just not done very often. You'll probably need an ethernet adapter with lightning connector. Try to find some tutorials.

BTW, if you find a good solution getting wired ethernet to work, let me know. I haven't tried yet but it's on my agenda to check how that works.

Quote:
Originally Posted by BenjyO View Post
Also: Where can I easily (or is that asking for too much?) learn what kind of SysEx messagest to use in the first place and how to convert them into meaningful text or numbers in TouchOSC? The new TouchOSC has powerful lua scripting capabilites which I've tried out already so I believe translation of incoming SysEx messages should be possible. I read the section about this topic in ReaLearn's user guide but I don't get it ... :/
How does one know that "F0 00 20 6B 7F 42 02 00 10 77 00 F7" means a 100 % value? AFAIK SysEx messages are sort of like OSC: you - the manufacturer of a MIDI hardware device or the user of TouchOSC where you can set up the SysEx message - define what they mean.
Text via MIDI is going to be difficult unless TouchOSC supports decoding ASCII (ReaLearn and all the other Mackie-LCD-compatible software sends text as ASCII-encoded strings).

Numeric values encoded within SysEx messages can be received/sent by ReaLearn quite easily, but you need to tell it how it should extract and interpret that values - because as you say, it's not standardized. It's basically just a sequence of arbitrary bytes. Described in great detail in the user guide: https://github.com/helgoboss/realear...aw-midi-source

Update: If you want to send/receive numeric values via MIDI and you are the one who decides over what MIDI messages are used, don't use sys-ex, use plain old 3-byte MIDI messages, e.g. CC. Much easier.

Last edited by helgoboss; 01-24-2022 at 04:05 AM.
helgoboss is offline   Reply With Quote
Old 01-24-2022, 03:51 AM   #1939
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by mks View Post
I'm trying to write automation in touch mode, and it seems the parameter does not release once touched. Is this intended behaviour?
What kind of parameter are you talking about?
helgoboss is offline   Reply With Quote
Old 01-24-2022, 04:47 AM   #1940
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 97
Default

Quote:
Originally Posted by helgoboss View Post
What kind of parameter are you talking about?
Seems like any parameter I’ve tried to target so far (various native plug-in parameters). As soon as I adjust the parameter value via the source or even the little slider in Realearn: it begins to write, but never lets go. This happens from a stopped state too. If I adjust the value, it latches and and I need to start/stop to let it go.
mks is offline   Reply With Quote
Old 01-24-2022, 04:54 AM   #1941
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by mks View Post
Seems like any parameter I’ve tried to target so far (various native plug-in parameters). As soon as I adjust the parameter value via the source or even the little slider in Realearn: it begins to write, but never lets go. This happens from a stopped state too. If I adjust the value, it latches and and I need to start/stop to let it go.
Generally, in automation mode Touch, the DAW/ReaLearn needs a way of knowing when you release a fader/knob. For track volume/pan/width, you do this via the "Track: Set automation touch state" target. The preset combination "Mackie Control" + "DAW control" preset supports this already.

There's an open issue for adding a touch target for FX parameters, too: https://github.com/helgoboss/realearn/issues/474. Easy to add but just a bit lower on my priority list at the moment.
helgoboss is offline   Reply With Quote
Old 01-24-2022, 05:21 AM   #1942
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 97
Default

Quote:
Originally Posted by helgoboss View Post
Generally, in automation mode Touch, the DAW/ReaLearn needs a way of knowing when you release a fader/knob. For track volume/pan/width, you do this via the "Track: Set automation touch state" target. The preset combination "Mackie Control" + "DAW control" preset supports this already.

There's an open issue for adding a touch target for FX parameters, too: https://github.com/helgoboss/realearn/issues/474. Easy to add but just a bit lower on my priority list at the moment.
Ah. That makes sense. I got excited about the new version when I thought those were added Ironically, I found a post I made about it when I first tried a few years ago. lol. No worries though and you've been doing great work!! Unfortunately, the primary reason I really use controllers is to write automation. And almost always in touch mode. I'll keep an eye on that open issue and will integrate Realearn one day hopefully.

As an aside: it would be amazing if the (parameter and touch) mappings somehow could be automatically paired or at least visible in the same mapping. My dream is to be able to quickly add mappings to OSC controls as a mix happens and have touch mode work fairly quickly without separately configuring that for each parameter. But that's a totally different request. Just having them there would be amazing and a key feature for me.
mks is offline   Reply With Quote
Old 01-24-2022, 06:49 AM   #1943
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by mks View Post
Ah. That makes sense. I got excited about the new version when I thought those were added Ironically, I found a post I made about it when I first tried a few years ago. lol. No worries though and you've been doing great work!! Unfortunately, the primary reason I really use controllers is to write automation. And almost always in touch mode. I'll keep an eye on that open issue and will integrate Realearn one day hopefully.

As an aside: it would be amazing if the (parameter and touch) mappings somehow could be automatically paired or at least visible in the same mapping. My dream is to be able to quickly add mappings to OSC controls as a mix happens and have touch mode work fairly quickly without separately configuring that for each parameter. But that's a totally different request. Just having them there would be amazing and a key feature for me.
Best if you vote for that issue. That tells me someone is really interested and I might actually implement it sooner.
helgoboss is offline   Reply With Quote
Old 01-24-2022, 07:06 AM   #1944
mks
Human being with feelings
 
Join Date: Dec 2011
Posts: 97
Default

Quote:
Originally Posted by helgoboss View Post
Best if you vote for that issue. That tells me someone is really interested and I might actually implement it sooner.
Will do. Does Reaper have the equivalent of "TRACK_VOLUME_TOUCH" implemented via it's OSC functionality? I don't see it in the default list but perhaps that's a new feature or unlisted? FX_PARAM_TOUCH isn't a thing unfortunately
mks is offline   Reply With Quote
Old 01-24-2022, 05:37 PM   #1945
Sound asleep
Human being with feelings
 
Sound asleep's Avatar
 
Join Date: Nov 2009
Location: Montreal, Canada
Posts: 8,143
Default

Just a small suggestion, there is a warning that comes up when you try to save a certain way which is basically "what you're doing makes little sense for saving a patch you would use with many projects, do you want me to change things so they make more sense?" The default here is yes, which will change everything. This is I guess 2 suggestions in one. First part would be to rephrase the question in such a way that "yes" saves it as originally requested. Maybe just "Do you want to save anyway? Choosing no will do the following instead." Something like that. And/or a little checkbox that says "don't ask me this again" would be cool.

The default usually in programs is that "yes" carries forward with the actual command, even though results might not be desired, like saving over the same filename is a very common one. So, having it this way, can easily have people quickly not reading it, and just choosing yes out of habit, knowing they're saving over the same thing, and if they do that, it changes everything, and writes over the old preset, which is a significant bummer.

Thankfully I have not yet done this lol. But I could definitely see myself doing it.
Sound asleep is offline   Reply With Quote
Old 01-24-2022, 05:46 PM   #1946
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,856
Default

Quote:
Originally Posted by Sound asleep View Post
Just a small suggestion, there is a warning that comes up when you try to save a certain way
This comes up if you have added any mappings and not edited them. I already mentioned to helgoboss that new mappings create this issue, but check the bottom of your list and you can probably delete the unassigned actions and not be bothered with the popup. It wont' change "everything" tho if you click Yes.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 01-24-2022, 06:55 PM   #1947
Sound asleep
Human being with feelings
 
Sound asleep's Avatar
 
Join Date: Nov 2009
Location: Montreal, Canada
Posts: 8,143
Default

Quote:
Originally Posted by foxAsteria View Post
This comes up if you have added any mappings and not edited them. I already mentioned to helgoboss that new mappings create this issue, but check the bottom of your list and you can probably delete the unassigned actions and not be bothered with the popup. It wont' change "everything" tho if you click Yes.
I think this is something different than what you experienced. It is a warning that the method I used to assign tracks by ID will only work for this particular project. Like if I open a new project, those tracks won't be there. So it wants to assign them to track number, or something like that, I forget.

But I have track templates I use, so it will work as a preset with lots of other projects I have.
Sound asleep is offline   Reply With Quote
Old 01-24-2022, 11:52 PM   #1948
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 11,642
Default

Hi HelgoBoss.
Thanks fpor your great Work !
Is there, will there bi a version of ReaLearn for the RasPi ?

Background: A friend of mine is building a Guitar Effect Pedal or Rack based on that hardware. Test work with great success and very low latency. He might need to control the thing via OSC/WiFi.

Thanks again,
-Michael
mschnell is online now   Reply With Quote
Old 01-25-2022, 10:47 AM   #1949
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,856
Default

Quote:
Originally Posted by Sound asleep View Post
I think this is something different than what you experienced. It is a warning that the method I used to assign tracks by ID will only work for this particular project.


That one? Yes it concerned me as well until I realized it was just the unedited mappings.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 01-25-2022, 10:55 AM   #1950
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by mschnell View Post
Hi HelgoBoss.
Thanks fpor your great Work !
Is there, will there bi a version of ReaLearn for the RasPi ?

Background: A friend of mine is building a Guitar Effect Pedal or Rack based on that hardware. Test work with great success and very low latency. He might need to control the thing via OSC/WiFi.

Thanks again,
-Michael
There is already, both 32-bit and 64-bit.

BTW, will reply other questions later, not much time at the moment.
helgoboss is offline   Reply With Quote
Old 01-25-2022, 02:57 PM   #1951
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 11,642
Default

Quote:
Originally Posted by helgoboss View Post
There is already, both 32-bit and 64-bit.
GREAT !!!!
-Michael
mschnell is online now   Reply With Quote
Old 01-26-2022, 07:06 AM   #1952
yop22
Human being with feelings
 
Join Date: Mar 2020
Posts: 13
Default Glitches in touch mode

Does anyone else experience issue when recording automation in touch mode through Realearn ?
As you can see on the picture, the recorded automation looks like a sawtooth.
I'm using TouchOSC and the issue occurs with MIDI and OSC protocols (it doesn't when recorded via Reaper native OSC).
I've also tried from an Arturia controller and it does the same.
Recording automation in latch or write mode is fine.
Attached Images
File Type: jpg automation.JPG (36.1 KB, 35 views)
__________________
Win 10, Avid S3, RME UCX
yop22 is offline   Reply With Quote
Old 01-26-2022, 09:15 AM   #1953
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by yop22 View Post
Does anyone else experience issue when recording automation in touch mode through Realearn ?
As you can see on the picture, the recorded automation looks like a sawtooth.
I'm using TouchOSC and the issue occurs with MIDI and OSC protocols (it doesn't when recorded via Reaper native OSC).
I've also tried from an Arturia controller and it does the same.
Recording automation in latch or write mode is fine.
This happens when you forgot to create a mapping with target "Track: Set automation touch state". The whole point of automation mode "Touch" is that it allows you to tell REAPER when you release a control so it can stop writing automation. If you need that, create a mapping from the TouchOSC touch event to the mentioned target. If you don't need that, there's no reason to use automation mode Touch.
helgoboss is offline   Reply With Quote
Old 01-26-2022, 12:44 PM   #1954
Sound asleep
Human being with feelings
 
Sound asleep's Avatar
 
Join Date: Nov 2009
Location: Montreal, Canada
Posts: 8,143
Default

Quote:
Originally Posted by foxAsteria View Post


That one? Yes it concerned me as well until I realized it was just the unedited mappings.
That's the popup, ya. It might be coming up for similar reasons for you and I, but in my case choosing yes will change the way I have the tracks mapped. I currently select them to be mapped via ID. This way I have "Percussion" "Bass" "guitar" "piano" "Keys" "orchestra" "vocals" etcetera in a default project. So, every project I have is that way now. that gives me 9 general top level categories, and my keyboard 1-9 skips to each. I also have a midi controller that's mapped to each of these for mute and and solo and level. So, when I'm at my piano, I can solo any group, mute any group, and change the volume for any group. Any group in any project. For record arm, I need to map it for each case, but that's ok. If I use "by position" or track number or whatever, these will be in different spots all the time, so it won't work. If I select "yes" on that dialog box, it's going to change all the mappings to position, or something like that. I'm pretty sure I've done before.
Sound asleep is offline   Reply With Quote
Old 01-26-2022, 07:59 PM   #1955
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,856
Default

Quote:
Originally Posted by Sound asleep View Post
choosing yes will change the way I have the tracks mapped. I currently select them to be mapped via ID.
But if you have a consistent naming system going in all your projects, why can't you just target by name? That's what I do for my VCA master tracks and I've got a similar setup as well.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 01-27-2022, 04:06 AM   #1956
BenjyO
Human being with feelings
 
Join Date: Nov 2011
Posts: 165
Default

Quote:
Originally Posted by helgoboss View Post
I think you will keep your head banging much longer if you pursue this way. Unless TouchOSC is able to decode Mackie LCD text sys-ex data (or at least a sequence of ASCII bytes) and display it as text. Maybe it is (I haven't looked into scripting). Let's see if anyone chimes in and proves that it can.
Thanks for your reply helgoboss. I was being hardheaded and decided to continue pursuing this path anyway. I asked a similar question in a facebook group named TouchOSC Templates Makers (There's also a discord server named "TouchOSC"). There several people confirmed that TouchOSC Bridge seems to have a bug and it doesn't send SysEx messages back to your device from your computer. They recommended I try another virtual MIDI cable named "RtpMIDI". I did and it works.

Anyway, for anyone interested in this: I was able to decode Mackie LCD text sys-ex data with the help of this guide on GitHub: Understanding Mackie Control Protocol. Another issue arose however. The TouchOSC manual states that you can only receive SysEx messages on the root level (the root control of the TouchOSC layout document) and they can only be processed with scripting (lua). I managed to write a simple lua snippet which prints out the decoded SysEx message in the Script tab of TouchOSC's message log:
Code:
function onReceiveMIDI(message, connections)
  if (message[1] == 240) then
    local messageLen = #message
    local output = "" 
    for i=8, messageLen - 1, 1 do
      output = output .. string.char(message[i])
    end
    output = string.gsub(output, '^%s*(.-)%s*$', '%1') -- whitespace trim
    print(output)
  end
end
You can then use these values then to dynamically update the text of Label controls and I managed to that as well but it was too laggy for my taste - I think RtpMIDI induces more latency than TouchOSC Bridge. The fact that you then have to write a filter script on the root control for all of these SysEx messages is also not appealing ... So I guess that in the end I'll have to go the OSC route.

Quote:
Originally Posted by helgoboss View Post
But I think even if you could get it to work in theory, the clean way would be to make OSC work over wire. This is not so much a feature that TouchOSC should support, but your iPad and your machine running REAPER. As soon as you manage to establish a wired network connection between iPad and Mac/PC, you have it solved. That's possible I think, just not done very often. You'll probably need an ethernet adapter with lightning connector. Try to find some tutorials.

BTW, if you find a good solution getting wired ethernet to work, let me know. I haven't tried yet but it's on my agenda to check how that works.
I wanted to avoid buying adapters but now after I've learned all of the stuff I wrote above, I'll probably go down that route and I'll let you know if I succeed.

Quote:
Originally Posted by helgoboss View Post
Update: If you want to send/receive numeric values via MIDI and you are the one who decides over what MIDI messages are used, don't use sys-ex, use plain old 3-byte MIDI messages, e.g. CC. Much easier.
I want text values as well (track names, units etc.) so CC isn't an option. Thanks anyway!
__________________
My music on YT | My music on BandCamp
BenjyO is offline   Reply With Quote
Old 01-27-2022, 04:40 AM   #1957
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,154
Default

Quote:
Originally Posted by BenjyO View Post
You can then use these values then to dynamically update the text of Label controls and I managed to that as well but it was too laggy for my taste - I think RtpMIDI induces more latency than TouchOSC Bridge. The fact that you then have to write a filter script on the root control for all of these SysEx messages is also not appealing ... So I guess that in the end I'll have to go the OSC route.

I wanted to avoid buying adapters but now after I've learned all of the stuff I wrote above, I'll probably go down that route and I'll let you know if I succeed.
Good to know though that it's possible using MIDI for that, at least in theory. Pretty powerful, the new TouchOSC.

Quote:
Originally Posted by BenjyO View Post
I want text values as well (track names, units etc.) so CC isn't an option. Thanks anyway!

You could use sys-ex for text and short MIDI messages for numeric stuff. But anyway, good that you will pursue the OSC way.
Looking forward to know what you will find out.
helgoboss is offline   Reply With Quote
Old 01-27-2022, 07:37 AM   #1958
cjewellstudios
Human being with feelings
 
Join Date: Sep 2017
Posts: 998
Default

Regarding ethernet adapters:

For iPads running iOS 10 or later, you buy a USB camera connection kit (I think that's what they are called) and a regular usb to ethernet adapter. You need iOS 10 or later because it will detect an ethernet adapter some ethernet settings will be available in the main settings menu. This allows you to see the IP easily which is essential for two way communication. I run an older iPad air 2 this way and its rock solid.
cjewellstudios is offline   Reply With Quote
Old 01-27-2022, 07:47 AM   #1959
BenjyO
Human being with feelings
 
Join Date: Nov 2011
Posts: 165
Default

I have a few new questions:

1. How can I convert an OSC message to a MIDI message with FX Output? The user guide has left me confused. It says that it only works if control input is set to <FX input>. If I do that however, my OSC device (iPad) doesn't connect with ReaLearn and no OSC messages can come in. How was this envisioned? I'm sure I'm missing something again.

2. Is it possible to get current region names as textual feedback (the region in which the edit or play cursor resides)? I tried the "Marker/region: Go to" target but the only textual feedback I receive is "On" or "Off" depending on whether the cursor is inside the region.
__________________
My music on YT | My music on BandCamp
BenjyO is offline   Reply With Quote
Old 01-27-2022, 07:51 AM   #1960
BenjyO
Human being with feelings
 
Join Date: Nov 2011
Posts: 165
Default

Quote:
Originally Posted by cjewellstudios View Post
Regarding ethernet adapters:

For iPads running iOS 10 or later, you buy a USB camera connection kit (I think that's what they are called) and a regular usb to ethernet adapter. You need iOS 10 or later because it will detect an ethernet adapter some ethernet settings will be available in the main settings menu. This allows you to see the IP easily which is essential for two way communication. I run an older iPad air 2 this way and its rock solid.
That's good to know. I do have a lightning to USB adapter already and my iPad is running the latest OS so it should work. Thanks for pointing it out.
__________________
My music on YT | My music on BandCamp
BenjyO 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 - 2022, vBulletin Solutions Inc.