Old 02-27-2015, 02:27 PM   #1
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default BWF Metadata (bext and iXML) reader

I've managed to create some EEL script functions to read both the bext and iXML metadata chunks of REAPER selected take's source BWF wav files.

On request from a user for BWF metadata display in one of spk77's scripts, I used that script as a base and a testbed while I developed functions to read the source files' metadata.

It now seems to be working quite well, and so it is time to start a thread to develop some of the tools discussed during development, using it.





Presently it only exists as part of the envelope copying script tool, displaying data for the active take of the currently selected item, and it's main limitation is it is not presently able to access RF64 (poly and >4GB) wav files. This shouldn't take more than a day or two to amend and test at some point in the near future.

Unless someone has particular needs, I think the first tool will probably be a general metadata display box, with the ability to write particular fields to the item name, and possibly creating a project marker or moving the snap offset to the slate/sync-point, aimed generally at post users. Airon, Mim and Claudio have shown interest, but any user who could benefit from this is invited to join in and describe what would be useful to them.


If you'd like to download and try the code as it stands: Copy paste item parameters with BWF beta05, please do test it with any Sound Devices, Cantar, Nagra or other recorder (post 2004-ish) wavs you have access to. If the script finds an iXML chunk in the wav, it will display that to you, along with Project, Tape, Scene, Take and Timecode fields. If you want to see the full list of iXML metadata in your BWF wav, change the change the variable "metadata_list_toggle =0" to "metadata_list_toggle =1" at the exteme end of the code, and the script will print a tag list of all parameters to the ReaScript console output box for you to view and copy/paste.


For example:

Code:
[bext][Description]''aUBITS=$13091400
aSCENE=     1/  
aTAKE=t 1   
aTAPE=0913
aSPEED=025.000-ND
aTAG=ZX5684
aTYP=poly
aCHNL=C1  
aTRK1=BOOM      
aNOTE= 
'' 
[bext][Originator]''CANTAR 00597 v     2.44'' 
[bext][OriginatorRef]''AATON                 ZX56840000'' 
[bext][OriginatonDate]''2014-09-13'' 
[bext][OriginatonTime]''16:08:35'' 
[bext][TimeRefLow]''-2147483648'' 
[bext][TimeRefHigh]''0'' 
[bext][VersionNum]''0'' 
[bext][LoudnessValue]''0.00'' 
[bext][LoudnessRange]''0.00'' 
[bext][MaxTPLevel]''0.00'' 
[bext][MaxMaxMomentaryLoudness]''0.00'' 
[bext][MaxMaxShortTermLoudness]''0.00'' 

