Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 02-18-2018, 10:18 AM   #1
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default MPL Interactive Toolbar: context sensitive modular toolbar

Hi. This topic is dedicated to Cubase event info bar representation for REAPER world. It is a lua script with GUI which allow to dynamically display/edit context info.

All supported widgets (version 1.47)


In some cases it can reduce screen space usage taken by transport. Something like Breeder`s contextual toolbars, but expandable at lower level than just context sensitive regular Reaper toolbars with half-interactive buttons. Theoretically it is possible to put almost any stuff you can imagine (thanks to REAPER devs). Limitations are mostly coming from API, so it can`t fry bacon, but may show current plugin learned parameters or FX chain aligned horizontally, for example.

Download/Install:
  • Install ReaPack and SWS Extensions
  • run ActionList > ReaPack: Browse packages...
  • navigate and install InteractiveToolbar and Various_functions packages

Last edited by mpl; 05-10-2020 at 02:42 AM.
mpl is offline   Reply With Quote
Old 02-18-2018, 10:44 AM   #2
SoulOne82
Human being with feelings
 
SoulOne82's Avatar
 
Join Date: Sep 2008
Location: Illville - Germany
Posts: 972
Default

Quote:
Originally Posted by mpl View Post
This probably not such usefull tool as Heda`s stuff
WTF?

This is hella useful!
SoulOne82 is offline   Reply With Quote
Old 02-18-2018, 01:02 PM   #3
Chris Hurst Music
Human being with feelings
 
Chris Hurst Music's Avatar
 
Join Date: Mar 2017
Location: Wales, UK
Posts: 75
Default

This is great...but I can't get it to dock in the toolbar docker (which I have at the top of my screen), so I wonder what I am doing wrong...!
Chris Hurst Music is offline   Reply With Quote
Old 02-18-2018, 01:13 PM   #4
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

By default on first start it goes to the second dock whatever it placed. Then you can undock it and put to other toolbar or side (new docker will be shown), the configuration will be saved for next start.
mpl is offline   Reply With Quote
Old 02-18-2018, 01:25 PM   #5
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

It looks very interesting. I installed via ReaPack but I get this error when I try to run it...
Code:
mpl_InteractiveToolbar_basefunc.lua:233: attempt to index a nil value
IXix is online now   Reply With Quote
Old 02-18-2018, 01:33 PM   #6
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by IXix View Post
It looks very interesting. I installed via ReaPack but I get this error when I try to run it...
Code:
mpl_InteractiveToolbar_basefunc.lua:233: attempt to index a nil value
Can you make a selected track FX chain screenshot at the moment you run script?
mpl is offline   Reply With Quote
Old 02-18-2018, 01:47 PM   #7
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by mpl View Post
Can you make a selected track FX chain screenshot at the moment you run script?
It doesn't seem to matter whether the selected track has FX or not or even if any track is selected.
IXix is online now   Reply With Quote
Old 02-18-2018, 01:54 PM   #8
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

It seems to be something to do with my default project template. I created a new tab bypassing the default project and your toolbar opened.

edit: and if I load my default project while the toolbar is open, the error pops up and the toolbar goes away. Don't you just love computers.
IXix is online now   Reply With Quote
Old 02-18-2018, 02:00 PM   #9
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

wow, pretty quick update!

Thanks for adding my requests.

1.Is there any way you can fix the renamed FX crash? I have a renamed FX on almost every 2nd track...
Just to be sure: It only crashes if the FX is renamed temporarily in the mixer. It works ok if the FX is renamed globally in the FX browser.

2.For me scrolling through takes with mousewheel only works in one direction, no matter what i do with the wheel.

3. Is there a way to access the offline plugins?


Thanks, this is a very useful tool, this should be a default in Reaper.
HighVoltage is offline   Reply With Quote
Old 02-18-2018, 02:05 PM   #10
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by HighVoltage View Post
1.Is there any way you can fix the renamed FX crash? I have a renamed FX on almost every 2nd track..
Ah! My default template has a bunch of renamed FX and if I strip out the FX the toolbar runs. Case closed.
IXix is online now   Reply With Quote
Old 02-18-2018, 11:12 PM   #11
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

1.02 should fix the problem with renamed FX and mousewheel scrolling for item name.


Quote:
Is there a way to access the offline plugins?
It is possible to do with chunking (I have a function which get/set offline FX state), but I don`t want to do this since it can increase CPU usage a lot. So the request more for the devs for adding related API.

