Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 11-23-2021, 11:25 AM   #1
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default MIDI/OSC Learn bugs (default states)

There seems to be a bug in learn dialog.

These lines are stored in reaper.ini as soon as you use Learn dialog:
Code:
deflearnccmode=0
deflearnselonly=0
In this form they mean both radio selector and checkboxes are clear, not selected, not checked.

But if you learn some parameter using those available options, there is no way to revert to unselected state in next mappings. Checkboxes are easy to clear manually, but the radio selector has no unselected state in GUI. Only way is to remove such lines which do not have value 0 from reaper.ini, or at least modify them to 0 values.
!!! {BUT it is not recommended at all to manually edit that file, unless you are expert and do know exactly what, where and why you are doing it}

(BTW, it doesn't seem new as it is the same in 6.40).

EDIT: Another bug, although "deflearnccmode" parameter is updated in reaper.ini when different mode in learn dialog (eg. from 0 = Absolute to 1 = Relative...) is selected, then its value is not read back when opening learn dialog later. I am not sure but I would think that last setting were meant to be preset until changed by user, that's why they're called "def...", am I right?

^^^^^^ This is transcription of my reply to the question in this thread:
"learn function change"
https://forum.cockos.com/showthread.php?t=259731

Tested in 32bit Reaper v6.42 and v6.40 on Windows7 Pro (32bit)
akademie is offline   Reply With Quote
Old 11-23-2021, 01:10 PM   #2
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,107
Default

UX wise, wouldn't there be an additional radio button 'Always enable' missing?
nofish is offline   Reply With Quote
Old 11-23-2021, 01:47 PM   #3
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
Default

Much more important is having a functionality:
Export all midi mappings to CSV file.
Import all midi mappings from CSV file.
Also all non midi mapped parameters of all fx of all tracks should be in this list with a mapping value of -1 (if not mapped yet, so you can edit in excel for your dream mapping, because you know all midi outputs of all controls of all your hardware/software devices/tools). Example: I know what is output in Reason mode of Bitstream 3X controller, with 32 knobs on top, 8 faders below, 1 crossfader on the right, 1 ribbon control on the right. I would like to edit quickly in any .RPP midi mappings CSV, the values where I want to control something. If it is available as text (or CSV), then we can do this mapping work using grep and regular expressions in an editor like emacs. Or just writing some scripts containing various rules. Example rules:
- if track name contains *kick* and fx js_vol_pan is available on this track, map its adjustment parameter to .... (one of your choices of available controls). You would write such a script once, containing various rules. Later you can apply it on any .RPP.

In short: It would give the Reaper community "auto midi-mapping" of any .RPP from non-mapped state to fully mapped state, based on your own defined rules, for your controls (available on your hardware controllers or your software tools, be in on tablets, on same computer or coming from network).
TonE is offline   Reply With Quote
Old 11-23-2021, 03:55 PM   #4
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

TonE, although your idea ^^^^^ is a nice Feature Request,
do not derail this serious Bug Report thread, please,
so it is easy and straight to read for developers and they can fix it ASAP.

Last edited by akademie; 11-23-2021 at 04:26 PM. Reason: typo
akademie is offline   Reply With Quote
Old 11-23-2021, 04:47 PM   #5
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,032
Default

Oh sorry, just came here from recent posts, so there I never look where anything was posted, just looking if the title sounds interesting.
TonE is offline   Reply With Quote
Old 11-23-2021, 04:53 PM   #6
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

Quote:
Originally Posted by TonE View Post
Oh sorry, just came here from recent posts, so there I never look where anything was posted, just looking if the title sounds interesting.
OK, I get it, no problem
akademie is offline   Reply With Quote
Old 12-06-2021, 06:17 AM   #7
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

Please, look at this bug, if easy to fix.
akademie is offline   Reply With Quote
Old 12-06-2021, 06:18 AM   #8
onewayout
Human being with feelings
 
Join Date: Feb 2008
Location: So Florida
Posts: 1,395
Default

Quote:
Originally Posted by akademie View Post
Please, look at this bug, if easy to fix.
Yes +1 plz, Jeff
__________________
Win 10 I9 20 core 48g Ram always on the latest update
onewayout is offline   Reply With Quote
Old 12-13-2021, 04:34 AM   #9
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

+ 111
akademie is offline   Reply With Quote
Old 12-20-2021, 05:57 PM   #10
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

+1024
akademie is offline   Reply With Quote
Old 02-10-2022, 01:58 AM   #11
toyoto
Human being with feelings
 
toyoto's Avatar
 
Join Date: Nov 2016
Location: Paris, France
Posts: 48
Default

Quote:
Originally Posted by nofish View Post
UX wise, wouldn't there be an additional radio button 'Always enable' missing?
Oh yeah!!
+ 2048!!

I've just discovered this nice MIDI/OSC windows but I tick by error and now I regret very much!! I'm stuck with this on forever
__________________
'The more it fails, the more likely it is that it will work' (shadok proverb)
toyoto is offline   Reply With Quote
Old 02-10-2022, 03:30 AM   #12
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,628
Default

Quote:
Originally Posted by akademie View Post
There seems to be a bug in learn dialog.

These lines are stored in reaper.ini as soon as you use Learn dialog:
Code:
deflearnccmode=0
deflearnselonly=0
In this form they mean both radio selector and checkboxes are clear, not selected, not checked.

But if you learn some parameter using those available options, there is no way to revert to unselected state in next mappings. Checkboxes are easy to clear manually, but the radio selector has no unselected state in GUI. Only way is to remove such lines which do not have value 0 from reaper.ini, or at least modify them to 0 values.
!!! {BUT it is not recommended at all to manually edit that file, unless you are expert and do know exactly what, where and why you are doing it}

(BTW, it doesn't seem new as it is the same in 6.40).

EDIT: Another bug, although "deflearnccmode" parameter is updated in reaper.ini when different mode in learn dialog (eg. from 0 = Absolute to 1 = Relative...) is selected, then its value is not read back when opening learn dialog later. I am not sure but I would think that last setting were meant to be preset until changed by user, that's why they're called "def...", am I right?

^^^^^^ This is transcription of my reply to the question in this thread:
"learn function change"
https://forum.cockos.com/showthread.php?t=259731

Tested in 32bit Reaper v6.42 and v6.40 on Windows7 Pro (32bit)
When removing these lines, do they have an immediate effect when opening the learn-dialog?
Or do you need to restart Reaper for it to have an effect?
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is online now   Reply With Quote
Old 02-10-2022, 04:32 AM   #13
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

Quote:
Originally Posted by Meo-Ada Mespotine View Post
When removing these lines, do they have an immediate effect when opening the learn-dialog?
Or do you need to restart Reaper for it to have an effect?
Hi Meo..
it's immediate (IIRC), I mean you then have to open the Learn window dialog again to take effect of course, but I can verify that later and report back.
akademie is offline   Reply With Quote
Old 02-10-2022, 04:47 AM   #14
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,628
Default

That would be great. If it's like that, I can add a function to Ultraschall-Api to manage the variables, including resetting them.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is online now   Reply With Quote
Old 02-10-2022, 07:06 AM   #15
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

YES, IT IS IMMEDIATE !

Just quickly verified on Reaper v6.46 x86, Windows 7.
Tried to learn EQ1gain, checked the "Enable only when track or item is selected" radio button, confirm OK. Since then any other learn dialog has this button also pre-selected, no way get it to an unselected state within realm of Reaper application.

So, open the reaper.ini file (while Reaper app is still running), find "deflearnselonly=1" entry and delete the whole line, save the file. Click the learn option in menu again and ... no radio button is selected

Hope it helps.


Quote:
Originally Posted by akademie View Post
Hi Meo..
it's immediate (IIRC), I mean you then have to open the Learn window dialog again to take effect of course, but I can verify that later and report back.
akademie is offline   Reply With Quote
Old 02-10-2022, 07:56 AM   #16
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,628
Default

Quote:
Originally Posted by akademie View Post
YES, IT IS IMMEDIATE !

Just quickly verified on Reaper v6.46 x86, Windows 7.
Tried to learn EQ1gain, checked the "Enable only when track or item is selected" radio button, confirm OK. Since then any other learn dialog has this button also pre-selected, no way get it to an unselected state within realm of Reaper application.

So, open the reaper.ini file (while Reaper app is still running), find "deflearnselonly=1" entry and delete the whole line, save the file. Click the learn option in menu again and ... no radio button is selected

Hope it helps.
Nice. I see what I can do

Do you know, if other settings are also allowed in the entries or only 0?
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is online now   Reply With Quote
Old 02-10-2022, 10:01 AM   #17
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,628
Default

The following functions can be used to get and set the defaults:


Get current default settings:
Code:
function GetParmLearn_Default()
--[[
    allows getting the current default-settings for the parmlearn-dialog 
    returns the following retvals:
       integer enable_state - the radiobuttons in the parmlearn-dialog
                               0, no option selected 
                               1, enable only when track or item is selected
                               2, enable only when effect configuration is focused
                               3, enable only when effect configuration is visible
       boolean softtakeover - true, set softtakeover checkbox checked; false, set softtakeover checkbox unchecked
       integer ccmode - the ccmode-dropdownlist
                               0, Absolute
                               1, Relative 1 (127=-1, 1=+1)
                               2, Relative 2 (63=-1, 65=+1)
                               3, Relative 3 (65=-1, 1=+1)
                               4, Toggle (>0=Toggle)
   --]]
  local retval, checkbox=reaper.BR_Win32_GetPrivateProfileString("REAPER", "deflearnselonly", "0", reaper.get_ini_file())
  local retval, ccmode=reaper.BR_Win32_GetPrivateProfileString("REAPER", "deflearnccmode", "0", reaper.get_ini_file())
  local ccmode=tonumber(ccmode)
  local checkbox=tonumber(checkbox)
  local enable_state, softtakeover
  if checkbox&1==0 and checkbox&4==0 and checkbox&16==0 then
    enable_state=0
  elseif checkbox&1==1 and checkbox&4==0 and checkbox&16==0 then
    enable_state=1
  elseif checkbox&1==0 and checkbox&4==4 and checkbox&16==0 then
    enable_state=2
  elseif checkbox&1==0 and checkbox&4==4 and checkbox&16==16 then
    enable_state=3
  end
  
  softtakeover=checkbox&2==2
  
  return enable_state, softtakeover, ccmode
end
Set default settings:
Code:
function SetParmLearn_Default(enable_state, softtakeover, ccmode)
--[[ allows setting default-settings for parm-learn-dialog
   
  set to 0, false, 0 for the factory defaults

  has the following parameters:
       integer enable_state - the radiobuttons in the parmlearn-dialog
                               0, no option selected 
                               1, enable only when track or item is selected
                               2, enable only when effect configuration is focused
                               3, enable only when effect configuration is visible
       boolean softtakeover - true, set softtakeover checkbox checked; false, set softtakeover checkbox unchecked
       integer ccmode - the ccmode-dropdownlist
                               0, Absolute
                               1, Relative 1 (127=-1, 1=+1)
                               2, Relative 2 (63=-1, 65=+1)
                               3, Relative 3 (65=-1, 1=+1)
                               4, Toggle (>0=Toggle)
   --]]
  local checkbox=0
  if enable_state==1 then
    checkbox=checkbox+1
  elseif enable_state==2 then
    checkbox=checkbox+4
  elseif enable_state==3 then
    checkbox=checkbox+4+16
  end
  
  if softtakeover==true then
    checkbox=checkbox+2
  end
  
  local retval = reaper.BR_Win32_WritePrivateProfileString("REAPER", "deflearnselonly", checkbox, reaper.get_ini_file())
  local retval = reaper.BR_Win32_WritePrivateProfileString("REAPER", "deflearnccmode", ccmode, reaper.get_ini_file())  
end
I'll add them to the next Ultraschall-API-update as well.

Need SWS to be installed.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...

Last edited by Meo-Ada Mespotine; 02-10-2022 at 10:14 AM.
Meo-Ada Mespotine is online now   Reply With Quote
Old 02-10-2022, 01:05 PM   #18
kodebode2
Human being with feelings
 
Join Date: Oct 2009
Posts: 164
Default

Quote:
Originally Posted by Meo-Ada Mespotine View Post
The following functions can be used to get and set the defaults:


Get current default settings:
Code:
function GetParmLearn_Default()
--[[
    allows getting the current default-settings for the parmlearn-dialog 
    returns the following retvals:
       integer enable_state - the radiobuttons in the parmlearn-dialog
                               0, no option selected 
                               1, enable only when track or item is selected
                               2, enable only when effect configuration is focused
                               3, enable only when effect configuration is visible
       boolean softtakeover - true, set softtakeover checkbox checked; false, set softtakeover checkbox unchecked
       integer ccmode - the ccmode-dropdownlist
                               0, Absolute
                               1, Relative 1 (127=-1, 1=+1)
                               2, Relative 2 (63=-1, 65=+1)
                               3, Relative 3 (65=-1, 1=+1)
                               4, Toggle (>0=Toggle)
   --]]
  local retval, checkbox=reaper.BR_Win32_GetPrivateProfileString("REAPER", "deflearnselonly", "0", reaper.get_ini_file())
  local retval, ccmode=reaper.BR_Win32_GetPrivateProfileString("REAPER", "deflearnccmode", "0", reaper.get_ini_file())
  local ccmode=tonumber(ccmode)
  local checkbox=tonumber(checkbox)
  local enable_state, softtakeover
  if checkbox&1==0 and checkbox&4==0 and checkbox&16==0 then
    enable_state=0
  elseif checkbox&1==1 and checkbox&4==0 and checkbox&16==0 then
    enable_state=1
  elseif checkbox&1==0 and checkbox&4==4 and checkbox&16==0 then
    enable_state=2
  elseif checkbox&1==0 and checkbox&4==4 and checkbox&16==16 then
    enable_state=3
  end
  
  softtakeover=checkbox&2==2
  
  return enable_state, softtakeover, ccmode
end
Set default settings:
Code:
function SetParmLearn_Default(enable_state, softtakeover, ccmode)
--[[ allows setting default-settings for parm-learn-dialog
   
  set to 0, false, 0 for the factory defaults

  has the following parameters:
       integer enable_state - the radiobuttons in the parmlearn-dialog
                               0, no option selected 
                               1, enable only when track or item is selected
                               2, enable only when effect configuration is focused
                               3, enable only when effect configuration is visible
       boolean softtakeover - true, set softtakeover checkbox checked; false, set softtakeover checkbox unchecked
       integer ccmode - the ccmode-dropdownlist
                               0, Absolute
                               1, Relative 1 (127=-1, 1=+1)
                               2, Relative 2 (63=-1, 65=+1)
                               3, Relative 3 (65=-1, 1=+1)
                               4, Toggle (>0=Toggle)
   --]]
  local checkbox=0
  if enable_state==1 then
    checkbox=checkbox+1
  elseif enable_state==2 then
    checkbox=checkbox+4
  elseif enable_state==3 then
    checkbox=checkbox+4+16
  end
  
  if softtakeover==true then
    checkbox=checkbox+2
  end
  
  local retval = reaper.BR_Win32_WritePrivateProfileString("REAPER", "deflearnselonly", checkbox, reaper.get_ini_file())
  local retval = reaper.BR_Win32_WritePrivateProfileString("REAPER", "deflearnccmode", ccmode, reaper.get_ini_file())  
end
I'll add them to the next Ultraschall-API-update as well.

Need SWS to be installed.
I read all of this, and it was interesting.

But we have to stop somewhere, in the never ending possibilities of Reaper. We should not be fixing bugs with scripts, and more scripts.

If a Reaper feature which someone like me has been using for over 5 years, does not work properly for only one reason - I upgraded to the latest version 6, that is something that should be fixed.

I think as a priority, the non attention paid to this issue, which has been documented on several threads, does not leave a good feeling, about the current development of Reaper. This is the 1st bug, I have had with Reaper, where it was very clear, that the behaviour had changed, and there was absolutely no explanation in the release notes.

I respect the lua script makers ingenuity, but we are not all scripters and coders, bugs in Reaper should be fixed.

In my case I had to regress to version 6.28, which appears to be the most recent version which did not have this bug. It appears that the bug was introduces after 6.28.

I do hope it gets fixed, the right way, in Reaper itself, and nowhere else.
kodebode2 is offline   Reply With Quote
Old 02-10-2022, 02:10 PM   #19
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 4,018
Default

I have to step-in here and state that: "IT IS A BUG".

The function does not work as intended, because being not able to unselect any extra "Enable only..." options is definitely a bug and not a feature.
I am also little sad that devs did not fix this bug already. For me it does mean I stopped to use learn functionality altogether, just because of this behavior, which is a shame
(I can live without it - but would like to know that whenever I will need it, it's just there working correctly waiting for me

And in no way any disrespect for your work Meo !, it is absolutely awesome that you are able to workaround such bugs for all of the users Brilliant.

But as kodebode2 wrote, it should not be like that for the basic and very well documented and reproducible bugs. We should left time for you all the scripters to expand the Reaper's capabilities, not fixing bugs. (sure I do not speak here about various different alternations of workflow that are not native in Reaper, as is Padcast creating for example, that's what could also possible make with add-on custom scripting, yes).

EDIT: Ah, well, it seems that meantime, while I was writting this post, Meo deleted his post, which in fact made me to write my statement No problem, it's here anyway.
akademie is offline   Reply With Quote
Old 02-10-2022, 02:12 PM   #20
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,628
Default

I think, in conjunction with Nofish's idea of an always enable-radio button, there should be a checkbox for "remember for next time", as this is currently not controllable at all.

Having the chance to set one default(set checkbox once) or using the latest one(always checked) would work great with it, imho.

@kodebode2
I didn't fix a bug. With these functions, you could set various "presets" that you could recall before opening the Learn-dialog.
But this would work best, if the option exists to not overwrite the defaults with a new one everytime you hit OK.

@akademie
That's why I deleted my post you referred to
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is online now   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 02:54 AM.


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