<BWFXML><IXML_VERSION>''1.50a''
<BWFXML><PROJECT>''TERRAX__''
<BWFXML><SCENE>''     1/ ''
<BWFXML><TAKE>''   t 1''
<BWFXML><TAPE>''0913''
<BWFXML><CIRCLED>''TRUE''
<BWFXML><UBITS>''13091400''
<BWFXML><NOTE>'' ''
<BWFXML><FILE_UID>''AATCAN00597201409131609216840001''
<BWFXML><SPEED><TIMECODE_FLAG>''NDF''
<BWFXML><SPEED><TIMECODE_RATE>''25/1''
<BWFXML><SPEED><FILE_SAMPLE_RATE>''48000''
<BWFXML><SPEED><AUDIO_BIT_DEPTH>''24''
<BWFXML><SPEED><DIGITIZER_SAMPLE_RATE>''48000''
<BWFXML><SPEED><TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_HI>''0''
<BWFXML><SPEED><TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_LO>''2789472000''
<BWFXML><SPEED><TIMESTAMP_SAMPLE_RATE>''48000''
<BWFXML><HISTORY><ORIGINAL_FILENAME>''ZX5684PR.WAV''
<BWFXML><FILE_SET><TOTAL_FILES>''1''
<BWFXML><FILE_SET><FAMILY_UID>''AATCAN00597201409131609216840000''
<BWFXML><FILE_SET><FAMILY_NAME>''     1/ /   t 1''
<BWFXML><FILE_SET><FILE_SET_INDEX>''A''
<BWFXML><TRACK_LIST><TRACK_COUNT>''4''
<BWFXML><TRACK_LIST><TRACK><CHANNEL_INDEX>''7''
<BWFXML><TRACK_LIST><TRACK><INTERLEAVE_INDEX>''1''
<BWFXML><TRACK_LIST><TRACK><NAME>''MIX L''
<BWFXML><TRACK_LIST><TRACK><CHANNEL_INDEX>''8''
<BWFXML><TRACK_LIST><TRACK><INTERLEAVE_INDEX>''2''
<BWFXML><TRACK_LIST><TRACK><NAME>''MIX R''
<BWFXML><TRACK_LIST><TRACK><CHANNEL_INDEX>''1''
<BWFXML><TRACK_LIST><TRACK><INTERLEAVE_INDEX>''3''
<BWFXML><TRACK_LIST><TRACK><NAME>''BOOM  ''
<BWFXML><TRACK_LIST><TRACK><CHANNEL_INDEX>''2''
<BWFXML><TRACK_LIST><TRACK><INTERLEAVE_INDEX>''4''
<BWFXML><TRACK_LIST><TRACK><NAME>''RADIOMIC''
<BWFXML><BEXT><BWF_TIME_REFERENCE_LOW>''-1505495296''
<BWFXML><BEXT><BWF_TIME_REFERENCE_HIGH>''0''
<BWFXML><BEXT><BWF_ORIGINATOR>''         CANTAR 00597 v     2.44''
<BWFXML><BEXT><BWF_ORIGINATOR_REFERENCE>''AATON                 ZX56840000''
<BWFXML><BEXT><BWF_DESCRIPTION>''aUBITS=$13091400
aSCENE=     1/  
aTAKE=t 1   
aTAPE=0913
aSPEED=025.000-ND
aTAG=ZX5684
aTYP=poly
aCHNL=C1  
aTRK1=BOOM      
aNOTE= 
''
<BWFXML><BEXT><BWF_ORIGINATION_DATE>''2014-09-13''
<BWFXML><BEXT><BWF_ORIGINATION_TIME>''16:08:35''
<BWFXML><BEXT><BWF_VERSION>''0''
<BWFXML><SYNC_POINT_LIST><SYNC_POINT><SYNC_POINT_TYPE>''RELATIVE''
<BWFXML><SYNC_POINT_LIST><SYNC_POINT><SYNC_POINT_FUNCTION>''SLATE_GENERIC''
<BWFXML><SYNC_POINT_LIST><SYNC_POINT><SYNC_POINT_COMMENT>''AUTO''
<BWFXML><SYNC_POINT_LIST><SYNC_POINT><SYNC_POINT_LOW>''1994972''
<BWFXML><SYNC_POINT_LIST><SYNC_POINT><SYNC_POINT_HIGH>''0''
<BWFXML><SYNC_POINT_LIST><SYNC_POINT><SYNC_POINT_EVENT_DURATION>''0''
<BWFXML><AATON_CANTAR><VERSION_INT>''244''
<BWFXML><AATON_CANTAR><VERSION_STR>''2.44''
<BWFXML><AATON_CANTAR><NUMBER>''597''
<BWFXML><AATON_CANTAR><WORD_CLOCK><ON>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><MIC1>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><MIC2>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><MIC3>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><MIC4>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><MIC5>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><LINE1>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><LINE2>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><LINE3>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><LINE4>''0''
<BWFXML><AATON_CANTAR><INPUT_DELAY><MICS>''0''
<BWFXML><AATON_CANTAR><HANDLE_INDEX>''0''
<BWFXML><AATON_CANTAR><DISPLAYED_TC_FPS>''25.00''
<BWFXML><AATON_CANTAR><REF_LEVEL>''-20 dB''
<BWFXML><AATON_CANTAR><DRIVE_USED>''INT''
<BWFXML><AATON_CANTAR><PLAYBACK_AND_REC>''
  ''
<BWFXML><AATON_CANTAR><CANTAR_KEY>''NCzSsrQQtuwLWY''
These tag-nest lists can be used in the code to extract more values than the quick list of parameters I set up.

Happy to answer any questions about details for this, but I don't think I will get to touch much code over the weekend -plenty of time to get those ideas rolling!





>
planetnine is offline   Reply With Quote
Old 02-27-2015, 04:09 PM   #2
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 10,445
Default

Great! I'll throw lots of files at it and see what comes of it.
__________________
Dialogue/FX Editor & Re-Recording Mixer
(Video)Using Latch Preview
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 02-27-2015, 06:08 PM   #3
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Updated it to produce the ReaScript console tag-list on demand...


