File MetadataIntroduction
The existing schemes for encoding metadata into audio files are
extremely diverse. There are formally designed ones; some explicitly
intended for
use in professional broadcast settings (--e.g. CartChunk), others for
general purpose "consumer" use (--e.g. ID3). Still others
fall into a broad class that one may term "informal",
based not on any recognized public standard but typically designed
around a specific product or group of products. These informal
schemes tend to be closely bound to the overall design and organization
their native environment (--e.g. Rivendell's RDXL).
This appendix is an attempt to document the various file metadata
schemes that are recognized by Rivendell, taking note of how
each scheme maps to Rivendell's foundational RDXL schema while also
describing any known quirks or limitations in Rivendell's
implementation thereof. It's worth noting that, especially with regard
to the informal schemes, Rivendell's implementation can be a
moving target; one that is updated and extended as more information is
gleaned about a given scheme by Rivendell's developers. One basic rule
with regard to such informal schemes in Rivendell is that, in keeping
with
Postel's Prescription, support is generally read-only.
Supported Metadata Schemes
RDXL
RDXL is Rivendell's native audio schema. It uses UTF-8 character
encoding. Two levels of records are supported: "cart" data
(exactly one record per cart) and "cut" data (zero or more
records per cart).
RDXL Cart FieldsField NameData TypeMax WidthNotesAgencyString64AlbumString191ArtistString191AsynchronousBooleann/aValid values are 'true' or 'false'Average Hook LengthInteger191millisecondsAverage LengthIntegern/amillisecondsAverage Segue LengthIntegern/amillisecondsClientString64ComposerString64ConductorString64Cut QuantityIntegern/aEnforce LengthBooleann/aValid values are 'true' or 'false'Forced LengthIntegern/amillisecondsGroup NameString10LabelString64Last Cut PlayedIntegern/aLength DeviationIntegern/amillisecondsMacrosStringunlimitedMinimum Talk LengthIntegern/amillisecondsMaximum Talk LengthIntegern/amillisecondsMetadata DatetimeDateTimen/aNumberIntegern/aOwnerString64PublisherString64Song IDString32TitleString191TypeStringn/aValid values are 'audio' or 'macro'YearIntegern/aUsage Codeintegern/a0=Feature, 1=Open, 2=Close, 3=ThemeUser DefinedString191
RDXL Cut FieldsField NameData TypeMax WidthNotesCut NameString12EvergreenBooleansn/aValid values are 'true' or 'false'DescriptionString64OutcueString64IsrcString12IsciString32MusicBrainz Recording IDString40MusicBrainz Release IDString40Origin Date TimeDateTimen/aStart Date TimeDateTimen/aEnd Date TimeDateTimen/aSundayBooleann/aValid values are 'true' or 'false'MondayBooleann/aValid values are 'true' or 'false'TuesdayBooleann/aValid values are 'true' or 'false'WednesdayBooleann/aValid values are 'true' or 'false'ThursdayBooleann/aValid values are 'true' or 'false'FridayBooleann/aValid values are 'true' or 'false'SaturdayBooleann/aValid values are 'true' or 'false'Start DaypartTimen/aEnd DaypartTimen/aOrigin NameString64Origin Login NameString191Source HostnameString191Origin NameString191WeightIntegern/aLast Play DatetimeDateTimen/aPlay CounterIntegern/aCoding FormatIntegern/a0=PCM16, 2=MPEG Layer II, 3=MPEG Layer III, 4=PCM24Sample RateIntegern/asamples/secondBit RateIntegern/abits/secondChannelsIntegern/aStart PointIntegern/amillisecondsEnd PointIntegern/amillisecondsFadeup PointIntegern/amillisecondsFadedown PointIntegern/amillisecondsSegue Start PointIntegern/amillisecondsSegue End PointIntegern/amillisecondsSegue GainIntegern/a1/100 dBFSHook Start PointIntegern/amillisecondsHook End PointIntegern/amillisecondsTalk Start PointIntegern/amillisecondsTalk End PointIntegern/amilliseconds
CartChunk
CartChunk is a WAV file chunk format designed to allow
the communication of basic radio traffic and continuity data between
systems from diverse manufacturers and operating systems.
It is explicitly specified by the Audio Engineering Society as standard
AES46-2002
.
CartChunk is defined as an extension to the Broadcast Wave File
format, and as such is usable only with WAV files. When importing
metadata from a file containing valid CartChunk, CartChunk fields
will be mapped to Rivendell RDXL fields as follows:
CartChunk to RDXL Field MappingsCartChunk Field NameRDXL Field NameData TypeNotesTitleTitleStringASCII title of cart audio sequenceArtistArtistStringASCII artist or creator nameCutIDCart NumberStringASCII cut number identificationClientIDClientStringASCII client identificationCategoryGroup NameStringASCII category ID, PSA, NEWS, etcClassification[none]StringASCII classification or auxiliary keyOutCueOutcueStringASCII outcue textStartDateStart Date TimeDateApplied to the Date field of Start Date Time, interpreted as the local system time zoneStartTimeStart Date TimeTimeApplied to the Time field of Start Date Time, interpreted as the local system time zoneEndDateEnd Date TimeDateApplied to the Date field of End Date Time, interpreted as the local system time zoneEndTimeEnd Date TimeTimeApplied to the Time field End Date Time, interpreted as the local system time zoneAUDsStart PointCartChunk PostTimerSee AES46-2002 Table A.2AUDeEnd PointCartChunk PostTimerSee AES46-2002 Table A.2SEGsSegue Start PointCartChunk PostTimerSee AES46-2002 Table A.2SEGeSegue End PointCartChunk PostTimerSee AES46-2002 Table A.2INTsTalk Start PointCartChunk PostTimerSee AES46-2002 Table A.2INTeTalk End PointCartChunk PostTimerSee AES46-2002 Table A.2INTTalk End PointCartChunk PostTimerVariant form. When importing, also sets Talk Start Point to be equal to Start Point. Rivendell does not write this form.
Point
ID3
ID3 is a metadata scheme intended for use with raw MPEG files. While
not backed by a formal standards organization, ID3 is defined in
a set of standards documents originally promulgated at http://id3.org/.
Rivendell supports both reading and writing ID3v2.3 tags. Each tag
consists of a series of frames, each of which contains a field of
metadata.
ID3v2.3 Frame to RDXL Field MappingsID3v2.3 Frame NameRDXL Field NameData TypeNotesTIT2TitleStringTitle/songname/content descriptionARTISTArtistStringNon-standard frameTALBArtistStringAlbum/Movie/Show titleALBUMArtistStringNon-standard frameTCOMComposerStringComposerCOMPOSERComposerStringNon-standard frameTPUBLabelStringPublisherLABELLabelStringNon-standard frameTPE3ConductorStringConductor/performer refinementCONDUCTORConductorStringNon-standard frameTYERYearIntegerYearDATEYearIntegerNon-standard frameYEARYearIntegerNon-standard frameISRCIsrcStringNon-standard frameTBPMBeats Per MinuteStringBPM (beats per minute)BPMBeats Per MinuteStringNon-standard framePUBLISHERPublisherStringNon-standard frame