Yes, I like the XML idea, particularly if rdimport will recognize it.

Then all we need is an analogous method to export and import logs.


Rob

--
Я там, где ребята толковые,
Я там, где плакаты "Вперёд",
Где песни рабочие новые
Страна трудовая поёт.

On Tue, 14 Jun 2016, Alessio Elmi wrote:

+1 for XML! I think a good idea, considering a wider scenario, could be the
following:
i) The same xml output can be generated 'per-cart' when exporting single/few
audio files, but it could be also an alternative report format from
RDLibrary (one file with the whole list inside).

ii) The same xml can be used in addition with rdimport routine. When
importing 'test.wav' it would look for 'test.xml'. If there, it will fill
metadata accordingly (of ocurse it should expect a single-cut cart
template).

Alessio

Il giorno mar 14 giu 2016 alle ore 19:24 Fred Gleason
<fr...@paravelsystems.com> ha scritto:
      On Jun 14, 2016, at 07:57, drew Roberts <zotz...@gmail.com>
      wrote:
            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


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

Reply via email to