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

Reply
 
Thread Tools Display Modes
Old 05-04-2023, 07:16 AM   #3481
dna598
Human being with feelings
 
Join Date: Jul 2007
Posts: 660
Default

Quote:
Originally Posted by helgoboss View Post
Projection shows mapping names only, and only the ones that you enter manually, not the auto-generated ones. It doesn't show parameter names. I think there's an FR somewhere out there. I will probably improve projection at the end of this year.
Ah ok thanks!

Do you know how to get a bi-directional (multi) track selection on the encoder?

I have assigned the action "Xenakios/SWS: Select next tracks, keeping current selection", which works well only in one direction. Keeps on selecting.
I want to incrementally deselect the last track in the selection on turning the encoder backwards.

Any idea?
dna598 is offline   Reply With Quote
Old 05-04-2023, 07:36 AM   #3482
indigomirage
Human being with feelings
 
Join Date: Oct 2020
Posts: 78
Default Configurations for Maschine MK3 v2 (improved)

Hi there -

I put together a slightly improved (from my post last week) version of the controller and main maps for the Maschine MK3, with an included Maschine template map (loaded through Controller Editor).


Here's the link -

https://stash.reaper.fm/v/46798/Real...hineMK3-v1.zip

This is the start of a workable Realearn DAW control template for the Maschine MK3. There are some quirks as the MK3 MCU Faders operate as pitch wheels and are pretty much unusable, so I had to use V-Pots (typically reserved for pan).

The 'Select' button clears all track selections (so you can span banks if needed).

Improvement... I added a few things, like a mode to switch the V-Pots between Volume and Pan. And maybe a general mode to have Volume, Pan and Width for all selected. The challenge is limited LED display real estate - I may just override the first channel (of the bank) LED so show the current mode.

I use Dynamic (MCP) for the banks so that the bank channels skip that which is not visible.

To switch modes, use the 'Arranger' button on the MK3.

-Multi view, let's you set volume, pan, width for selected tracks. Also has master volume and two monitor send levels (I use one for main, and one for headphones)

-Volume

-Pan

-Width

The 'mixer' button will set bank back to zero - like a home button. Handy in case things go haywire.

The Follow Grid button will toggle the scrub wheel between coarse and fine, and the Next/Previous buttons (mapped to Erase/Tap) will toggle between next/prev region (mark) and next/prev measure.

Mute and Solo buttons on the MK3 will mute/solo the selected tracks.

The MK3 Select button will clear the current selection.

I did a modification to the Marviq bank monitor script to highlight the MCP buttons based on the bank, but accounting for the visibility of the tracks. I will probably upload that elsewhere as I don't want to step on toes. (Marvriq has indicated that he may add the new feature)

I obviously used the core Realearn presets as a template here, but the MK3 is quirky enough that I needed to start anew.

I had some trouble getting selection start and end buttons to work, and had no luck getting arrange view zoom to work. Will keep at it.

Ultimately, there's a lot more that can be done, but most of the changes are things that you'll want to customize for yourselves.

Have fun, and let me know if this is useful!
indigomirage is offline   Reply With Quote
Old 05-04-2023, 11:40 AM   #3483
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by muech011 View Post
Not exactly what I'm looking for but a good start. My concerns are mainly because of the Reaper GUI which has a lot to handle with several "Select Region" coming short after. I needed also to add a "Transport: Stop" Event as a Mapping for each PCM (just one mapping for all PCM) to be sure that Reaper is Stopped after executing the "Select Region".

If I map a "Program Change" to an action script, is it possible to access the Program Number in the script? The ReaLearn User Guide says it is in the control value.

Sorry for all the questions. Just want to check different options. And learning, learning, learning
Oh I see. Yes, if you turn the wheel and ReaLearn immediately processes the messages, it will jump quickly between regions. That could be a bit much. You really need "debouncing" that works across multiple mappings.

The following transformation in general debounces, but it only affects one mapping:

Code:
// Ignores control values that come in in close succession.
// Finally, When it detects that the fader/knob hasn't been
// moved for a while, it emits the last control value.

// Parameters

timeout_in_ms = 500;

// Code

y = rel_time < timeout_in_ms ? none : stop(x);
I've thought a bit about what ReaLearn would need to make this possible: https://github.com/helgoboss/realearn/issues/852

But there's one way to achieve it already now: Write a little JSFX that debounces the incoming MIDI messages of a certain type. Then set ReaLearn input to "FX input", so it sees the debounced messages instead of the original ones. How about that?

Concerning accessing the program change number: Yes, look for get_action_context function in ReaScript. Make sure you use a recent version of REAPER, otherwise this might not return the correct value.

Quote:
Originally Posted by BenjyO View Post
@helgoboss, Is there a way to get textual feedback for {{target.track.index}} but one-based? I want to see the track number as it is shown in Reaper's TCP or MCP which is not zero-based.
Quote:
Originally Posted by indigomirage View Post
I have a very similar question - is there anyway to do any rudimentary text/string manipulation on the textual feedback? I'm thinking things like left/left trim, etc. Maybe some conditionals?

(And the non-zero based would be a subset of the ability to do some basic scripting/manipulation.)
Both of you, please comment/vote here: https://github.com/helgoboss/realearn/issues/757

Quote:
Originally Posted by dna598 View Post
Ah ok thanks!

Do you know how to get a bi-directional (multi) track selection on the encoder?

I have assigned the action "Xenakios/SWS: Select next tracks, keeping current selection", which works well only in one direction. Keeps on selecting.
I want to incrementally deselect the last track in the selection on turning the encoder backwards.

Any idea?
I experimented a bit but couldn't find a good way to do this without ReaScript, just with ReaLearn. So you better write a ReaScript for this and trigger it with ReaLearn ("Project: Invoke REAPER action").
helgoboss is offline   Reply With Quote
Old 05-04-2023, 01:39 PM   #3484
dna598
Human being with feelings
 
Join Date: Jul 2007
Posts: 660
Default

Quote:
Originally Posted by helgoboss View Post

I experimented a bit but couldn't find a good way to do this without ReaScript, just with ReaLearn. So you better write a ReaScript for this and trigger it with ReaLearn ("Project: Invoke REAPER action").
Ah cool.

I got chatgpt to write these 2 scripts that work as actions for incrementing and decrementing the track selection. I just can't get it to combine them into something that works in Realearn. Wanna take a look?

Increment track selection:

Code:
-- Define the function that will be called when the encoder is turned clockwise
function selectNextTrack()
    -- Get the current track selection
    local selTracks = {}
    local totalTracks = reaper.CountTracks(0)
    for i = 1, totalTracks do
        if reaper.IsTrackSelected(reaper.GetTrack(0, i-1)) then
            table.insert(selTracks, i)
        end
    end
    
    -- Select the next track
    if #selTracks > 0 then
        local nextTrack = selTracks[#selTracks] + 1
        if nextTrack <= totalTracks then
            reaper.SetTrackSelected(reaper.GetTrack(0, nextTrack-1), true)
        end
    else
        -- If no track is selected, select the first track
        reaper.SetTrackSelected(reaper.GetTrack(0, 0), true)
    end
end

-- Define the function that will be called when the script is run
function main()
    -- Get the current value of the "incremental" action command
    local _, _, _, incrValue = reaper.get_action_context()
    
    if incrValue > 0 then -- Encoder turned clockwise
        selectNextTrack()
    end
end

-- Call the main function to start the script
main()

Decrement track selection:
Code:
-- Define the function that will be called when the script is run
function main()
    -- Get the current track selection
    local selTracks = {}
    local totalTracks = reaper.CountTracks(0)
    for i = 1, totalTracks do
        if reaper.IsTrackSelected(reaper.GetTrack(0, i-1)) then
            table.insert(selTracks, i)
        end
    end
    
    -- Decrement the track selection
    if #selTracks > 0 then
        local lastTrack = selTracks[#selTracks]
        if lastTrack > 1 then
            reaper.SetTrackSelected(reaper.GetTrack(0, lastTrack-2), true)
            reaper.SetTrackSelected(reaper.GetTrack(0, lastTrack-1), false)
        else
            reaper.SetTrackSelected(reaper.GetTrack(0, totalTracks-1), true)
            reaper.SetTrackSelected(reaper.GetTrack(0, totalTracks-2), false)
        end
    else
        reaper.SetTrackSelected(reaper.GetTrack(0, totalTracks-1), true)
    end
end

-- Call the main function to start the script
main()
dna598 is offline   Reply With Quote
Old 05-05-2023, 01:27 PM   #3485
muech011
Human being with feelings
 
Join Date: Apr 2023
Posts: 7
Default

Quote:
Originally Posted by helgoboss View Post
Oh I see. Yes, if you turn the wheel and ReaLearn immediately processes the messages, it will jump quickly between regions. That could be a bit much. You really need "debouncing" that works across multiple mappings.

The following transformation in general debounces, but it only affects one mapping:

Code:
// Ignores control values that come in in close succession.
// Finally, When it detects that the fader/knob hasn't been
// moved for a while, it emits the last control value.

// Parameters

timeout_in_ms = 500;

// Code

y = rel_time < timeout_in_ms ? none : stop(x);
I've thought a bit about what ReaLearn would need to make this possible: https://github.com/helgoboss/realearn/issues/852
Thanks for rating my problem that high to file an issue.

Quote:
Originally Posted by helgoboss View Post
But there's one way to achieve it already now: Write a little JSFX that debounces the incoming MIDI messages of a certain type. Then set ReaLearn input to "FX input", so it sees the debounced messages instead of the original ones. How about that?
Ok, I think I need one or two drinks to understand that :-) You mean the JSFX acts like some kind of filter? Got to think about/check if I still receive the Start/Stop messages in that way. Being the guitarist of the band and not the keyboarder my time to use the keyboard is limited. It's my job because I did the former MIDITEMP programming at the time we've been using a hardware sequencer.

Quote:
Originally Posted by helgoboss View Post
Concerning accessing the program change number: Yes, look for get_action_context function in ReaScript. Make sure you use a recent version of REAPER, otherwise this might not return the correct value.
Thanks for the info. That's my first step to check.
muech011 is offline   Reply With Quote
Old 05-06-2023, 02:57 AM   #3486
D-Reaper
Human being with feelings
 
D-Reaper's Avatar
 
Join Date: Oct 2020
Posts: 164
Default

Hi there.

How to make a mapping plugin specific?
(I mean pretty much the options that appear in REAPERīs in built "Learn" button, so that the mapping is only active when the focus in on the plugin or when its window is open).

I have watched the basic tutorials and looked in the manual, but couldnīt find the answer. I am sure I am missing something simple here.

Many thanks.

Last edited by D-Reaper; 05-06-2023 at 03:57 AM.
D-Reaper is offline   Reply With Quote
Old 05-06-2023, 04:17 AM   #3487
D-Reaper
Human being with feelings
 
D-Reaper's Avatar
 
Join Date: Oct 2020
Posts: 164
Default

Quote:
Originally Posted by D-Reaper View Post
Hi there.

How to make a mapping plugin specific?
(I mean pretty much the options that appear in REAPERīs in built "Learn" button, so that the mapping is only active when the focus in on the plugin or when its window is open).

I have watched the basic tutorials and looked in the manual, but couldnīt find the answer. I am sure I am missing something simple here.

Many thanks.
I think I got it.
"Using "Auto-load" to control whatever plug-in is currently in focus" in the manual :-)
D-Reaper is offline   Reply With Quote
Old 05-06-2023, 03:42 PM   #3488
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Some of you might be interested in this: https://forum.cockos.com/showthread.php?t=278971 ... a thread about "Pot Browser", an upcoming addition to ReaLearn which is more than just another control-related feature.
helgoboss is offline   Reply With Quote
Old 05-06-2023, 06:07 PM   #3489
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 331
Default

Quote:
Originally Posted by helgoboss View Post
Some of you might be interested in this: https://forum.cockos.com/showthread.php?t=278971 ... a thread about "Pot Browser", an upcoming addition to ReaLearn which is more than just another control-related feature.
and you figured out the NI stuff too... awesome!! i love the streamlined interface, plain Jane and working!!

i never did get around to trying out the pot browser in its early beginnings... as i had a small amount of NKS supported plugins vs a komplete 12 ultimate collection.

seeing what you have produced with the Pot browser is very promising as an alternative to the Komplete kontrol interface!!
impressive!
7enz is offline   Reply With Quote
Old 05-06-2023, 06:25 PM   #3490
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 331
Default

Quote:
Originally Posted by D-Reaper View Post
Hi there.

How to make a mapping plugin specific?
(I mean pretty much the options that appear in REAPERīs in built "Learn" button, so that the mapping is only active when the focus in on the plugin or when its window is open).

I have watched the basic tutorials and looked in the manual, but couldnīt find the answer. I am sure I am missing something simple here.

Many thanks.
Create a separate realearn instance with no other mappings but the ones needed... and put it on the InputFX of the track/s & plugin you wish to control.

if you have the same plugin across multiple tracks you wish to control...you would need to assign extra midi assignments in the same mapping for them to work independantly...(requires no focus or interface showing up)
The benefit of using if in "focus" in Realearn is the same midi-assignments can be used across multiple targets

the method of realearn on inputFx has the midi assignments becoming fixed, although you can get around it becoming fixed by creating a on/off mapping on the inputFx chain (target: Realearn enable/disable mappings)

Last edited by 7enz; 05-06-2023 at 06:57 PM.
7enz is offline   Reply With Quote
Old 05-07-2023, 12:00 AM   #3491
KennyG5000
Human being with feelings
 
Join Date: Nov 2022
Posts: 49
Default

