On Jun 14, 2016, at 07:57, drew Roberts <zotz...@gmail.com> wrote:

> http://www.wavpack.com/ <http://www.wavpack.com/>
> 
> "Uses ID3v1 and APEv2 tags for metadata (including ReplayGain)"
> 
> Would that get us there?

ID3v1 is very consumer- and pop music-oriented, and thus is missing many of the 
fields that are relevant for broadcasters —e.g. Agency and Client.  APEv2 is 
more intriguing inasmuch as it includes a mechanism for extending the field 
definitions, however, it does not seem to enjoy very wide support.

Here’s an idea: what say we embed a copy of the relevant ‘cartList’ XML object 
(such as is currently generated by Rivendell's ListCart Web API call) in every 
file export?  I see a number of advantages to this approach:

1) XML is a widely-supported format, with high-quality FOSS parsers available 
for virtually every major programming language.

2) The format is human-readable and would be largely self-documenting.

3) The same parser code that reads cartList objects via the web interface would 
also work here with little modification.

Likewise, we then extend Rivendell’s import tools (RDImport and RDLibrary) to 
parse this same data structure, thus giving us a high-fidelity path for 
transferring both audio and Rivendell cart/cut metadata between systems.

For reference, here is a sample of the cartList object:

*** snip snip ***
<cartList>
  <cart>
    <number>10004</number>
    <type>audio</type>
    <groupName>MUSIC</groupName>
    <title>American Pie</title>
    <artist>Don Mc Lean</artist>
    <album>100 Hits Party Classics</album>
    <year/>
    <label/>
    <client/>
    <agency/>
    <publisher/>
    <composer/>
    <userDefined/>
    <usageCode>0</usageCode>
    <forcedLength>0:04:03.7</forcedLength>
    <averageLength>0:04:03.7</averageLength>
    <lengthDeviation>0:00:00.0<lengthDeviation>
    <averageSegueLenth>0:04:02.6<averageSegueLenth>
    <averageHookLength>0:00:00.0</averageHookLength>
    <cutQuantity>1</cutQuantity>
    <lastCutPlayed>0</lastCutPlayed>
    <validity>2</validity>
    <enforceLength>false</enforceLength>
    <asyncronous>false</asyncronous>
    <owner/>
    <metadataDatetime>2016-05-31T08:20:23-04:00</metadataDatetime>
      <cutList>
        <cut>
          <cutName>010004_001</cutName>
          <cartNumber>10004</cartNumber>
          <cutNumber>1</cutNumber>
          <evergreen>false</evergreen>
          <description>Cut 001</description>
          <outcue/>
          <isrc/>
          <isci/>
          <length>243794</length>
          <originDatetime>2014-11-30T09:38:49-04:00</originDatetime>
          <startDatetime/>
          <endDatetime/>
          <sun>true</sun>
          <mon>true</mon>
          <tue>true</tue>
          <wed>true</wed>
          <thu>true</thu>
          <fri>true</fri>
          <sat>true</sat>
          <startDaypart/>
          <endDaypart/>
          <originName>rdhost</originName>
          <weight>1</weight>
          <lastPlayDatetime>2015-03-24T10:23:55-04:00</lastPlayDatetime>
          <playCounter>49</playCounter>
          <localCounter>49</localCounter>
          <validity>2</validity>
          <codingFormat>0</codingFormat>
          <sampleRate>48000</sampleRate>
          <bitRate>0</bitRate>
          <channels>2</channels>
          <playGain>0</playGain>
          <startPoint>336</startPoint>
          <endPoint>244130</endPoint>
          <fadeupPoint>-1</fadeupPoint>
          <fadedownPoint>-1</fadedownPoint>
          <segueStartPoint>243024</segueStartPoint>
          <segueEndPoint>244104</segueEndPoint>
          <segueGain>-3000</segueGain>
          <hookStartPoint>-1</hookStartPoint>
          <hookEndPoint>-1</hookEndPoint>
          <talkStartPoint>-1</talkStartPoint>
          <talkEndPoint>0</talkEndPoint>
        </cut>
      </cutList>
  </cart>
</cartList>
*** snip snip ***

Cheers!


|----------------------------------------------------------------------|
| Frederick F. Gleason, Jr. |              Chief Developer             |
|                           |              Paravel Systems             |
|----------------------------------------------------------------------|
|          A room without books is like a body without a soul.         |
|                                         -- Cicero                    |
|----------------------------------------------------------------------|

_______________________________________________
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to