 |
|
|
05-04-2023, 07:16 AM
|
#3481
|
Human being with feelings
Join Date: Jul 2007
Posts: 660
|
Quote:
Originally Posted by helgoboss
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?
|
|
|
05-04-2023, 07:36 AM
|
#3482
|
Human being with feelings
Join Date: Oct 2020
Posts: 78
|
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!
|
|
|
05-04-2023, 11:40 AM
|
#3483
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by muech011
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
@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
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
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").
|
|
|
05-04-2023, 01:39 PM
|
#3484
|
Human being with feelings
Join Date: Jul 2007
Posts: 660
|
Quote:
Originally Posted by helgoboss
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()
|
|
|
05-05-2023, 01:27 PM
|
#3485
|
Human being with feelings
Join Date: Apr 2023
Posts: 7
|
Quote:
Originally Posted by helgoboss
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
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
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.
|
|
|
05-06-2023, 02:57 AM
|
#3486
|
Human being with feelings
Join Date: Oct 2020
Posts: 164
|
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.
|
|
|
05-06-2023, 04:17 AM
|
#3487
|
Human being with feelings
Join Date: Oct 2020
Posts: 164
|
Quote:
Originally Posted by D-Reaper
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 :-)
|
|
|
05-06-2023, 03:42 PM
|
#3488
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
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.
|
|
|
05-06-2023, 06:07 PM
|
#3489
|
Human being with feelings
Join Date: Sep 2022
Posts: 331
|
Quote:
Originally Posted by helgoboss
|
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!
|
|
|
05-06-2023, 06:25 PM
|
#3490
|
Human being with feelings
Join Date: Sep 2022
Posts: 331
|
Quote:
Originally Posted by D-Reaper
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.
|
|
|
05-07-2023, 12:00 AM
|
#3491
|
Human being with feelings
Join Date: Nov 2022
Posts: 49
|
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.
|
|
|
05-07-2023, 04:08 AM
|
#3492
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by 7enz
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.
|
|
|
05-07-2023, 04:14 AM
|
#3493
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by KennyG5000
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.
|
|
|
05-08-2023, 05:40 PM
|
#3494
|
Human being with feelings
Join Date: Jul 2007
Posts: 660
|
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?
|
|
|
05-08-2023, 09:27 PM
|
#3495
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by dna598
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.
|
|
|
05-09-2023, 04:13 AM
|
#3496
|
Human being with feelings
Join Date: Jul 2007
Posts: 660
|
Quote:
Originally Posted by helgoboss
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.
|
|
|
05-09-2023, 04:31 AM
|
#3497
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by dna598
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.
|
|
|
05-09-2023, 09:00 AM
|
#3498
|
Human being with feelings
Join Date: Jul 2007
Posts: 660
|
Quote:
Originally Posted by helgoboss
Maybe you forgot to set up your encoders to send relative messages?
|
Yep. That's it. Thanks!
|
|
|
05-11-2023, 11:47 AM
|
#3499
|
Human being with feelings
Join Date: Oct 2020
Posts: 164
|
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.
|
|
|
05-11-2023, 12:23 PM
|
#3500
|
Human being with feelings
Join Date: Oct 2020
Posts: 164
|
Quote:
Originally Posted by D-Reaper
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.
|
|
|
05-11-2023, 05:16 PM
|
#3501
|
Human being with feelings
Join Date: Sep 2022
Posts: 331
|
Quote:
Originally Posted by dna598
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.
|
|
|
05-11-2023, 06:02 PM
|
#3502
|
Human being with feelings
Join Date: Sep 2022
Posts: 331
|
Quote:
Originally Posted by D-Reaper
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
|
|
|
05-11-2023, 06:25 PM
|
#3503
|
Human being with feelings
Join Date: Sep 2022
Posts: 331
|
@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.
|
|
|
05-12-2023, 12:15 AM
|
#3504
|
Human being with feelings
Join Date: Oct 2020
Posts: 164
|
@7enz
Many thanks for your answers.
Iīll give a go to all your suggestions.
|
|
|
05-12-2023, 03:30 AM
|
#3505
|
Human being with feelings
Join Date: Sep 2022
Posts: 331
|
@ 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
|
|
|
05-15-2023, 01:55 AM
|
#3506
|
Human being with feelings
Join Date: Feb 2022
Posts: 39
|
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!
|
|
|
05-15-2023, 01:39 PM
|
#3507
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
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.
|
|
|
05-15-2023, 07:19 PM
|
#3508
|
Human being with feelings
Join Date: Apr 2009
Location: Nashville
Posts: 148
|
Looking forward to trying it out. Looks great.
|
|
|
05-16-2023, 02:46 PM
|
#3509
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 5,054
|
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)
|
|
|
05-16-2023, 11:39 PM
|
#3510
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by beingmf
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).
|
|
|
05-17-2023, 07:48 AM
|
#3511
|
Human being with feelings
Join Date: Oct 2020
Posts: 78
|
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.
|
|
|
05-19-2023, 07:53 AM
|
#3512
|
Human being with feelings
Join Date: Nov 2010
Posts: 652
|
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
|
|
|
05-19-2023, 07:58 AM
|
#3513
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by Nick Morris
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?
|
|
|
05-19-2023, 08:09 AM
|
#3514
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by indigomirage
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?
|
|
|
05-19-2023, 10:43 AM
|
#3515
|
Human being with feelings
Join Date: Oct 2020
Posts: 78
|
Quote:
Originally Posted by helgoboss
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).
|
|
|
05-19-2023, 02:37 PM
|
#3516
|
Human being with feelings
Join Date: Nov 2010
Posts: 652
|
Quote:
Originally Posted by helgoboss
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
|
|
|
05-19-2023, 02:49 PM
|
#3517
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by Nick Morris
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.
|
|
|
05-19-2023, 03:10 PM
|
#3518
|
Human being with feelings
Join Date: Nov 2010
Posts: 652
|
Quote:
Originally Posted by helgoboss
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
|
|
|
05-19-2023, 03:15 PM
|
#3519
|
Human being with feelings
Join Date: Nov 2010
Posts: 652
|
Quote:
Originally Posted by helgoboss
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
|
|
|
05-19-2023, 03:25 PM
|
#3520
|
Human being with feelings
Join Date: Aug 2010
Location: Germany
Posts: 2,023
|
Quote:
Originally Posted by Nick Morris
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.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 04:32 AM.
|