I have quick question, is it possible via Realearn to send/update (through OSC) a track name in Reaper? I know, via textual feedback we can obtain track names, but I noticed the other day Open Stage Control now have a text input widget, and immediately thought how handy this would be to send from the template directly to Reaper.
KennyG5000 is offline   Reply With Quote
Old 05-07-2023, 04:08 AM   #3492
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by 7enz View Post
and you figured out the NI stuff too... awesome!! i love the streamlined interface, plain Jane and working!!

i never did get around to trying out the pot browser in its early beginnings... as i had a small amount of NKS supported plugins vs a komplete 12 ultimate collection.

seeing what you have produced with the Pot browser is very promising as an alternative to the Komplete kontrol interface!!
impressive!
Well, haven't really figured out the NI stuff. All the presets within Komplete that are for NI's own plug-ins are still NOT loadable. I might be able to build some workaround, e.g. simulate dragging an NKI/NKSN file into Kontakt, but even if that works, it's only half of the story because this wouldn't include pre-mapped macro parameters. So for people who use NI plug-ins mainly, Pot Browser is probably not that interesting. For everyone else, I think it could be a good alternative ... considering how many plug-ins with NKS support exists. The list is growing.
helgoboss is offline   Reply With Quote
Old 05-07-2023, 04:14 AM   #3493
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by KennyG5000 View Post
I have quick question, is it possible via Realearn to send/update (through OSC) a track name in Reaper? I know, via textual feedback we can obtain track names, but I noticed the other day Open Stage Control now have a text input widget, and immediately thought how handy this would be to send from the template directly to Reaper.
Not at the moment. Sending text in control direction is not implemented. This itself would probably be easy to add. But there's also no target that supports receiving text and doing something useful with it. So it would need a new target "Track: Set name". But then, people would also ask for "FX: Set name" and maybe lots of other new targets ... not sure if I want to go there, considering ReaLearn is more about performance use cases than about building alternative GUIs to REAPER. But can't hurt to create an FR.
helgoboss is offline   Reply With Quote
Old 05-08-2023, 05:40 PM   #3494
dna598
Human being with feelings
 
Join Date: Jul 2007
Posts: 660
Default

I just got a faderfox EC4. Seems to be working great, but I can't use the encoder messages. Parameters jump around or get stuck.
Works fine as a fader/knob. But some vsts such as metric halo channel strip have crazy parameter travel.

14 bit messages and the built in acceleration helps, but it still feels a bit unpredictable as the parameter travels very fast through the first half of the range and then slows to a crawl after 50%.
Any tips?
dna598 is offline   Reply With Quote
Old 05-08-2023, 09:27 PM   #3495
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by dna598 View Post
I just got a faderfox EC4. Seems to be working great, but I can't use the encoder messages. Parameters jump around or get stuck.
Works fine as a fader/knob. But some vsts such as metric halo channel strip have crazy parameter travel.

14 bit messages and the built in acceleration helps, but it still feels a bit unpredictable as the parameter travels very fast through the first half of the range and then slows to a crawl after 50%.
Any tips?
Maybe the wrong relative encoder type selected in source character?

BTW, 14-bit is not something that's in any way relevant for encoders. It's only significant for absolute control, not relative.

You can also post a MIDI log of an encoder turn and I will have a look.
helgoboss is offline   Reply With Quote
Old 05-09-2023, 04:13 AM   #3496
dna598
Human being with feelings
 
Join Date: Jul 2007
Posts: 660
Default

Quote:
Originally Posted by helgoboss View Post
Maybe the wrong relative encoder type selected in source character?

BTW, 14-bit is not something that's in any way relevant for encoders. It's only significant for absolute control, not relative.

You can also post a MIDI log of an encoder turn and I will have a look.
Thanks, but i tried all the encoder types and they did'nt function correctly.
Here is a log of the first knob (endless encoder) turn.

