 |
|
|
03-20-2022, 10:52 AM
|
#1
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Superglue: Reversible, nondestructive glue and nesting pooled audio for Reaper
Superglue
by MonkeyBars
Provides vital missing features in Reaper:
NONDESTRUCTIVE/REVERSIBLE GLUE
POOLED AUDIO ITEMS
and much, much more...
_____________________________________________
Download Superglue and stick it to your Reaper workflow today!
Import MonkeyBars's ReaPack repo from Github here.
Superglue is a suite of scripts allowing Reaper users to place items
into container items called Superitems which can be Edited and Reglued back together later.
Copies of Superitems stay in sync with each other in a pool by default,
but of course you can remove a Superitem from its pool at any time and create as many pools as you wish.
_____________________________________________
Want to smush your items into a single container Superitem
that you can unsmush, change, and resmush later?
SUPERGLUE THEM!
Want to create pooled audio items that all update in sync
whenever one of them is updated?
SUPERGLUE THEM!
Want to nest these pooled Superitems into other Superitems
that are also all pooled and all update in sync?
SUPERGLUE THEM!
These examples only scratch the sticky surface of all the amazing capabilities Superglue adheres to.
_____________________________________________
Superglue Script Guide- To glue items reversibly, use the Glue script.
- To remove the reversible glue completely (restoring the items irreversibly), use the Unglue script.
- But more commonly, you'll use the Edit action to restore the items you glued with the Glue script. All the other copies of the Edited Superitem will update automatically when you reglue.
- Even quicker is to use the Smart Action scripts. These intelligently choose whether to Glue or Unglue / Glue or Edit automagically by context.
- The source of Superitem copies automatically updates. If you want to remove a Superitem and make a new pool out of it (DePool), use the script "Pool - Remove selected Superitem from Pool".
- There are a bunch of options that make Superglue even more powerful. Edit options by running the script "Options - Global - Open script options window".
- Each option can be set with its own script, so you can make toolbars and custom actions, etc.
- There are a couple specialty utility scripts – check em out.
_____________________________________________
Please examine the README on Github carefully before asking for support here.
The project board is kept up to date with all the enhancements and bugs.
Check there for an existing feature or bug before posting here.
Superglue is open source and free.
Every effort was taken to ensure the codebase is clean and self-explanatory.
Developer contributions are very welcome – just grab a card on Github and submit your pull request.
ENJOY!
_____________________________________________
Thank you to matthewjumpsoffbuildings for creating his Glue Groups script in 2015, which formed the core logic for Superglue. Numerous ReaScript advances and a lot of bugfixes & new features enabled the fulfillment of his vision – the codebase is over quadruple the length now.
Superglue is dedicated to my good friend @Julian. We slew the White Whale!
Thank you also to generous @tack for Reaper Toolkit (rtk), the amazing SWS team for the SWS Extension, Julian Sader for js_ReaScript_API, and pkulchenko for Serpent, which are used in Superglue.
Special thanks to @Breeder, @AZPercussion, and @Phazma for consultation, and of course @Justin, @schwa and the rest of the Reaper team for the great DAW and API!
_____________________________________________
Donations: Please donate to the SWS Extension project and then DM me about it!
Keywords: Referenced objects, Item Patterns, Meta-Items, Audio Containers, Item Folders, Blocks, Ghost Copies, Non-destructive Glue, Cubase Parts, Logic Folders, Audio Regions, Media Container, Prefabs, Pooled Box for audio-items, Repetitive Structures, Ghost Audio Item, Pooled Copy, Item Container, Container Item, Region Groups, Bounce in Place, Render
Last edited by MonkeyBars; 09-13-2023 at 08:56 PM.
|
|
|
03-20-2022, 11:11 AM
|
#2
|
Human being with feelings
Join Date: Jul 2020
Posts: 653
|
Awesome! Been seeing comments here and there where you've been talking about it so it's great to finally see it released  Going to download and test it straight away!
|
|
|
03-20-2022, 11:19 AM
|
#3
|
Human being with feelings
Join Date: Oct 2017
Location: Larisa, Greece
Posts: 3,301
|
Wow gamechanger, great work!
|
|
|
03-20-2022, 11:25 AM
|
#4
|
Human being with feelings
Join Date: Jul 2009
Posts: 7,218
|
its such a good script
|
|
|
03-20-2022, 01:10 PM
|
#5
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by EpicSounds
its such a good script
|
Thanks John!!
|
|
|
03-20-2022, 09:17 PM
|
#6
|
Human being with feelings
Join Date: Oct 2021
Location: Singapore
Posts: 182
|
What a phenomenal script - working flawlessly in my first tests. The attention to detail and the attractive, functional UI elements are really great, I love the diagonal/horizontal shading on the items (and this even seems to be user-tweakable!) and the Reaper Toolkit GUI is great for those like me who have 4k screens. I'll have to spend time with it to figure out 'how does I workflow?', but definitely stocking up my right-click menu and giving the smart actions keyboard shortcuts for starters.
I reckon this would be saved for a version number upgrade in any other DAW, launched with 20 simultaneously-posted influencer videos with O-face and 96 point Impact font 'CUBASE KILLER!?!?!' thumbnails.
Thanks for making, sharing and open-sourcing!
|
|
|
03-21-2022, 02:29 AM
|
#7
|
Human being with feelings
Join Date: Jul 2016
Posts: 59
|
Great! Found directly a bug, sorry. If you glue duplicated items and edit the superglue, all duplicates disappear, only one remains.
And the message
"The left edge position of the Superitem you're regluing hast changed!
Do you want to adjust pool sibling Superitems' left edge to adjust as well?"
Appears for unknown reasons always if i glue the edit again.
Also, if you loop the superglue-item and makes it longer, edit it, you change the whole length from the superglue item area. You have to rearrange the region again.
But now again a big praise, you have solved this term wonderfully! Thank you for sharing!
|
|
|
03-21-2022, 03:02 AM
|
#8
|
Human being with feelings
Join Date: May 2020
Posts: 402
|
So this is like joining items but you can always go back?
Awesome!!!
EDIT**: found a bug:
me2beats_Pool active takes of selected items.lua:62: attempt to concatenate a nil value (global 'pooled_guid')
|
|
|
03-21-2022, 03:16 AM
|
#9
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by UknownSource
So this is like joining items but you can always go back?
Awesome!!!
EDIT**: found a bug:
me2beats_Pool active takes of selected items.lua:62: attempt to concatenate a nil value (global 'pooled_guid')
|
"me2beats_Pool active takes of selected items.lua" are you sure you are in a proper thread?
|
|
|
03-21-2022, 03:18 AM
|
#10
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Very smart way to change items' appearance. Creative and cool. Firstly I was disoriented with so many scripts, but after a bit of reading I figured it out.  I thought it wouldn't create new files as Matthew's script, but it does.
|
|
|
03-21-2022, 05:36 AM
|
#11
|
Human being with feelings
Join Date: Oct 2019
Location: Moscow, Russia
Posts: 832
|
Quote:
Originally Posted by vitalker
I thought it wouldn't create new files as Matthew's script, but it does. 
|
Without creating new files you lose the undo ability.
|
|
|
03-21-2022, 05:40 AM
|
#12
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by AZpercussion
Without creating new files you lose the undo ability.
|
It was possible in Matthew's script. Even though Superglue creates files, it could also remove them.
|
|
|
03-21-2022, 06:06 AM
|
#13
|
Human being with feelings
Join Date: Oct 2019
Location: Moscow, Russia
Posts: 832
|
Quote:
Originally Posted by vitalker
It was possible in Matthew's script. Even though Superglue creates files, it could also remove them.
|
If we have overwritten the source file, how can we go back to its previous version?
But it's possible to make a cleanup action especially for SG files.
So you could run it sometimes to save more space on the disk.
Last edited by AZpercussion; 03-21-2022 at 06:14 AM.
|
|
|
03-21-2022, 06:32 AM
|
#14
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by AZpercussion
If we have overwritten the source file, how can we go back to its previous version?
|
Check Matthew's scripts, they don't change any source files.  At least I remember them like this. Anyway, Superglue is supercool! Especially if you need to glue items very often.
|
|
|
03-21-2022, 07:11 AM
|
#15
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by Whelfen
Great! Found directly a bug, sorry.
|
Don't apologize! There was no way I & the few generous folks I had on QA could catch everything.
Quote:
If you glue duplicated items and edit the superglue, all duplicates disappear, only one remains.
And the message
"The left edge position of the Superitem you're regluing hast changed!
Do you want to adjust pool sibling Superitems' left edge to adjust as well?"
Appears for unknown reasons always if i glue the edit again.
|
I can't replicate this following just those steps, so perhaps you left something out. Duplicated items Superglue, Edit and Reglue with no issues for me.
Quote:
Also, if you loop the superglue-item and makes it longer, edit it, you change the whole length from the superglue item area. You have to rearrange the region again.
|
That is definitely the case. Since Superglue greatly affects source, this is expected behavior. I can see how it could confuse some, however. What would be your ideal UX here? Perhaps an option ("Sizing Region bounds are limited to loop content")
Quote:
But now again a big praise, you have solved this term wonderfully! Thank you for sharing!
|
Thank you for trying it out and reporting. Your feedback is valuable!
|
|
|
03-21-2022, 07:14 AM
|
#16
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by vitalker
Check Matthew's scripts, they don't change any source files.  At least I remember them like this.
|
You're remembering incorrectly. That is part of the core Glue Groups mechanic that I didn't alter at all.
|
|
|
03-21-2022, 07:15 AM
|
#17
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by MonkeyBars
You're remembering incorrectly. That is part of the core Glue Groups mechanic that I didn't alter at all.
|
Sorry then. Anyway it would be cool to remove superitems's files after unglueing.
|
|
|
03-21-2022, 07:17 AM
|
#18
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by pcp
What a phenomenal script - working flawlessly in my first tests. The attention to detail and the attractive, functional UI elements are really great...
I reckon this would be saved for a version number upgrade in any other DAW, launched with 20 simultaneously-posted influencer videos with O-face and 96 point Impact font 'CUBASE KILLER!?!?!' thumbnails.
Thanks for making, sharing and open-sourcing!
|
Thank you so much for trying it out pcp. You're obviously not on pcp
You made me chuckle with your YouTube marketing campaign. In fact I may do an appearance or two... if so, I promise to O-face for you
|
|
|
03-21-2022, 07:23 AM
|
#19
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by vitalker
Firstly I was disoriented with so many scripts, but after a bit of reading I figured it out. 
|
Thanks for the comment. I added a blurb to the OP to try to clarify the 3 core scripts: Glue, Edit, and Unglue.
|
|
|
03-21-2022, 07:25 AM
|
#20
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by vitalker
Sorry then. Anyway it would be cool to remove superitems's files after unglueing. 
|
Remember that deleting source is permament (at least from Reaper's persepective: it can't go rooting around in the OS Trash).
In your scenario, if you Unglue by mistake and undo, the Superitem source will be offline.
|
|
|
03-21-2022, 07:32 AM
|
#21
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by MonkeyBars
Remember that deleting source is permament (at least from Reaper's persepective: it can't go rooting around in the OS Trash).
In your scenario, if you Unglue by mistake and undo, the Superitem source will be offline.
|
Yes, I know. On the other hand, you can always run Superglue again.  Just saying. Could be an option for risk-takers.
|
|
|
03-21-2022, 07:56 AM
|
#22
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by AZpercussion
So you could run it sometimes to save more space on the disk.
|
AZ, shall we start a kickstarter for vitalker to get him an external storage hard drive??
|
|
|
03-21-2022, 08:08 AM
|
#23
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by MonkeyBars
AZ, shall we start a kickstarter for vitalker to get him an external storage hard drive??
|
Haha, no please.  I don't want anyone to buy me a new hard drive.
|
|
|
03-21-2022, 08:23 AM
|
#24
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by MonkeyBars
Perhaps an option ("Sizing Region bounds are limited to loop content")
|
Come to think of it this is a great idea. Thanks Whelfen
|
|
|
03-21-2022, 08:30 AM
|
#25
|
Human being with feelings
Join Date: Jul 2016
Posts: 59
|
Ah i figured out, the problem is only with pooled item. With the script "Script: kawa_MAIN_DuplicateMusical(WithPool).lua" I created alway pooled media items.
You can replicate it with pooled midi items (with instruments), too.
Only the last created pool item remains.
|
|
|
03-21-2022, 08:38 AM
|
#26
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by Whelfen
Ah i figured out, the problem is only with pooled item. With the script "Script: kawa_MAIN_DuplicateMusical(WithPool).lua" I created alway pooled media items.
|
Kawa is using a cheat – that script is making EXACT copies of items with the same identifier (GUID). This is a very clever hack, but unfortunately it goes against Reaper's data structure and software best practices. The "U" stands for "unique" and it's not a bug, but a feature that will save you endless headaches down the line.
Stop trying to combine Superglue with pooling kluges.
To do what you're trying to do, you should be Supergluing the single item, using native Reaper duplicate, then nesting those in a new Superitem.
Use Superglue to your advantage and upgrade your workflow.
Last edited by MonkeyBars; 03-21-2022 at 12:30 PM.
|
|
|
03-21-2022, 09:02 AM
|
#27
|
Banned
Join Date: Jul 2006
Location: United Kingdom, T. Wells
Posts: 2,454
|
It is like a SuperGroup.
Really nice idea!
|
|
|
03-21-2022, 09:20 AM
|
#28
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by Whelfen
if you loop the superglue-item and makes it longer, edit it, you change the whole length from the superglue item area. You have to rearrange the region again.
|
I have deployed a new option to fix this UX issue, enabled by default. Thanks for pointing this out, Whelfen.
|
|
|
03-21-2022, 09:37 AM
|
#29
|
Human being with feelings
Join Date: Jul 2008
Location: Athens / Greece
Posts: 615
|
It's a great idea for prefabs, nice job!
It throws some errors.
When I try to unglue, the action displays an error window with this message:
...ve changes & propagate to Sibling items in same Pool.lua:11: module 'MB_Superglue-Utils' not found:
no field package.preload['MB_Superglue-Utils']
no file 'C:\Program Files\REAPER (x64)\lua\MB_Superglue-Utils.lua'
no file 'C:\Program Files\REAPER (x64)\lua\MB_Superglue-Utils\init.lua'
no file 'C:\Program Files\REAPER (x64)\MB_Superglue-Utils.lua'
no file 'C:\Program Files\REAPER (x64)\MB_Superglue-Utils\init.lua'
no file 'C:\Program Files\REAPER (x64)\..\share\lua\5.3\MB_Superglue-Utils.lua'
no file 'C:\Program Files\REAPER (x64)\..\share\lua\5.3\MB_Superglue-Utils\init.lua'
no file '.\MB_Superglue-Utils.lua'
no file '.\MB_Superglue-Utils\init.lua'
no file '\\MB_Superglue-Utils\C:\Users\Admin\AppData\Roaming\REAPER\Script s\MonkeyBars-ReaScripts\Superglue\MB_Superglue-Utils.lua'
no file 'C:\Program Files\REAPER (x64)\MB_Superglue-Utils.dll'
no file 'C:\Program Files\REAPER (x64)\..\lib\lua\5.3\MB_Superglue-Utils.dll'
no file 'C:\Program Files\REAPER (x64)\loadall.dll'
no file '.\MB_Superglue-Utils.dll'
Is there something else that I should install that I didn't?
|
|
|
03-21-2022, 09:46 AM
|
#30
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by Joystick
It's a great idea for prefabs, nice job!
It throws some errors.
When I try to unglue, the action displays an error window with this message:...
Is there something else that I should install that I didn't?
|
For better experience you should import repository via ReaPack to download all required files.
|
|
|
03-21-2022, 09:54 AM
|
#31
|
Human being with feelings
Join Date: Apr 2020
Posts: 1,251
|
I'm getting the same error, even after using Reapack to download everything...
|
|
|
03-21-2022, 10:27 AM
|
#32
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
I don't have a Windows machine to test on, so any Win devs that see this, please chime in and comment what you think is going on with these errors
|
|
|
03-21-2022, 10:47 AM
|
#33
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by Pink Wool
I'm getting the same error, even after using Reapack to download everything...
|
Works here fine. How to reproduce?
|
|
|
03-21-2022, 12:06 PM
|
#34
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by vitalker
Yes, I know. On the other hand, you can always run Superglue again.  Just saying. Could be an option for risk-takers. 
|
Actually I do see your point, vitalker. Thanks for making it.
I think the last glue source should always be available, but what do you think about an option to flush any pool source older than that?
Meanwhile I'm working on source renaming so audio files are named with a prefix indicating they were Superglued. I hope that is to your liking - it's not as easy as it may seem!
|
|
|
03-21-2022, 12:50 PM
|
#35
|
Human being with feelings
Join Date: Oct 2019
Location: Moscow, Russia
Posts: 832
|
Quote:
Originally Posted by Joystick
It's a great idea for prefabs, nice job!
It throws some errors.
When I try to unglue, the action displays an error window with this message:
...ve changes & propagate to Sibling items in same Pool.lua:11: module 'MB_Superglue-Utils' not found:
no field package.preload['MB_Superglue-Utils']
<...>
|
Strange pathes I see here.
Do you using standalone or portable version?
All these scripts should place in Reaper's resources folder.
Then in the Scripts/MonkeyBars-ReaScripts/Superglue
Are they placed there?
|
|
|
03-21-2022, 01:03 PM
|
#36
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by MonkeyBars
Actually I do see your point, vitalker. Thanks for making it.
I think the last glue source should always be available, but what do you think about an option to flush any pool source older than that?
Meanwhile I'm working on source renaming so audio files are named with a prefix indicating they were Superglued. I hope that is to your liking - it's not as easy as it may seem!
|
You don't have to do it.  It was an idea. You can convert it to code or not.
Makes sense. If you need code for source changing, I can help you. I've modified one Archie's script by removing some things and simplifying it.
|
|
|
03-21-2022, 01:26 PM
|
#37
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by MonkeyBars
Thanks very much for the offer, v! I think I got it done with a 4-step process: - CF_SetMediaSourceOnline() take source offline
- os.rename() source file
- BR_SetTakeSourceFromFile2() with new source filename
- action: build missing peaks
|
Well basically it's the same.
|
|
|
03-21-2022, 01:31 PM
|
#38
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
That code produced an unpleasant flash before the source reloaded, so I added a step before those 4 setting take source to blank string beforehand. That took care of it.
I'll try to avoid getting into the nitty gritty of the codebase on this thread in future.
Last edited by MonkeyBars; 03-21-2022 at 01:39 PM.
|
|
|
03-21-2022, 01:38 PM
|
#39
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,320
|
Quote:
Originally Posted by MonkeyBars
That code produced an unpleasant flash before the source reloaded, so I'll try a different sequence...
I added a step before those 4 setting take source to blank string beforehand. That took care of it.
I'll try to avoid getting into the nitty gritty of the codebase on this thread in future.
|
What do you mean by flash? You can prevent UI update, you know that?
|
|
|
03-21-2022, 03:02 PM
|
#40
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,233
|
Quote:
Originally Posted by vitalker
What do you mean by flash? You can prevent UI update, you know that?
|
Of course all Superglue actions are wrapped thus, but I think in this case the peak build started an instant before the take source was set properly, or something...
But I just tested again without that line the flash of unsourced take (FOUT) is gone, so I think my computer was thinking about something else and got a bit tripped up for just a moment.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:18 AM.
|