Copy paste item parameters with BWF beta06

+Click on Filename to produce file metadata tag-listing in ReaScript console.



Glad you like it Airon, we need to see how to use it best, next.

The parameters in orange aren't much more than the obvious ones I thought would be needed for post. It shouldn't take much more than a list of conditionals with the odd while loop to retrieve any of those values into a script tool.


Edit: I think maybe making the source file routines RF64-compatible might be next on the list if you guys regularly use 8-channel poly files.

Do you use the slate/sync-point in the file at all?

Edit2: Tried it with a 1.3GB stereo file (not RF64) and it took a while to scan the file. REAPER 4.74 comes up with an "fread: error allocating storage for read of 1,366,431,744" -This one's definitely going to be for v5

Edit3: that would be because I tried that on a XP32 machine on 4.74, and the portable install is on a Win7-64 laptop. That'll teach me to work on code late.


>

Last edited by planetnine; 02-28-2015 at 02:26 AM.
planetnine is offline   Reply With Quote
Old 02-28-2015, 07:12 PM   #4
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Updated to include more iXML chunk parameters and grouped into a more logical order.

Copy paste item parameters with BWF beta07

+added parameters from iXML chunk including the file track list.

#GUI format tidied. bext chunk parameters to be displayed when their choice and format is decided upon.




Edit: or even track interleave




>

Last edited by planetnine; 03-01-2015 at 01:40 AM.
planetnine is offline   Reply With Quote
Old 03-01-2015, 06:56 AM   #5
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 346
Default

Great work !

Sound Editors will love it !
mim is offline   Reply With Quote
Old 03-01-2015, 08:02 AM   #6
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 6,115
Default

I don't use BWF a lot but now, I know what tool to used when I will work with it

Nice work!
X-Raym is offline   Reply With Quote
Old 03-01-2015, 08:52 AM   #7
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,774
Default

Awesome!

Will give it a go!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 03-01-2015, 11:29 AM   #8
Claudiohbsantos
Human being with feelings
 
Join Date: Aug 2014
Location: New York
Posts: 132
Default

That is pretty good. I was checking yesterday with a few files from a 744 Sound Devices and also metadata created purely in Wave Agent, and it all seems correct. I'll see if I get some time tonight to try to look at a good algorithm to convert the Samples from Midnight to TC in the standard format. For all I know all the information is there already, it's just a matter of finding the right algorithm to avoid rounding errors.
Claudiohbsantos is offline   Reply With Quote
Old 03-01-2015, 12:47 PM   #9
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: brighton, uk
Posts: 12,774
Default

I tried with some stuff from our sound devices "device" and seems to pick up on it fine!

I just wish we could get the devs to add the description text into the search text for media explorer databases so we could search these in media explorer!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 03-01-2015, 03:42 PM   #10
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Quote:
Originally Posted by Claudiohbsantos View Post
That is pretty good. I was checking yesterday with a few files from a 744 Sound Devices and also metadata created purely in Wave Agent, and it all seems correct. I'll see if I get some time tonight to try to look at a good algorithm to convert the Samples from Midnight to TC in the standard format. For all I know all the information is there already, it's just a matter of finding the right algorithm to avoid rounding errors.

I've got that sussed already if you want to have it added -I use it in my Source Time Position Tool and quite a lot in the Item Marker Tool. There is an awful lot of data I could add and display, including start offset and Sync Points,etc in timecode format, but at this stage I've been trying to get a handle on Post workflows with metadata and what and how can be usefully included.

If anyone thinks that any obvious parameter for their workflow is missing, please shout up. I'm certainly making this up as I go along. MBN, I agree about the bext description, orig and ref, being incorporated in the Media Explorer search -that would be very useful.

Thanks to all for testing the script out, I'm getting more confident that if the recorders stick to the iXML spec, I can reliably get the data and use it relevantly.


>

Last edited by planetnine; 03-02-2015 at 02:10 PM. Reason: undoing "smart" spell-check...
planetnine is offline   Reply With Quote
Old 03-02-2015, 03:47 AM   #11
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 10,445
Default

Nathan, would the speed of the data readout be improved if we had direct access via API to the BEXT and the iXML(in particular) chunks ?