Code:
180746.015 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 3D] = [176, 0, 61] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(61) } at Instant { t: 180746.0067007s } (unmatched)
180746.076 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 3E] = [176, 0, 62] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(62) } at Instant { t: 180746.0531884s } (unmatched)
180746.107 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 3F] = [176, 0, 63] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(63) } at Instant { t: 180746.0995941s } (unmatched)
180746.172 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 40] = [176, 0, 64] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(64) } at Instant { t: 180746.1691662s } (unmatched)
180746.264 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 41] = [176, 0, 65] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(65) } at Instant { t: 180746.2620447s } (unmatched)
180746.358 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 42] = [176, 0, 66] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(66) } at Instant { t: 180746.3318121s } (unmatched)
180746.422 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 43] = [176, 0, 67] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(67) } at Instant { t: 180746.4014508s } (unmatched)
180746.482 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 44] = [176, 0, 68] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(68) } at Instant { t: 180746.4710679s } (unmatched)
180746.547 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 45] = [176, 0, 69] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(69) } at Instant { t: 180746.5408052s } (unmatched)
180746.639 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 46] = [176, 0, 70] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(70) } at Instant { t: 180746.6104266s } (unmatched)
180746.704 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 47] = [176, 0, 71] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(71) } at Instant { t: 180746.6800906s } (unmatched)
180746.764 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 48] = [176, 0, 72] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(72) } at Instant { t: 180746.749688s } (unmatched)
180747.144 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 49] = [176, 0, 73] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(73) } at Instant { t: 180747.1211912s } (unmatched)
180747.360 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4A] = [176, 0, 74] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(74) } at Instant { t: 180747.3301924s } (unmatched)
180747.389 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4B] = [176, 0, 75] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(75) } at Instant { t: 180747.3766564s } (unmatched)
180747.483 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4C] = [176, 0, 76] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(76) } at Instant { t: 180747.4695467s } (unmatched)
180747.544 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4D] = [176, 0, 77] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(77) } at Instant { t: 180747.5391869s } (unmatched)
180747.640 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4E] = [176, 0, 78] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(78) } at Instant { t: 180747.6320487s } (unmatched)
180747.732 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4F] = [176, 0, 79] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(79) } at Instant { t: 180747.724915s } (unmatched)
180747.827 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 50] = [176, 0, 80] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(80) } at Instant { t: 180747.8178141s } (unmatched)
180747.921 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 51] = [176, 0, 81] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(81) } at Instant { t: 180747.9106987s } (unmatched)
180748.045 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 52] = [176, 0, 82] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(82) } at Instant { t: 180748.0267893s } (unmatched)
180748.106 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 53] = [176, 0, 83] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(83) } at Instant { t: 180748.0964341s } (unmatched)
180748.232 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 54] = [176, 0, 84] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(84) } at Instant { t: 180748.2125722s } (unmatched)
180748.295 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 55] = [176, 0, 85] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(85) } at Instant { t: 180748.2821915s } (unmatched)
180748.389 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 56] = [176, 0, 86] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(86) } at Instant { t: 180748.3750616s } (unmatched)
180748.483 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 57] = [176, 0, 87] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(87) } at Instant { t: 180748.4679338s } (unmatched)
180748.576 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 58] = [176, 0, 88] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(88) } at Instant { t: 180748.5608246s } (unmatched)
180748.669 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 59] = [176, 0, 89] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(89) } at Instant { t: 180748.6536886s } (unmatched)
180749.142 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5A] = [176, 0, 90] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(90) } at Instant { t: 180749.1180183s } (unmatched)
180749.233 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5B] = [176, 0, 91] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(91) } at Instant { t: 180749.2108976s } (unmatched)
180749.296 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5C] = [176, 0, 92] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(92) } at Instant { t: 180749.2806862s } (unmatched)
180749.358 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5D] = [176, 0, 93] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(93) } at Instant { t: 180749.3502909s } (unmatched)
180749.482 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5E] = [176, 0, 94] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(94) } at Instant { t: 180749.4664277s } (unmatched)
180749.545 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5F] = [176, 0, 95] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(95) } at Instant { t: 180749.5360487s } (unmatched)
180749.609 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 60] = [176, 0, 96] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(96) } at Instant { t: 180749.6056748s } (unmatched)
180749.699 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 61] = [176, 0, 97] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(97) } at Instant { t: 180749.6754526s } (unmatched)
180749.797 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 62] = [176, 0, 98] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(98) } at Instant { t: 180749.7682718s } (unmatched)
180749.888 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 63] = [176, 0, 99] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(99) } at Instant { t: 180749.8842899s } (unmatched)
180749.983 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 64] = [176, 0, 100] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(100) } at Instant { t: 180749.9771766s } (unmatched)
180750.077 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 65] = [176, 0, 101] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(101) } at Instant { t: 180750.0700638s } (unmatched)
180750.170 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 66] = [176, 0, 102] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(102) } at Instant { t: 180750.162917s } (unmatched)
180750.235 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 67] = [176, 0, 103] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(103) } at Instant { t: 180750.2326656s } (unmatched)
180750.357 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 68] = [176, 0, 104] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(104) } at Instant { t: 180750.3486939s } (unmatched)
180751.046 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 69] = [176, 0, 105] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(105) } at Instant { t: 180751.0453002s } (unmatched)
180751.327 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6A] = [176, 0, 106] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(106) } at Instant { t: 180751.3239372s } (unmatched)
180751.514 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6B] = [176, 0, 107] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(107) } at Instant { t: 180751.4864336s } (unmatched)
180751.702 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6C] = [176, 0, 108] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(108) } at Instant { t: 180751.6723212s } (unmatched)
180751.825 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6D] = [176, 0, 109] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(109) } at Instant { t: 180751.8115284s } (unmatched)
180751.955 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6E] = [176, 0, 110] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(110) } at Instant { t: 180751.9276708s } (unmatched)
180752.050 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6F] = [176, 0, 111] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(111) } at Instant { t: 180752.0437676s } (unmatched)
180752.205 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 70] = [176, 0, 112] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(112) } at Instant { t: 180752.1830451s } (unmatched)
180752.329 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 71] = [176, 0, 113] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(113) } at Instant { t: 180752.3224315s } (unmatched)
180752.451 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 72] = [176, 0, 114] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(114) } at Instant { t: 180752.4384274s } (unmatched)
180752.581 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 73] = [176, 0, 115] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(115) } at Instant { t: 180752.5545643s } (unmatched)
180752.670 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 74] = [176, 0, 116] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(116) } at Instant { t: 180752.6474392s } (unmatched)
180753.201 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 75] = [176, 0, 117] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(117) } at Instant { t: 180753.1815532s } (unmatched)
180753.330 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 76] = [176, 0, 118] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(118) } at Instant { t: 180753.2975572s } (unmatched)
180753.419 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 77] = [176, 0, 119] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(119) } at Instant { t: 180753.3904458s } (unmatched)
180753.514 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 78] = [176, 0, 120] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(120) } at Instant { t: 180753.4832721s } (unmatched)
180753.607 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 79] = [176, 0, 121] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(121) } at Instant { t: 180753.5994504s } (unmatched)
180753.700 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7A] = [176, 0, 122] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(122) } at Instant { t: 180753.6922669s } (unmatched)
180753.858 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7B] = [176, 0, 123] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(123) } at Instant { t: 180753.8549361s } (unmatched)
180754.107 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7C] = [176, 0, 124] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(124) } at Instant { t: 180754.0870419s } (unmatched)
180754.420 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7D] = [176, 0, 125] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(125) } at Instant { t: 180754.4121667s } (unmatched)
180754.671 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7E] = [176, 0, 126] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(126) } at Instant { t: 180754.6442922s } (unmatched)
180756.670 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7F] = [176, 0, 127] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(127) } at Instant { t: 180756.6644035s } (unmatched)
(logging seems to delete first half of reported turn)

btw sorry just another quick question. Is there a way to copy/paste just the track and fx (eg "selected" and "named") target types?

Thanks Boss.

Last edited by dna598; 05-09-2023 at 04:21 AM.
dna598 is offline   Reply With Quote
Old 05-09-2023, 04:31 AM   #3497
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by dna598 View Post
Thanks, but i tried all the encoder types and they did'nt function correctly.
Here is a log of the first knob (endless encoder) turn.

