This suite started as a proof of concept for the binary data functionality introduced in Yate v8.2. Basically the suite provides the ability to edit various classes of tags found in Core Audio files (CAF).
Warning: If you are downloading this suite (as opposed to using the Resource Actions Installer), make sure you import it via Yate>Import Settings. Your settings may not allow all contained components to be installed if you drag the zip file to the main window.
At times this document may refer to components in the CAF specification. A description can be found here.
There are two actions that you would use directly from the UI. The Core Audio Files: Analyze action produces a container describing the components in the CAF files. The Core Audio Files: Produce Database action produces a database for one or more CAF files.
Quick jumps:
Core Audio Files: Produce Database
Tag Types
Workflow
Core Audio Files: Analyze
Contents, Requirements and History
Core Audio Files: Produce Database
This action produces the database file from which you will edit, create and save tags. When you run the action a file open panel will be displayed allowing you to select one or more CAF files and folders. All CAF files in selected folders will be analyzed and added to the produced database. The panel has a Process subfolders checkbox. When checked, all CAF files at any depth under a selected folder will be processed. ie. the setting enables a deep scan. If any error occurred the will be displayed prior to creating the database.
Once the selected files have been analyzed, you will be asked for a name for the database. The panel has an Always display the container viewer checkbox. When checked, the results of the analysis will be displayed in the container viewer. The container is described in Core Audio Files: Analyze. When the database has been produced it will automatically be opened.
Every row in the database represents a single tag associated with a single file.
The database has the following columns:
- Filename
This is a read only items describing the filename associated with the the tag.
- Tag Type
This column displays the type of tag represented. When a row is selected and you click in this column, a popup menu is displayed allowing you to select the type of tag you wish to represent. The tag types are described in Tag Types.
- Tag
This is an editable column where you specify the name of the tag. For example artist. If you double click in a cell in this column a list of tags defined by Apple is displayed in a menu for easy selection. You can choose other tag names than those predefined by Apple. According to the specification, tag names which are all lower case alphabetic characters are reserved for Apple. However, it seems as if everyone breaks this rule.
- Value
This column represents the value associated with the specified tag.
- File Path
This read only column contains the full path to the CAF file. You can hide this column if you wish by right clicking on the table's column name banner.
Back to top of page
Tag Types
The suite allows for the manipulation of tags in four chunk types. It also has a placeholder tag type for files which are processed which do not initially contain any tags. The following tag types are supported.
- info
This is or should be the primary type of tag which you manipulate. The info chunk is designed to represent configurable tags. If you double click in a cell in the Tag column, a list of tags defined by Apple is displayed in a menu for easy selection. You can choose other tag names than those predefined by Apple. According to the specification, tag names which are all lower case alphabetic characters are reserved for Apple. However, it seems as if everyone breaks this rule.
- Multiple, occurrences of the same tag are not allowed. For example, you can't have two artist tags. The specification states that multiple items of the same tag should be separated by commas in the value. The suite will automatically merge tags with the same name in each file when you apply the database values to their associated files.
- uuid
The Core Audio File format is extensible by uuid chunks. It seems as if one or more audio applications writes tags to a uuid chunk with the following ID:
29819273-B5BF-4AEF-B78D62D1EF90BB2C
- The suite supports the manipulation of tags in this particular uuid. All uuid chunks with a different ID are ignored. The tag-value format is identical to the description in the info tag type.
- edct
The Edit Comments chunk is intended to represent tags describing edit sessions. Each Tag name is a full or partial date specification YYYY-MM-DDThh:mm:ss. The Value represents the comment.
- strg
Various components in a CAF file such as markers and regions are associated with string IDs. The textual string describing an ID need not always be present. When it is it is described in a strg item. The Tag is a numeric ID. The Value is the descriptive text. You cannot create or remove strg items when the database is applied to the files. You can however change or add the names.
- ----
When a database is produced, one of these items is added for every database which contains no tags. This is because you need at least one tag to be present per file in order to perform the tagging workflow. If you do not modify the tag type, these items are ignored when the database is applied to the files.
Back to top of page
Workflow
Basically you edit, add and remove tags represented on a single row. At some point you apply the changes to the files. While the database is automatically opened when produced, there is no requirement to finish tagging at that time. You can save and reopen the database whenever you want.
You can perform almost all of the standard Yate database functionality, found on the context menu. The ability to add empty rows has been removed. The easiest way to add a new row for a file is to select a row in the file, Duplicate it and then edit it.
When you delete a row, the tag (unless recreated), will be removed from the file when the database is applied. Note that an exception to this rule is strg tags. strg tags cannot be created or removed ... only renamed.
Functionality specific to the suite is found on the Run Action submenu. The following items are provided:
- Core Audio DB 0: Create Empty Item for Clicked Row
An empty ---- row is created associated with the same file as the row clicked to open the context menu.
- Core Audio DB 1: Replicate Selected Rows to All Files
All selected rows will be replicated to all files in the database.
- Core Audio DB 2: Apply Database to File in Clicked Row
All database values associated with the file represented on the clicked row, will be applied to the file. A backup file is saved to a CAF Backups subfolder.
- Core Audio DB 3: Apply Database to Files
The database is applied to every represented file. Backup files are saved to CAF Backups subfolders.
- Core Audio DB 4: Rebuild Database
The database is rebuilt for all files represented in it. You are given the option of applying the database before rebuilding.
- Core Audio DB 5: Merge Tags
The action merges tags with the same names on a per file basis. This action is automatically called by the Apply actions. It is included if for any reason, you want to merge prior to applying.
- Core Audio DB 6: Validate Database
The action validates the database looking for errors or potential errors. This action is automatically called by the Apply actions. It is included if for any reason, you want to validate prior to applying.
- Core Audio DB 7: Show Analyze Container
An analysis is performed for each file in the database. The results are displayed in the Container Viewer.
Back to top of page
Core Audio Files: Analyze
This action produces the container used to produce the database. There is no reason to call this action unless you are interested in the overall structure of CAF files.
When you run the action a file open panel will be displayed allowing you to select one or more CAF files and folders. All CAF files in selected folders will be analyzed. The panel has a Process subfolders checkbox. When checked, all CAF files at any depth under a selected folder will be analyzed. ie. the setting enables a deep scan. Files in a CAF Backups folder are not processed when scanning folders.
The produced object container has a files array. Every item in the array represents a CAF file. If any CAF file had a fatal error while processing, there will be an errors array. Every item in the errors array is an numeric index into the files array.
Every object in the files array contains the following items:
- chunks
This is an array of objects describing each chunk in a CAF file. Every chunk contains the following items:
- offset
The start offset of the chunk.
- base
The start of the chunk specific data.
- size
The size of the chunk specific data.
- type
The four character identifier describing the type of chunk.
- path
The full path to the represented file.
- chunk specific items
Every chunk can have items specific to the chunk type.
- error
A string describing a fatal error for the file. This is not present unless an error occurred.
- warnings
An array of strings where each string is a warning. This is not present unless warnings were detected.
- properties
An object where contained items describe various audio properties of the represented file.
- toc
A table of contents object where each item is the name of a chunk type found in the file. The associated value is an array of indexes into the chunks array.
- flags
The CAF file flags.
- free
The total amount of free space in the CAF file.
- version
The CAF file version.
- string IDs
CAF files have various items which reference IDs. These IDs can be associated with a textual descriptive string. This object describes all referenced and defined string IDs found in the file.
Back to top of page
Contents, Requirements and History
Actions:
Folder: Core Audio Suite
Core Audio Files: Produce Database
Core Audio Files: Analyze
Core Audio DB 0: Create Empty Item for Clicked Row
Core Audio DB 1: Replicate Selected Rows to All Files
Core Audio DB 2: Apply Database to File in Clicked Row
Core Audio DB 3: Apply Database to Files
Core Audio DB 4: Rebuild Database
Core Audio DB 5: Merge Tags
Core Audio DB 6: Validate Database
Core Audio DB 7: Show Analyze Container
Core Audio Helper: Analyze Multiple Files
Core Audio Helper: CAF Dumper
Core Audio Helper: Produce Backup
Core Audio Helper: Produce Error List
Action Runtime Settings:
Core Audio DB 0: Create Empty Item for Clicked Row
Core Audio DB 1: Replicate Selected Rows to All Files
Core Audio DB 2: Apply Database to File in Clicked Row
Core Audio DB 3: Apply Database to Files
Core Audio DB 4: Rebuild Database
Core Audio DB 5: Merge Tags
Core Audio DB 6: Validate Database
Core Audio DB 7: Show Analyze Container
Export Sets:
Core Audio Produce DB
Requirements:
Yate v8.2
History:
Date |
Version |
Information |
2025-02-21 |
v0.9 |
First look. |
Back to top of page
Download