Cockos Incorporated Forums

Cockos Incorporated Forums (https://forum.cockos.com/index.php)
-   JSFX and ReaScript Discussion (https://forum.cockos.com/forumdisplay.php?f=3)
-   -   LBX Stripper - create custom channel strips (https://forum.cockos.com/showthread.php?t=182233)

lb0 10-04-2016 02:29 PM

LBX Stripper - create custom channel strips
 
Hi everyone,

https://youtu.be/dFWRuXEQVDc

Second project I've been working on (about a week so far). Easily create custom channel strips from any plugins. Drag and drop parameters, multi select and edit look and feel. Add background graphics to give an authentic look (or go crazy). Create and use your own knobs (I've only used those available using Knobman3d so far - I'm not a graphic designer sadly).

Save the strips - load into any track in any project - all plugin settings are recalled correctly (Nebula works great - that's what I've created it for mainly for my use).

Using plugins like dpMeter2 to add metering (would like to work out how to get the scaling correct for the reaper.GetPeakInfo function - my attempts so far look rubbish - something to work on).

I still plan to add some features - a better strips browser - with folders - to help organise your strips better.

I didn't get much feedback for my last Chaos Engine project - so haven't done much to that this week. But maybe it's just not as useful as I thought.

I will hope to release this within a few weeks (free of course) - I still want to tweak some stuff - but would like to know if anyone likes the look of it.

Cheers for now!
Leon (lbx).

EDIT: Beta released. Find latest version here:

https://github.com/L-B-X/LBXStripper

Please also report any bugs/errors and suggestions on this thread. Many thanks.

Please NOTE: while the development is in beta - backwards compatibility may break from time to time - so please be aware before incorporating into any important projects. Sometimes (if the save code fails) - you may lose the entire layout in the script - so always save as NEW VERSION when saving your projects to avoid possibility of losing your strips.


To set up action list files to complete the action chooser dialog see:
http://forum.cockos.com/showpost.php...postcount=1125

Then Timbral has provided a useful GIF showing how to set up action buttons:
http://forum.cockos.com/showpost.php...postcount=1174

Please note - I don't think Linux users will be able to follow the above because it requires an SWS dump call - but you may be able to use one of the list files (for native actions) - assuming command id's are fixed across platforms. So you may be able to ask somebody to provide their own exported dump file.

If actions are added with reaper updates - then you would need to run the necessary dump action again to get an updated list.

Timbralzoom has created some excellent videos showing off the script at various stages of development:

The basics tutorial: https://www.youtube.com/watch?v=l6kwVsMVvbw
VU Meter HowTo: https://www.youtube.com/watch?v=U-Db98rcxjY

Here are the latest tutorial videos from Timbralzoom:

01 How to install: https://www.youtube.com/watch?v=VgaT1o-QjCw
02 Menus & Functions: https://www.youtube.com/watch?v=onHulePhmio&t=6s
4 Snapshot XY Control: https://www.youtube.com/watch?v=713elb70KT0
Sends From All Channels: https://www.youtube.com/watch?v=51Wn3NxfSCQ
Automating Metalite XY & Paths https://www.youtube.com/watch?v=zoct...ature=youtu.be
Strip Switchers https://www.youtube.com/watch?v=XmyRXW674Ug

Various videos showing his use of the script:

https://www.youtube.com/watch?v=vLm8Cdd_9Gc
https://www.youtube.com/watch?v=Dsdqnv0P7aQ
https://www.youtube.com/watch?v=X6J4au3RaBs
https://www.youtube.com/watch?v=9Fh1LWJn1Rg
https://www.youtube.com/watch?v=GclE3uajyjw
https://www.youtube.com/watch?v=W5lrt2UwJaU
https://www.youtube.com/watch?v=xsBktkhYqI0

There are many more in Timbral's youtube channel...

Thanks so much Timbral for doing these... :)

Here's a link to all the controls Timbral has collected together:

CONTROLS: http://forum.cockos.com/showpost.php...postcount=2068

Timbral's Surrogate Link: http://forum.cockos.com/showpost.php...postcount=1714
Vid: https://www.youtube.com/watch?v=wCDsXisasWU

ThrashJazzAssassin's shared strip files: https://github.com/ThrashJazzAssassin/LBX-Strips

Sexan 10-04-2016 03:03 PM

are you kidding me!? AWESOME!

lb0 10-04-2016 03:21 PM

Quote:

Originally Posted by Sexan (Post 1738553)
are you kidding me!? AWESOME!

absolutely no kidding :)

There are a few features not shown in video (nothing overly special) - but the red rectangles that appear when you drag a parameter over another control - means if you drop it there it swaps the parameter to the new one.

You can fine tune all adjustable controls using shift. Ctrl will switch the control to it's default setting etc. All basic usability stuff. Alt clicking a control selects all controls in an imported strip. A strip can contain as many plugs as you like - then saved for recall elsewhere.

Oh I plan to add the ability to let you hover the mouse over a control and then control it from a midi controller (as there is no apparent way of getting at the midi input stream - this seemed like a useful compromise).

If there's anything you haven't seen but would like considered - let me know.

I guess it will be easier when I release it.

lb0 10-04-2016 05:07 PM

A few other minor things to show - like the controls will follow changes made within the plugin, and if you delete a plugin that has controls in the strip - it will show you this.

also shows the bypass working.

Apologies the video got a bit choppy - my laptop needs a rest. But the script generally uses very little CPU when open (normally around 1-2% on my laptop) I can probably improve this later on by optimizing the graphics drawing (at the moment it draws everything each refresh - which is not necessary).

https://youtu.be/TWCeXsJDlnw

X-Raym 10-04-2016 06:00 PM

Man, you just pushed the GFX known limits a bit further !!
Impressive interface interaction considering the avaible functions.
Well done !

dasombre 10-04-2016 06:31 PM

really looks amazing and very useful. very much looking forward to try this!
thanks a lot Mr.!

geoslake 10-04-2016 09:39 PM

Omfg this is freaking amazing !!!

hopi 10-05-2016 09:19 AM

very very interesting... when can we get a version to try?

lb0 10-05-2016 01:13 PM

Quote:

Originally Posted by hopi (Post 1738942)
very very interesting... when can we get a version to try?

Hi hopi,

Not too long - a few things to tidy up and if all goes to plan - I hope it will only be a matter of a few days to a week. :)

