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

Reply
 
Thread Tools Display Modes
Old 05-22-2013, 03:30 AM   #1
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default fwiw: paramsliders - compact sliders & buttons w/ cross track sync

hmmm. guess i'll put this one out there just in case it's useful for anyone else. i wanted to keep certain fx params visible when the fx windows were not. so... paramsliders has a compact bank of 36 sliders/buttons which can sync between instances on different tracks using Js gmem[]. this means we can keep one master instance of paramsliders open and floating, while several slave instances in various tracks can be used to control fx params via parameter modulation or midi learn (using Jeffos' most excellent MIDItoReaControlPath). paramsliders can scale &/or invert midi output, which somewhat compensates for Reaper's unscaled midi learn facilities. screenshot below.

if this makes sense and interests you, download this:

paramsliders_v018.zip

if not, never mind... :^) and...

enjoy! /dan



ps- as usual, should you choose to accept this plugin, merge the contents of the bangzero folder with the bangzero folder in Reaper's Js Effects folder. this message will self destruct...
Attached Images
File Type: png Screen shot 2013-05-22 at 11.12.49 AM.png (20.4 KB, 1165 views)
Attached Files
File Type: zip paramsliders_v018.zip (42.8 KB, 359 views)

Last edited by bang; 05-29-2013 at 08:12 AM.
bang is offline   Reply With Quote
Old 05-22-2013, 08:04 AM   #2
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Very interesting, and looking good! Thanks very much for sharing, bang!
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 05-22-2013, 10:12 AM   #3
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

small update in the op. adds instructions on the "++" options page for how to set midi min/max values. also reveals a convenience option that repeats the last midi cc msg which is useful when setting midi learn in controlled fx. and a couple of little gui tweaks. enjoy! /dan
bang is offline   Reply With Quote
Old 05-22-2013, 11:22 AM   #4
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Neat. I made myself a "nothing but sliders" JS for grouping multiple plugin parameters onto a single slider but never thought of syncing across multiple tracks by gmem. Looks cool too.
IXix is offline   Reply With Quote
Old 05-23-2013, 04:32 AM   #5
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