It does take quite a while on longer files.
__________________
Dialogue/FX Editor & Re-Recording Mixer
(Video)Using Latch Preview
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 03-02-2015, 08:09 AM   #12
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Well the time taken by the script would be less (although I haven't checked how much time is taken for chunk aquisition vs parsing) and certainly the script memory footprint would be much smaller, the largest iXML chunk I've found is only 62kB.

What are you thinking? It's only the very large files (GB+) that take the time and memory.



>
planetnine is offline   Reply With Quote
Old 03-02-2015, 11:12 AM   #13
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 10,445
Default

The WAV chuncks are in fact pretty easy to parse, but a native function might be better suited. Each chunks contains in it the length, so you hop from chunk to chunk without reading much.

It seemed to me like you were reading the entire file, scanning for chunk headers. I am not sure that is what's going on. To prevent that I figured native Reaper functions that just extracted the data quickly would be of help.

If this is what is necessary I'll put in an FR in the tracker.
__________________
Dialogue/FX Editor & Re-Recording Mixer
(Video)Using Latch Preview
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 03-02-2015, 01:47 PM   #14
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Quote:
Originally Posted by airon View Post
The WAV chuncks are in fact pretty easy to parse, but a native function might be better suited. Each chunks contains in it the length, so you hop from chunk to chunk without reading much.

It seemed to me like you were reading the entire file, scanning for chunk headers. I am not sure that is what's going on. To prevent that I figured native Reaper functions that just extracted the data quickly would be of help.

If this is what is necessary I'll put in an FR in the tracker.

Sorry, been busy today, but this has been at the back of my mind. I figured that it must be some issue with the way EEL seeks through large files.

Then I got home and realised that as the bext chunk is always before the wav data, I never bothered to implement seeking to jump chunks, and I just read my way in chunk to chunk -it would have found its data before hitting the really chewy bit. As the iXML chunk is after the wav data, it's been reading its way through instead of hopping over it -no wonder it has been taking ages and using huge amounts of RAM

I've just put an fseek conditional in to hop if the chunk is unwanted -now it takes no longer to scan 1+GB files than shorter ones

I'm just adding sync point parsing to the tool, and then I'll release it as Beta08. Thanks for needling me about this, that was just bad coding...


>
planetnine is offline   Reply With Quote
Old 03-02-2015, 03:09 PM   #15
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 10,445
Default

Great. One less obstacle. I'd hoped this could be done without Cockos having to make a new function for us(though that wouldn't be a bad thing either).
__________________
Dialogue/FX Editor & Re-Recording Mixer
(Video)Using Latch Preview
"My ego comes pre-shrunk" - Randy Thom

Last edited by airon; 03-02-2015 at 03:17 PM.
airon is offline   Reply With Quote
Old 03-02-2015, 03:38 PM   #16
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 346
Default

Quote:
Originally Posted by planetnine View Post
I've just put an fseek conditional in to hop if the chunk is unwanted -now it takes no longer to scan 1+GB files than shorter ones
Awesome !
mim is offline   Reply With Quote
Old 03-02-2015, 06:43 PM   #17
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Updated to include the fseek fix, plus "Timestamp" and "Synch Points".

Copy paste item parameters with BWF beta08

Beta08
+Added timestamp from the XML chunk, and "Sync Points" -works with single SPs, but untested on multiple SPs.
#Implemented bypassing unwanted chunks by seeking past them -vast improvement on time and memory usage for reading large wav files.



Sorry about forgetting to implement the seeking past unwanted chunks, that was dumb. Now it's even a little faster on the short files too. There may be some parameters "hanging-on" if you select a wav with less iXML tags than the previous selection -a missing tag doesn't always result in a blank field, it's on my list to reset parameters in-between selections.





I've implemented display for multiple Sync Points, but I can't test more than single ones as WaveAgent won't create them, only display existing ones; if anyone can supply files with multiple sync points for testing it would be very much appreciated.





>
planetnine is offline   Reply With Quote
Old 03-03-2015, 04:25 AM   #18
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

File sample rate missing on beta08 here's an unfinished beta09 to fix that...

there are a couple of items to finish for this, will update it later today

Ok, update uploaded.







>

Last edited by planetnine; 03-03-2015 at 04:26 PM.
planetnine is offline   Reply With Quote
Old 03-03-2015, 09:16 AM   #19
Claudiohbsantos
Human being with feelings
 
Join Date: Aug 2014
Location: New York
Posts: 132
Default