Last edited by mpl; 02-18-2018 at 11:31 PM.
mpl is offline   Reply With Quote
Old 02-19-2018, 04:30 AM   #12
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by mpl View Post
1.02 should fix the problem with renamed FX and mousewheel scrolling for item name.
Crash is fixed. Cool script!
IXix is online now   Reply With Quote
Old 02-19-2018, 07:35 AM   #13
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

Works smoothly here so far!

Thanks for the awesomeness!
HighVoltage is offline   Reply With Quote
Old 02-19-2018, 08:14 AM   #14
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

Quote:
Originally Posted by mpl View Post
It is possible to do with chunking (I have a function which get/set offline FX state), but I don`t want to do this since it can increase CPU usage a lot. So the request more for the devs for adding related API.
ReaScript API to offline/online FX will probably be in next SWS version (when it's released some day). Also uses chunk parsing internally but might be a bit faster than doing the chunk parsing directly in ReaScript. PM me if you want a SWS pre for testing.
nofish is offline   Reply With Quote
Old 02-19-2018, 08:37 AM   #15
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

There is no complexity to add this to #fxlist at the time it will introduced so no worries.

Why it will be faster than something like
Code:
tonumber(({FX_chunk:match('BYPASS (%d) (%d)')})[2]) == 1
?

Anyway I still think internal memory asking (i.e.native API) is way better especially for big FX data states.

Last edited by mpl; 02-19-2018 at 08:46 AM.
mpl is offline   Reply With Quote
Old 02-19-2018, 08:50 AM   #16
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

If you could add a #bpm and #cycle to the persistent modules, i could get rid of the transport bar completely

Also noticed:
If i move any control on the bar (or click the play button), it completely traps keyboard shortcuts except the spacebar. Only if i click back in the main window i get themback.
HighVoltage is offline   Reply With Quote
Old 02-19-2018, 09:00 AM   #17
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

Quote:
Originally Posted by mpl View Post
Why it will be faster than something like
Code:
tonumber(({FX_chunk:match('BYPASS (%d) (%d)')})[2]) == 1
?
Didn't say it will be, but 'it might be a bit'.
Because it uses SWS internal chunk parser which I gues is optimized for those things, but I don't know really.

Quote:
Anyway I still think internal memory asking (i.e.native API) is way better especially for big FX data states.
For sure.
nofish is offline   Reply With Quote
Old 02-19-2018, 10:20 AM   #18
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by HighVoltage View Post
If you could add a #bpm and #cycle to the persistent modules, i could get rid of the transport bar completely

Also noticed:
If i move any control on the bar (or click the play button), it completely traps keyboard shortcuts except the spacebar. Only if i click back in the main window i get themback.
I can add #bpm only for current edit cursor position, because otherwise it will be hard for CPU to update data/Generate GUI every defer cycle (30 times a second). Same for #repeat (if you mean Repeat state by "cycle").
It is not possible to pass shortcuts through reascript (so it allows to use different shortcuts for different scrits). The only way is to map them manually unfortunately.
mpl is offline   Reply With Quote
Old 02-19-2018, 11:34 AM   #19
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

Quote:
Originally Posted by mpl View Post
It is not possible to pass shortcuts through reascript (so it allows to use different shortcuts for different scrits). The only way is to map them manually unfortunately.
I was playing with HeDa's track inspector and it solves this problem by automatically focusing the main window when you release the mouse on it's GUI.
HighVoltage is offline   Reply With Quote
Old 02-19-2018, 11:37 AM   #20
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Does he use mousewhell also somethere?
mpl is offline   Reply With Quote
Old 02-19-2018, 11:39 AM   #21
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

Quote:
Originally Posted by mpl View Post
Does he use mousewhell also somethere?
Yes, pretty much on everything, but then it doesn't move the focus to the main window either... Just on left and right clicks.
But since the window is not active, the wheel still works when just hovering, without activating the script window.
HighVoltage is offline   Reply With Quote
Old 02-19-2018, 12:12 PM   #22
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Aha it works, so passing Breeder`s SWS/BR: Focus arrange at mouse release seems a solution.

Re:#bpm widget
click on bpm/timesig - open input box for inserting values for project tempo (or tempo/timesignature marker falling right before edit cursor if any). Is that ok behaviour? Because native transport adding new marker instead of editing falling one (editing falling marker looks more useful to me).

Last edited by mpl; 02-19-2018 at 12:21 PM.
mpl is offline   Reply With Quote
Old 02-19-2018, 12:59 PM   #23
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 6,009
Default