Hey Bang, just posting to say I really like your GUIs I mean, the meat is cool but I always find your GUIs well thought and classy, you're pushing things forward!
(To make ~=themable JS effects, it'd be great if a couple of REAPER's theme colors were exposed to JS effects: main/edit background, 3D highlight/shadow & text color, we'd do the rest with alpha & PNG manipulation for the font...)
Jeffos is offline   Reply With Quote
Old 05-23-2013, 04:52 AM   #6
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

Quote:
Originally Posted by Jeffos View Post
Hey Bang, just posting to say I really like your GUIs[...]
thanks Jeffos! i *like* good guis, and try to keep mine clear, simple, and "classy". exposed theme colors would be nice. and i'd *really* like a "value only" gfx_mode so the aa font hack could do color text! :^) enjoy! /dan

ps- big thanks for MIDItoReaControlPath, esp. for osx/mac.

Last edited by bang; 05-23-2013 at 11:30 PM. Reason: awk hunt
bang is offline   Reply With Quote
Old 05-23-2013, 06:31 AM   #7
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

ooh! think i've got a way to do useable color text. news at 11!

and... none of my recent efforts would be possible without Justin's amazing Js improvements. so big thanks and credit to him!

enjoy! /dan

Last edited by bang; 05-23-2013 at 11:30 PM. Reason: awk hunt
bang is offline   Reply With Quote
Old 05-23-2013, 05:42 PM   #8
James HE
Human being with feelings
 
James HE's Avatar
 
Join Date: Mar 2007
Location: I'm in a barn
Posts: 4,467
Default

bumpy. bump. (so I don't forgetaboutit)


I haven't had time to check this out, looks great.
James HE is offline   Reply With Quote
Old 05-23-2013, 11:28 PM   #9
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

eureka! color anti-aliased text works! details over in the wwfu thread. enjoy! /dan
bang is offline   Reply With Quote
Old 05-24-2013, 03:12 AM   #10
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

hello all! little update in the op to v0.12alpha. it optimizes @gfx to skip redraws if the sliders haven't changed. also fixes a possible quantize glitch and adds some very subtle color cues. enjoy! /dan
bang is offline   Reply With Quote
Old 05-24-2013, 06:37 AM   #11
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Played with it a little bit, very cool. I couldn't figure out how to use shift-click / alt/option-click yet though.

I also guess this is only one or two hacks away from ... <cough> DCA groups for arbitrary parameters <cough>... !?
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 05-24-2013, 07:11 AM   #12
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

Quote:
Originally Posted by Banned View Post
Played with it a little bit, very cool. I couldn't figure out how to use shift-click / alt/option-click yet though.
darn. it's broke. fix asap.
Quote:
I also guess this is only one or two hacks away from ... <cough> DCA groups for arbitrary parameters <cough>... !?
??? digital controlled automation? what do you imagine?
bang is offline   Reply With Quote
Old 05-24-2013, 07:30 AM   #13
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

v0.13alpha: fix for setting midi min/max.
bang is offline   Reply With Quote
Old 05-24-2013, 08:46 AM   #14
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Thanks for the quick fix.
Quote:
Originally Posted by bang View Post
darn. it's broke. fix asap.

??? digital controlled automation? what do you imagine?
What I am thinking of is a master-slave relation where the parameter value of a slave is scaled (multiplied) by the parameter value of a master, rather than linking the values directly, so there is a relative rather than an absolute relation. There are quite a few threads on this forum discussing 'VCA groups', see e.g. here for a recent one.

I posted a PoC of a workaround a while ago that establishes such 'VCA group' type of links between parameters; it uses OSC messages to another application (in this case, Pure data, but the same could be achieved with a number of other apps), which simply multiplies the slaves' values by the master value, and then sends them back to REAPER, again via the OSC backdoor. The use of global memory variables in JS of course is much more elegant - not to mention your lovely GUI.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 05-24-2013, 12:36 PM   #15
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

Quote:
Originally Posted by Banned View Post
What I am thinking of is a master-slave relation where the parameter value of a slave is scaled (multiplied) by the parameter value of a master, rather than linking the values directly, so there is a relative rather than an absolute relation. There are quite a few threads on this[...]
hmmm. quite a can of worms in those threads. :^) but if i understand right, we could already get the functionality you want by using individually scaled parameter modulations for each slave slider. so you would scale the modulation strength instead of the slave's value directly. this could be tedious to set up and configure for very many slaves though. (and i do wish Reaper's somewhat obtuse parameter modulation scheme had some sort of min/max option.) seems like the main challenge would be a good, clear, integrated user interface that shows everything together in one place. that's quite a bit more than a few hacks beyond paramsliders though. (and how much effort is one standardized "hack" anyway? :^) and i think you would still have to set up at least each target parameter modulation manually. anywho...

enjoy! /dan

ps- fwiw, the scaled midi option in paramsliders is there for the times when parameter modulation is too "hard". param mod will override parameter values loaded from presets, even when the source fx is bypassed. if that's undesirable, midi is available. but midi has limited precision compared to param mod, particularly when scaled. so it's a tradeoff.
bang is offline   Reply With Quote
Old 05-26-2013, 04:13 AM   #16
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

paramsliders_v014.zip out. fixes rounding of the sync values.
bang is offline   Reply With Quote
Old 05-26-2013, 07:55 AM   #17
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by bang View Post
hmmm. quite a can of worms in those threads. :^) but if i understand right, we could already get the functionality you want by using individually scaled parameter modulations for each slave slider. so you would scale the modulation strength instead of the slave's value directly. this could be tedious to set up and configure for very many slaves though. (and i do wish Reaper's somewhat obtuse parameter modulation scheme had some sort of min/max option.) seems like the main challenge would be a good, clear, integrated user interface that shows everything together in one place. that's quite a bit more than a few hacks beyond paramsliders though. (and how much effort is one standardized "hack" anyway? :^) and i think you would still have to set up at least each target parameter modulation manually. anywho...

