MusicMaster Scheduling Workflow¶
QuantumCast has created APIs that allow media companies to connect their existing software systems (e.g. MusicMaster, Dabis, Zenon) to the cloud playout.
The API can be used under the following conditions:
the specified XML format can be exported from Musicmaster
all required fields in the XML are filled in
the import trigger must be triggered repeatedly if audio elements are missing
Workflow¶
Audio files export
Audio meta data export
MusicMaster Scheduling export
1. Audio files export:
Export as MP3
Upload via FTP or clients that support s3-APIs
The name of the file has to be unique and match with the ID or ArchivNumber.
2. Meta data export:
Export the meta data files from the broadcast system and upload via FTP or s3-client.
Meta data must be linked to audio files by ID or ArchivNumber.
3. MusicMaster Scheduling:
Export the MusicMaster scheduling as XML
The XML indicates which audio files are used by referencing the ID or ArchivNumber of the audio files.
One XML per broadcast hour OR one XML per day
The targeted channel needs to be enabled by QuantumCast first.
Reference the QuantumCast channel by providing the channel key as StationName in the XML file.
Upload via FTP or s3-Client
The finished upload automatically triggers the import process.
Audio files will be added to the QuantumCast audio library, scheduled will be transformed to the internal format and pushed to the QuantumCast console.
The reset of the schedules is set to midnight by default. It is possible to change the reset to any hour - this must be set up by a QuantumCast staff member.
Upload files via FTP or s3-client (rClone etc.) and wait. If the file is in the “processed”-folder, it has been processed. If you want to update the scheduling, audio files or audio metadata, simply re-upload the file again.
Attention
All files must have a lower case file extension (.mp3, .xml, …)
All audio files used in a MusicMaster scheduling must be present BEFORE, otherwise they are marked as errors and skipped
For all audio files that are used in a schedule but can not be found are created empty files with the missing ID as name in the “requested”-folder. You can observe this folder and upload missing files. The reference in the “requested”-folder is then deleted.
Missing audio files are not automatically included in the schedule if they are sent subsequently - the scheduling XML file must be uploaded again.
API¶
Audio files:
The system works internally with MP3. Therefore, we recommend providing MP3 files in high quality (44,100 Hz sampling rate). In principle, MP2/MUS files can also be provided. But then we convert them internally. To get the best quality, you should upload the files in the correct format.
Meta data export:
For the audio files, the corresponding metadata is absolutely necessary.
Two formats are supported: XML and CSV
The file must have the same name as the audio file (ArchivNumber), but the extension .xml or .csv.
In addition to the artist and song, the most important information is the duration, CueIn, CueOut, StartNext, FadeIn, FadeOut and Intro.
There is no automatic calculation of transitions. Exactly the values that are transferred via the metadata file are used.
The XML already contains the names of the fields - the CSV is structured as follows:
"ID": 1,
"Name": 2,
"Title": 3,
"Etype": 4,
"CueIn": 5,
"CueOut": 6,
"Intro": 7,
"Outro": 8,
"Mix": 9,
"FadeIn": 10,
"FadeOut": 11,
"DbFadeIn": 12,
"DbFadeOut": 13,
"FadeType": 18,
"Type": 19,
"StartNext": 30,
Example of a scheduling:
Schedule files must have the channelkey included in the StationName (additional text is ok):
<Station StationName="rtlb_98i4femse6_uemx">
The schedule must contain only one date as AirDate tag (format is MM.DD.YYYY):
<AirDate Date="07.24.2022">
Attention! If there is another AirDate with the same date in the same file, it OVERWRITES the other schedule.
All hours must be specified within the AirDate tag.
Each element needs an ID tag that references the audio file.
Each element needs a runtime value (format mm:ss). If the runtime is 00:00, the element is played “on ramp” of the following track.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Station StationName="radio_98i4gehse2_uenx">
<AirDate Date="07.24.2022">
<AirHour Hour="00">
<Element>
<ID>S100166</ID>
<Artist>JINGLE</Artist>
<Title>Dropin - Jingle MANN 05</Title>
<AirTime>00:00:00</AirTime>
<Runtime>00:00</Runtime>
<NonMusic>Y</NonMusic>
<Ende></Ende>
<EAN></EAN>
<ISRC></ISRC>
<Label></Label>
<LC></LC>
<Verlag></Verlag>
<Komponist></Komponist>
<Info1></Info1>
<Info2></Info2>
<Info3></Info3>
</Element>
<Element>
<ID>33050M</ID>
<Artist>Spliff</Artist>
<Title>Carbonara</Title>
<AirTime>00:00:00</AirTime>
<Runtime>04:04</Runtime>
<NonMusic>N</NonMusic>
<Ende>F</Ende>
<EAN>0042283987128</EAN>
<ISRC></ISRC>
<Label>Polyphon</Label>
<LC>00310</LC>
<Verlag>Edition Spliff</Verlag>
<Komponist>Heil/Klimek/Tykwer</Komponist>
<Info1></Info1>
<Info2></Info2>
<Info3></Info3>
</Element>
</AirHour>
<AirHour Hour="01">
<Element>
<ID>S100159</ID>
<Artist>JINGLE</Artist>
<Title>Dropin - Jingle FRAU 01</Title>
<AirTime>01:00:00</AirTime>
<Runtime>00:00</Runtime>
<NonMusic>Y</NonMusic>
<Ende></Ende>
<EAN></EAN>
<ISRC></ISRC>
<Label></Label>
<LC></LC>
<Verlag></Verlag>
<Komponist></Komponist>
<Info1></Info1>
<Info2></Info2>
<Info3></Info3>
</Element>
<Element>
<ID>13572M</ID>
<Artist>Amanda Lear</Artist>
<Title>Follow Me</Title>
<AirTime>01:00:00</AirTime>
<Runtime>03:38</Runtime>
<NonMusic>N</NonMusic>
<Ende>F</Ende>
<EAN>4013659660033</EAN>
<ISRC></ISRC>
<Label>Target</Label>
<LC>04520</LC>
<Verlag>Arabella Musikverlag GmbH</Verlag>
<Komponist>A.Monn, A. Lear</Komponist>
<Info1></Info1>
<Info2></Info2>
<Info3></Info3>
</Element>
</AirHour>
<AirHour Hour="02">
<Element>
<ID>S100157</ID>
<Artist>JINGLE</Artist>
<Title>Dropin - Jingle FRAU 03</Title>
<AirTime>02:00:00</AirTime>
<Runtime>00:00</Runtime>
<NonMusic>Y</NonMusic>
<Ende></Ende>
<EAN></EAN>
<ISRC></ISRC>
<Label></Label>
<LC></LC>
<Verlag></Verlag>
<Komponist></Komponist>
<Info1></Info1>
<Info2></Info2>
<Info3></Info3>
</Element>
<Element>
<ID>24162M</ID>
<Artist>Klingande</Artist>
<Title>Jubel</Title>
<AirTime>02:00:00</AirTime>
<Runtime>03:16</Runtime>
<NonMusic>N</NonMusic>
<Ende>C</Ende>
<EAN>9715800109716</EAN>
<ISRC>FR9W11310765</ISRC>
<Label>B1 Recordings</Label>
<LC>16158</LC>
<Verlag>EMI Music Publishing France / Klingande Music / Sony ATV</Verlag>
<Komponist>Cédric Steinmyller , Edgar Catry</Komponist>
<Info1></Info1>
<Info2></Info2>
<Info3></Info3>
</Element
</AirHour>
</AirDate>
</Station>
Description Structure of the XML document:
ID (string mandatory) - archive number
Artist (string mandatory) - artist name
Title (string mandatory) - song name
AirTime (time highly recommended) - format hh:mm:ss
Runtime (time mandatory) - length of the audio item
NonMusic (bool highly recommended) - is the audio item music (N) or not (Y)
Ende (bool)
EAN (string) - EAN code
ISRC (string highly recommend) - International Standard Recording Code
Label (string) - label name
LC (string) - label code
Verlag (string) - publisher name
Komponist (string) - composer’s name
Info1 (string) - more information about the audio item
Info2 (string) - more information about the audio item
Info3 (string) - more information about the audio item
More workflows¶
Automatic uploads:
Observe the “requested”-folder for new elements and upload them to the server.
To fill the audio library send schedules and upload the requested audio files.
The references in the “requested”-folder will be deleted after sucesfull imports.
Upload the schedule again until no new elements are found.
Troubleshooting¶
The mixing does not sound good:
deactivate sound processing
show CueIn, CueOut, FadIn, FadeOut and StartNext values in the protocol of the console and compare them with the values from the XML.
If these values differ, the transfer was not correct.