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

Reply
 
Thread Tools Display Modes
Old 05-07-2022, 01:55 PM   #2241
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,868
Default

Quote:
Originally Posted by helgoboss View Post
When you had that data loss, it was actually ReaLearn's fault because it didn't notify REAPER about changes often enough. But that bug has been fixed
Interesting. I didn't know that was a bug. Still, working with the monitor fx chain does seem more volatile. E.g. if I accidentally delete the ReaLearn instance I've been working on, there's no undo and the changes are lost.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 05-07-2022, 02:14 PM   #2242
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by foxAsteria View Post
I too had to learn this the hard way. I had hundreds of mappings at that point, but only lost a days worth of changes since I was in the habit of saving my work as a Reaper preset.

Suggest you do the same, or as helgoboss suggested to me when I reported the issue, work with the plugin on a track until it's finished and then move to monitor fx. That way it gets saved in project autosaves. I did already request an autosave feature in ReaLearn so that could be in our future.


Quote:
Originally Posted by helgoboss View Post
When you had that data loss, it was actually ReaLearn's fault because it didn't notify REAPER about changes often enough. But that bug has been fixed, so in sensapaz's case it's probably something else. I'll put a warning in the quickstart section.

One big advantage of the controller compartment for MIDI is that you can give the control element descriptive names. Or you can easily save a whole controller standard such as Mackie Universal Control as controller preset. With OSC, this is usually not too useful because OSC control elements already have descriptive names (the address) and everyone tends to use a custom template anyway. I personally also skip the controller compartment when using OSC.

Quote:
Originally Posted by foxAsteria View Post
Interesting. I didn't know that was a bug. Still, working with the monitor fx chain does seem more volatile. E.g. if I accidentally delete the ReaLearn instance I've been working on, there's no undo and the changes are lost.

Thank you both for all the tips and discussion (and foxAsteria for remembering my questions from another thread). Especially the frequent preset saving and doing planning work with realearn on a track, not mon fx. Excellent point on lack of undo for mon fx work.

For me it was very strange. ReaLearn on mon fx reverted not to a default state, but to my very first config (connection, one mapping).

I had been doing extensive pin routing work on mon fx before that strange reversion (maybe also some fx adds and drag and drop re-arrange).
sensapaz is offline   Reply With Quote
Old 05-09-2022, 04:58 AM   #2243
Hanswurst
Human being with feelings
 
Hanswurst's Avatar
 
Join Date: Dec 2015
Location: Germany
Posts: 51
Default

Hi, I just started setting up my Tascam US-2400 with ReaLearn and have some questions:

1. This device is massive, 24 channels, each with motorized fader with 14 bit resolution, solo/rec/mute button and endless rotary, plus a bunch of extra elements, about ~175 control elements all in all. Is there a risk of running into performance issues with ReaLearn? Iím not planning to use all control elements at once, though I mainly want to set it up for controlling synth VSTs.

2. Is there a way to funnel data into the companion app without using the GUI, maybe by hacking backend files for the local web app? Iím thinking about writing a Python script to set up at least some of the elements automatically, if this data is somehow accessible.
Hanswurst is offline   Reply With Quote
Old 05-09-2022, 08:11 AM   #2244
vonglan
Human being with feelings
 
Join Date: Oct 2019
Location: LŁbeck, Germany
Posts: 33
Default

Quote:
Originally Posted by Hanswurst View Post
Hi, I just started setting up my Tascam US-2400 with ReaLearn and have some questions:

1. This device is massive, 24 channels, each with motorized fader with 14 bit resolution, solo/rec/mute button and endless rotary, plus a bunch of extra elements, about ~175 control elements all in all. Is there a risk of running into performance issues with ReaLearn? Iím not planning to use all control elements at once, though I mainly want to set it up for controlling synth VSTs.

2. Is there a way to funnel data into the companion app without using the GUI, maybe by hacking backend files for the local web app? Iím thinking about writing a Python script to set up at least some of the elements automatically, if this data is somehow accessible.
I haven't discovered any performance issues yet, and I have really big mapping presets.
Exception: with the Reaktor VST as a target (for Monark), because it seems to offer its parameters with a strange resolution, I get a lag (delay) sometimes when I turn knobs quickly.