Note however - that the nice knobs come straight from knobman3d - and i didn't create those - so I may not be able to provide them with the script. I should probably give a few varieties of each control type (knobs/sliders/meters/2 state buttons) with the script - but I'm not a designer and they probably won't look that great.

If any one is a dab hand at using knobman or knobman3d or similar and would like to supply some - then that might speed up the release ;) Currently my script uses vertical stitching - ie. each new frame under the previous frame. ideally 100 frames per knob for smooth operation. The script 'should' be able to cope with different numbers of frames though although it's primarily untested.

RJHollins 10-05-2016 01:50 PM

will others be able to make custom knobs on their own to use within your script ???

Following this with interest for what you plan.

thx

hopi 10-05-2016 02:23 PM

Quote:

Originally Posted by lb0 (Post 1739043)
Hi hopi,

Not too long - a few things to tidy up and if all goes to plan - I hope it will only be a matter of a few days to a week. :)

Note however - that the nice knobs come straight from knobman3d - and i didn't create those - so I may not be able to provide them with the script. I should probably give a few varieties of each control type (knobs/sliders/meters/2 state buttons) with the script - but I'm not a designer and they probably won't look that great.

If any one is a dab hand at using knobman or knobman3d or similar and would like to supply some - then that might speed up the release ;) Currently my script uses vertical stitching - ie. each new frame under the previous frame. ideally 100 frames per knob for smooth operation. The script 'should' be able to cope with different numbers of frames though although it's primarily untested.


thanks ... I do look forward to it

I've prolly made more than my share of knobs with knobman

so I assume you are using the exported .png stack for your knobs, yes?

can you tell us a bit about how the script uses the various knobs? In other words, is there a folder or the like where all possible knobs reside as .png files?

I know myself and others here are quite familiar with Knobman [btw, that seems like such a contradiction in terms for a name... I thought only women had 'knobs'... ] ...anyway, I'm more than sure there could be a slew of new knob contributions in short order. Personally you can find some of my knobs used in my skins for Nebula's GUI....
Also btw, while working with those projects I got into knobs with a much higher number of frames, precisely for smoother operations.

Sju 10-05-2016 03:12 PM