Enjoying the last touched addition, thanks v much

Couple of q's:

The update speed is ok but maybe bit slow, wouldn't want to tax the system of course but is there an option?

Also & this may be reaper issue - some plugin's paramters on macos are not appearing to the system to allow control, confused me at first. Could there be a reason for this? Or should i report issue?

Thanks again
__________________
JS Super8 Looper Template & intro | BCF2000 uber info Thread | Who killed the Lounge?
BenK-msx is offline   Reply With Quote
Old 02-19-2018, 01:04 PM   #24
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

GUI/Data update speed is up to ReaScript rules, so no option here. Showing plugin parameters is up to plugin developers.
mpl is offline   Reply With Quote
Old 02-19-2018, 01:54 PM   #25
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

Quote:
Originally Posted by mpl View Post
Re:#bpm widget
click on bpm/timesig - open input box for inserting values for project tempo (or tempo/timesignature marker falling right before edit cursor if any). Is that ok behaviour? Because native transport adding new marker instead of editing falling one (editing falling marker looks more useful to me).

I was just expecting a way more simple current bpm display (if i want to go into multiple tempo/signature mode, then i can use the built in transport or open the tempo track.)

But your's sound good to me. What does it do if there is no marker? Does it just edit the base tempo like the transport one? Cause it's perfect then.
HighVoltage is offline   Reply With Quote
Old 02-19-2018, 08:01 PM   #26
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 6,009
Default

Quote:
Originally Posted by mpl View Post
GUI/Data update speed is up to ReaScript rules, so no option here. Showing plugin parameters is up to plugin developers.
informative! (i mean, straight to the point) thanks
__________________
JS Super8 Looper Template & intro | BCF2000 uber info Thread | Who killed the Lounge?
BenK-msx is offline   Reply With Quote
Old 02-20-2018, 12:41 AM   #27
lachinhan
Human being with feelings
 
lachinhan's Avatar
 
Join Date: Nov 2014
Location: Can Tho - Viet Nam
Posts: 305
Default I can not load the other interface

I can not load the other interface, I only load the Audio Item interface. I tried, but could not, maybe I missed something. Can you show me !!
__________________
NK Recording Studio
Email: lachinhan@gmail.com or admin@thuamninhkieu.com
Website:nkpro.top and ntmusicpro.com
lachinhan is offline   Reply With Quote
Old 02-20-2018, 01:06 AM   #28
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Quote:
Originally Posted by lachinhan View Post
I can not load the other interface, I only load the Audio Item interface. I tried, but could not, maybe I missed something. Can you show me !!
If you tried alpha version before it was configured for item only. If you click Menu/Widgets configuration/Reset , youll get enabled all modules supported for current version. It looks like this:

Quote:
[EmptyItem]
order=#position #length
[MIDIItem]
order=#buttons#snap #position #length #offset #fadein #fadeout #vol #transpose #pan
buttons=#lock #loop #mute
[AudioItem]
order=#buttons#snap #position #length #offset #fadein #fadeout #vol #transpose #pan
buttons=#lock #preservepitch #loop #mute #chanmode #bwfsrc
[MultipleItem]
order=#buttons#position #length #offset #fadein #fadeout #vol #transpose #pan
buttons=#lock #preservepitch #loop #chanmode #mute
[Envelope]
order=#floatfx #position #value
[Track]
order=#vol #pan #fxlist #sendto
[Persist]
order=#grid #timeselend #timeselstart #lasttouchfx #transport
mpl is offline   Reply With Quote
Old 02-20-2018, 01:45 AM   #29
lachinhan
Human being with feelings
 
lachinhan's Avatar
 
Join Date: Nov 2014
Location: Can Tho - Viet Nam
Posts: 305
Default Hi MPL

I'm using version 1.03. I made a silly mistake, I thought it was possible to load multiple interfaces, while the interface would change according to the workflow.
I really like Track send bus in this tool.
Thank you so much !
__________________
NK Recording Studio
Email: lachinhan@gmail.com or admin@thuamninhkieu.com
Website:nkpro.top and ntmusicpro.com
lachinhan is offline   Reply With Quote
Old 02-20-2018, 06:08 AM   #30
Mottemania
Human being with feelings
 
Join Date: Apr 2016
Posts: 103
Default

This is awesome. Thank you!

Ah, if I am moving an item around the positionvalues resets when I'm releasing the item. Maybe it could be showing the actual Position while moving?