Man, you are quick! Everytime I see something I think I might be able to point out or suggest, it's done already hahahaha keep up the good work =]
Claudiohbsantos is offline   Reply With Quote
Old 03-03-2015, 01:25 PM   #20
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

I want to cover as much as I can Claudio, tidy and optimise it, and then it is a self-contained bunch of functions that anyone can transplant to get data from post-production BWF files.

I'm not really a post guy; my involvement has been limited and not very heavy, just mixing bands for videos and webcasts. I'm figuring that others will take this and turn it into tools for their workflows.

I've got some helpers supplying me with metadata-heavy "audio for video" behind the scenes, with this assistance I'm pulling together a metadata display tool that will show the needed data from an audio file for its use in video/film post production, the tracks in a poly file or across several mono files for the same scene and take. It would be nice to be able to semi-automatically rename REAPER takes based on the metadata content, and maybe to start some arranging and aligning, or searching folders for files containing related parameters from it too.

Hoping this will "light the blue touch paper" so to speak and then the post guys themselves can shape it all -because it's their workflow.


Is any of this useful to you? I've got to sit back and take some time to tidy it up and make the code more consistent, improve the visuals and solve some niggles, should that give you some time to catch up and get some good ideas in? I've been carefully commenting the code because I know you'll be in there working it out



>
planetnine is offline   Reply With Quote
Old 03-04-2015, 05:40 PM   #21
Claudiohbsantos
Human being with feelings
 
Join Date: Aug 2014
Location: New York
Posts: 132
Default

Hahah yeah, it definitely brings ideas to mind. Today I managed to dive a bit into the code and will admit the chunks parsing made me dizzy. Guess i gotta practice a bit more of file management and string handling. I was trying to reverse it to be able to copy metadata from one take to another. It's just a bummer that the action to explode multichannel items in reaper renders a new file with none of the original metadata.

Quote:
Originally Posted by planetnine
It would be nice to be able to semi-automatically rename REAPER takes based on the metadata content, and maybe to start some arranging and aligning, or searching folders for files containing related parameters from it too.
This is exactly what got me so excited about this script. Even if just a simple auto-comform tool that looks at an item and brings the other channels aligned and cut accordingly from a folder, this would be a massive workflow help for low budget post, since tools to do this usually come very pricey and I don't know of a single one for Reaper yet (heard somewhere in here that the team behind AATranslator is working on one).

Specifically regarding this script the only suggestions I have so far is that in long project names the space between the project tag and the tape tag gets a bit crammed.
Claudiohbsantos is offline   Reply With Quote
Old 03-04-2015, 06:11 PM   #22
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Quote:
Originally Posted by Claudiohbsantos View Post
Hahah yeah, it definitely brings ideas to mind. Today I managed to dive a bit into the code and will admit the chunks parsing made me dizzy. Guess i gotta practice a bit more of file management and string handling. I was trying to reverse it to be able to copy metadata from one take to another. It's just a bummer that the action to explode multichannel items in reaper renders a new file with none of the original metadata.

I think we need to ask for some metadata preservation (copying) in this case. Copying from one take (ambiguous word here -recording take or REAPER take?) to another might involve the need to write new metadata tags, and thus rewrite the wav file -unless I've misunderstood you.


Quote:
Originally Posted by Claudiohbsantos View Post
This is exactly what got me so excited about this script. Even if just a simple auto-comform tool that looks at an item and brings the other channels aligned and cut accordingly from a folder, this would be a massive workflow help for low budget post, since tools to do this usually come very pricey and I don't know of a single one for Reaper yet (heard somewhere in here that the team behind AATranslator is working on one).

They're working on Avid Media Composer AAF exports from what I did glean. How that would function outside the Avid sphere, I'm waiting to see. Would be good if I could help REAPER to a level where something like this was compatible. Working on using the metadata to help arrange items and takes, but it could be a couple of weeks before I upload anything on that score.

Quote:
Originally Posted by Claudiohbsantos View Post
Specifically regarding this script the only suggestions I have so far is that in long project names the space between the project tag and the tape tag gets a bit crammed.

That sounds like formatting -I've done the minimum of GUI organisation so far, and the tape heading and data could well move to the right or even sit on its own line in the end. But thanks for bringing that up -it can be considered when I get to the screen layout.

REAPER take renaming through metadata wildcards, and track name and channel collecting over multiple item source files' metadata next -might need a couple of weeks though, so keep testing with what you got and let me know any more niggles/showstoppers.