Quote:

Originally Posted by lb0 (Post 1738548)
I didn't get much feedback for my last Chaos Engine project - so haven't done much to that this week. But maybe it's just not as useful as I thought.

I think the problem is with the maybe a bit ambiguous thread title and the fact that you posted it on the JSFX sub. A sexy title, big screenshot and a thread on the general forum should get a lot more attention, because the script is fucking great. Unfortunately haven't had time to play with it myself due to being very busy right now, but definitely don't give up on that one. This new script also seems like an awesome piece of work, so thank you!

cyrano 10-05-2016 03:31 PM

Wow. Looks great. I'll have to spend a lot of time with this when it's released. Fixes my major gripe with plugins!

Windows/Mac/Linux possible?

lb0 10-05-2016 03:46 PM

Quote:

Originally Posted by RJHollins (Post 1739054)
will others be able to make custom knobs on their own to use within your script ???

Following this with interest for what you plan.

thx

Hey RJ,

Yep - any vertically stitched knob stacks (ie - each new frame under previous one). Just place them in the controls folder - each control needs an additional text file (same filename as knob but with .knb suffix). This holds 3 parameters - number of frames, frame height, filename :

{{
["frames"]=101,
["cellh"]=128,
["fn"]="shinyknob.png",
},
}

you can use any width or height for the knob/slider/meter etc.
That's all there is to using your own knobs. Thinking about having an import button on the script which will create the .knb file for you).

lb0 10-05-2016 03:55 PM

Quote:

Originally Posted by hopi (Post 1739066)
thanks ... I do look forward to it

I've prolly made more than my share of knobs with knobman

so I assume you are using the exported .png stack for your knobs, yes?

can you tell us a bit about how the script uses the various knobs? In other words, is there a folder or the like where all possible knobs reside as .png files?

I know myself and others here are quite familiar with Knobman [btw, that seems like such a contradiction in terms for a name... I thought only women had 'knobs'... ] ...anyway, I'm more than sure there could be a slew of new knob contributions in short order. Personally you can find some of my knobs used in my skins for Nebula's GUI....
Also btw, while working with those projects I got into knobs with a much higher number of frames, precisely for smoother operations.

Please see my reply to RJ regarding the knobs - but basically yes. Create knob - stick in folder - but additionally add a .knb file so it knows how many frames/frame height etc. I plan to make this easier though - technically - you'd only need to specify the number of frames and it could work everything out from that.

Haha - where I'm from - a 'knob' is definitely associated with a man!!

lb0 10-05-2016 04:01 PM

Quote:

Originally Posted by Sju (Post 1739077)
I think the problem is with the maybe a bit ambiguous thread title and the fact that you posted it on the JSFX sub. A sexy title, big screenshot and a thread on the general forum should get a lot more attention, because the script is fucking great. Unfortunately haven't had time to play with it myself due to being very busy right now, but definitely don't give up on that one. This new script also seems like an awesome piece of work, so thank you!

ah maybe - I guess I've just spent most of my recent weeks scouring this sub-forum for solutions... I thought this was where all script talk happened!! Still - I'm happy to keep it low key just for now. I haven't time to answer too many questions, and the fewer people using it might mean the fewer bugs are spotted!! ;) (disclaimer - I try to fix all bugs I find in testing - there's only one outstanding b*stard of a bug in Chaos Engine that I've found so far that has gone unfixed - but I'll look into it soon and it's not a show stopper really)

lb0 10-05-2016 04:04 PM

Quote:

Originally Posted by cyrano (Post 1739080)
Wow. Looks great. I'll have to spend a lot of time with this when it's released. Fixes my major gripe with plugins!

Windows/Mac/Linux possible?

I'm on windows only here - but I assume being entirely written in Lua from within Reaper - it stands a good chance of running on all Reaper platforms. Would be good to hear what systems people have tried the Chaos Engine script on - and how well it works.

hopi 10-05-2016 08:27 PM

Quote:

Originally Posted by lb0 (Post 1739086)
Hey RJ,

Yep - any vertically stitched knob stacks (ie - each new frame under previous one). Just place them in the controls folder - each control needs an additional text file (same filename as knob but with .knb suffix). This holds 3 parameters - number of frames, frame height, filename :

