Feature Request: `APPL` chunk support for AIFF/AIFC

Started by uudd, August 12, 2020, 09:30:50 PM

Previous topic - Next topic

uudd

I have some `AIFF/AIFC` files that contain custom metadata inside the application specific chunk `APPL`. It would be great if `exiftool` could parse the chunk correctly. The tool currently does recognize the tag but I can't extract anything from it when running `exiftool file.aif -APPL`. I get no output. However, `exiftool file.aif -v` does list the chunk with its correct size at the end, right before the `SSND` chunk (the PCM sound data).

StarGeek

* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

uudd

The files I am trying to work with are from https://op1.fun. Basically everything there has such an APPL tag set.

The attached file is taken from here: https://op1.fun/users/jake/patches/lowcello. It is licensed under the https://creativecommons.org/licenses/by/4.0/, which shouldn't create any problems I think. If it does, I'll remove the upload. Sublicenses aren't possible with CC IIRC, so the file can't be included in test cases (at least that's my interpretation).

StarGeek

Yeah, the JSON contents are clearly visible viewing the file through other means.

This is going to require further examination from Phil.
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

uudd

If there is interest/need:
This is the link a specification page I found. Not sure if this is the official one though: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/AIFF/AIFF.html
The PDF does list the `APPL` section and gives further details on the implementation (i.e. byte alignment and stuff).

Phil Harvey

ExifTool 12.05 will extract this.  I'm thinking about just leaving the application signature ("op-1" in your example file) as the first 4 bytes of the data, ie.

> exiftool lowcello.aif -applicationdata
Application Data                : op-1{"adsr":[512,10746,32767,10000,4000,64,4000,4000],"base_freq":174.6139984130859,"fx_active":false,"fx_params":[5376,14729,9610,16456,0,0,0,0],"fx_type":"delay","knobs":[0,13829,18185,23253,12000,8192,0,11583],"lfo_active":true,"lfo_params":[23168,948,270,11772,0,0,0,0],"lfo_type":"tremolo","name":"user","octave":-1,"synth_version":2,"type":"sampler"}.


- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

uudd