enjoy! /dan

ps- fwiw, the scaled midi option in paramsliders is there for the times when parameter modulation is too "hard". param mod will override parameter values loaded from presets, even when the source fx is bypassed. if that's undesirable, midi is available. but midi has limited precision compared to param mod, particularly when scaled. so it's a tradeoff.
Indeed, quite a can of worms. Perhaps take my remarks more as a warning than anything else.

Using individually scaled parameter modulations for each slave slider is very useful, but I don't think it can achieve the same as DCA groups (or at least, how I understand such functionality). The modulation strength would always be the same for all slaves of a master, but each individual slaved parameter would still be allowed to have its individual value, including automation envelopes, to be taken into account before scaling their 'final' values (by the value of the master). And since automation of (both master and) slave parameters would also need to be taken into account, we need to use something like JS sliders to function more or less as proxies for the underlying parameters, because we can't decouple the control elements in REAPER's GUI (knobs, sliders, buttons, etc.) from the corresponding parameters.

Btw, I don't have much of an issue myself with having to spend a considerable amount of time and effort to prepare a setup which is useful to me. But I guess the "tedious to set up and configure" part is where this approach would stop short of an acceptable workaround for many users who wish to have DCA grouping for the typical use case.

And again much thanks for the update, Dan!
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 05-27-2013, 04:50 AM   #18
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

paramsliders_v015.zip is out. this adds an option to specify one slider as a master slider that scales an invisible set of secondary sliders relative to the visible sliders. so slider a1's value is scaled by the master slider and sets the value of invisible slider a1x, and so forth. the release also includes paramslidersvol, a variant of paramsliders that includes the option to specifiy one slider as a volume control for audio passing through the fx. this is a possibly convenient alternative to setting up a parameter modulation on some sort of volume fx. also fixed a few bugs. enjoy! /dan

ps- lot of new Reaper sliders under the hood in this one, so presets are broke bad. sorry.

Last edited by bang; 05-27-2013 at 05:14 AM.
bang is offline   Reply With Quote
Old 05-27-2013, 05:05 AM   #19
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

Quote:
Originally Posted by Banned View Post
Using individually scaled parameter modulations for each slave slider is very useful, but I don't think it can achieve the same as DCA groups[...]
i think i'm getting this now. i was imagining using the baseline value in the parameter modulation dialog for automating things. that might do something similar to what you want, but it is awkward and obscure. otoh, i think the main bit you want Banned is a group of visible, manipulable, automatable sliders which are scaled en mass by the master slider. so, this latest release might work for that. i don't think it's possible for the master to directly scale the visible slave sliders because it would make the automation logic ambiguous. Reaper always automates the full slider range. so if the master were scaling that down, Reaper would see scaled values and feed them back. then if the master value changes, do we unscale the scaled values and rescale them. seems like too many strange loops. so instead i made the master scale a group of parallel internal sliders based on the visible ones. that's a bit of a compromise. hope it works. or show me a better way. and, all this is somewhat experimental. i'm not much of an automation guy myself. so let me know if anything is not workable for some reason.

enjoy! /dan

ps- note that it should be possible to remotely control and view both the master slider and various slave sliders from some master instance of paramsliders using sync.
bang is offline   Reply With Quote
Old 05-27-2013, 08:38 AM   #20
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

paramsliders_v016.zip - on the edge release here.

hmmm. makes sense to extend the invisible scaled slider concept a bit to use min/max values like midi. so shift-click and option/alt-click will set minimum and maximums for the invisible scaled slider. the visible slider will set the invisble slider values based on the min/max and any enabled master slider. and like midi, the text values shown on the sliders reflect min/max and master. note that when a midi channel is set, slider text values are shown as midi values. otherwise slider/min/max values use the 0.0-100.0 scale. this is only for display. nothing changes internally.