{{
["frames"]=101,
["cellh"]=128,
["fn"]="shinyknob.png",
},
}

you can use any width or height for the knob/slider/meter etc.
That's all there is to using your own knobs. Thinking about having an import button on the script which will create the .knb file for you).

oh now that import would be a great idea! so, ummm .knb will be your own extension? is that used by adding it to the end of a knob like myknob.png.knb ???

It seems in your video that the knobs you use get resized... maybe that is an illusion and they are being replaced with a smaller version of a knob that looks the same???

Knobman is pretty kewl that way, in that once you have the knob you like you can generate other versions in various sizes easily... well pretty much, there can be elements of a knob that don't resize well... still mostly easy to do.

noise_construct 10-05-2016 10:06 PM

This looks like it could be very useful, I've been using a much cruder script similar to this- idea is solid.

Quote:

Originally Posted by lb0 (Post 1738548)
I didn't get much feedback for my last Chaos Engine project - so haven't done much to that this week. But maybe it's just not as useful as I thought.

I've only had time to be amazed by that, it's one of the only two methods of automating multiple parameters at once (the other is mpl's). It takes a while to adapt such plugins into one's workflow, I'll certainly give better feedback as I use it more.

TBProAudio 10-05-2016 10:28 PM

Quote:

Originally Posted by lb0 (Post 1738548)
Using plugins like dpMeter2 to add metering (would like to work out how to get the scaling correct for the reaper.GetPeakInfo function - my attempts so far look rubbish - something to work on).

Wow, this really great!!!
As im the developer of dpMeter2 i would like to know if i can help here?
I guess exporting max values (IL, SL, ML and TB/Peak) could be neat, what do you think? Is there a GUI element just showing values?

lb0 10-06-2016 12:17 AM

Quote:

Originally Posted by hopi (Post 1739168)
oh now that import would be a great idea! so, ummm .knb will be your own extension? is that used by adding it to the end of a knob like myknob.png.knb ???

It seems in your video that the knobs you use get resized... maybe that is an illusion and they are being replaced with a smaller version of a knob that looks the same???

Knobman is pretty kewl that way, in that once you have the knob you like you can generate other versions in various sizes easily... well pretty much, there can be elements of a knob that don't resize well... still mostly easy to do.

Hi hopi,

no - that's a simple blit bitmap scaling routine provided with the built in gfx blit command. So if I give it a value of 0.5 - it scales the bitmap by 0.5, I then adjust the coordinates to reflect this. I could upscale too - but it looks truly awful I thought there's really no point unless you're going for a real 80s bitmap look.

lb0 10-06-2016 12:20 AM

Quote:

Originally Posted by TBProAudio (Post 1739184)
Wow, this really great!!!
As im the developer of dpMeter2 i would like to know if i can help here?
I guess exporting max values (IL, SL, ML and TB/Peak) could be neat, what do you think? Is there a GUI element just showing values?

Yes yes YES please!! :) You know - I was hoping someone might be able to nudge you to make some extra parameters available... That would be hugely useful... At the moment I haven't got a value only control - but that would be V easy.

Pet 10-06-2016 04:41 AM

Quote:

Originally Posted by lb0 (Post 1739043)
...Note however - that the nice knobs come straight from knobman3d - and i didn't create those - so I may not be able to provide them with the script...

Aren't they free to use?
Quote from knobman gallery:
Quote:

...is licensed under a CC0 Public Domain.
Subscribed to this thread!

4x4uk 10-06-2016 05:15 AM

fantastic work so far. I really cant wait to use this.

Sju 10-06-2016 07:27 AM

One feature that would be really good for this script is the ability to create macro controls that can control multiple parameters (in different ranges)

See this Bitwig video for example:

https://youtu.be/BspO9Dimp14?t=136

Cheers

hopi 10-06-2016 08:07 AM

Quote:

Originally Posted by lb0 (Post 1739197)
Hi hopi,

no - that's a simple blit bitmap scaling routine provided with the built in gfx blit command. So if I give it a value of 0.5 - it scales the bitmap by 0.5, I then adjust the coordinates to reflect this. I could upscale too - but it looks truly awful I thought there's really no point unless you're going for a real 80s bitmap look.

ah very kewl... so if I get this correctly the thing to do when creating a knob would be to make it quite large in the best resolution so that when you scale it down it looks really nice...