Code:
180746.015 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 3D] = [176, 0, 61] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(61) } at Instant { t: 180746.0067007s } (unmatched)
180746.076 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 3E] = [176, 0, 62] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(62) } at Instant { t: 180746.0531884s } (unmatched)
180746.107 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 3F] = [176, 0, 63] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(63) } at Instant { t: 180746.0995941s } (unmatched)
180746.172 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 40] = [176, 0, 64] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(64) } at Instant { t: 180746.1691662s } (unmatched)
180746.264 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 41] = [176, 0, 65] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(65) } at Instant { t: 180746.2620447s } (unmatched)
180746.358 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 42] = [176, 0, 66] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(66) } at Instant { t: 180746.3318121s } (unmatched)
180746.422 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 43] = [176, 0, 67] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(67) } at Instant { t: 180746.4014508s } (unmatched)
180746.482 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 44] = [176, 0, 68] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(68) } at Instant { t: 180746.4710679s } (unmatched)
180746.547 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 45] = [176, 0, 69] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(69) } at Instant { t: 180746.5408052s } (unmatched)
180746.639 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 46] = [176, 0, 70] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(70) } at Instant { t: 180746.6104266s } (unmatched)
180746.704 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 47] = [176, 0, 71] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(71) } at Instant { t: 180746.6800906s } (unmatched)
180746.764 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 48] = [176, 0, 72] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(72) } at Instant { t: 180746.749688s } (unmatched)
180747.144 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 49] = [176, 0, 73] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(73) } at Instant { t: 180747.1211912s } (unmatched)
180747.360 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4A] = [176, 0, 74] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(74) } at Instant { t: 180747.3301924s } (unmatched)
180747.389 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4B] = [176, 0, 75] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(75) } at Instant { t: 180747.3766564s } (unmatched)
180747.483 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4C] = [176, 0, 76] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(76) } at Instant { t: 180747.4695467s } (unmatched)
180747.544 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4D] = [176, 0, 77] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(77) } at Instant { t: 180747.5391869s } (unmatched)
180747.640 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4E] = [176, 0, 78] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(78) } at Instant { t: 180747.6320487s } (unmatched)
180747.732 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 4F] = [176, 0, 79] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(79) } at Instant { t: 180747.724915s } (unmatched)
180747.827 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 50] = [176, 0, 80] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(80) } at Instant { t: 180747.8178141s } (unmatched)
180747.921 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 51] = [176, 0, 81] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(81) } at Instant { t: 180747.9106987s } (unmatched)
180748.045 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 52] = [176, 0, 82] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(82) } at Instant { t: 180748.0267893s } (unmatched)
180748.106 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 53] = [176, 0, 83] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(83) } at Instant { t: 180748.0964341s } (unmatched)
180748.232 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 54] = [176, 0, 84] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(84) } at Instant { t: 180748.2125722s } (unmatched)
180748.295 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 55] = [176, 0, 85] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(85) } at Instant { t: 180748.2821915s } (unmatched)
180748.389 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 56] = [176, 0, 86] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(86) } at Instant { t: 180748.3750616s } (unmatched)
180748.483 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 57] = [176, 0, 87] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(87) } at Instant { t: 180748.4679338s } (unmatched)
180748.576 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 58] = [176, 0, 88] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(88) } at Instant { t: 180748.5608246s } (unmatched)
180748.669 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 59] = [176, 0, 89] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(89) } at Instant { t: 180748.6536886s } (unmatched)
180749.142 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5A] = [176, 0, 90] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(90) } at Instant { t: 180749.1180183s } (unmatched)
180749.233 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5B] = [176, 0, 91] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(91) } at Instant { t: 180749.2108976s } (unmatched)
180749.296 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5C] = [176, 0, 92] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(92) } at Instant { t: 180749.2806862s } (unmatched)
180749.358 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5D] = [176, 0, 93] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(93) } at Instant { t: 180749.3502909s } (unmatched)
180749.482 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5E] = [176, 0, 94] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(94) } at Instant { t: 180749.4664277s } (unmatched)
180749.545 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 5F] = [176, 0, 95] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(95) } at Instant { t: 180749.5360487s } (unmatched)
180749.609 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 60] = [176, 0, 96] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(96) } at Instant { t: 180749.6056748s } (unmatched)
180749.699 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 61] = [176, 0, 97] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(97) } at Instant { t: 180749.6754526s } (unmatched)
180749.797 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 62] = [176, 0, 98] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(98) } at Instant { t: 180749.7682718s } (unmatched)
180749.888 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 63] = [176, 0, 99] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(99) } at Instant { t: 180749.8842899s } (unmatched)
180749.983 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 64] = [176, 0, 100] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(100) } at Instant { t: 180749.9771766s } (unmatched)
180750.077 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 65] = [176, 0, 101] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(101) } at Instant { t: 180750.0700638s } (unmatched)
180750.170 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 66] = [176, 0, 102] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(102) } at Instant { t: 180750.162917s } (unmatched)
180750.235 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 67] = [176, 0, 103] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(103) } at Instant { t: 180750.2326656s } (unmatched)
180750.357 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 68] = [176, 0, 104] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(104) } at Instant { t: 180750.3486939s } (unmatched)
180751.046 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 69] = [176, 0, 105] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(105) } at Instant { t: 180751.0453002s } (unmatched)
180751.327 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6A] = [176, 0, 106] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(106) } at Instant { t: 180751.3239372s } (unmatched)
180751.514 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6B] = [176, 0, 107] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(107) } at Instant { t: 180751.4864336s } (unmatched)
180751.702 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6C] = [176, 0, 108] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(108) } at Instant { t: 180751.6723212s } (unmatched)
180751.825 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6D] = [176, 0, 109] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(109) } at Instant { t: 180751.8115284s } (unmatched)
180751.955 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6E] = [176, 0, 110] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(110) } at Instant { t: 180751.9276708s } (unmatched)
180752.050 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 6F] = [176, 0, 111] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(111) } at Instant { t: 180752.0437676s } (unmatched)
180752.205 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 70] = [176, 0, 112] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(112) } at Instant { t: 180752.1830451s } (unmatched)
180752.329 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 71] = [176, 0, 113] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(113) } at Instant { t: 180752.3224315s } (unmatched)
180752.451 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 72] = [176, 0, 114] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(114) } at Instant { t: 180752.4384274s } (unmatched)
180752.581 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 73] = [176, 0, 115] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(115) } at Instant { t: 180752.5545643s } (unmatched)
180752.670 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 74] = [176, 0, 116] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(116) } at Instant { t: 180752.6474392s } (unmatched)
180753.201 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 75] = [176, 0, 117] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(117) } at Instant { t: 180753.1815532s } (unmatched)
180753.330 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 76] = [176, 0, 118] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(118) } at Instant { t: 180753.2975572s } (unmatched)
180753.419 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 77] = [176, 0, 119] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(119) } at Instant { t: 180753.3904458s } (unmatched)
180753.514 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 78] = [176, 0, 120] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(120) } at Instant { t: 180753.4832721s } (unmatched)
180753.607 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 79] = [176, 0, 121] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(121) } at Instant { t: 180753.5994504s } (unmatched)
180753.700 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7A] = [176, 0, 122] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(122) } at Instant { t: 180753.6922669s } (unmatched)
180753.858 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7B] = [176, 0, 123] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(123) } at Instant { t: 180753.8549361s } (unmatched)
180754.107 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7C] = [176, 0, 124] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(124) } at Instant { t: 180754.0870419s } (unmatched)
180754.420 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7D] = [176, 0, 125] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(125) } at Instant { t: 180754.4121667s } (unmatched)
180754.671 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7E] = [176, 0, 126] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(126) } at Instant { t: 180754.6442922s } (unmatched)
180756.670 | ReaLearn sr2-fHtH | Real control     | [B0, 00, 7F] = [176, 0, 127] = ControlChange { channel: Channel(0), controller_number: ControllerNumber(0), control_value: U7(127) } at Instant { t: 180756.6644035s } (unmatched)
(logging seems to delete first half of reported turn)

btw sorry just another quick question. Is there a way to copy/paste just the track and fx (eg "selected" and "named") target types?

Thanks Boss.
Mmh, these are obviously absolute values, not relative ones. Maybe you forgot to set up your encoders to send relative messages?

About your other question, you can copy the target in its entirety and paste it to another mapping (right click on mapping row). Just parts of the target ... not possible.
helgoboss is offline   Reply With Quote
Old 05-09-2023, 09:00 AM   #3498
dna598
Human being with feelings
 
Join Date: Jul 2007
Posts: 660
Default

Quote:
Originally Posted by helgoboss View Post
Maybe you forgot to set up your encoders to send relative messages?