Good to get your input though Claudio



>
planetnine is offline   Reply With Quote
Old 03-05-2015, 07:51 AM   #23
Runaway
Human being with feelings
 
Runaway's Avatar
 
Join Date: Jun 2009
Location: Sydney
Posts: 2,424
Default

Quote:
Originally Posted by planetnine View Post
They're working on Avid Media Composer AAF exports from what I did glean. How that would function outside the Avid sphere, I'm waiting to see.>
Yes that is now done and is currently being gift wrapped as we speak so expect a release probably Monday
We had to have a bet each way with AAF in order to get the maximum detail into a conversion.
For those who don't know there are two main and very different AAF variants (and lots of hybrids in between) and while we have focussed on what I call the PT variant we have managed to create an AAF where depending upon the DAW reading it you will get far more detail than if the AAF had come from say PT itself.

Work on a conforming tool has taken a back seat, however, all our current AAT effort has been conscious of our returning to that work and as such we have been rebuilding and improving a lot of the necessary building blocks of code that we will be reusing in such a tool.

BTW Excellent work planetnine developing this tool
__________________
AATranslator
Runaway is offline   Reply With Quote
Old 03-06-2015, 01:04 AM   #24
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

TBH, conforming was one or the directions I was heading, Michael.

Hold fire or chew on?

It's probably at the extent of EEL capabilities anyway, needs to be in C (and I've not looked at that in something like 20 years!)


>
planetnine is offline   Reply With Quote
Old 03-06-2015, 01:52 AM   #25
Runaway
Human being with feelings
 
Runaway's Avatar
 
Join Date: Jun 2009
Location: Sydney
Posts: 2,424
Default

Quote:
Originally Posted by planetnine View Post
TBH, conforming was one or the directions I was heading, Michael.

Hold fire or chew on?

It's probably at the extent of EEL capabilities anyway, needs to be in C (and I've not looked at that in something like 20 years!)


>
I won't be the one to stand in your way you go for it ;-)
__________________
AATranslator
Runaway is offline   Reply With Quote
Old 03-12-2015, 07:46 PM   #26
John Lundsten
Human being with feelings
 
John Lundsten's Avatar
 
Join Date: Apr 2008
Location: London
Posts: 230
Default

Quote:
Originally Posted by Runaway View Post
I won't be the one to stand in your way you go for it ;-)
Quite so n me too. Been working on this stuff a lot. Yes what is available is dam expensive and is limited in what it does. But it delivers a viable solution to principally the Avid PT/MC pros. They do great work/art ~ use the 'tools' required, have to, wtf ~ no problem.

Sure there are other Film/Tv Post-capable DAW's n NLE's ~ like Reaper, Edius, FCP & more.
IMO beware of the 'poison chalice'conundrum.

John ~AATranslator ~ London
John Lundsten is offline   Reply With Quote
Old 03-13-2015, 04:22 AM   #27
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Thanks for the encouragement

Michael and John, a technical Q: if AAT reads an audio embedded Media Composer AAF, does it find metadata for that audio, and can it write that metadata to the wavs?



>
planetnine is offline   Reply With Quote
Old 03-13-2015, 05:01 AM   #28
Runaway
Human being with feelings
 
Runaway's Avatar
 
Join Date: Jun 2009
Location: Sydney
Posts: 2,424
Default

AAT extracts exactly whatever is embedded in the AAF
I'm in the studio and not on my PC right now but I will check to see if a random sample of AAFs contain metadata or not
Back in a couple of hours
__________________
AATranslator
Runaway is offline   Reply With Quote
Old 03-13-2015, 05:43 AM   #29
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Quote:
Originally Posted by Runaway View Post
AAT extracts exactly whatever is embedded in the AAF
I'm in the studio and not on my PC right now but I will check to see if a random sample of AAFs contain metadata or not
Back in a couple of hours

Thank you, nothing urgent -it's curiosity/mental note of a workflow buster.

I sat wondering how AAF embedded the audio: as a complete file; as RIFF chunks; as raw data with some metadata in Avid format -didn't know if bext and iXML chunks were intact or had to be reconstructed from a building site of data You make it sound like it's intact.


Thanks in advance for looking. Next I think is an FR for REAPER to preserve/update iXML on glue



>
planetnine is offline   Reply With Quote
Old 03-13-2015, 06:12 AM   #30
Runaway
Human being with feelings
 