oh btw... is there an exe for knobman3D??? I only find the jre files so far on his github

lb0 10-06-2016 09:23 AM

Quote:

Originally Posted by hopi (Post 1739299)
ah very kewl... so if I get this correctly the thing to do when creating a knob would be to make it quite large in the best resolution so that when you scale it down it looks really nice...

oh btw... is there an exe for knobman3D??? I only find the jre files so far on his github

I've only been using the online version of KM3D - which can be a little slow at times - but ok for now.

I wouldn't make the controls too large - because scaling them down is likely to use more CPU - especially if you have a screen full of them. I would make each knob only as large as you need.

Another thing - I've been rewriting the drawing routines - mainly to improve performance. Although in general it ran very well before (ie. yesterday) - when you wanted to do something like scroll the page - it ate up CPU. So now I have it only drawing what it needs to and having 1 back buffer for the background images and another the controls. Now CPU doesn't spike when scrolling or updating controls - just maintains a nice smooth (minuscule) rate. Sometimes moving a knob will cause the CPU to go up noticeably - but it's the result of the plugin - not my script! (Acon digital - i love your plugs but automating them eats up CPU!!) :o)

One downside of this - is that the surface is no longer endless - it has a maximum size of 2048*2048 pixels (sorry for those wanting more - but more is fairly crazy unless you have a 4K screen). I have left the code for the endless surface in there - just switched it off for the moment in preference of low CPU usage.

The other downside - is that if you place some controls within the drawing range of another control - (ie. almost touching) - when one of the controls is redrawn - it may obscure part of the other control. In reality - I don't think this is a problem - as long as the knobs fill their width and height correctly - then it's unlikely to be a problem. If you have lots of blank space around a control (for a huge shadow or something) - then you would need to be careful how close you place other controls to it.

Of course I could create another routine to detect control clashes- but not for the first release.

lb0 10-06-2016 09:26 AM

Quote:

Originally Posted by hopi (Post 1739299)
ah very kewl... so if I get this correctly the thing to do when creating a knob would be to make it quite large in the best resolution so that when you scale it down it looks really nice...

oh btw... is there an exe for knobman3D??? I only find the jre files so far on his github

I would also say that a scaled control doesn't look nearly as good as an unscaled one - unless it's square and flat looking. You can get away with it - but best to have different sized control images.

Also - best to create the controls with divisible sizes - ie. if your big control is say 128. Make your small one 64, and a larger one either 192 or 256. This means fitting it to the grid would work much better.

lb0 10-06-2016 09:27 AM

Quote:

Originally Posted by Sju (Post 1739293)
One feature that would be really good for this script is the ability to create macro controls that can control multiple parameters (in different ranges)

See this Bitwig video for example:

https://youtu.be/BspO9Dimp14?t=136

Cheers

I have thought about this already - and probably will add something like it - maybe not straight away though. Want to get it stable and released first.

lb0 10-06-2016 04:27 PM

Quote:

Originally Posted by lb0 (Post 1739359)
I've only been using the online version of KM3D - which can be a little slow at times - but ok for now.

I wouldn't make the controls too large - because scaling them down is likely to use more CPU - especially if you have a screen full of them. I would make each knob only as large as you need.

Another thing - I've been rewriting the drawing routines - mainly to improve performance. Although in general it ran very well before (ie. yesterday) - when you wanted to do something like scroll the page - it ate up CPU. So now I have it only drawing what it needs to and having 1 back buffer for the background images and another the controls. Now CPU doesn't spike when scrolling or updating controls - just maintains a nice smooth (minuscule) rate. Sometimes moving a knob will cause the CPU to go up noticeably - but it's the result of the plugin - not my script! (Acon digital - i love your plugs but automating them eats up CPU!!) :o)

One downside of this - is that the surface is no longer endless - it has a maximum size of 2048*2048 pixels (sorry for those wanting more - but more is fairly crazy unless you have a 4K screen). I have left the code for the endless surface in there - just switched it off for the moment in preference of low CPU usage.

The other downside - is that if you place some controls within the drawing range of another control - (ie. almost touching) - when one of the controls is redrawn - it may obscure part of the other control. In reality - I don't think this is a problem - as long as the knobs fill their width and height correctly - then it's unlikely to be a problem. If you have lots of blank space around a control (for a huge shadow or something) - then you would need to be careful how close you place other controls to it.

