diff --git a/ChangeLog b/ChangeLog index 92bde85b..75aa5461 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24859,3 +24859,5 @@ * Fixed a bug in the 'Edit Download' dialog in rdcatch(1) that caused the 'Username' and 'Password' controls to be disabled when entering a URL scheme of 'https'. +2024-08-25 Fred Gleason + * Added a 'File Metadata' appendix to the Operations Guide. diff --git a/docs/opsguide/Makefile.am b/docs/opsguide/Makefile.am index 4ee2ec31..3a23055a 100644 --- a/docs/opsguide/Makefile.am +++ b/docs/opsguide/Makefile.am @@ -19,7 +19,8 @@ ## ## Use automake to process this into a Makefile.in -OPSGUIDE_HTML = appendix.filepath_wildcards.html\ +OPSGUIDE_HTML = appendix.file_metadata.html\ + appendix.filepath_wildcards.html\ appendix.gfdl.html\ appendix.gpio_switcher_devices.html\ appendix.gplv2.html\ @@ -335,6 +336,7 @@ OPSGUIDE_ICONS = blueball.png\ OPSGUIDE_DEPS = $(OPSGUIDE_IMAGES) \ $(OPSGUIDE_ICONS) \ + file_metadata.xml\ filepath_wildcards.xml\ gpio_switcher_devices.xml\ gfdl.xml\ diff --git a/docs/opsguide/file_metadata.xml b/docs/opsguide/file_metadata.xml new file mode 100644 index 00000000..98e30093 --- /dev/null +++ b/docs/opsguide/file_metadata.xml @@ -0,0 +1,856 @@ + + File Metadata + + Introduction + + 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 + + + Supported Metadata Schemes + + + + + + + + + Type + File Type + Import + Export + Notes + + + + + RDXL + *.mp2, *.mp3, *.wav + Yes + Yes + Native Rivendell schema + + + + CartChunk + + *.wav + Yes + Yes + Formally defined + + + ID3 + *.mp2, *.mp3 + Yes + Yes + Formally defined + + + Scot Chunk + *.wav + Yes + No + Informal + + + Av10 Chunk + *.wav + Yes + No + Informal + + + +
+
+ + 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 Fields + + + + + + + + Field Name + Data Type + Max Width + Notes + + + + + Agency + String + 64 + + + + Album + String + 191 + + + + Artist + String + 191 + + + + Asynchronous + Boolean + n/a + Valid values are 'true' or 'false' + + + Average Hook Length + Integer + 191 + milliseconds + + + Average Length + Integer + n/a + milliseconds + + + Average Segue Length + Integer + n/a + milliseconds + + + Client + String + 64 + + + + Composer + String + 64 + + + + Conductor + String + 64 + + + + Cut Quantity + Integer + n/a + + + + Enforce Length + Boolean + n/a + Valid values are 'true' or 'false' + + + Forced Length + Integer + n/a + milliseconds + + + Group Name + String + 10 + + + + Label + String + 64 + + + + Last Cut Played + Integer + n/a + + + + Length Deviation + Integer + n/a + milliseconds + + + Macros + String + unlimited + + + + Minimum Talk Length + Integer + n/a + milliseconds + + + Maximum Talk Length + Integer + n/a + milliseconds + + + Metadata Datetime + DateTime + n/a + + + + Number + Integer + n/a + + + + Owner + String + 64 + + + + Publisher + String + 64 + + + + Song ID + String + 32 + + + + Title + String + 191 + + + + Type + String + n/a + Valid values are 'audio' or 'macro' + + + Year + Integer + n/a + + + + Usage Code + integer + n/a + 0=Feature, 1=Open, 2=Close, 3=Theme + + + User Defined + String + 191 + + + + +
+ + RDXL Cut Fields + + + + + + + + Field Name + Data Type + Max Width + Notes + + + + + Cut Name + String + 12 + + + + Evergreen + Booleans + n/a + Valid values are 'true' or 'false' + + + Description + String + 64 + + + + Outcue + String + 64 + + + + Isrc + String + 12 + + + + Isci + String + 32 + + + + MusicBrainz Recording ID + String + 40 + + + + MusicBrainz Release ID + String + 40 + + + + Origin Date Time + DateTime + n/a + + + + Start Date Time + DateTime + n/a + + + + End Date Time + DateTime + n/a + + + + Sunday + Boolean + n/a + Valid values are 'true' or 'false' + + + Monday + Boolean + n/a + Valid values are 'true' or 'false' + + + Tuesday + Boolean + n/a + Valid values are 'true' or 'false' + + + Wednesday + Boolean + n/a + Valid values are 'true' or 'false' + + + Thursday + Boolean + n/a + Valid values are 'true' or 'false' + + + Friday + Boolean + n/a + Valid values are 'true' or 'false' + + + Saturday + Boolean + n/a + Valid values are 'true' or 'false' + + + Start Daypart + Time + n/a + + + + End Daypart + Time + n/a + + + + Origin Name + String + 64 + + + + Origin Login Name + String + 191 + + + + Source Hostname + String + 191 + + + + Origin Name + String + 191 + + + + Weight + Integer + n/a + + + + Last Play Datetime + DateTime + n/a + + + + Play Counter + Integer + n/a + + + + Coding Format + Integer + n/a + 0=PCM16, 2=MPEG Layer II, 3=MPEG Layer III, 4=PCM24 + + + Sample Rate + Integer + n/a + samples/second + + + Bit Rate + Integer + n/a + bits/second + + + Channels + Integer + n/a + + + + Start Point + Integer + n/a + milliseconds + + + End Point + Integer + n/a + milliseconds + + + Fadeup Point + Integer + n/a + milliseconds + + + Fadedown Point + Integer + n/a + milliseconds + + + Segue Start Point + Integer + n/a + milliseconds + + + Segue End Point + Integer + n/a + milliseconds + + + Segue Gain + Integer + n/a + 1/100 dBFS + + + Hook Start Point + Integer + n/a + milliseconds + + + Hook End Point + Integer + n/a + milliseconds + + + Talk Start Point + Integer + n/a + milliseconds + + + Talk End Point + Integer + n/a + milliseconds + + + +
+
+ + 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 Mappings + + + + + + + + CartChunk Field Name + RDXL Field Name + Data Type + Notes + + + + + Title + Title + String + ASCII title of cart audio sequence + + + Artist + Artist + String + ASCII artist or creator name + + + CutID + Cart Number + String + ASCII cut number identification + + + ClientID + Client + String + ASCII client identification + + + Category + Group Name + String + ASCII category ID, PSA, NEWS, etc + + + Classification + [none] + String + ASCII classification or auxiliary key + + + OutCue + Outcue + String + ASCII outcue text + + + StartDate + Start Date Time + Date + Applied to the Date field of Start Date Time, interpreted as the local system time zone + + + StartTime + Start Date Time + Time + Applied to the Time field of Start Date Time, interpreted as the local system time zone + + + EndDate + End Date Time + Date + Applied to the Date field of End Date Time, interpreted as the local system time zone + + + EndTime + End Date Time + Time + Applied to the Time field End Date Time, interpreted as the local system time zone + + + AUDs + Start Point + CartChunk PostTimer + See AES46-2002 Table A.2 + + + AUDe + End Point + CartChunk PostTimer + See AES46-2002 Table A.2 + + + SEGs + Segue Start Point + CartChunk PostTimer + See AES46-2002 Table A.2 + + + SEGe + Segue End Point + CartChunk PostTimer + See AES46-2002 Table A.2 + + + INTs + Talk Start Point + CartChunk PostTimer + See AES46-2002 Table A.2 + + + INTe + Talk End Point + CartChunk PostTimer + See AES46-2002 Table A.2 + + + INT + Talk End Point + CartChunk PostTimer + Variant 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 Mappings + + + + + + + + ID3v2.3 Frame Name + RDXL Field Name + Data Type + Notes + + + + + TIT2 + Title + String + Title/songname/content description + + + ARTIST + Artist + String + Non-standard frame + + + TALB + Artist + String + Album/Movie/Show title + + + ALBUM + Artist + String + Non-standard frame + + + TCOM + Composer + String + Composer + + + COMPOSER + Composer + String + Non-standard frame + + + TPUB + Label + String + Publisher + + + LABEL + Label + String + Non-standard frame + + + TPE3 + Conductor + String + Conductor/performer refinement + + + CONDUCTOR + Conductor + String + Non-standard frame + + + TYER + Year + Integer + Year + + + DATE + Year + Integer + Non-standard frame + + + YEAR + Year + Integer + Non-standard frame + + + ISRC + Isrc + String + Non-standard frame + + + TBPM + Beats Per Minute + String + BPM (beats per minute) + + + BPM + Beats Per Minute + String + Non-standard frame + + + PUBLISHER + Publisher + String + Non-standard frame + + + +
+
+
+
diff --git a/docs/opsguide/opsguide.xml b/docs/opsguide/opsguide.xml index d5d9ccb5..90addb4f 100644 --- a/docs/opsguide/opsguide.xml +++ b/docs/opsguide/opsguide.xml @@ -27,6 +27,7 @@ + ]> @@ -63,6 +64,7 @@ &wings_filter; &ssh_keys; &library_searches; + &file_metadata;