By the way, check out my analog synth ReaLearn presets here: https://github.com/vonglan/realearn-sy-presets
Maybe it is worthwhile for you, to create an US-2400 to SY controller preset.
(You would then get the mapping to all the VSTs mentioned in that github project without further work.)
vonglan is offline   Reply With Quote
Old 05-09-2022, 09:20 AM   #2245
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

Quote:
Originally Posted by Hanswurst View Post
2. Is there a way to funnel data into the companion app without using the GUI, maybe by hacking backend files for the local web app? Iím thinking about writing a Python script to set up at least some of the elements automatically, if this data is somehow accessible.
There is and it's probably easier than you think. No hacking necessary, at least no ugly one The companion control element data such as location/look/etc is not saved on the mobile device or in the web browser, it's saved by ReaLearn as part of the controller preset.

When using the Companion App, you will find a "customData" property in the controller preset JSON file. Example:

Code:
{

  ...

  "customData": {
    "companion": {
      "controls": [
        {
          "height": 32,
          "id": "0aa55949-ea14-404e-b3af-3c8a85ed50c7",
          "labelOne": {
            "angle": 0,
            "position": "center",
            "sizeConstrained": true
          },
          "labelTwo": {
            "angle": 0,
            "position": "belowBottom",
            "sizeConstrained": true
          },
          "mappings": [
            "col3/row1/pad"
          ],
          "shape": "rectangle",
          "width": 96,
          "x": 256,
          "y": 0
        },

...
So all you need to do is to generate some JSON. Upcoming 2.13.0-pre.4 will make that even easier: It lets you use Lua to generate this data structure and you don't even need to save it as a preset. It will be saved together with the project.

BTW, if someone wants to write another app interfacing with ReaLearn and wants to save data together with the preset, this open design makes it possible (just use a different customData key, not "companion".
helgoboss is offline   Reply With Quote
Old 05-09-2022, 10:04 AM   #2246
Hanswurst
Human being with feelings
 
Hanswurst's Avatar
 
Join Date: Dec 2015
Location: Germany
Posts: 51
Default

Quote:
Originally Posted by vonglan View Post
By the way, check out my analog synth ReaLearn presets here: https://github.com/vonglan/realearn-sy-presets
Thanks, Iíll check it out! And itís a bit of a relief to know performance is not an issue

Quote:
Originally Posted by helgoboss View Post
When using the Companion App, you will find a "customData" property in the controller preset JSON file.
Wow, thatís much easier then I could have hoped Love the idea of using JSON throughout the backend of ReaLearn and the app, makes it so much more hacking friendly than any cryptic custom format would. Iíll definitely check this out when Iím back at my audio rig. Having a second display for the US-2400 showing mappings for current FX would be a little dream coming true (never found a way to integrate it into my creative workflow due to the lacking displays, and for mixing I preferred simple single fader devices).

By the way, are the IDs just random values or is there something to be aware of when trying to generate them outside of ReaLearn?
Hanswurst is offline   Reply With Quote
Old 05-09-2022, 10:13 AM   #2247
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

Quote:
Originally Posted by Hanswurst View Post
By the way, are the IDs just random values or is there something to be aware of when trying to generate them outside of ReaLearn?
Mmh, good question. I would need to peek into the companion code to be sure but I think it doesn't matter, it's just a string. Just try it, if it complains about this thing not being a valid UUID, then you know I was wrong
helgoboss is offline   Reply With Quote
Old 05-13-2022, 11:54 AM   #2248
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

Released ReaLearn 2.13.0-pre.4 (ReaPack installation instructions)

Changes:
- Improved integrated Playtime 2 Clip Engine to be ready for a first presentation (see video on YouTube)
- #42 Added possibility to target FX parameters shown in track control panel by using the new variables tcp_fx_indexes and tcp_fx_parameter_indexes in dynamic FX and FX parameter expressions
- #556 Added context menu action "Dry-run Lua script from clipboard"
- #557 Added support for importing JSON presets via "Import from clipboard"
- #559 Added possibility to write MIDI scripts in Lua
- #561 Added possibility to map text feedback to numeric source values (API-only, feedback_value_table)
- #570 Added new activation condition type "Expression" (which lets one use the same expression language in activation conditions that's also used for dynamic selectors)
- #501 Improved virtual feedback message logging by logging them even if no match found
- #209 Improved bank-based conditional activation by showing value labels of discrete parameters as bank names
- #569 Improved projection by making it possible to use without saving a controller preset (projection widget settings are now saved together with the ReaLearn instance)
- #563 Fixed feedback for virtual controller mappings by sending "Off" when not in use
- #565 Fixed feedback for virtual controller mappings if they are inactive
- #566 Fixed missing feedback on activation changes when replacing all parameters
- #468 Fixed "Make relative" by preventing jump when controlling previously deactivated mapping again
- #574 Fixed pre-release regression that made "FX: Set parameter value" target have no effect under certain conditions

The biggest change in this pre-release are the improvements of Playtime's new Clip Engine, which is built into ReaLearn and now has an introduction video which I will post here in a few hours.
helgoboss is offline   Reply With Quote
Old 05-13-2022, 01:10 PM   #2249
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

And here it is:



Watch the video if you are interested in finding out what the upcoming Playtime 2 has to do with ReaLearn.
helgoboss is offline   Reply With Quote
Old 05-14-2022, 11:12 AM   #2250
Regisfofo
Human being with feelings
 
Regisfofo's Avatar
 
Join Date: Mar 2017
Location: France
Posts: 568
Default

Awesome !


Edit :
It seems there's a problem with reacomp. When controlled via realearn each controls are laggy and jumpy...
Win10 reaper 6.57

Last edited by Regisfofo; 05-14-2022 at 02:42 PM.
Regisfofo is offline   Reply With Quote
Old 05-14-2022, 06:37 PM   #2251
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by helgoboss View Post
Yes, use a "FX: " target, not a "FX parameter: " target. Otherwise the parameter will be taken into account and if the targeted FX doesn't have that parameter, the target will turn inactive.
Hi Helgo. I am a little delayed in my reply here.

Context refresher:

I was asking about 'textual feedback'
In my example, I want to send the name of fx position 1 on the master track
I was asking how to configure the target (fx position 1 on master track) to have it adapt to changes made to the fx chain (i.e., if fx1 changes, report the correct name immediately).

I got this to work as follows:

Type = FX: Set parameter Value
Track = <Master>
FX = by position = 1
Parameter = by name = Bypass

I chose Parameter arbitrarily. I just want to report the name of the plugin. But the mapping will only work if a plugin has a parameter named "Bypass."

So, you suggested the solution quoted above.

I assume you meant: don't choose type = FX: Set Parameter Value, but rather something like FX: Open/Close or FX Enable/ Disable (with limited variables).

The problem is either of those don't immediately report the plugin name to touchOSC, for example if I drag a new plugin to position 1. I need further action on the plugin for the name to feedback.

Using a parameter name was clumsy (and arbitrary) but it works instantly. As soon a the plugin occupying position 1 changes, the name is fed back immediately.

Is there another way to achieve this? That is: I want the name to update immediately, but without relying on the presence of an arbitrary name parameter (like "Bypass") in order to work?
sensapaz is offline   Reply With Quote
Old 05-14-2022, 06:57 PM   #2252
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by helgoboss View Post
Interesting, I need to test that. Which OS?
Win 10

(Refresher: this is regarding a UI lag in all VST3 plugins I tested from different developers.

Changes in the plugin UI report immediately to the realearn target mapping window AND to touchOSC, and changes in the relearn mapping report immediately to the plugin UI AND touchosc.

BUT, changes in touchosc do not report immediately to the plugin ui. The change appears only once the plugin window is made active.

This does not occur with VST2x instances of the same plugins.

All tested are 64 bit, no bridging.)
sensapaz is offline   Reply With Quote
Old 05-14-2022, 07:42 PM   #2253
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default controlling wet / dry by track and fx position

New question here.

I would like to control the wet / dry encoder that Reaper has for every fx in a chain.

In my case I want to call the encoder by track number and fx position, for example master track > fx position 1 > wet/dry encoder.

In the target mapping, the method that jumped out at me is calling the "wet" parameter by ID.

But, the ID for wet is different for different fx. So, if the fx in position 1 changes, so does the ID for wet, so it breaks the mapping (one might have wet in ID 23, another in 42, another in 17).

I'm hesitant to target the parameter by name = Wet, as I can't reliably foresee that every plugin will call the wet/dry control by the same name.

What's the best way to do this in realearn?
sensapaz is offline   Reply With Quote
Old 05-16-2022, 10:36 AM   #2254
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

Quote:
Originally Posted by sensapaz View Post
New question here.

I would like to control the wet / dry encoder that Reaper has for every fx in a chain.

In my case I want to call the encoder by track number and fx position, for example master track > fx position 1 > wet/dry encoder.

In the target mapping, the method that jumped out at me is calling the "wet" parameter by ID.

But, the ID for wet is different for different fx. So, if the fx in position 1 changes, so does the ID for wet, so it breaks the mapping (one might have wet in ID 23, another in 42, another in 17).

I'm hesitant to target the parameter by name = Wet, as I can't reliably foresee that every plugin will call the wet/dry control by the same name.

What's the best way to do this in realearn?
Quick reply to this one, other replies will follow later.

I would go for name = Wet at the moment. This is a fixed parameter provided by REAPER itself, not the plug-in. So its name will always be "Wet". The only problem you might run into is if a plug-in also provides its own "Wet" parameter.

The clean way to approach this would be that I add a "Wet" selector (in addition to "By name", "By ID", etc.). Feel free to open a feature request on GitHub.
helgoboss is offline   Reply With Quote
Old 05-17-2022, 11:16 AM   #2255
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by helgoboss View Post
Quick reply to this one, other replies will follow later.

I would go for name = Wet at the moment. This is a fixed parameter provided by REAPER itself, not the plug-in. So its name will always be "Wet". The only problem you might run into is if a plug-in also provides its own "Wet" parameter.

The clean way to approach this would be that I add a "Wet" selector (in addition to "By name", "By ID", etc.). Feel free to open a feature request on GitHub.
Thanks Helgo. Good point about possible conflict with plugins who offer their own wet control in addition to Reaper's.

It seems I am not off to a good start with my ideas, as a lot of what I'm trying to do requires some sort of workaround. I think I came in with the impression (unfarily perhaps) that realearn was sort of like OSC on steroids, or that it at least incorporates all of Reaper's native OSC capabilities.

For my purposes I may revert back to using OSC directly. But I also feel that perhaps I am overlooking what realearn's biggest strengths are. How do you see it? How are most users using it, and what is it doing that was either harder or impossible with other tools? Is it geared more towards interfacing controller hardware, or 'bridging' midi and OSC, rather than what I am doing (touchOSC exclusively for now)?
sensapaz is offline   Reply With Quote
Old 05-17-2022, 03:06 PM   #2256
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

Quote:
Originally Posted by sensapaz View Post
Thanks Helgo. Good point about possible conflict with plugins who offer their own wet control in addition to Reaper's.

It seems I am not off to a good start with my ideas, as a lot of what I'm trying to do requires some sort of workaround. I think I came in with the impression (unfarily perhaps) that realearn was sort of like OSC on steroids, or that it at least incorporates all of Reaper's native OSC capabilities.
ReaLearn has comprehensive MIDI and MCU support, but its OSC support definitely has room for improvement, in particular the feedback direction. When it comes to the control direction, ReaLearn can do quite a lot of things that REAPER's native OSC can't. But it's much less comprehensive regarding the possible information that you can send as feedback.

Quote:
Originally Posted by sensapaz View Post
For my purposes I may revert back to using OSC directly. But I also feel that perhaps I am overlooking what realearn's biggest strengths are. How do you see it? How are most users using it, and what is it doing that was either harder or impossible with other tools? Is it geared more towards interfacing controller hardware, or 'bridging' midi and OSC, rather than what I am doing (touchOSC exclusively for now)?
Thanks for asking. I wanted to summarize ReaLearn's strengths for a while already, so I'll just take that opportunity.

The way I see it, ReaLearn's perhaps biggest strengths compared to the alternatives are versatility and consistency. It's the kind of tool that you learn once and then use it for everything. In much the same way as REAPER itself, which is famous for being a sort of chameleon DAW that lends itself to more use cases than any other DAW: music making, sound engineering, podcasting, game audio, video, etc. ReaLearn shares REAPER's philosophy, with all the pros and cons that come with that.


It's versatile with regard to ...

1. Usage complexity

No matter if you want to add a few fine-tuned mappings or create a super complex controller integration, it has you covered and it scales. It's very easy to use for simple scenarios but doesn't limit you when you want to go deeper.

2. Source type

MIDI, MCU, OSC, QWERTY - ReaLearn does it all.

3. Usage scope

In-project mappings or global mappings. Both possible.

4. Approach / user skills

No matter if you prefer building your control scenario via GUI or leveraging the full power of a programming language, you can do it.

5. Operating system and platform

Whether Windows, macOS or Linux, whether dedicated DAW machine, Laptop or Raspberry Pi ... ReaLearn runs almost everywhere where REAPER runs.

6. Use case

It doesn't matter if you are ...

- an engineer who wants to build a very opinionated control surface integration
- a performer who wants to use a controller to perform live without a screen
- a composer who wants to use track MIDI data to control an arbitrary REAPER parameter
- a technician who wants to convert between different communication protocols (MIDI/OSC/keys)
- a loop artist who wants to trigger clips (new )
- a synth enthusiast who wants to create a uniform control system for all kinds of controllers and soft synths
- or all of that at once

... ReaLearn handles it.

7. Controller features

No matter if you have a super simple controller or a full-featured one, ReaLearn attempts to get the most out of it.

8. Combination of source/glue/target

You can freely combine the three, they are isolated from each other.


No matter if trivial or complex, GUI or Lua, MIDI or something else, the mechanism is consistent. At the end of the day, you just create a set of mappings, that's it.

ReaLearn is not perfect in each and every discipline but it's this combination of versatility and consistency which makes it great and unique in my opinion. Plus, it's in active development. So if you post a feature request, it will probably get implemented sooner or later.

In addition to that, it has loads of features, see this technical (albeit incomplete) feature matrix: https://docs.google.com/spreadsheets...it?usp=sharing
helgoboss is offline   Reply With Quote
Old 05-17-2022, 04:41 PM   #2257
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 8,868
Default

Quote:
Originally Posted by sensapaz View Post
For my purposes I may revert back to using OSC directly.
Really? I'm curious how you come to that conclusion. Sorry if I led you down the wrong path, but I'm not sure how that's even possible.

Why would you ever want to go back? I literally spent several years trying on and off to get native OSC to do what I wanted consistently and it would always hit a wall or stop working inexplicably.

Maybe a week with ReaLearn 2 and I solved all those problems and found a hundred better ways of doing almost everything.
__________________
Myyy Wyyyrd Musyyyck
foxAsteria is online now   Reply With Quote
Old 05-18-2022, 11:35 AM   #2258
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by foxAsteria View Post
Really? I'm curious how you come to that conclusion. Sorry if I led you down the wrong path, but I'm not sure how that's even possible.

Why would you ever want to go back? I literally spent several years trying on and off to get native OSC to do what I wanted consistently and it would always hit a wall or stop working inexplicably.

Maybe a week with ReaLearn 2 and I solved all those problems and found a hundred better ways of doing almost everything.
It's ok, you meant well

As Helgo addressed above, while ReaLearn can do things OSC can't, it doesn't do everything OSC can. The way it's talked about that's the opposite of what I expected.

I feel like OSC is somewhat maligned, and unfairly so. I look at the original intention of it, and I think what is offered in Reaper's default pattern file lives up to that for both control and feedback. Plenty to play with, especially from more of an engineers role. Yes, the way they've made the master track feedback significantly less than any other track for no apparent reason was making me crazy (as I detailed in my other thread), but hopefully that can be addressed. I see that as a UI bug, not an OSC limitation.

Also, because of the pattern file, half of the work is sort of done for you. There's really nothing to configure on the Reaper / host side (maybe just comment some things out to reduce the stream of OSC data you don't need, like meters and sample positions). With that half done for you, all you need to do is set up the controller side to follow the structure and variables, which I found to be pretty logical. I wouldn't go so far as to call it accessible -- which is a big shame -- but it works.

With ReaLearn, and no equivalent of a default pattern file, it sort of doubles my work (on top of missing things). Now I needed to configure the controller AND the host, both from scratch, in both directions, for every action. Also, because there is no inherent taxonomy or structure, if you don't formulate your own for how you name and call things, to me it can become chaotic pretty quickly (yes I saw the auto-rename mapping feature but that doesn't totally solve this). This makes it daunting to make changes down the road (and that sort of configuring is not something I want to be doing every day, so I'll forget half of what I knew when I set it up). I actually started using Reaper's OSC address format in ReaLearn just to keep things organized and in a consistent hierarchical order without reinventing the wheel. Put it all together and it is not the solution I was hoping for, at least for now.

Again, I'm working in an all-software realm, Reaper and touchOSC. If I had a myriad of hardware controllers I might feel differently, or if I needed to call very nuanced things that go beyond the scope of what OSC was intended to offer.
sensapaz is offline   Reply With Quote
Old 05-18-2022, 11:53 AM   #2259
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by helgoboss View Post
ReaLearn has comprehensive MIDI and MCU support, but its OSC support definitely has room for improvement, in particular the feedback direction. When it comes to the control direction, ReaLearn can do quite a lot of things that REAPER's native OSC can't.
This was a much needed sanity check. I came in with a different impression. See also my reply to foxAsteria on things that made it feel more cumbersome for my purposes than native OSC.


Quote:
Originally Posted by helgoboss View Post
Thanks for asking. I wanted to summarize ReaLearn's strengths for a while already, so I'll just take that opportunity.
I appreciate the vision that you delineated for it and the hard work that goes into it. Clearly it has helped a lot of users. It could just be me, but it continues to feel a little abstract as a replacement for things Reaper already does; maybe it's best for things Reaper can in no way yet do. For now, I have trouble connecting the vision to my own little corner of practical use.

I suspect this is planned already, but I would love to see short videos that show ReaLearn in action in perhaps a more relatable way. Where it presents an easier way to do a conventional thing: "here is the old way which sucks, and here is the simpler and faster ReaLearn way." Likewise, where it presents advanced /creative uses not possible through other means, show that. I suspect a lot of users on the sidelines may also appreciate this. Or maybe my first impression of it being 'OSC for the people' was way off base, and it really is designed for power users much more astute than I.
sensapaz is offline   Reply With Quote
Old 05-18-2022, 02:38 PM   #2260
helgoboss
Human being with feelings
 
Join Date: Aug 2010
Posts: 1,155
Default

Quote:
Originally Posted by sensapaz View Post
This was a much needed sanity check. I came in with a different impression. See also my reply to foxAsteria on things that made it feel more cumbersome for my purposes than native OSC.




I appreciate the vision that you delineated for it and the hard work that goes into it. Clearly it has helped a lot of users. It could just be me, but it continues to feel a little abstract as a replacement for things Reaper already does; maybe it's best for things Reaper can in no way yet do. For now, I have trouble connecting the vision to my own little corner of practical use.

I suspect this is planned already, but I would love to see short videos that show ReaLearn in action in perhaps a more relatable way. Where it presents an easier way to do a conventional thing: "here is the old way which sucks, and here is the simpler and faster ReaLearn way." Likewise, where it presents advanced /creative uses not possible through other means, show that. I suspect a lot of users on the sidelines may also appreciate this. Or maybe my first impression of it being 'OSC for the people' was way off base, and it really is designed for power users much more astute than I.
Oh looks like you really got the wrong impression. It's definitely not "OSC for the people".

Could it be possible that you didn't watch the ReaLearn introduction video? This should give a pretty vivid picture of what it is about. If not, then it's probably simply not what you need?
helgoboss is offline   Reply With Quote
Old 05-18-2022, 02:56 PM   #2261
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 7,537
Default

OK, first off, want to say congrats to you helgoboss, your software kicks butt man !

Want to also thank you for the comparison spreadsheet, although I should put some more effort into keeping it up to date -- like you, I'm the only coder, busily working on CSI

Not to hijack the thread, but to sensapaz, if neither ReaLearn or OSC is what you are looking for, might I suggest CSI.

A lot of users use CSI and TouchOSC, including me

It takes a bit of work to set up, but might be worth a look.

Not saying it is what you are looking for, just want to provide another possible alternative.

https://www.youtube.com/watch?v=byqWh4Ukni8
__________________
Software -- https://stash.reaper.fm/v/42437/CSI%20v1_1.zip
Donate -- via PayPal to [waddingtongeoff@gmail.com]

Wiki -- https://github.com/GeoffAWaddington/...ntegrator/wiki
Geoff Waddington is offline   Reply With Quote
Old 05-18-2022, 03:14 PM   #2262
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by helgoboss View Post
Oh looks like you really got the wrong impression. It's definitely not "OSC for the people".

Could it be possible that you didn't watch the ReaLearn introduction video? This should give a pretty vivid picture of what it is about. If not, then it's probably simply not what you need?
I learned about ReaLearn from replies to my thread about Reaper OSC and touchOSC. I didn't watch all of the hour long intro video because it focuses on midi and hardware controllers, where I use neither. For now, it is not the solution for me and not a direct substitute for OSC. I'll keep it in mind for other things.
sensapaz is offline   Reply With Quote
Old 05-18-2022, 03:35 PM   #2263
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 53
Default

Quote:
Originally Posted by Geoff Waddington View Post
OK, first off, want to say congrats to you helgoboss, your software kicks butt man !

Want to also thank you for the comparison spreadsheet, although I should put some more effort into keeping it up to date -- like you, I'm the only coder, busily working on CSI

Not to hijack the thread, but to sensapaz, if neither ReaLearn or OSC is what you are looking for, might I suggest CSI.

A lot of users use CSI and TouchOSC, including me

It takes a bit of work to set up, but might be worth a look.

Not saying it is what you are looking for, just want to provide another possible alternative.

https://www.youtube.com/watch?v=byqWh4Ukni8
Thanks Geoff for dropping by. For the time being I am going to stick to native OSC, which largely does what I need (barring a Reaper UI issue with the master track feeding back much less info than numbered tracks for no apparent reason). After the initial learning curve, the OSC structure and addressing makes sense to me and will get me 95% of the way to where I want to go. Also its focus on providing feedback is crucial to me (if I can't get Reaper and a control surface to mirror perfectly in both directions at all times I'm not interested). Getting that final 5% has turned into a bit of a rabbit hole that has zapped some of my initial inspiration.

I also don't want to bog down this thread with CSI questions. Let me know the best place to ask when the time comes and we'll pick it up there.

Thanks again to all for putting time into trying to help me out.
sensapaz is offline   Reply With Quote
Old 05-18-2022, 04:06 PM   #2264
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 7,537
Default

Quote:
Originally Posted by sensapaz View Post
Thanks Geoff for dropping by. For the time being I am going to stick to native OSC, which largely does what I need (barring a Reaper UI issue with the master track feeding back much less info than numbered tracks for no apparent reason). After the initial learning curve, the OSC structure and addressing makes sense to me and will get me 95% of the way to where I want to go. Also its focus on providing feedback is crucial to me (if I can't get Reaper and a control surface to mirror perfectly in both directions at all times I'm not interested). Getting that final 5% has turned into a bit of a rabbit hole that has zapped some of my initial inspiration.

I also don't want to bog down this thread with CSI questions. Let me know the best place to ask when the time comes and we'll pick it up there.

Thanks again to all for putting time into trying to help me out.
Agreed, I already felt bad about jumping on to this thread, if/when you want to check out CSI, here's a discussion on setup/config https://forum.cockos.com/showthread.php?t=245280 -- and you can get to the wiki from my sig below.

Best of luck, whichever way you choose
__________________
Software -- https://stash.reaper.fm/v/42437/CSI%20v1_1.zip
Donate -- via PayPal to [waddingtongeoff@gmail.com]

Wiki -- https://github.com/GeoffAWaddington/...ntegrator/wiki
Geoff Waddington is offline   Reply With Quote
Old 05-18-2022, 04:36 PM   #2265
Hanswurst
Human being with feelings
 
Hanswurst's Avatar
 
Join Date: Dec 2015
Location: Germany
Posts: 51
Default

Hi, I somehow managed to break the companion app for all my ReaLearn instances: I can no longer save edits in the app. After hitting the save icon, there is the usual success message at the bottom, but the changes just disappear. This happens for all my ReaLearn instances, no matter if I try to edit an existing layout in the app or create a new one. I tried the web app in Firefox and Chrome*, as well as the app proper on my Android. I also tried deleting the cache.

There is a slight possibility the problem started after updating to 2.13.0-pre.4. Haven't tried downgrading because I'm a little afraid of breaking my setup In any case, before all of that I managed to build a complete mapping for my US-2400, so in general everything was working up to a certain point.

(* by the way, seems performance in Chrome is much (!) better than in Firefox and even batch editing works if you ignore the selection glitch)
Hanswurst is offline   Reply With Quote
Old 05-18-2022, 05:07 PM   #2266
Hanswurst
Human being with feelings
 
Hanswurst's Avatar
 
Join Date: Dec 2015
Location: Germany
Posts: 51
Default

Also, after getting really deep into mapping with ReaLearn I have some suggestions that could make working with sprawling controllers and mappings a bit easier (at least it would in my case ^^):

1. It would be great if there was a way to shift a range or selection of targets without changing the sources and vice versa. For example, when mapping the 24 fader banks of the US-2400, I often missed a fader when going through each of them, maning I would have to go back, remapping each one after the one I missed, instead of just doing something like "shift all targets after source 5 down by 1" and then just remap source 5.

2. A way to batch set all mappings to Track: <Selected>/FX: <Focused> would be nice. I mainly use ReaLearn in Auto-load mode, mapping FX parameters by their position to dynamically target the currently opened FX. Unfortunately, ReaLearn defaults to Track: by position/FX by position for learning, so I have to manually change all learned parameters afterwards to selected/focused.

3. A way to auto-name mapping names by targeted FX parameters when targeting focused FX (like I described under 2.). This doesn't work at this point, because when using selected/focused targeting, the parameter names are only visible in the mapping window when the respective FX is focussed. It would be neat to have an option to access the last parameter name a specific mapping had and use it as the mapping name.

I hope this wasn't to confusing, feels a bit like talking from a deep mapping rabbit hole The journey has been worth it though!
Hanswurst is offline   Reply With Quote
Old 05-22-2022, 09:14 AM   #2267
souk21
Human being with feelings
 
souk21's Avatar
 
Join Date: Mar 2021
Posts: 134
Default

Hi helgoboss!
Is there a reason there's no "Learn single mapping" action? Similar to "ReaLearn: Learn single mapping (reassigning source)" but without reassigning ?
That would be useful to quickly setup a single source controlling multiple params.

Thanks again for all the work you put in this amazing extension
souk21 is offline   Reply With Quote
Old 05-22-2022, 10:21 AM   #2268
vonglan
Human being with feelings
 
Join Date: Oct 2019
Location: LŁbeck, Germany
Posts: 33
Default

Quote:
Originally Posted by Hanswurst View Post
1. It would be great if there was a way to shift a range or selection of targets without changing the sources and vice versa. For example, when mapping the 24 fader banks of the US-2400, ...
Sounds like creating mappings with Lua would help you a lot.
You only need a few programming skills. You can use a manually-created mapping, export it as Lua, then make the modifications (typically using a loop index) that are needed for multiplying it. Then paste the Lua coding back, and it gets expanded into many mappings. For example (not complete):

for i=1,8 do
for j=1,8 do
mapping = {
name = "Bank " .. i .. " Encoder " .. j,
group = group_prefix .. i,
source = {
kind = "MidiControlChangeValue",
feedback_behavior = "SendFeedbackAfterControl",
channel = 10,
controller_number = j,
character = "Relative1",
fourteen_bit = false,
},
glue = {
step_size_interval = {0.01, 0.05},
step_factor_interval = {1, 5},
},
target = {
kind = "Virtual",
id = "B8/Bk" .. i .. "Enc" .. j,
},
}
table.insert(mappings, mapping)
end
end

return {
kind = "Mappings",
value = mappings
}
vonglan 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 10:01 PM.


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