And maybe an option for movin the item to the original timestamp?
Mottemania is offline   Reply With Quote
Old 02-20-2018, 06:23 AM   #31
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

As I said before, GUI/Data update can takes a lot of CPU. For keeping low CPU usage, I give an update trigger for GUI/data not on every ReaScript cycle (30 times a second approximately), but only when something was changed (a couple of API-based triggers). So live with it.
mpl is offline   Reply With Quote
Old 02-20-2018, 06:29 AM   #32
Mottemania
Human being with feelings
 
Join Date: Apr 2016
Posts: 103
Default

Quote:
Originally Posted by mpl View Post
As I said before, GUI/Data update can takes a lot of CPU. For keeping low CPU usage, I give an update trigger for GUI/data not on every ReaScript cycle (30 times a second approximately), but only when something was changed (a couple of API-based triggers). So live with it.
Allright, and I should totally read the whole thread. Thanks anyway!
Mottemania is offline   Reply With Quote
Old 02-20-2018, 07:10 AM   #33
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

Just curious, is it possible with this API to have a script that selects the track that the currently active floating FX resides on?

Kind of like a reverse "Float instrument relevant to midi editor", but instead it would select the midi track.
HighVoltage is offline   Reply With Quote
Old 02-20-2018, 12:17 PM   #34
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default

Of course possible (as a lot of things in REAPER). But not sure it is related to this thread.

Last edited by mpl; 02-20-2018 at 12:24 PM.
mpl is offline   Reply With Quote
Old 02-21-2018, 02:17 AM   #35
Chris Hurst Music
Human being with feelings
 
Chris Hurst Music's Avatar
 
Join Date: Mar 2017
Location: Wales, UK
Posts: 75
Default

Quote:
Originally Posted by mpl View Post
By default on first start it goes to the second dock whatever it placed. Then you can undock it and put to other toolbar or side (new docker will be shown), the configuration will be saved for next start.
Thanks for that. I've accidentally made it a floating toolbar. Any ideas on how I dock it again, as I have tried everything unsuccessfully so far!

Thanks.
Chris Hurst Music is offline   Reply With Quote
Old 02-21-2018, 09:06 AM   #36
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
Default



You only need to reopen the script again after this (for Graphics update, currently it doesnt refresh after changing dock state and docker actually)
mpl is offline   Reply With Quote
Old 02-21-2018, 12:25 PM   #37
Chris Hurst Music
Human being with feelings
 
Chris Hurst Music's Avatar
 
Join Date: Mar 2017
Location: Wales, UK
Posts: 75
Default

Quote:
Originally Posted by mpl View Post

You only need to reopen the script again after this (for Graphics update, currently it doesnt refresh after changing dock state and docker actually)
Thanks but my floating toolbar doesn't have the docking tab (no matter what size I make it):

Edit - screen grab removed

I must have done something, but can't figure it out. Apologies for de-railing thread - this is an awesome tool (I just want to dock it!).

Last edited by Chris Hurst Music; 02-21-2018 at 01:53 PM.
Chris Hurst Music is offline   Reply With Quote
Old 02-21-2018, 01:19 PM   #38
HighVoltage
Human being with feelings
 
HighVoltage's Avatar
 
Join Date: Jan 2007
Posts: 496
Default

Quote:
Originally Posted by Chris Hurst Music View Post
Thanks but my floating toolbar doesn't have the docking tab (no matter what size I make it):


I must have done something, but can't figure it out. Apologies for de-railing thread - this is an awesome tool (I just want to dock it!).
Does it have it if you use the default reaper skin? Just a guess
HighVoltage is offline   Reply With Quote
Old 02-21-2018, 01:43 PM   #39
fundorin
Banned
 
Join Date: Feb 2014
Location: Moscow, Russia
Posts: 554
Default

Right click on the toolbar and select "Position toolbar/in toolbar docker".

P.S. Was this huge screenshot even necessary? Reaper can be started in a window, you know?
fundorin is offline   Reply With Quote
Old 02-21-2018, 01:52 PM   #40
Chris Hurst Music
Human being with feelings
 
Chris Hurst Music's Avatar
 
Join Date: Mar 2017
Location: Wales, UK
Posts: 75
Default

Appreciate the help.

I’ll leave the topic now so we can get the thread back on track and discuss this great mpl toolbar.

(Image removed from original post)
Chris Hurst Music is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 01:29 PM.


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