Of course I could create another routine to detect control clashes- but not for the first release.

I should add for clarity - even though each surface is currently limited to 2048x2048 pixels - you get 4 of these per track!! And it's trivial to add more pages if requested (just uses more memory to store any extra controls you might add).

I've been working on a few things tonight- and it's getting nearer to ready for release. It pretty much works fine at the moment (just a minor offset problem which took a while to track down - which is now fixed). Obviously - I have no beta testers for this - so the first people to try it will be stress testing it and there's bound to be a few little bugs under the bonnet - but I've not personally had any crashes - except for obvious coding errors which have been easy fixes.

4x4uk 10-06-2016 04:36 PM

fabulous news
Look forward to testing and using it.

TBProAudio 10-06-2016 08:17 PM

Quote:

Originally Posted by lb0 (Post 1739199)
Yes yes YES please!! :) You know - I was hoping someone might be able to nudge you to make some extra parameters available... That would be hugely useful... At the moment I haven't got a value only control - but that would be V easy.

OK, let me think what I can do.
I will keep you posted, and of course i will monitor this thread:)

hopi 10-07-2016 08:15 AM

Quote:

Originally Posted by lb0 (Post 1739361)
I would also say that a scaled control doesn't look nearly as good as an unscaled one - unless it's square and flat looking. You can get away with it - but best to have different sized control images.

Also - best to create the controls with divisible sizes - ie. if your big control is say 128. Make your small one 64, and a larger one either 192 or 256. This means fitting it to the grid would work much better.

right makes perfect sense and I'll keep that in mind

although 3D knobs are 'sexy'... I actually prefer very simple flat knobs that give a nice indication of the needle... abelton live type knobs but with better colors and sweeps are my favorites lately... they also should take less effort for the computer to draw..[I assume]

lb0 10-07-2016 08:37 AM

Quote:

Originally Posted by hopi (Post 1739709)
right makes perfect sense and I'll keep that in mind

although 3D knobs are 'sexy'... I actually prefer very simple flat knobs that give a nice indication of the needle... abelton live type knobs but with better colors and sweeps are my favorites lately... they also should take less effort for the computer to draw..[I assume]

Actually I kind of agree. I don't want super 3d knobs - but decent actioned (ie nicely controlled by mouse) reasonable looking plain knobs for me really too.

But actually - because these knobs are just bitmap strips - the only thing that alters how hard they are to draw is simply size (and colour depth I guess - so a very simple knob using 2 bits for colour *might* and could be quicker - but I guess it ultimately would be down to how the graphics drivers deal with them).

musicbynumbers 10-07-2016 11:33 AM

Amazing! :)

ivansc 10-07-2016 01:39 PM

Wow! How the hell have I missed this thread up till now?

Champing at the bit here.

NextLevel 10-07-2016 02:29 PM

This does look really cool. Don't know if it's possible?, but a right click option on the controls which would allow assigning of REAPER's modulation would be killer.

timbralzoom 10-07-2016 02:53 PM

Definitely Great Work!

lb0 10-07-2016 03:45 PM

Quote:

Originally Posted by NextLevel (Post 1739897)
This does look really cool. Don't know if it's possible?, but a right click option on the controls which would allow assigning of REAPER's modulation would be killer.

Thanks - any chance of an elaboration as to what you mean exactly? I haven't fully learnt reaper's api yet - just picking and choosing the bits I need to complete a project. If the api is there though - then hopefully it can be done.

lb0 10-07-2016 04:07 PM

Quote:

Originally Posted by TBProAudio (Post 1739184)
Wow, this really great!!!
As im the developer of dpMeter2 i would like to know if i can help here?
I guess exporting max values (IL, SL, ML and TB/Peak) could be neat, what do you think? Is there a GUI element just showing values?

Turns out all I need to do for the value only GUI element - is create a single frame control as backdrop for the value - turn off the control name - and then use the text offset slider to move the value to sit over the control itself. Voila! - one value only control. You can even have it interactive (by leaving it as a standard knob/slider type control) or non-interactive by changing the type to Meter. I should have realised this when I answered your question the first time.

:)


All times are GMT -7. The time now is 02:32 PM.

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