Yep. That's it. Thanks!
dna598 is offline   Reply With Quote
Old 05-11-2023, 11:47 AM   #3499
D-Reaper
Human being with feelings
 
D-Reaper's Avatar
 
Join Date: Oct 2020
Posts: 164
Default Toolbar buttons for learning target

Hi there.

I use a device with 5 faders and I am constantly changing the targets.

For that, I have to go to Monitor FX, select ReaLearn and click "Learn target" (and then in the target itself), which is quite cumbersome, especially because in my laptop Realearn takes almost all of the screen (see image below).

So, I was wondering if there could be a way (maybe some actions?) of having those "Learn target" buttons in a toolbar (as in image 2).

That would be great!!
Any ideas?

Besides that, it would also be great to have a simple way (some 5 more buttons in a toolbar) for somehow "undo" the mapping. Maybe disabling it, returning the "Learn target" values to "ReaLearn: Dummy target" or something so?

Many thanks

Image 1:


Image 2:

Last edited by D-Reaper; 05-11-2023 at 12:22 PM.
D-Reaper is offline   Reply With Quote
Old 05-11-2023, 12:23 PM   #3500
D-Reaper
Human being with feelings
 
D-Reaper's Avatar
 
Join Date: Oct 2020
Posts: 164
Default

Quote:
Originally Posted by D-Reaper View Post
So, I was wondering if there could be a way (maybe some actions?) of having those "Learn target" buttons in a toolbar (as in image 2).
OK. For the first part (although not exactly the same), the included action "ReaLearn: Learn single mapping (reassigning source)" can do.

So I just would need to know how to "delete" the mapping or undo it somehow.

Many thanks.
D-Reaper is offline   Reply With Quote
Old 05-11-2023, 05:16 PM   #3501
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 331
Default

Quote:
Originally Posted by dna598 View Post
Ah ok thanks!

Do you know how to get a bi-directional (multi) track selection on the encoder?

I have assigned the action "Xenakios/SWS: Select next tracks, keeping current selection", which works well only in one direction. Keeps on selecting.
I want to incrementally deselect the last track in the selection on turning the encoder backwards.

Any idea?
This was always a tricky situation for me to solve... especially when using dynamic track selections...
eg
selected_track_indexes[0]

A work-around i found for multiple track selection was to use Arm/disarm tracks then using a script by Xraym
(select all rec armed tracks and unselect others.eel) once all your selections are made

this would get around the issue of tracks becoming unselected....

you would need to add some custom actions if you needed certain tracks to remain always armed... as the "select all rec armed tracks and unselect others.eel" acts globally even when tracks are hidden

Last edited by 7enz; 05-11-2023 at 05:25 PM.
7enz is offline   Reply With Quote
Old 05-11-2023, 06:02 PM   #3502
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 331
Default

Quote:
Originally Posted by D-Reaper View Post
Hi there.

I use a device with 5 faders and I am constantly changing the targets.

For that, I have to go to Monitor FX, select ReaLearn and click "Learn target" (and then in the target itself), which is quite cumbersome, especially because in my laptop Realearn takes almost all of the screen (see image below).

So, I was wondering if there could be a way (maybe some actions?) of having those "Learn target" buttons in a toolbar (as in image 2).

That would be great!!
Any ideas?

Besides that, it would also be great to have a simple way (some 5 more buttons in a toolbar) for somehow "undo" the mapping. Maybe disabling it, returning the "Learn target" values to "ReaLearn: Dummy target" or something so?

Many thanks
im not sure what your work flow involves... but i think with respect to changing targets, there is a script called SKS smart knobs
https://forum.cockos.com/showthread.php?t=204972

this script once setup... and run in conjunction with realearn... allows for the assignments of midi to be shared depending on focus!
this basically means a so long as a plugin is in focus you can control it... with the same assignments across multiple plugins.

it can be a little fiddly to setup, but it is very useful script in my view, as it combines with Realearn in the sense that realearn controls the faderboxes... and SKS script does the rest of the work..

heres a little demo... of it running
not sure if this is what you are after *shrugs

https://www.youtube.com/watch?v=nWoXs3-8WuY
7enz is offline   Reply With Quote
Old 05-11-2023, 06:25 PM   #3503
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 331
Default

@D-reaper
there are some limitations with putting your realearn on the monitorFX... cant remember what exactly.. but it is documented

i normally have my realearn instances on a single track, for me it is on my inputfx which i also have the SKS fader boxes & script tied to(which is always my last track and hidden but always armed)


for your attempt to select toolbars
there is a target in Realearn called project: invoke REAPER action
this allows you to execute custom actions and have the midi assignment to a button,,,(very useful!!)

on top of that... if your controller can utilise note values... you can assign a button to use the doublepress / hold / singlepress (target area)

Last edited by 7enz; 05-11-2023 at 07:01 PM.
7enz is offline   Reply With Quote
Old 05-12-2023, 12:15 AM   #3504
D-Reaper
Human being with feelings
 
D-Reaper's Avatar
 
Join Date: Oct 2020
Posts: 164
Default

@7enz

Many thanks for your answers.
Iīll give a go to all your suggestions.
D-Reaper is offline   Reply With Quote
Old 05-12-2023, 03:30 AM   #3505
7enz
Human being with feelings
 
Join Date: Sep 2022
Posts: 331
Default

@ D-reaper

heres something that might be useful for you...
its basically using the enable/disable mapping i had mentioned in a previous post to you

i forgot i had made this video...
https://www.youtube.com/watch?v=zDYT21fQFDk
7enz is offline   Reply With Quote
Old 05-15-2023, 01:55 AM   #3506
fazmakesmusic
Human being with feelings
 
Join Date: Feb 2022
Posts: 39
Default Feedback for Grid States

Hey @helgoboss !

I absolutely love what you have done with Realearn - it's a large part of why I moved to Reaper!

I'm having some trouble getting Realearn to receive the toggle state of the grid/quantize values.

i.e.

Grid: Set to 1

The Realearn plugin receives the "on" state but doesn't receive the "off" state.

Have you had any luck getting feedback from these actions?

Many thanks!
fazmakesmusic is offline   Reply With Quote
Old 05-15-2023, 01:39 PM   #3507
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Released ReaLearn 2.15.0-pre.3 (ReaPack installation instructions)

Changes:
- Temporarily disabled Linux ARM builds
- #842 Added experimental Pot Browser (a modern preset browser with support for preset crawling and preview recording, Windows & macOS only for now)
- #743 Added many new features and improvements to ReaLearn's experimental Pot targets (e.g. support for CLAP/VST3/JS, filter exclusion, skipping of empty filters, factory/user preset filter, product kind filter, favorite filter, support for REAPER's own preset formats ... and much more)
- #829 Improved compatibility with older Linux libc/libxdo versions by building release in Ubuntu 20.04 instead of 22.04
- #849 Fixed pre-release bug in target "Global: Last touched" that caused missing feedback from FX
- #847 Fixed full channel and subsequent PoisonError when ReaLearn needs to process many parameter changes at once (e.g. by parameter modulation)
- #743 Removed Pot target's capability to save last selected preset and filters (temporary removal)

