View Poll Results: Would you like the Devs to improve API for this?
|
Yes, it's would be very useful!
|
|
88 |
92.63% |
No, it's a waste of time.
|
|
4 |
4.21% |
I don't care.
|
|
3 |
3.16% |
02-07-2016, 12:52 PM
|
#1
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Native non-destructive glue
We need native non-destructive glue.
For some dev builds this feature existed starting with v6.27+dev0416 - April 16 2021:
+ Media items: add support for grouping media items into container items
, but as many other experimental features it is gone. Here is how it looked like:
Later MonkeyBars created a more efficient scripts set (called Superglue) for this task:
https://forum.cockos.com/showthread.php?t=264478
Last edited by vitalker; 01-06-2023 at 12:22 PM.
|
|
|
02-07-2016, 12:58 PM
|
#2
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Native API for "real" Non-destructive glue
Quote:
Originally Posted by matthewjumpsoffbuildings
I need an API function that is similar to the recently added propagate take to items action, but with more flexibility. mainly I just want it to propagate the wav src from the source item to all items with matching names on all tracks. but ideally id want the function to have control over which properties of the source take are copied to the target takes, and maybe even some flexibility/options with the name matching (eg wildcards etc)
I have written a bit of code that does this, but its super slow with large projects since it manually loops through ALL items in a project and checks the name, then updates the wav src if it matches, and this gets really sluggish cause its running in LUA.
if there was a native API action to do something like this, that would make the script much more usable with large projects.
|
__________________________________________________
How it looks:
__________________________________________________
__________________________________________________
__________________________________________________
Let's help Matthew to add such a great feature to Reaper.
__________________________________________________
This is what he has made for now: http://forum.cockos.com/showthread.php?t=136273
|
|
|
02-08-2016, 12:29 PM
|
#3
|
Human being with feelings
Join Date: Jul 2006
Posts: 12,480
|
Bug or Feature Request?
|
|
|
02-08-2016, 01:03 PM
|
#4
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by Dstruct
Bug or Feature Request?
|
Feature request. Yeah, delete it please.
|
|
|
02-08-2016, 01:05 PM
|
#5
|
Human being with feelings
Join Date: Jul 2006
Posts: 12,480
|
Quote:
Originally Posted by vitalker
Feature request. Yeah, delete it please.
|
Moved
|
|
|
02-24-2016, 02:26 AM
|
#6
|
Human being with feelings
Join Date: Mar 2013
Location: Moscow
Posts: 99
|
Awesome idea !
|
|
|
03-08-2016, 10:39 PM
|
#7
|
Human being with feelings
Join Date: Dec 2010
Posts: 3,826
|
Isn't this sub projects ?
__________________
Stop posting huge images, smaller images or thumbnail, it's not rocket science!
|
|
|
03-08-2016, 11:06 PM
|
#8
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,686
|
Isn't this groups ?
(I.e.: Glue and Subproject work by rendering and creating new wav files. Grouping is >"real" Non-destructive< in that sense.)
-Michael
|
|
|
03-09-2016, 01:49 AM
|
#9
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by gpunk_w
Isn't this sub projects ?
|
Nope. When you create subproject, the new file is created. When you do non-destructive glue, the existed files used only.
|
|
|
03-09-2016, 01:52 AM
|
#10
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by mschnell
Isn't this groups ?
(I.e.: Glue and Subproject work by rendering and creating new wav files. Grouping is >"real" Non-destructive< in that sense.)
-Michael
|
Yes, it's very close to grouping, but it's not the same. You have original files only here. So it's really non-destructive.
|
|
|
03-30-2016, 12:15 PM
|
#11
|
Human being with feelings
Join Date: Jan 2014
Posts: 5,205
|
This is how it should be done:
http://forum.cockos.com/showpost.php...90&postcount=4
Simply amazing workflow possibilities here, especially if you can create pooled copies just like MIDI.
Do please stop spamming though.
|
|
|
03-31-2016, 10:43 AM
|
#12
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by Fergler
Do please stop spamming though.
|
What is your post about?
|
|
|
03-31-2016, 02:27 PM
|
#13
|
Human being with feelings
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
|
Quote:
Originally Posted by vitalker
What is your post about?
|
Your bumping frequency.
|
|
|
01-28-2017, 08:49 AM
|
#14
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
bump.
|
|
|
03-04-2017, 12:30 AM
|
#15
|
Human being with feelings
Join Date: Mar 2013
Posts: 463
|
I still havent done any new coding on the Glue Group script, I feel like the devs arent really interested in this right now. With all the focus on automation items (which Im really happy about), thats understandable.
However I still would love a "Propagate Takes to Items with same name" API function that allows you to specificy which properties of the source take are copied to the target items (eg wav source, reverse, volume, panning). That would definitely motivate me to work on the Glue Group script.
For people who dont understand what the difference between this script and the standard Glue function in reaper is - this script stores all the source items data in the reaper project file, so all the pieces you glue together are not lost, but can be reinserted any time, edited, and reglued, and any copies of the glue group will then be updated to reflect your edits.
It is very similar to project-in-project, but it doesnt require you to make any new projects, or switch to a new project tab to edit the loop. Its better for short 1-2 bar loops, for example drum loops etc, where you need to be able to drag and loop the item, and also you need instances to update everywhere when you edit one instance, but its not really big enough to justify a sub-project.
Its sort of a combination of pooling/ghosting for audio items + project in project without having to switch tabs to edit.
Oh btw if any devs are watching - I would love for this script to be made redundant How about making a version of project-in-project that stores the item data in the parent project instead of a separate project file, and allowing you to edit the items in place instead of having to switch to a new project tab
Last edited by matthewjumpsoffbuildings; 03-04-2017 at 12:38 AM.
|
|
|
12-04-2017, 01:06 PM
|
#16
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Matthew can do this! Let's support him adding some required functions to API!
|
|
|
03-15-2018, 05:04 AM
|
#17
|
Human being with feelings
Join Date: Jul 2017
Location: Moscow
Posts: 60
|
Nice idea.
|
|
|
03-27-2018, 05:57 PM
|
#18
|
Human being with feelings
Join Date: Feb 2018
Posts: 30
|
+1
This is a must!
Please devs consider adding this!
|
|
|
07-11-2018, 10:00 AM
|
#19
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Bump.
|
|
|
08-04-2018, 10:35 AM
|
#20
|
Human being with feelings
Join Date: Mar 2013
Posts: 463
|
Im still waiting to see if the devs add an API function that allows me to do something similar to the existing "Propagate take properties to similarly named items on all tracks" action, most importantly a version of this that can be called via Lua scripts AND one that allows me to specify that I only want the wav src property of the selected items take to be copied to all other similarly named takes.
Either if this is added to Reapers API, or if someone like the SWS devs could add a native C++ function that I can somehow use via Lua, that would work too. My existing method of updating take sources manually in a big loop in Lua is just not performant enough.
Until then I really havent got much motivation to debug this and make sure it works with current Reaper version. Sorry :/
|
|
|
08-04-2018, 02:24 PM
|
#21
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
|
Ok you have an "API for non-destructive glue". You glued take "non-destructively", reversed it (or part of it), added stretch markers, added takeFX, added envelopes.
Now unglue it. What do you get?
Right, total shit.
There isn`t ever proper description or implementation suggestions here. Won`t happen.
|
|
|
08-04-2018, 07:07 PM
|
#22
|
Human being with feelings
Join Date: Mar 2013
Posts: 463
|
Wow someone got out of the wrong side of the bed.
Actually no, you are completely wrong. My implementation, which is just some Lua scripts, easily accounts for your big "gotcha" issue.
When you unglue an item, my script simply remembers the state of the item you just unglued, stores that temporarily, and inserts the source items into the project in their ORIGINAL state. NOT reversed/stretched etc. and then when you reglue the child components, it renders the new glued wav, then reinserts the item you unglued and just updates the wav src of it and all other items in the same group.
Since only wav src is updated, all items in the group maintain their position, stretch, reversing, take fx, and any other per-item/per-take stuff you want to do to it. Its just the source wav that gets updated.
So, if i can think of a simple solution for this supposedly huge problem you think youve come up with, if the Reaper devs did decide to do something themselves i doubt they would have even the slightest issue.
|
|
|
08-05-2018, 01:27 AM
|
#23
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
|
Sorry, but it is totally workflow mess.
Subproject is your friend (although I would request some subproject API improvements, including fast subproject parsing to quickly extract sources, which I guess very close to what you want to do). Currently there is GetProjectFromSource(), but this one doesn't work for me.
|
|
|
08-05-2018, 01:52 AM
|
#24
|
Human being with feelings
Join Date: Mar 2013
Posts: 463
|
dude i dont know wtf you are on about. i built some reascripts to do just this, and it worked fine, as i explained. youre saying it will be a workflow mess based on what? far out theres some weird people on reaper forums :/
|
|
|
08-12-2018, 04:52 AM
|
#25
|
Human being with feelings
Join Date: Mar 2016
Posts: 1,239
|
Devs PLEASE consider either:
implementing a native non-destructive glue to achieve the aim of the scripts in this thread, and/or meta (pooled) items described here: https://forum.cockos.com/showthread.php?t=209957
Or:
add the API functions to allow matthewjumpsoffbuildings to continue developing his non-destructive glue scripts.
These would be a huge benefit in various kinds of production workflow including sound design for TV/radio, in a way that sub-projects don't quite work for.
Thanks
|
|
|
08-13-2018, 02:27 AM
|
#26
|
Human being with feelings
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,960
|
Maybe I misunderstood here something but what functions you want to have exactly?
All I see here is abstract requests. Didn't saw ever function name, arguments, what it should do exactly. Correct me if I wrong but I thought this is how to make API requests (see API request thread in developer section).
Get/count items with source given matching patrern or what? I guess native propagate action also looping through items, and I would not say it is much faster then lua loop doing same thing.
|
|
|
08-13-2018, 02:34 AM
|
#27
|
Human being with feelings
Join Date: Mar 2013
Posts: 463
|
I have asked for an API version of the "propagate take to items" action, with the option to allow for control over which source take properties are propagated (in my case, i just want wav src)
eg something like this
Code:
reaper.PropagateToTakes(MediaItem_Take source_take, string source_property_to_propagate, boolean single_track_only)
as for it being faster, i have done testing, with a large number of items, looping through all items in a project via lua and updating the wav src is WAY slower than the native "propagate take to items" action, even though the native action updates all properties, not just wav src.
|
|
|
02-27-2019, 12:26 PM
|
#28
|
Human being with feelings
Join Date: Oct 2006
Location: at home, mostly
Posts: 654
|
i'd love for reaper to be able to glue nondestructively. there's too many tasks where new files are generated where nondestructive glueing would prevent from a mess on the hard drive, as well as keeping stuff from being cluttered very fast. i mean, in the end an item is nothing else than a container, holding the actual audio file anyway...
__________________
regards,
nico herz
BIGTONEsounddesign
|
|
|
08-03-2019, 07:46 PM
|
#29
|
Human being with feelings
Join Date: Jun 2018
Posts: 375
|
Non-destructive glue containers is one thing I'm sorely missing in Reaper. Not only does it tidy up the arrange view (without cluttering up the hard drive) but it also allows for easy propagation of groups of audio items.
|
|
|
08-03-2019, 10:58 PM
|
#30
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by puddi
Non-destructive glue containers is one thing I'm sorely missing in Reaper. Not only does it tidy up the arrange view (without cluttering up the hard drive) but it also allows for easy propagation of groups of audio items.
|
Justin has already responsed Reaper has subprojects for this purpose.
|
|
|
08-04-2019, 03:00 AM
|
#31
|
Human being with feelings
Join Date: Jun 2018
Posts: 375
|
Quote:
Originally Posted by vitalker
Justin has already responsed Reaper has subprojects for this purpose.
|
Ah, I don't really agree with that and think both have their own uses but I have to respect his opinion.
|
|
|
07-11-2020, 05:35 PM
|
#32
|
Human being with feelings
Join Date: Nov 2008
Location: London, UK
Posts: 2,581
|
If we had a way to reverse a Subproject, this would be solved. I do like the mockup shown in the first post, but not essential for me.
I still can't believe it wasn't part of the design of Subprojects for them to be reversable.
|
|
|
03-06-2021, 03:33 PM
|
#33
|
Human being with feelings
Join Date: Oct 2014
Location: Belgium
Posts: 1,612
|
THIS feature will be great! I did vote and I hope to see it soon.
|
|
|
11-29-2021, 02:16 PM
|
#34
|
Human being with feelings
Join Date: Oct 2019
Location: Moscow / Tbilisi
Posts: 909
|
Hoping, it will be made!
We need editing such things in the context of mix.
But it should have name like meta-item, complex or container, because of group word already used.
|
|
|
11-29-2021, 03:37 PM
|
#35
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by AZpercussion
Hoping, it will be made!
We need editing such things in the context of mix.
But it should have name like meta-item, complex or container, because of group word already used.
|
I think we need it also as native features and API would be as a great addition.
|
|
|
01-02-2023, 06:04 AM
|
#36
|
Human being with feelings
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
|
Is not this topic solved now with Superglue by MonkeyBars?
|
|
|
01-02-2023, 06:10 AM
|
#37
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by TonE
Is not this topic solved now with Superglue by MonkeyBars?
|
Did MonkeyBars implement it natively?
|
|
|
01-02-2023, 09:26 AM
|
#38
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,630
|
All snark aside, naturally every ReaScript is non-native by definition.
One big difference between Superglue and a native solution is that a native solution would process said "glue" under the hood with no actual file creation.
Superglue is based directly off Matthew's Glue Groups script (who participated in this thread years ago), so it does write rendered audio to disk every time you Superglue and Reglue.
I was not able to find a way to render audio realtime under the hood in ReaScript like a native solution could. Nevertheless, I hope Superglue offers an excellent, full-featured solution for the meantime.
|
|
|
01-02-2023, 09:34 AM
|
#39
|
Human being with feelings
Join Date: Dec 2012
Posts: 13,333
|
Quote:
Originally Posted by MonkeyBars
All snark aside, naturally every ReaScript is non-native by definition.
One big difference between Superglue and a native solution is that a native solution would process said "glue" under the hood with no actual file creation.
Superglue is based directly off Matthew's Glue Groups script (who participated in this thread years ago), so it does write rendered audio to disk every time you Superglue and Reglue.
I was not able to find a way to render audio realtime under the hood in ReaScript like a native solution could. Nevertheless, I hope Superglue offers an excellent, full-featured solution for the meantime.
|
Sure, no disrespect. Hm, maybe instead this FR should be about native solution instead of API. Added a link to your script's thread in the first post.
|
|
|
01-02-2023, 09:47 AM
|
#40
|
Human being with feelings
Join Date: Feb 2016
Location: Hollyweird
Posts: 2,630
|
Quote:
Originally Posted by vitalker
Sure, no disrespect. Hm, maybe instead this FR should be about native solution instead of API. Added a link to your script's thread in the first post.
|
Thanks vitalker! Happy new year to you sir. You're a real asset to the Cockos forums.
|
|
|
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 04:15 AM.
|