Runaway's Avatar
 
Join Date: Jun 2009
Location: Sydney
Posts: 2,424
Default

Session finished - no animals hurt but a singer was arrested for murdering a song

I just checked my code and ran a few tests of embedded MC AAFs.
These AAFs contain an 'essence stream', they can be in PCM format or they can just be a wav file embedded in the AAF.

The few I looked at contained bext, fill, umid, minf & omfi chunks and obviously fmt and data chunks.

Other non-MC AAFs can have similar (I need to check this bit but pretty certain) or they can just contain a data stream in PCM format which we convert to wav

Hope that helps
__________________
AATranslator
Runaway is offline   Reply With Quote
Old 03-13-2015, 06:57 AM   #31
John Lundsten
Human being with feelings
 
John Lundsten's Avatar
 
Join Date: Apr 2008
Location: London
Posts: 230
Default

To add to what Michael wrote. I've run a couple of Embedded MC 7 AAF files. Protools gets metadata Nuendo & AAT does not.

These data streams were in Wav form. I've seen Emb MC AAF's with AIF form data & PT get metadata cunningly hidden in the AAF that those not in the Avid family don't see.
John Lundsten is offline   Reply With Quote
Old 03-13-2015, 10:04 AM   #32
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Quote:
Originally Posted by John Lundsten View Post
To add to what Michael wrote. I've run a couple of Embedded MC 7 AAF files. Protools gets metadata Nuendo & AAT does not.

Ah, thank you gentlemen.

Quote:
The few I looked at contained bext, fill, umid, minf & omfi chunks and obviously fmt and data chunks.
Is this before or after embedding please Michael?

Quote:
These data streams were in Wav form. I've seen Emb MC AAF's with AIF form data & PT get metadata cunningly hidden in the AAF that those not in the Avid family don't see.

Is this insurmountable? if there's a field where the metadata is important, it's post-production Best to ask specifically for reference wavs for safety (I think many PT post audio mixers prefer this even with importing AAF into PT, from what I can gather).

Avid do like to make it awkward -anybody would think it was their content and data wouldn't they?



>
planetnine is offline   Reply With Quote
Old 03-13-2015, 02:32 PM   #33
Runaway
Human being with feelings
 
Runaway's Avatar
 
Join Date: Jun 2009
Location: Sydney
Posts: 2,424
Default

Quote:
Originally Posted by planetnine View Post
Is this before or after embedding please Michael?
>
After

Quote:
Originally Posted by planetnine View Post
Is this insurmountable? if there's a field where the metadata is important, it's post-production >
There is no metadata 'field'.

Quote:
Originally Posted by planetnine View Post
Avid do like to make it awkward -anybody would think it was their content and data wouldn't they?
>
Well they certainly don't like to share
__________________
AATranslator
Runaway is offline   Reply With Quote
Old 03-13-2015, 04:11 PM   #34
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

Quote:
Originally Posted by Runaway View Post

There is no metadata 'field'.

I figured that, but it's obviously there in some form if PT can pick it up. I'm going to put it down to "too much work for a very small part of an obscure workflow path that has an easy workaround". Am I close there?


Thanks for taking the time checking and replying though



>
planetnine is offline   Reply With Quote
Old 03-13-2015, 04:30 PM   #35
Runaway
Human being with feelings
 
Runaway's Avatar
 
Join Date: Jun 2009
Location: Sydney
Posts: 2,424
Default

Quote:
Originally Posted by planetnine View Post
I figured that, but it's obviously there in some form if PT can pick it up. I'm going to put it down to "too much work for a very small part of an obscure workflow path that has an easy workaround". Am I close there?
>
Close but not quite - these guys don't make anything easy - if you find something in there labelled 'chalk' good chance it's probably 'cheese' or at the very least it's 'urn:smpte:ul:060e2b34.04010101.0e040301.02060303' .

But I'll tell you what, I'll put it on my list of things to do and once I've found where they've hidden the haystack I'll look for the needle ;-)
__________________
AATranslator
Runaway is offline   Reply With Quote
Old 03-16-2015, 03:31 PM   #36
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default




Working on the wildcard take labeller, should have something to upload soon.



>
planetnine is offline   Reply With Quote
Old 03-19-2015, 02:39 PM   #37
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default BWF Metadata Tool beta01

BWF Metadata Tool beta01