With this release, ReaLearn gets a completely new functionality: A modern preset browser called Pot Browser. It's best used from a ReaLearn instance that you put on the monitoring FX chain. Then you have the browser available from any project. You can open it via ReaLearn "Menu => Open Pot Browser" or via REAPER action "ReaLearn: Open first Pot Browser" (only available if at least one plug-in instance of ReaLearn is loaded). For convenient access, you can assign that action to a toolbar button as I've done here: https://www.youtube.com/watch?v=zSRwvC0fhy0

Make sure you use this with a recent version of REAPER!

Oh, and discussion of this new feature goes here, please.
helgoboss is offline   Reply With Quote
Old 05-15-2023, 07:19 PM   #3508
Rockum
Human being with feelings
 
Join Date: Apr 2009
Location: Nashville
Posts: 148
Default

Looking forward to trying it out. Looks great.
Rockum is offline   Reply With Quote
Old 05-16-2023, 02:46 PM   #3509
beingmf
Human being with feelings
 
beingmf's Avatar
 
Join Date: Jul 2007
Location: Jazz City
Posts: 5,054
Default

Has something changed regarding ReaLearn in the Monitor FX recently?

I realized today that I mixed at least one week without DRC - the monitor outputs did switch, but not the according correction profiles!?!?
(which are bound to cfillion_Bypass monitoring FX 1-4.lua)
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
beingmf is online now   Reply With Quote
Old 05-16-2023, 11:39 PM   #3510
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by beingmf View Post
Has something changed regarding ReaLearn in the Monitor FX recently?

I realized today that I mixed at least one week without DRC - the monitor outputs did switch, but not the according correction profiles!?!?
(which are bound to cfillion_Bypass monitoring FX 1-4.lua)
I don't know your setup, you need to go more into detail.

Nothing has changed at all in ReaLearn since January 13 (if you are sticking to the stable release).
helgoboss is offline   Reply With Quote
Old 05-17-2023, 07:48 AM   #3511
indigomirage
Human being with feelings
 
Join Date: Oct 2020
Posts: 78
Default Global preset autoload - but linked to controller compartment?

Hi there -

I've got a feature request. Might not be the highest priority, but I would certainly find it handy...

Could there be a way to have a text file as with global presets, where autoload can be (optionally) enabled, but will only choose from a set of main preset associated with the current controller preset?

I know that instance-level auto-load is a work-around to allow multiple controllers autoloading different presets for the same FX, but this can get unwieldy and difficult to troubleshoot (as it's buried in reaper's opaque fx instance storage).

I'm thinking that it could be as simple as having a json file in an auto-load-configs folder (same format/concept as fx.json), but named after the Controller Compartment preset.

In my case I have about 30-40 fx mapped through one controller (autoloading), but also want to have separate maps that I need to load for my new Midi Fighter Twister. I can use the instance level auto-load, but it's unwieldy and not ideal.

I can certainly add a feature request for your consideration.

