Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

Reply
 
Thread Tools Display Modes
Old 09-28-2017, 02:42 PM   #1
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default req: AUXDATA field in Chunks of Tracks , Lanes, Media Items and Automations Items

If MediaTrack, Media Items, Envelope Lanes, Automation Items had a AUXDATA field in their chunks, Basically working as "local" databases in which scripts could use to store some relavant information and rely would make possible and easier a lot of kind of scripts.

So my request is that and the API function to get/set this Data for each of them.

edit:
Also would be nice to have something like ExtState for each one of them.
so that different scripts can use it without messing others.

per example for media Items:
GetMediaItemState(const char* section, const char* key)
SetMediaItemState
DeleteMediaItemState
HasMediaItemState

Last edited by deeb; Yesterday at 11:32 PM. Reason: for explicity and adding other users ideas
deeb is offline   Reply With Quote
Old 09-29-2017, 10:59 PM   #2
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 7,586
Default

Quote:
Originally Posted by mpl View Post
SetTrackSendInfo
He means he wants to store custom per-track data, not aux sends. Anyway, that should already be possible with SetProjExtState and GetProjExtState. The track GUIDs could be used to generate the key names for those functions. (This approach has some problems like when removing tracks, the custom data won't automatically clear from the project state...Also copying tracks can end up problematic.)
__________________
For info on SWS Reaper extension plugin (including Xenakios' previous extension/actions) :
http://www.sws-extension.org/
https://github.com/Jeff0S/sws
--
Xenakios blog (about HourGlass, Paul(X)Stretch and λ) :
http://xenakios.wordpress.com/
Xenakios is offline   Reply With Quote
Old 12-20-2017, 01:31 PM   #3
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Quote:
Originally Posted by Xenakios View Post
He means he wants to store custom per-track data, not aux sends. Anyway, that should already be possible with SetProjExtState and GetProjExtState. The track GUIDs could be used to generate the key names for those functions. (This approach has some problems like when removing tracks, the custom data won't automatically clear from the project state...Also copying tracks can end up problematic.)
This make scripting much easier for a wide of application without the hassles you described. Better for scripting == better for all users

Last edited by deeb; 12-20-2017 at 01:40 PM.
deeb is offline   Reply With Quote
Old 12-22-2017, 12:45 PM   #4
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 7,586
Default

I'll propose to make it even more powerful and allow extensions and scripts to also store per-item and per-take data... (The available workarounds really are terrible at the moment...)
__________________
For info on SWS Reaper extension plugin (including Xenakios' previous extension/actions) :
http://www.sws-extension.org/
https://github.com/Jeff0S/sws
--
Xenakios blog (about HourGlass, Paul(X)Stretch and λ) :
http://xenakios.wordpress.com/
Xenakios is offline   Reply With Quote
Old 12-22-2017, 04:12 PM   #5
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Quote:
Originally Posted by Xenakios View Post
I'll propose to make it even more powerful and allow extensions and scripts to also store per-item and per-take data... (The available workarounds really are terrible at the moment...)
thanks! awesome idea! opens a lot of possibilities wawaweee
deeb is offline   Reply With Quote
Old 01-24-2018, 07:58 AM   #6
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

this one opens a lot of possibilities for community scripts and extensions so one bump!
deeb is offline   Reply With Quote
Old 01-30-2018, 03:26 PM   #7
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 832
Default

I'm all in with that one....
mespotine is offline   Reply With Quote
Old 03-08-2018, 11:09 AM   #8
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,372
Default

+1!

I have long wanted to submit a similar FR for Automation Items.

Scripts such as my LFO Tool could then store an AI's curve data inside the AI itself, recall it whenever a user wants to re-edit the AI, and the data won't get lost during moving and copying.
juliansader is offline   Reply With Quote
Old 03-08-2018, 11:23 AM   #9
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Quote:
Originally Posted by juliansader View Post
+1!
Scripts such as my LFO Tool could then store an AI's curve data inside the AI itself, recall it whenever a user wants to re-edit the AI, and the data won't get lost during moving and copying.
ahh cool ! : ) and many many many other things i am sure
deeb is offline   Reply With Quote
Old 03-09-2018, 04:49 AM   #10
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,372
Default

Media items actually already have "Item notes", with chunk field <NOTES.
juliansader is offline   Reply With Quote
Old 03-09-2018, 08:33 AM   #11
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Quote:
Originally Posted by juliansader View Post
Media items actually already have "Item notes", with chunk field <NOTES.
i wonder what is the purpose! and if is this recent
deeb is offline   Reply With Quote
Old 03-10-2018, 05:44 PM   #12
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

I reminded to add to the request a section / key like it happens with GetExtState
so that different scripts can use it without messing others. Also would be nice all the complementary functions.

per example for media Items:
GetMediaItemState(const char* section, const char* key)
SetMediaItemState
DeleteMediaItemState
HasMediaItemState

Also Markers would be nice in the list too, but apparently they have a different way of being saved
deeb is offline   Reply With Quote
Old 03-13-2018, 11:57 AM   #13
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,372
Default

Quote:
Originally Posted by deeb View Post
i wonder what is the purpose! and if is this recent
As far as I know, item notes have existed since the early years. In the case of empty items, the notes are the text that is displayed inside the item. In the case of other media items, the notes can be anything. I sometimes use it to temporarily store info for my scripts.

Strangely, there is no native API function to access the notes. Scripts must either use the state chuck, or use the SWS function ULT_Get/SetMediaItemNote.


Quote:
Originally Posted by deeb View Post
so that different scripts can use it without messing others. Also would be nice all the complementary functions.
If scripts share the same item notes, they can mark their own part (using "*****script name*****" or whatever), to ensure that they don't disturb other notes.
juliansader is offline   Reply With Quote
Old 03-13-2018, 12:18 PM   #14
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Thank you!

Quote:
Originally Posted by juliansader View Post
If scripts share the same item notes, they can mark their own part (using "*****script name*****" or whatever), to ensure that they don't disturb other notes.
yes, but this way forces a good practice imo, and so not so susceptible to be changed if other scripts don't take that into account properly, just that, like happens with GetExtState.
deeb is offline   Reply With Quote
Old 03-24-2018, 08:02 AM   #15
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,488
Default

This would be very useful!
+1
spk77 is offline   Reply With Quote
Old 01-07-2019, 11:09 PM   #16
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Bump!
deeb is offline   Reply With Quote
Old 01-10-2019, 10:02 AM   #17
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 832
Default

For MediaItems and MediaTracks, I made some functions to do that:

Read the following and the chapters following after that:
https://mespotin.uber.space/Mespotin...kItemExtStates

AutomationItems are still missing, but should be possible to do as well. But I need to research it a little first to be sure.
__________________
Ultraschall-API - a Lua-functions-library4Reaper: https://forum.cockos.com/showthread....98#post2067798
Reaper Internals - Developerdocs4Reaper: https://forum.cockos.com/showthread.php?t=207635
mespotine is offline   Reply With Quote
Old 01-16-2019, 07:41 AM   #18
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Quote:
Originally Posted by mespotine View Post
For MediaItems and MediaTracks, I made some functions to do that:
nice mespotine and thank you! it can indeed be very useful but i think it is not really the point of the OR and i think using exstate it is much limited compared with AUXDATA written in track/item chunk for example copying tracks/items in same or in another project won't copy this values. So i think it does not full fill the request since it is something different and so i think REQUEST still open and valid!

Thank you!
deeb is offline   Reply With Quote
Old Today, 06:49 AM   #19
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 11,865
Default

Looking at adding this!
Justin is online now   Reply With Quote
Old Today, 08:01 AM   #20
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 2,372
Default

Yay!

Automation items are not yet included in the chunk, but I hope that it would be possible to add some kind of AUXDATA or "item notes" feature to AIs too.

As an example of an application: The LFO Tool can automatically recall the LFO shape of an AI, but only by using the AI's ID number. If the ID changes, as happens when copying without pooling, or moving to a subproject, to LFO Tool is stymied. Auto-recall would work much better if the LFO data could be saved within item notes that get copied with the AI:
juliansader is offline   Reply With Quote
Old Today, 08:05 AM   #21
deeb
Human being with feelings
 
deeb's Avatar
 
Join Date: Feb 2017
Posts: 2,028
Default

Quote:
Originally Posted by juliansader View Post
Yay!
+ 1000!
deeb 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 03:19 PM.


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