Project

General

Profile

Freie Radio App - Entwickler » History » Version 42

Version 41 (Sabine Fratzke, 12/07/2017 05:43 PM) → Version 42/48 (Sabine Fratzke, 12/07/2017 05:44 PM)

!00.4_icon-tower@4x.png!
*Hört macht unterstützt freie Radios*

h1. Freie Radio App - Entwickler

h3. Versionen

Version 1 soll am 14.11.2016 veröffentlich werden

h2. !{width: 25px}00.4_icon-tower@2x.png! Zugang

h3. Wie kommen wir in die App?

* XML schreiben > [[Freie_Radio_App_-_Entwickler#Vorlagen|Vorlage]]
* Auf Server legen
* Radio free FM die URL für die Datei schicken

h3. Bei uns kann keiner XML

* Excel nach [[Freie_Radio_App_-_Entwickler#Vorlage|Vorlagen]] ausfüllen
* An Radio free FM schicken
* Wir konvertieren Eure Excel in eine XML und schicken sie Euch zurück
(gilt derzeit nur für die Stationsdaten - Programmdaten per Hand schreiben wird zuviel)

oder einarbeiten in XML: [[Kurzworkshop XML]]

h2. !{width: 25px}00.4_icon-tower@2x.png! Datenkonzept

Durch denzentrale Lagerung der Stationsdaten hat jedes Radio die Hoheit über seine Daten selbst.

Datenkonzept ist zweigeteilt:
- Grunddaten der Sender werden in der apk mitgeliefert
- Stationsdaten werden bei Installation nachgezogen

*_Grunddaten = meta.xml_*

* Stationsdaten ohne Programmplan
* url zu den station.xml der beteiligten Radios
* für alle Stationen zusammen eine Datei
* liegen zentral bei Radio free FM http://app.freefm.de/meta.xml (Liegt unter /var/www/app.freefm.de)

*_Stationsdaten = station.xml_*

* Grunddaten + Programmplan
* für jede Station eine Datei
* liegen bei jedem Sender dezentral

Bei Installation werden die Stationsdaten abgeholt und damit die Grunddaten aktualisiert.
Bei Aktualisierungen wird die meta.xml auf neue Grunddaten (neue Sender, neu url) geprüft und ggf. neue Stationsdaten nachgeladen.

h3. Änderungen

Vielfältigkeit und steter Wandel zeichnen die Freien Radios aus. Wir haben versucht, das Konzept dafür fit zu machen:

* **Neue Sender** können jederzeit über einen Eintrag in der meta.xml hinzugefügt werden.
Das Aktualisierungskonzept der App wird derzeit noch entwickelt.
* **Ablageorts einer URL**: die neue Url wird in der meta.xml geändert. Kann die app die station.xml eines Senders nicht finden, prüft sie die url in der meta.xml und findet dort die neue url.
* **Mehrfachnennung**: Durch Aufdoppeln der Knoten von Attributen (inklusive Unterpunkte) können Informationen bei den Sendern selbst hinzugefügt werden. In der Darstellung wird entsprechend nach unten verlängert. Bei Programmierung sollten alle Eventualitäten berücksichtigt werden.

h2. !{width: 25px}00.4_icon-tower@2x.png! Sendezeiten

Die Sendezeiten über alle Freien Radios abzubilden ist eine der grundlegensten Herausforderungen. Diese Sammlung erhebt keinen Anspruch auf Vollständigkeit und wird erweitert.

|\3.*Serien*|
|/2.tagesorientiert||einmalig|
||täglich|
|/6.wochenorientiert||wöchentlich|
||werktäglich|
|/2.14tägig|ungerade / gerade|
|laufend ab Startdatum Datum mit Wiederholungsfrequenz = 2|
|/2.4wöchig|laufend ab Startdatum mit Wiederholungsfrequenz = 4|
| 4wöchig invertiert: einmaliger Aussetzer laufend ab Startdatum mit Wiederholungsfrequenz = 4|
|/3.monatsorientiert||Monatswoche 1. bis 5.|
||letzter / erster im Monat|
||zweitletzter / zweiter im Monat|
|jahresorientiert|quartalsweise|soundsovielter im Quartal|
|\3.*Wiederholungen*|
|tagesorientiert||am Tag danach / davor|

*Episoden*: mehrere Themenfolgen in einer Serie

h3. Bekannte Probleme

Tageswechel
* bei Sendungen über 0 Uhr hinaus

Monatswechsel
* bei Sendungen über 0 Uhr hinaus

Jahreswechsel
* bei Sendungen über 0 Uhr hinaus
* gerade / ungerade Tausch, wenn KW 53 auf KW1 wechselt

h2. !{width: 25px}00.4_icon-tower@2x.png! Genre

In Freien Radio eigentlich ungmöglich: Die Festlegung auf Genre. Man will sich in keine Schublade pressen lassen. Für die Wiederauffindbarkeit der Sendungen mit ähnlichen Interessen muss es aber sein. Auf dem BfR Kongress in Potsda 2014 haben wir deshalb Genre festgelegt. Ev. werden sie in Zukunft angepasst.

|_.ID|_.Name|_.Erläuterung|
|>.1|Alternative|Rock, Punk, Grunge, Metal, Blues, Soul, Beat, Country|
|>.2|Elektronika|House, Techno, Elektro, Drum´n´Bass ...|
|>.3|HipHop|
|>.4|Jazz|
|>.5|Klassik|
|>.6|Reggae| |>.6|Reagge|
|>.7|R'n'B / Black|
|>.8|Singer-Songwriter|
|>.9|U-Musi & Schlager|Volkstümliche Musik, Orchester, James Last, Bert Kämpfert|
|>.10|Volksmusik|originale Volksmusik, Bänkelsang, Guggenmusi, Jodeln, Blasmusik|
|>.11|World|Worldmusik|
|>.12|SoundExperiment|
|>.13|AndereSpachen|
|>.14|Gesellschaft| Politik, Arbeit, Soziales, Wirtschaft, Antifa, ...|
|>.15|International|EineWelt, Frieden, Menschenrechte, ...|
|>.16|Inklusion|Inklusion, Behinderung, Barrierefreiheit|
|>.17|Kinder Jugend |
|>.18|Kultur|Literatur, Fantasy, Film, Theater, ... |
|>.19|Medien|Computer, Social Media, Rundfunk|
|>.20|LGBTI-Gender|LGBTI, Gender, Frauen, Männer|
|>.21|ReligionEthik|
|>.22|Satire|
|>.23|Sport|
|>.24|Talk|Talk, Diskussion, wenn sich was nicht unter den anderen spezifizieren läßt|
|>.25|Umwelt|
|>.26|Wissenschaft|Forschung, Medizin, ...|

h2. !{width: 25px}00.4_icon-tower@2x.png! XML-Schema

h3. Categories (Genre)

* Es werden maximal die ersten 3 angegebenen Genre ausgewertet.
* Die ID ist für die Anzeige ausschlagebend
* Der Name wird als Schlagwort in der Suche verwendet.

<pre><code class="XML">
<categories>
<category name="Reagge " id="12"/>
<category name="Elektronika" id="2"/>
</categories>
</code></pre>

h3. Transmit-times

mit "transmit-times" (plural mit s) beginnt der Bereich, der alle Sendezeiten einer Sendung/Redaktion beschreibt.
* es können mehrere Sendezeiten für eine Sendung angegeben werden.
* jede Sendezeit beginnt mit transmit-time (singluar ohne s)
* Rhytmusregeln werden in Sondersendung, täglich (daily), wochenbasiert (weekly) oder monatsorientiert (weekOfMonth) unterschieden.

*Recurrence* definiert den Unterschied zwischen *Sondersendung* und *Serie*
recurrence="false" ist eine Sondersendung
recurrence="true" ist eine regelmäßigen Ausstrahlung (Serie).

*Rerun* definiert den Unterschied zwischen *Erstausstrahlung* und *Wiederholung*
rerun="false" ist eine Erstausstrahlung
rerun="true" ist eine reine inhaltliche Wiederholung eines anderen Termins

*Allgemeines*
* Nicht-wiederkehrende Sendungstermine überschreiben wiederkehrende Sendungstermine grundsätzlich
* Wiederkehrende Sendungstermine werden in ihrer Prio abgearbeitet, wenn alle Prios gleich sind gewinnt bei Kollisionen nur ein Termin
* Regeln werden NICHT auf Konsistenz geprüft dies muss schon bei der Sendeplanerstellung geschehen

<pre><code class="XML">
<transmit-times>
<!--Sondersendung-->
<transmit-time date-from="2013-08-21T15:00:00.000+02:00" date-to="2013-08-21T16:59:59.000+02:00" recurrence="false" rerun="false"/>
<!--regelmäßige Ausstrahlungen (Serien)-->
<transmit-time recurrence="true">

<!-- tägliche Sendezeit beginnt mit daily ...-->
<!--- Jeden Tag von 17 bis 19 Uhr -->
<daily time-from="17:00:00" time-to="18:59:59"/>

<!--Senderhytmus wochenbasiert beginnt mit weekly ...-->
<!--- Jede Woche Montags von 17 bis 19 Uhr -->
<weekly day="MO" priority="0" time-from="17:00:00" time-to="18:59:59"/>
<!--- Alle 4 Wochen Freitags von 17 bis 19 Uhr, mit Startdatum -->
<weekly day="FR" priority="0" time-from="17:00:00" time-to="18:59:59" weekFrequency="4" date-from="2013-08-21T15:00:00.000+02:00"/>
<!--- Sonntags von 17 bis 19 Uhr, mit Startdatum, in den drei Wochen in denen das Gegenereignis nicht stattfindet -->
<weekly day="SO" priority="0" time-from="17:00:00" time-to="18:59:59" weekFrequency="4" date-from="2013-08-21T15:00:00.000+02:00" invert="true"/>
<!--- Jede ungerade Woche Freitags von 17 bis 19 Uhr, mit OddEven (gerade=even, ungerade=odd) -->
<weekly day="DO" priority="0" time-from="17:00:00" time-to="18:59:59" weekFrequency="2" oddEvenWeekNbr="odd"/>

<!--Senderhytmus monatsbasiert beginnt mit weekOfMonth ...-->
<!--- Jede 1. und 4. Woche des Monats am Mittwoch -->
<weekOfMonth day="MI" priority="0" time-from="17:00:00" time-to="18:59:59" week1="true" week2="false" week3="false" week4="true" week5="false"/>
<!--- Jeden letzten und ersten Dienstag im Monat -->
<weekOfMonth day="DI" priority="0" time-from="17:00:00" time-to="18:59:59" lastWeek="true" firstWeek="true"/>

</transmit-time>
</transmit-times>
</code></pre>

h2. !{width: 25px}00.4_icon-tower@2x.png! Dokumentation

h3. Vorlagen

* aktuelle XML und Excel http://www.freefm.de/projekte/freieradioapp/stationsdaten

h3. Entwicklung

Freie Radios App-Pad https://pads.radiocorax.de/group.html/31/pad.html/g.AipjDinqCZgi0XHu$Freie%20Radio%20App

h3. Diskussion / Dokumentation Kongresse

#zwcm14 Potsdam: http://www.community-media.net/wasgehtapp
#zwcm15 Ulm: http://www.community-media.net/freie-radio-app-2-0
#zwcm 17 Hamburg: http://www.community-media.net/freie-radios-app-das-finale

h2. !{width: 25px}00.4_icon-tower@2x.png! Weiterführende Literatur

h3. Standards

RRULE http://www.kanzaki.com/docs/ical/rrule.html
XCAL https://de.wikipedia.org/wiki/XCal

Hybrid Digital Radio (DAB, DRM, RadioDNS); XML Specification for Service and Programme Information (SPI)
http://www.etsi.org/deliver/etsi_ts/102800_102899/102818/03.01.01_60/ts_102818v030101p.pdf

RadioDNS https://radiodns.org
https://radiodns.org/developers/documentation/

h3. Apps

Radioplayer http://www.radioplayer.de
https://cloud.freiesradio-nms.de/index.php/s/9hBrhg6CEWgu2X9