Many Thanks! (As always, I have a huge amount of gratitude for the power of this add on and the considerable effort you've put into it).


Note - having said this, if I make sure that all the virtual ids are unique for each controller preset (ie - maybe prefix the controlElementIndex with 'mft-' or something like it, auto-loading the presets globally should work without conflict? (If so, then this would solve everything)

Last edited by indigomirage; 05-17-2023 at 09:32 AM.
indigomirage is offline   Reply With Quote
Old 05-19-2023, 07:53 AM   #3512
Nick Morris
Human being with feelings
 
Nick Morris's Avatar
 
Join Date: Nov 2010
Posts: 652
Default strange issue

I have been slowly setting up an instance of realearn in my monitor fx to control an SSL Sigma summing mixer. The SSL uses OSC with addresses for every function of the unit. I had success with mapping every function to be controlled by reaper. Example- the track faders controlled the SSL volumes, the track mute and solo buttons controlled the SSL cut and solos, etc.

There are a number of functions on the SSL that do not have reaper counterparts, like a dim, or mix bus B into Mix bus B function. For these I used dummy toggle switches in a toolbar and mapped them in realearn via reaper action invoke. They worked to switch on and off each function. Great!

My issue is that the functions I mapped to the dummy toggles will fire off at seemingly random times. The dummy toggles themselves do not show a different state/being depressed, but realearn is sending OSC messages causing the SSL Sigma to turn on/off some functions.

I notice this every time I open a project, it triggers OSC to toggle the SSL functions and those functions state are then reversed to the toolbar dummy toggle switch in reaper.

I can understand if feedback is limited with what I am doing, but why would opening or closing reaper cause realearn to send OSC messages triggering the SSL? Why would random OSC messages be sent during use?

This only pertains to the mapped dummy toggle switches in the toolbar, no other OSC messages are causing issue, don't see anything else changing on open or close or random times.
__________________
www.ElaireStudios.com
Robo-Mic RMS robotic remote controlled mic stands aimed at mic'ing amps
Nick Morris is offline   Reply With Quote
Old 05-19-2023, 07:58 AM   #3513
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by Nick Morris View Post
I have been slowly setting up an instance of realearn in my monitor fx to control an SSL Sigma summing mixer. The SSL uses OSC with addresses for every function of the unit. I had success with mapping every function to be controlled by reaper. Example- the track faders controlled the SSL volumes, the track mute and solo buttons controlled the SSL cut and solos, etc.

There are a number of functions on the SSL that do not have reaper counterparts, like a dim, or mix bus B into Mix bus B function. For these I used dummy toggle switches in a toolbar and mapped them in realearn via reaper action invoke. They worked to switch on and off each function. Great!

My issue is that the functions I mapped to the dummy toggles will fire off at seemingly random times. The dummy toggles themselves do not show a different state/being depressed, but realearn is sending OSC messages causing the SSL Sigma to turn on/off some functions.

I notice this every time I open a project, it triggers OSC to toggle the SSL functions and those functions state are then reversed to the toolbar dummy toggle switch in reaper.

I can understand if feedback is limited with what I am doing, but why would opening or closing reaper cause realearn to send OSC messages triggering the SSL? Why would random OSC messages be sent during use?

This only pertains to the mapped dummy toggle switches in the toolbar, no other OSC messages are causing issue, don't see anything else changing on open or close or random times.
Can you go more into detail about how this dummy toolbar switches work? What REAPER action are they referring to?
helgoboss is offline   Reply With Quote
Old 05-19-2023, 08:09 AM   #3514
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by indigomirage View Post
Hi there -

I've got a feature request. Might not be the highest priority, but I would certainly find it handy...

Could there be a way to have a text file as with global presets, where autoload can be (optionally) enabled, but will only choose from a set of main preset associated with the current controller preset?

I know that instance-level auto-load is a work-around to allow multiple controllers autoloading different presets for the same FX, but this can get unwieldy and difficult to troubleshoot (as it's buried in reaper's opaque fx instance storage).

I'm thinking that it could be as simple as having a json file in an auto-load-configs folder (same format/concept as fx.json), but named after the Controller Compartment preset.

In my case I have about 30-40 fx mapped through one controller (autoloading), but also want to have separate maps that I need to load for my new Midi Fighter Twister. I can use the instance level auto-load, but it's unwieldy and not ideal.

I can certainly add a feature request for your consideration.

Many Thanks! (As always, I have a huge amount of gratitude for the power of this add on and the considerable effort you've put into it).


Note - having said this, if I make sure that all the virtual ids are unique for each controller preset (ie - maybe prefix the controlElementIndex with 'mft-' or something like it, auto-loading the presets globally should work without conflict? (If so, then this would solve everything)
I don't think that globally unique virtual IDs change anything about this. In order to decide which preset to auto-load, ReaLearn only looks at the preset ID, not the content of the preset (e.g. virtual control element IDs).

Maybe I could simply add a criteria. At the moment, a link consists of possible criterias "FX name" (the most useful), "FX file name" and "FX preset name". But I could also add "Controller preset ID". Or I could even add "Input device ID". Wouldn't that solve your issue?
helgoboss is offline   Reply With Quote
Old 05-19-2023, 10:43 AM   #3515
indigomirage
Human being with feelings
 
Join Date: Oct 2020
Posts: 78
Default

Quote:
Originally Posted by helgoboss View Post
I don't think that globally unique virtual IDs change anything about this. In order to decide which preset to auto-load, ReaLearn only looks at the preset ID, not the content of the preset (e.g. virtual control element IDs).

Maybe I could simply add a criteria. At the moment, a link consists of possible criterias "FX name" (the most useful), "FX file name" and "FX preset name". But I could also add "Controller preset ID". Or I could even add "Input device ID". Wouldn't that solve your issue?
I was able to get it to work. In the end, it doesn't matter if both presets are loaded, as long as the signals from each controller don't cross wires.

In my case, I set up (in monitoring fx) two relearn instances, one for each controller (a Midi Fighter Twister (MFT), and a Roland KB with a handful of cc knobs). Both are set to Auto Load (in this case an instance of Phase Plant).

Let's say, arbitrarily, the MFT sends a cc 10 to control Macro 1, but the Roland (for layout reasons, etc) sends cc 10 to control Macro 2. If both presets load, then either controller will affect both macros. However, with the miracle of Virtual Multis, in the controller preset, I can map MFT's cc 10 to a Virtual ID called 'mft-1', and for the Roland controller preset map cc 10 to 'rd-1'. In the main preset, I can create two entries - 'mft-1' and 'rd-1', and have them control Macro 1 and Macro 2 respectively. The fact that the main preset responds to a named virtual id, not a cc #, lets me overlap the two and keep them isolated. Bonus points for organizing the main preset into two separate groups ('rd', and 'mft') to keep things sane.

It doesn't matter if the preset loads twice - it'll only trigger from the appropriate controller with the virtual ids named distinctly.

I think this solves the problem - all I needed to do was go and rename all my virtual ids to the prefixed versions, and rename them in the main presets too. A bit of multi-file search and replace solved it! (Though, I have to say it'd have been way easier if, in the json, the "controlElementIndex" values consistently used double quotes. Not insurmountable, of course!)

So I don't _think_ there's a need for a change, with a bit of naming convention organization. It'd just be a nice-to-have, allowing an association between auto load and Controller (or Controller preset).
indigomirage is offline   Reply With Quote
Old 05-19-2023, 02:37 PM   #3516
Nick Morris
Human being with feelings
 
Nick Morris's Avatar
 
Join Date: Nov 2010
Posts: 652
Default

Quote:
Originally Posted by helgoboss View Post
Can you go more into detail about how this dummy toolbar switches work? What REAPER action are they referring to?
SWS/S&M: Dummy toggle 1 is an example of the action I added to the toolbar. They are on/off state toggles. I mapped realearn to send the 0.0-1.0 value for the on/off state through OSC to the SSL Sigma. Hope this makes sense.
__________________
www.ElaireStudios.com
Robo-Mic RMS robotic remote controlled mic stands aimed at mic'ing amps
Nick Morris is offline   Reply With Quote
Old 05-19-2023, 02:49 PM   #3517
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by Nick Morris View Post
SWS/S&M: Dummy toggle 1 is an example of the action I added to the toolbar. They are on/off state toggles. I mapped realearn to send the 0.0-1.0 value for the on/off state through OSC to the SSL Sigma. Hope this makes sense.
Does the same thing happen if you choose target "FX parameter: Set value" instead and refer to one of ReaLearn's internal parameters (a "dummy" parameter that you don't have in use otherwise)? This would be an alternative, actually. Also one that doesn't rely on SWS actions to be there, so it could be more elegant.
helgoboss is offline   Reply With Quote
Old 05-19-2023, 03:10 PM   #3518
Nick Morris
Human being with feelings
 
Nick Morris's Avatar
 
Join Date: Nov 2010
Posts: 652
Default

Quote:
Originally Posted by helgoboss View Post
Does the same thing happen if you choose target "FX parameter: Set value" instead and refer to one of ReaLearn's internal parameters (a "dummy" parameter that you don't have in use otherwise)? This would be an alternative, actually. Also one that doesn't rely on SWS actions to be there, so it could be more elegant.
Hmmm. I'm unfamiliar with that solution but I will see if I can figure out what you have mentioned to try.
__________________
www.ElaireStudios.com
Robo-Mic RMS robotic remote controlled mic stands aimed at mic'ing amps
Nick Morris is offline   Reply With Quote
Old 05-19-2023, 03:15 PM   #3519
Nick Morris
Human being with feelings
 
Nick Morris's Avatar
 
Join Date: Nov 2010
Posts: 652
Default

Quote:
Originally Posted by helgoboss View Post
Does the same thing happen if you choose target "FX parameter: Set value" instead and refer to one of ReaLearn's internal parameters (a "dummy" parameter that you don't have in use otherwise)? This would be an alternative, actually. Also one that doesn't rely on SWS actions to be there, so it could be more elegant.
Possible to explain how this is done? I can't make sense of how this works.
__________________
www.ElaireStudios.com
Robo-Mic RMS robotic remote controlled mic stands aimed at mic'ing amps
Nick Morris is offline   Reply With Quote
Old 05-19-2023, 03:25 PM   #3520
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,023
Default

Quote:
Originally Posted by Nick Morris View Post
Possible to explain how this is done? I can't make sense of how this works.
Target type: "FX parameter: Set value"
Track: doesn't matter
FX: <This>
Parameter: Particular "1. Main p1: Param 1", for example

Each ReaLearn instance has a bunch of internal parameters that can be used freely, for example as dummy target.

The target "ReaLearn: Dummy target" should work as well if you don't need to get/set the "current dummy value" from another mapping.
helgoboss 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 04:32 AM.


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