hope this makes sense. question welcome. enjoy! /dan
bang is offline   Reply With Quote
Old 05-27-2013, 10:11 AM   #21
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by bang View Post
i think i'm getting this now. i was imagining using the baseline value in the parameter modulation dialog for automating things. that might do something similar to what you want, but it is awkward and obscure. otoh, i think the main bit you want Banned is a group of visible, manipulable, automatable sliders which are scaled en mass by the master slider. so, this latest release might work for that. i don't think it's possible for the master to directly scale the visible slave sliders because it would make the automation logic ambiguous. Reaper always automates the full slider range. so if the master were scaling that down, Reaper would see scaled values and feed them back. then if the master value changes, do we unscale the scaled values and rescale them. seems like too many strange loops. so instead i made the master scale a group of parallel internal sliders based on the visible ones. that's a bit of a compromise. hope it works. or show me a better way. and, all this is somewhat experimental. i'm not much of an automation guy myself. so let me know if anything is not workable for some reason.

enjoy! /dan

ps- note that it should be possible to remotely control and view both the master slider and various slave sliders from some master instance of paramsliders using sync.
Awesome, Dan, will test it as soon as I have a chance.

Indeed, the automation logic is probably one of the trickiest parts of this entire DCA groups concept. I ran into a similar issue with my OSC-based approach, having to use 'dummy' tracks (/ track volume faders) to work around it, which may easily become a bit of a mess, visually at least. Your parallel internal sliders approach seems to be much better.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 05-27-2013, 11:01 AM   #22
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

paramsliders_v017.zip - back from the edge release: fixes a couple of "edgy release" bugs. :^P sorry. /dan
bang is offline   Reply With Quote
Old 05-29-2013, 08:15 AM   #23
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

paramsliders v0.18alpha - 2 steps forward release available here. refixed a bug that came back when i fixed a bug. :^P made the master fader also scale midi output. added labels to the master and volume faders. enjoy! /dan

ps- oh yeah. it also adds smoothing to the volume control.

Last edited by bang; 05-29-2013 at 09:19 AM. Reason: ps
bang is offline   Reply With Quote
Old 09-13-2013, 03:00 AM   #24
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Bump.
IXix is offline   Reply With Quote
Old 09-15-2013, 07:01 AM   #25
bang
Human being with feelings
 
bang's Avatar
 
Join Date: Jul 2006
Posts: 626
Default

Quote:
Originally Posted by IXix View Post
Bump.
bonk. :^) been a while. life... :^P was there anything in particular to your bump IXix? /dan
bang is offline   Reply With Quote
Old 09-15-2013, 07:32 AM   #26
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,891
Default

Quote:
Originally Posted by bang View Post
bonk. :^) been a while. life... :^P was there anything in particular to your bump IXix? /dan
Nah, just a friendly nudge.
IXix is offline   Reply With Quote
Old 08-13-2015, 07:14 PM   #27
Sound asleep
Human being with feelings
 
Sound asleep's Avatar
 
Join Date: Nov 2009
Location: Montreal, Canada
Posts: 9,069
Default

Does this mean that I could link the velocity parameter of a violin on on a plugin on one track, with the cutoff parameter of a synth on another track?
__________________
Slava Ukraini
Sound asleep is offline   Reply With Quote
Old 07-03-2022, 04:00 PM   #28
X-Tech
Human being with feelings
 
Join Date: Apr 2015
Posts: 589
Default

this is very nice plugin in concept but somehow it seems to save changed value sets into other projects. i tested it and used on new project this plugin and parameters changes memorized from previous. is it safe ? it is bug? seems like values are saved in one file that is shared for all projects instead of saved in each. is chance for update ? repair ?

renaming fields option would be enough to make this perfect reaper friend after first "bug" repair.

this is very promising thing. can you finish this ?
__________________
nonononononono
X-Tech is offline   Reply With Quote
Reply

Thread Tools
Display Modes

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

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

Forum Jump


All times are GMT -7. The time now is 04:51 PM.


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