Sorry about the size of this gif video, but wanted to share the progress on this (now renamed) tool.

It's still a bit untidy and has limited functionality for where I'd like it to be, but I should be able to upload a version in the next day or so.

The wildcard-driven take labelling bit seems to work well, although it is a little slow for big projects (on my pre i7 machines) and there are only 18 wildcards and options to rename all or selected only as it stands. Want to save the user's default wildcard string in the ReaScript ini and rename by take, scene, tape or project -I should get those going in the next few days.







Anyone know how to widen the GetUserInputs dialogue box at all?

Wildcards so far are:

Code:
%prj			#lbl_xml_project
%scn			#lbl_xml_scene
%tak			#lbl_xml_take
%tap			#lbl_xml_tape
%ofn			#lbl_xml_orig_filename
%trc			#lbl_xml_trlist_trcount
%tnm			#lbl_xml_trlist_trk_name
%tch			#lbl_xml_trlist_trk_chanindex
%fsi			#lbl_xml_flset_index
%fst			#lbl_xml_flset_ttlfiles
%flu			#lbl_xml_fileUID
&fan			#lbl_xml_flset_famname
&fau			#lbl_xml_flset_famUID

%rtn			#lbl_reaper_take_name (existing)
%fno			#lbl_filenameonly
%fpa			#lbl_pathbuf
%fna			#lbl_filenamebuf
%fns			#lbl_filenamesubs
There isn't a preview yet, but I've left a "safety catch" toggle on-screen, to print the labels to console rather than live to the take names while I'm messing about with settings. If anyone can think of anything they really want based on what they see here, PM me and I'll try and get it in the first uploaded beta


Edit: most of the sections expand/collapse from/to single headings for tidyness -you only need to expand what you want to see/use...







>

Last edited by planetnine; 03-19-2015 at 05:26 PM.
planetnine is offline   Reply With Quote
Old 03-19-2015, 03:25 PM   #38
mim
Human being with feelings
 
Join Date: Mar 2009
Posts: 346
Default

Yeahh!
This is seriously getting shape !
mim is offline   Reply With Quote
Old 03-19-2015, 05:49 PM   #39
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,585
Default

I've neglected bext with this though Mim, got to get my head round what it really wants to do -at the moment the clever stuff is for wav files with iXML chunks. I might just do a separate wildcard string for those files with bext only as the metadata content gets severely reduced without iXML.

Is that basic and compact enough for you with the details condensed, Mim? (ittle pic).



If it is any use to anybody, I have a routine to move the snap offset for any item where it finds an auto-slate sync-point. Don't know if this helps workflow any.


I'm limited by the example file-sets I have. I could do with some more and varied iXML chunk containing BWF wavs, if anybody could care to donate -This tool seems robust with the stuff I have got, but I'd be more confident with a wider pool of audio file sets. Outtakes, anything -as long as it has metadata included. Very many thanks to those who have helped with this so far, this just wouldn't have happened without you guys.

Thanks in advance...


Edit: <CIRCLED>, <UBITS>, <NOTE>, <SYNC_POINT_COMMENT>, any need by anyone?
Mim, Cantar specific stuff like the ID?





>

Last edited by planetnine; 03-19-2015 at 05:55 PM.
planetnine is offline   Reply With Quote
Old 03-20-2015, 06:19 PM   #40
Claudiohbsantos
Human being with feelings
 
Join Date: Aug 2014
Location: New York
Posts: 132
Default

Nice! Can't wait to try this out in a real project and see everything gleam with organization!

Quote:
Originally Posted by planetnine
If it is any use to anybody, I have a routine to move the snap offset for any item where it finds an auto-slate sync-point. Don't know if this helps workflow any.
I can see it being useful but for me for example it would probably be more useful to have an option to trim everything before the sync-point, maybe determining a section so I can simply unwrap it if I want to check what is there before the sync-point. It's simply usually just people waiting for silence, so it always ends up trimmed. ON the other hand I havent really gotten many files with auto-slate sync-point yet so it wouldnt be anything massive for me right now.

Quote:
Originally Posted by planetnine
Edit: <CIRCLED>, <UBITS>, <NOTE>, <SYNC_POINT_COMMENT>, any need by anyone?
I can see being able to visualize the notes being pretty useful, but I don't see why it would be good to rename a file with it. So maybe just in the display window?
Claudiohbsantos 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 12:34 PM.


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