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

Reply
 
Thread Tools Display Modes
Old 06-13-2018, 10:56 AM   #1
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 433
Default Markers: A unique identifier/guid for markers/regions/time-signature-markers

I would love to have unique-identifiers/guids for markers/regions and time-sig-markers.

I'm currently working on a set of functions for ReaScript-Lua-Coders, that helps storing additional metadata for objects with guids, like tracks, items, etc to have something more flexible than ProjectNotes/ItemNotes, etc.
I'm doing it using ProjectExtStates, where extname is the guid of the object, the key the additional "metadata"-tag and the value it's value.
That way, an object can have one or more additional "tags" stored that way.


Now here is my problem: I can't do that for markers/regions/time-sig-markers, as there is no unique identifier for markers/regions/timesig-markers.
When I use the idx of the first marker(of three in my project), it will become obsolete as unique identifier, when I move the first marker past the last one.
When I use the shown number, it will become obsolete, as soon as the user changes the number.
Using the text is impossible, as this text could change every minute.
And checking the markers for changes using a defer-script is also only helpful, when only one marker is changed; as soon as several markers are changed at the same time(using some script or so), it would be a mess to code a defer-checker-script, if possible at all.

So when I want to associate to a marker/region/timesig-marker a ProjExtState, I have no identifier to use as extname, that will stay the same no matter what the user inputs or does to markers.

That's why I would love to have a guid to use for the marker, that can be used in the background by scripts, without having to force the user to not do certain things(like changing several markers at a time).



One usecase for my set of functions would be storing additional metadata-tags to be used as ID3-tags to regions/markers themselves, not inside the marker-text, but rather in the ProjExtStates associated with the region/marker using the guid as extname.
After rendering, I could read out this additional tag-information from a specific region and add them to the rendered file using the SWS-function SNM_TagMediaFile().


PS: the following functions would probably be useful to add to the api,
Code:
GetGuidFromMarker(integer idx)
GetGuidFromRegion(integer idx)
GetGuidFromTimeSigMarker(integer idx)
When storing it into RPP-files without loosing backwards-compatibility, I would suggest something like adding additional entries after the MARKER-entries
Code:
MARKER_GUID idx guid
where idx is the position of the marker in the MARKER-list and guid the guid itself.


PPS: Hope, I didn't write this overspecific

Last edited by mespotine; 08-24-2018 at 05:21 AM.
mespotine is online now   Reply With Quote
Old 08-24-2018, 05:20 AM   #2
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 433
Default

Bump.
mespotine is online now   Reply With Quote
Old 08-24-2018, 07:19 AM   #3
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 8,039
Default

Not sure if it helps but SWS does something similar ('attaching permanent things to markers / regions') with SWS notes, marker / regions subtitles (SWS/S&M: Open/close Notes window (marker/region subtitles). The notes / subtitles 'stick' to the markers / regions also when rearranged and are saved with the project.

Seems to be done by creating and storing own unique ID's.
https://github.com/reaper-oss/sws/bl...arker.cpp#L136

Surely not as convenient as having API functions for it, but maybe a workaround in the meantime ?
nofish is offline   Reply With Quote
Old 08-29-2018, 07:29 AM   #4
mespotine
Human being with feelings
 
mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig, Germany
Posts: 433
Default

Is that programmable from within ReaScript? If yes, this could be a real good help...
mespotine is online now   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 10:06 AM.


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