Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
noch ein Internetradio
#1
Brick 
Vor nicht all zu langer Zeit startete Bernhard die iRadio Threats. Spätestens mit seiner Vorstellung einer
grafischen Oberfläche und deren Programmierung, entschloss ich mich auch ein wenig aktiv zu werden.

Als erstes Ergebnis stelle ich "mein" kleines Programm vor, welches natürlich auf Bernhard's  Code basiert,
aber auch einige meiner Ideen / Wünsche enthält.

Dies sind u. a.
  • eine "Skala" mit den Stationen "meiner" Playlist
  • eine  Mute-Taste, die nach dem Muting zurück auf die vorherige Lautstärke schaltet
  • Abfrage und Auswerten der linken! Maustaste  
Da es sich um die erste Version handelt
  • können durchaus Fehlfunktionen auftreten
  • darf (leider) nur die mitgelieferte Playlist verwendet werden
Für Ideen / Vorschläge / Kritik habe ich ein offenes Ohr - also bitte schreiben!

Bitte beachten: 
  • das cxx Programm in den  Ordner home/pi/ 
  • und die Playlist in home/pi/.conf/vlc kopieren 

Und nun wünsche ich Euch viel Spaß beim testen!

Beinahe hätte ich es vergessen:


.zip   ideeRadio.zip (Größe: 4,4 KB / Downloads: 33)
Grüße aus Wassenberg,
Norbert.
Zitieren
#2
Hallo Norbert,

die wenigsten Nutzer hier können den Code direkt auf einem Raspberry testen, ganz einfach weil Sie keinen haben. Mache doch bitte ein paar Screenshots deines Projektes und der Oberfläche und lade diese hier hoch. Dann können sich alle Nutzer an deiner Arbeit erfreuen und fühlen sich eventuell motiviert mal eigene Projekte anzugehen.

Viele Grüße
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#3
Hast ja Recht, Bernhard!

Aber wie macht man denn Screenshots mit einem RaspberryPi??
Beispielsweise mit scrot (habe ich gerade auf die Schnelle gefunden).
Jedoch macht scrot immer ein Foto des gesamten Bildschirms...
Also mit ImageMagick das für den Leser relevante Fenster ausgeschnitten.
(Bernhard will uns alle zu Linuxern machen...)

Zurück zum Thema:
nach dem Programmstart sieht man dieses Fenster.


.png   Startbild.png (Größe: 18,38 KB / Downloads: 514)

Schwerpunkt ist eine (einfache) graphische Darstellung der Stationen der Playlist (von Links nach Rechts
und von Oben nach Unten). Ich wollte endlich einmal sehen, welche Stationen die Playlist beinhaltet.
So entstand eine Art Skala (die sicherlich ausbaufähig ist).
Die Aufteilung der Stationen auf der Skala habe ich in nach eigenem "Geschmack" vorgenommen, (genau wie die Auswahl der Stationen).
Unterhalb der ersten Station markiert ein kleines rotes Dreieck die eingestellte Station, deren Metadaten weiter unterhalb in hell / silbergrau auf der Skala angezeigt werden.

Wie gewohnt kann mit den Tasten (S+ / S-) eine neue Station angewählt werden.
Alles kein Problem, der Weg wurde ja schon oft genug aufgezeigt.
Problematisch war ein Neustart der iRadio Software, wenn der VLC eine andere Station als die erste der Playlist spielte.
Jetzt muss die Playlist nach der aktuell gespielten Station durchsucht und das rote Dreieck (Skalenzeiger) entsprechend positioniert werden.
Tja und konsequenter Weise erfolgt dann der nächste logische Schritt: 
die Stationsanwahl mit der Maus (später über Touch)!


.png   Suche laeuft.png (Größe: 19,26 KB / Downloads: 511)

Das grüne Dreieck kennzeichnet die neu angewählte Station. Das gelbe Dreieck zeigt die während der Suche gefundene Station (Soll- Istvergleich), die nicht mit der angewählten Station übereinstimmt.
Gesucht wird im Sekunden Rhytmus (der Timer für's Auffrischen der Metadaten wurde benutzt).
Und damit es zwischendurch keine störenden Nicht-Musik Geräusche gibt, wird die Lautstärke auf Null gesetzt (Muting).


.png   gefunden!.png (Größe: 19 KB / Downloads: 751)

Geschafft! Die angewählte Station wurde erreicht - let the Musik play!
Grüße aus Wassenberg,
Norbert.
Zitieren
#4
Hallo Norbert,

scrot ist wie ich finde eine sehr gute Möglichkeit Screenshots zu erstellen. Das Programm hat auch viele Aufrufparameter mit dem man das Verhalten verändern kann. https://wiki.ubuntuusers.de/Scrot/
So sind Aufnahmen bestimmter Fenster oder auch zeitverzögerte Aufnahmen bestimmter Bildabschnitte möglich.

"(Bernhard will uns alle zu Linuxern machen...)"
Es ist doch nie verkehrt mal über den Tellerrand zu schauen und zu erkunden was es Abseits von Microsoft noch so gibt. Auch andere Mütter haben schöne Töchter. Nicht das ein iRadio nicht auch für Windows möglich wäre, der Pi kann ja Windows ausführen, aber naja...

Deine synthetisch erzeugte Skale finde ich sehr gut Norbert. Unglücklich ist es natürlich, das man die Stationsnamen direkt im Quellcode angeben muss und das in der eigentlichen Playlist ja nur die URL zum Sender drin steht und stehen kann.

Für das iRadio habe ich da zwei Lösungen, die wir entweder hier oder in FAQ diskutieren können. Nur kurz:

1. Lösung:

Eine zusätzliche Datei wird neben der Playlist geführt und händisch angelegt. In dieser zusätzlichen Datei stehen dann Zeile für Zeile die
Namen für die Skale drin und zwar zeilensyncon zur Playlist.m3u.

Im Prinzip also so:

playlist.m3u:
url(0)
url(1)
...
url(n)

In der zweiten Datei:
Stationsname_für_url(0)
Stationsname_für_url(1)
...
Stationsname_für_url(n)

Das Skalenprogramm liest beide Listen bei Programmstart ein und gewinnt daraus die Sendernamen für die GUI und füttert vlc mit der passenden URL beim Umschalten.

Nachteil: Es müssen immer zwei Dateien händisch geführt und syncron gehalten werden.

Lösung 2:

Wir lassen vlc uns automatisch die zweite Datei generieren. VLC bekommt ja die Stationsnamen aus dem Datenstrom.

Dazu habe ich ein zusätzliches Programm geschrieben. Dieses schaut beim Radiostart nach, ob eine neue Playlist über /boot oder über einen USB-Stick automatisch eingespielt wurde. Ist das der Fall, dann geht das Programm jede einzelne URL in playlist.m3u durch und spielt diese mit vlc kurz an. Dabei gewinnt das Programm automatisch den Stationsnamen und legt diesen in der zusätzlichen Datei an.
Der Nutzer braucht sich also wie gehabt nur um eine Datei, nämlich die playlist.m3u, kümmern.
Das Skalenprogramm oder die Skalensimulation hat dann bei zukünftigen Rechnerstarts sofort die Stationsnamen aller Radiostationen und nicht nur die URLs.
Da das automatische Erzeugen etwas Zeit braucht, die Stationen müssen ja ein paar Sekunden angespielt werden und das dann vielleicht für
30+x Stationen in der Playlist, wird die Generierung nur bei der automatischen Aktualisierung einer Playlist erledigt.
Ich will das Programm aber noch erweitern, damit es auch über zum Beispiel SSH eingespielte oder modifizierte Playlisten erkennt. Dabei wird die Generierung über den Zeitstempel der playlist.m3u getriggert.

Mache bitte weiter so Norbert! Vielleicht bekommt der ein- oder andere Nutzer Lust auf den Nachbau (d)eines Internetradios. Es macht nicht nur Spaß, nein man bekommt im Gegensatz zu den Industriekisten offene, wartungsfreundliche und zukunftsichere Radios und das zu einem Bruchteil der Kosten industrieller Geräte.

Viele Grüße an die Bastlerfront
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#5
Hallo Mitleser,
scrot ist praktisch, leistungsfähig und wird schon mit dem Betriebssystem geliefert.
Das muss man nur wissen! Das die Handhabung einfach ist zeigen die Screenshots im Beitrag#3,
die nach nur 5 Minuten einarbeiten / lesen erfolgten.
Bernhard glaube mir, ich schaue öfters mal "über den Tellerrand", allein aus Interesse was so alles mit "anderen" Betriebssystemen möglich ist. Zur Programmierung des iRadios benutze ich einen RaspberryPi3+ mit dem Editor Geany.

Die Problematik der Stationskennung ist wirklich erwähnenswert. Ich habe die Namen auf die Konsole ausgegeben und händisch in die Tabelle vector<string> station_name eingetragen. Klaro kam mir der Gedanke das "irgendwie" zu automatisieren, aber immer eins nach dem anderen.

Weisst Du Bernhard, ich habe mir zuerst Gedanken über die Playlist als solche gemacht und die passenden URLs gesucht. Danach überlegte ich, welchen Namen die Station auf der Skala erhalten soll. Bei manchen Stationen ist es sehr einfach. 1920s, 80er sind eindeutig, der Lokalsender dashitradio wurde 100.5, es ist dessen FM-Frequenz, aber es gibt dutzende Oldie-, Classic-, Rock-Stationen, wie hält man die auseinander?

Zurück zu Deinen Vorschlägen, Bernhard.
Nummer 1 klingt für mich schon interessant, da so oder so Tabellen / Listen angelegt und gepflegt werden müssen.
Wenn diese in einer separaten Datei liegen, muss ein unerfahrener Anwender den Quellcode nicht verändern
und ihn neu compilieren. Das Anlegen der Datei könnte z. B. ein eigenes Miniprogramm erledigen.

Nummer 2 wäre die de luxe Variante. 
Dann müsste nur die Aufteilung der Skala "teilautomaatisiert" werden.

Bernhard, wenn Du eine Lösung zur Ermittlung und Speicherung der Stationsnamen bereit hast, dann bitte "her damit".
Vielleicht kann ich Deinen Code zumindest teilweise einbinden.

Danke Dir für die positive Kritik und klaro wird weiter gemacht!
Grüße aus Wassenberg,
Norbert.
Zitieren
#6
(17.02.2019, 08:29)norbert_w schrieb: Nummer 2 wäre die de luxe Variante. 
Dann müsste nur die Aufteilung der Skala "teilautomaatisiert" werden.

Bernhard, wenn Du eine Lösung zur Ermittlung und Speicherung der Stationsnamen bereit hast, dann bitte "her damit".
Vielleicht kann ich Deinen Code zumindest teilweise einbinden.

Du verstehst mich falsch Norbert. Du brauchst keinen Code von mir in deine Skale einbinden. Das Programm was die Stationsnamen ermittelt legt einfach neben der Playlist in /home/pi/.config/vlc/ eine zweite Datei an, /home/pi/.config/vlc/stations.txt 
Darin sind dann die Stationsnamen zeilenweise und zeilensyncron zur playlist.m3u abgelegt.

Dein Skalenprogramm muss beim Start einfach die stations.txt zeilenweise einlesen, intern zum Beispiel in einem vector speichern und hat dann alle Daten die es braucht. 
In der stations.txt steht der Stationsname dann in voller Länge drin wie er von vlc kommt! Du kannst dann den Namen auf 5 oder 6 Zeichen runterkürzen, so daß er auf deine Skale passt. Das war es. Was ist also in deinem Code noch zu tun:

1. Analog der Playlist die stations.txt zeilenweise einlesen und jede Zeile in einer Datenstruktur (vector, verkette Liste, ....) während der Laufzeit vorhalten. 

2. Aus deiner Datenstruktur die Beschriftung der Skale vornehmen.

Das war es. Wenn Du deinen Code entsprechend ergänzt, kannst Du den Dienst ab der nächsten iRadio-Version automatisch nutzen. 

Gruß 
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#7
Ich habe mich falsch ausgedrückt, Bernhard.
Teil 1 ist bereits programmiert, werde ich heute noch posten.
Die Stationsliste habe ich mittels Editor erstellt.
Dabei kam die Idee
  • den Suchlauf ausschalten
  • die Nachbarstation anzusteuern
  • alte mit neuer Kennung zu vergleichen
  • nach x Mal einlesen die neue Kennung in Datei speichern
  • nächste Nachbarstation anzusteuern....
Das könnte ein Teilprojekt für die nächsten Tage werden.


Teil 2 umzusetzen ist aus meiner Sicht nicht so einfach.
Damit meine ich nicht den Teilstring mit 5 oder x Buchstaben aus dem Datensatz zu kopieren, sondern
der Station einen aussagekräftigen Namen zu geben. Genau das finde ich schwierig.

Vielleicht hat ja der eine oder andere Mitleser eine Idee?

Ich habe auch eine andere Schrift für die Skala getestet.
Ist ebenfalls in der nächsten Version.
Grüße aus Wassenberg,
Norbert.
Zitieren
#8
Anbei die Version V01 mit den o. g. Änderungen
  • einlesen der Stationsliste (muss im gleichen Verzeichnis wie das iRadio-Pgm liegen)
  • geänderter Zeichensatz Skalenbeschriftung
  • Station wird nur 1 Mal im Konsolenfenster gelistet
Die Stationsliste liegt ebenfalls im zip Archiv zum Download bereit:


.zip   ideeradio_V01.zip (Größe: 4,98 KB / Downloads: 14)

Screenshot des iRadio Programms


.png   IdeeRadioV_01.png (Größe: 19,08 KB / Downloads: 390)

Viel Spaß beim Testen!
Grüße aus Wassenberg,
Norbert.
Zitieren
#9
Anbei die Version V02 mit folgenden Änderungen / Verbesserungen:
  • der Name der Stationsliste lautet stations.txt
  • sie muss, genau wie die Playlist im Verzeichnis "/home/pi/.config/vlc/stations.txt" liegen
  • die Playlist wurde um 5 Stationen erweitert
  • die Positionen der Stationsanzeige und des Skalenzeigers werden berechnet
  • es gibt 2 per #define umschaltbare "Skins" für die Skalensimulation
  • die Anzeige des Channels wurde auf 33 Buchstaben begrenzt
  • die Funktionen lese_playlist() und lese_station_list() wurden aus der main loop entfernt

.png   IdeeRadio_V02_Skin_0.png (Größe: 21,46 KB / Downloads: 364)
  
Dank der FLTK-Funktion fl_width() ist möglich, die Länge einer Zeichenkette (String) für die Ausgabe auf den
Bildschirm zu ermitteln. Dies geschieht in Abhängigkeit vom vorgewählten Zeichensatz und dessen Größe (fl_font(FL_HELVETICA, 11) auf den Pixel genau.
In der Funktion calc_pos() wird dies ausgiebig zur Berechnung Skala benutzt.


.png   IdeeRadio_V02_Skin_1.png (Größe: 21,57 KB / Downloads: 346)

Das IdeeRadioV02 liegt zum Download bereit:


.zip   IdeeRadio_V02.zip (Größe: 5,39 KB / Downloads: 16)

Viel Spaß beim Testen!
Grüße aus Wassenberg,
Norbert.
Zitieren
#10
Hallo Norbert,

in der calc_pos() greifst Du auf den vector

vector<string> station_skala = {"100.5", "SWR4 MA", "DASDING", "BBC 2", "DLF Kultur", "SWRadio", "SRF4", "Chante France",
"ANT BAY", "80er", "90er", "BlackBeatz", "Chillout", "ClassicRock", "Event", "Fresh", "HR3",
"LoveSongs", "New Hits", "Elvis", "20er", "Top40", "1Live", "Workout", "WDR2", "WDR4",
"Rock Antenne", "Alternative", "Classic Pearls", "Heavy Metal", "NDR2", "SWR3"};

zu. Du liest aber auch die "/home/pi/.config/vlc/stations.txt" ein, die das iRadio seit zwei oder drei Versionen direkt beim Update der Senderliste automatisch mit anlegen kann. Warum codierst Du die Sendenamen nochmal hart in den Code wenn diese doch dynamisch aus der Datei kommen können? Der Programmcode des Displays sollte idealerweise bei einem Update der Senderliste nicht mehr angerührt, gar nochmals compiliert werden müssen. Wenn Du Lust hast, kannst Du in der finalen Version ein Patch für das iRadio daraus machen, so wie es HolgerK mit seinen Displaydaemonen gemacht hat. Also nur Quellcode + Buildscript in display/x11/xyz und dann ein Installer direkt im iRadio-Verzeichnis der den Build- und Installationsprozess des Displaydaemon macht. Auf ein Mitliefern einer Playlist aber verzichten, denn da soll der Nutzer ja seine eigene über die Updatewege einspielen können.

Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#11
Hallo Bernhard,

zu deiner Anmerkung "Warum codierst Du die Sendenamen nochmal hart in den Code? "

Das tue ich bewusst, da
  • 100.5 != dashitradio
  • BBC 2 != BBC Radio 2
  • SWRadio != Schwarzwaldradio 
usw. usw...

Für mich ist (momentan) die Stationskennung als Skalentext leider nicht brauchbar...
Im einfachsten Fall ist die Kennung zu lang, man müsste an der richtigen Stelle den richtigen Teilstring kopieren.
Manchmal enthält sie den Skalentext gar nicht....

Ich überlege schon längere Zeit, wie sich aus der stations.txt ein stimmiger, möglichst kurzer Skalentext gewinnen lässt,
sehe aber wie bereits beschrieben, noch keine richtige Lösung.
Grüße aus Wassenberg,
Norbert.
Zitieren
#12
Hallo Norbert,

ich verstehe dein Problem nicht!

Du schreibst zum Beispiel: SWRadio != Schwarzwaldradio.
Das Label ist in deinem Vektor an Platz 6 als "SWRadio" von Dir definiert und in deiner Playlist steht in der 6. Zeile auch die URL vom Schwarzwaldradio, also http://str0.creacast.com/hitradio_ohr_thema1

Wie kann dann SWRadio != Schwarzwaldradio sein?
VLC und somit die Updateautomatic von stations.txt gibt auch den richigen Namen zurück, also Schwarzwaldradio und nicht SWRadio, also etwas leserlicheres als SWRadio.

Zum einfachsten Fall, Kennung zu lang.
- Man überlegt sich vorher, wieviel Zeichen ein Label auf der Skale maximal haben darf und kürz es dann automatisch an dieser Stelle bevor man die Skale rendert.

Richtige Teilstring kopieren.
- Warum darf das Label nicht "BBC Radio 2" sein, sondern muss BBC2 lauten? Zu lang kann BBC Radio 2 ja nicht sein, denn es gibt auch eine Zeichenkette die länger ist, "Chante France" zum Beispiel.

Wenn die Station offziell keinen Namen im Datenstrom aussendet, dann wird in der Updateautomatic "noname..." in stations.txt geschrieben.
Dieses Label kann man ja erstmal so übernehmen und wenn man eine solche Station in der Playlist hat, erkennt man das ja dann auf der Skale. Gefällt es nicht, dann öffnet man /home/pi/.config/vlc/stations.txt und ediert das eine Feld einmalig händisch auf den Wunschnamen.
Das kann man auch dann machen, wenn man mit dem offiziellen von der Station im Datenstrom versendeten Namen nicht einverstanden ist.

In allen diesen Fällen braucht man aber genau deshalb keinen(!) Vector mit hart codierten Namen im Quelltext, sondern nur die Datei /home/pi/.config/vlc/stations.txt

Diese Datei wird auch nur beim vom Nutzer eingeleiteten Update der Senderliste automatisch aktualisiert! Mit dieser einen Datei lässt sich also der komplette handgeschriebene Vektor überflüssig machen, denn sonst brauchst Du die Datei auch gar nicht im Quellcode einlesen wenn Du sie nicht "richtig" benutzt. Der Nutzer hat gerade wegen dieser Datei eine kompilierte Skale und braucht bei Senderlistenupdate nicht nochmal den Quelltext bearbeiten und gar neu kompilieren. Das allein ist der Grund warum diese stations.txt überhaupt im iRadio angelegt wird, nur damit man die Namen nicht direkt in den Quellcode schreiben muss. Da kommt also der Inhalt deines Vectors rein, das VLC da schon die offziellen Stationsnamen reingeschrieben hat, ist nur eine Zugabe, damit Du weißt wo an welcher Stelle in der Playlist.m3u eine bestimmte Station steht und damit beides (Namen auf der Skale und URL in der Playlist) zeilensyncron gehalten wird. Damit braucht man nicht beide Dateien exakt nebeneinander öffnen und komplett händisch anlegen.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#13
Hallo Bernhard. Norbert hat wahrscheinlich den Sinn der neuen zusätzlichen Datei nicht verstanden und verwendet sie deshalb im Quelltext falsch.

Norbert in der Playlist.m3u stehen die Adressen des Radiosenders. In der stations.txt die Namen die auf die Skale sollen. Die kommen nicht in den Quelltext!
Die Updateautomatik sorgt nur dafür das dort schon die offiziellen Sendernamen drin stehen. Die kann man aber abändern wenn andere als die offiziellen Namen angezeigt werden sollen. So wie dein Quellcode jetzt ist, hat er für den Nutzer keinen Wert weil sich daraus kein dauerhaft gültiges Programm compilieren lässt.

Otto.
Zitieren
#14
Hallo Bernhard,
warum http://str0.creacast.com/hitradio_ohr_thema1 zum Schwarzwaldradio wird, kann ich (noch) nicht erklären.
Aber selbst in der mit autoStation generierten Datei steht an Pos. 6 Schwarzwaldradio.
Code:
dashitradio
SWR4 MA
DASDING
BBC Radio 2
Dlf Kultur
Schwarzwaldradio
SRF 4 News
Chante France
ANTENNE BAYERN
ANTENNE BAYERN 80er Kulthits
ANTENNE BAYERN 90er Hits
ANTENNE BAYERN Black Beatz
ANTENNE BAYERN Chillout
ANTENNE BAYERN Classic Rock Live
ANTENNE BAYERN Event
ANTENNE BAYERN Fresh
hr3
ANTENNE BAYERN Lovesongs
noname 18
Always Elvis Radio
The 1920s Radio Network 99.3 Virginia Beach / Chesapea
ANTENNE BAYERN Top 40
1Live, Westdeutscher Rundfunk Koeln
ANTENNE BAYERN Workout Hits
noname 24
noname 25
ROCK ANTENNE
ROCK ANTENNE Alternative
ROCK ANTENNE Classic Perlen
ROCK ANTENNE Heavy Metal
ndr_ndr2_nds_mp3
noname 31
noname 32

 
Vielleicht sollten wir von techn. Aspekten und den Vorteilen der stations.txt einmal zum Aussehen der Skala schwenken.
Für mich liegt der Unterschied zwischen den bisherigen iRadios und dem hier vorgestellten darin, dass
beim iRadio immer nur eine Station mit nahezu unbegrenzter Länge dargestellt wird. Der Anwender weiss nicht, welche Station vor oder hinter der aktuell gewählten liegt. Falls überhaupt ein Display installiert wurde!

Bei "meinem" Radio ist das komplett anders. Es werden alle Stationen der Stationsliste angezeigt.
Jede Station kann direkt angewählt werden.
Um dies zu erreichen, müssen die Skalentexte plausibel und in der Länge begrenzt sein.
Bislang habe ich sie definiert, da dies zum besten Ergebnis führt.
Im weitesten Sinne hat es etwas mit Design zu tun, auch darüber kann diskutiert werden.
Klaro könnte ich jeden Skalentext auf x Buchstaben begrenzen, aber auf Kosten des Designs....
Grüße aus Wassenberg,
Norbert.
Zitieren
#15
(27.02.2019, 09:20)norbert_w schrieb: Hallo Bernhard,
warum http://str0.creacast.com/hitradio_ohr_thema1 zum Schwarzwaldradio wird, kann ich (noch) nicht erklären.

Aber Ich. Es ist nämlich die offizielle StreamURL von Schwarzwaldradio! Die URL habe ich vom Senderinhaber selbst mitgeteilt bekommen.
VLC und somit auch autoStation liefern also den richtigen Titel "Schwarzwaldradio" zurück. Über diese URL läuft praktisch das Exemplar welches
man auch im DAB-Bundesmuxx empfängt. Nicht an "Hit Radio Ohr" stören, das ist das gleiche Funkhaus in Ortenau

(27.02.2019, 09:20)norbert_w schrieb: Aber selbst in der mit autoStation generierten Datei steht an Pos. 6 Schwarzwaldradio.

Naja, das habe ich ja nun schon ein paar mal gesagt! Der Sendename ist richtig und wird auch so richtig über die URL http://str0.creacast.com/hitradio_ohr_thema1 ausgestrahlt.

(27.02.2019, 09:20)norbert_w schrieb: Für mich liegt der Unterschied zwischen den bisherigen iRadios und dem hier vorgestellten darin, dass
beim iRadio immer nur eine Station mit nahezu unbegrenzter Länge dargestellt wird.

Du hast hier kein iRadio Norbert, Du hast hier nur eine Skale, im iRadio als Displaydaemon bezeichnet.

(27.02.2019, 09:20)norbert_w schrieb: Der Anwender weiss nicht, welche Station vor oder hinter der aktuell gewählten liegt. Falls überhaupt ein Display installiert wurde!
Jede Station kann direkt angewählt werden.

Doch die Info liegt vor und kann ganz einfach in eigene Skalen eingefügt werden. Über die Fernbedienungsfunktion des iRadios
per Tablet / Smartphone liegt sogar die ganze Sendertabelle optisch vor und jeder Sender kann direkt angewählt werden.

(27.02.2019, 09:20)norbert_w schrieb: Um dies zu erreichen, müssen die Skalentexte plausibel und in der Länge begrenzt sein.
Bislang habe ich sie definiert, da dies zum besten Ergebnis führt.

Ja und Du (und der Anwender) darf das Du sogar, nur hast Du sie aber an der falschen Stelle umdefiniert Norbert!
Die Umdefinierung muss in der stations.txt erfolgen und nicht im Quellcode!
Die stations.txt dient nicht zum Herausfinden der Position in der Senderliste, das macht man über die URL in playlist.m3u, die stations.txt enthält die Namen die später mal auf der Skale gerendert werden sollen. AutoStation dient nur dazu, daß Du dort schonmal die offiziellen Namen drin hast, die Du aber nach belieben überschreiben darfst. AutoStation sorgt auch dafür das dort genau soviele Zeilen drin sind, wie es Stationen in der Playlist.m3u gibt. Ganz einfach damit Du nicht mal in die Schwierigkeit kommst, weniger Labels zu haben als URLs in der Playlist.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#16
Das ist der entscheidende Hinweis Bernhard!

"Die stations.txt dient nicht zum Herausfinden der Position in der Senderliste, das macht man über die URL in playlist.m3u"

Mal sehen, wie ich das umsetze.
Grüße aus Wassenberg,
Norbert.
Zitieren
#17
(27.02.2019, 12:00)norbert_w schrieb: Das ist der entscheidende Hinweis Bernhard!

"Die stations.txt dient nicht zum Herausfinden der Position in der Senderliste, das macht man über die URL in playlist.m3u"

Mal sehen, wie ich das umsetze.

Bingo! 

Schaue mal in meinen Beitrag #127 https://radio-bastler.de/forum/showthrea...#pid142892
dort habe ich weiter unten ab "...Hat man alles richtig gemacht, so wird das Internetradio dann mit der Simulation als Displaydaemon..."
einiges zur Stationsidentifikation mittels URL und VLC geschrieben. Auch wenn es um das Thema URL-Umleitung geht! 

Du lieferst ja mit deiner Skalensimulation eine Playlist mit:

Zitat:http://stream.dashitradio.de/dashitradio...stream.mp3
http://mp3-live.swr.de/swr4ma_m.m3u
http://mp3-live.dasding.de/dasding_m.m3u
http://bbcmedia.ic.llnwd.net/stream/bbcm...adio2_mf_p
http://st02.dlf.de/dlf/02/128/mp3/stream.mp3
http://str0.creacast.com/hitradio_ohr_thema1
http://stream.srg-ssr.ch/m/drs4news/aacp_96
http://stream1.evasionfm.com/Chante_France
http://mp3channels.webradio.antenne.de/antenne
http://mp3channels.webradio.antenne.de/80er-kulthits
http://mp3channels.webradio.antenne.de/90er-hits
http://mp3channels.webradio.antenne.de/black-beatz
http://mp3channels.webradio.antenne.de/chillout
http://mp3channels.webradio.antenne.de/c...-rock-live
http://mp3channels.webradio.antenne.de/event
http://mp3channels.webradio.antenne.de/fresh
http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u
http://mp3channels.webradio.antenne.de/lovesongs
http://mp3channels.webradio.antenne.de/new-hits
http://89.249.7.68/alwayselvisradio
http://the1920sradionetwork.mediaplayer.whro.org/128
http://mp3channels.webradio.antenne.de/top-40
http://wdr-1live-live.icecast.wdr.de/wdr...stream.mp3
http://mp3channels.webradio.antenne.de/workout-hits
https://wdr-wdr2-aachenundregion.icecast...stream.mp3
https://wdr-wdr4-live.icecastssl.wdr.de/...stream.mp3
http://mp3.webradio.rockantenne.de:80
http://mp3channels.webradio.rockantenne.de/alternative
http://mp3channels.webradio.rockantenne....sic-perlen
http://mp3channels.webradio.rockantenne.de/heavy-metal
http://www.ndr.de/resources/metadaten/au...u/ndr2.m3u
https://swr-swr3-live.cast.addradio.de/s...stream.mp3

Die URL-Umleitung dürfte mindestens für alle Stationen relevant sein, deren URL auf .m3u endet! Diese müssten durch fixe URLs ersetzt werden.
Wie kommt man dran: 

Beispiel für die vorletzte Station in deiner Playlist. http://www.ndr.de/resources/metadaten/au...u/ndr2.m3u

Webbrowser öffnen und in das URL-Feld die URL eintragen/kopieren. Dann wird automatisch die Datei ndr2.m3u runtergeladen. Diese Datei öffnen!
Und darin steht:

Zitat:http://ndr-ndr2-niedersachsen.cast.addra...stream.mp3

Das ist der fixe Link der direkt zu NDR2 führt. Diese URL in die Playlist übernehmen! Das sieht dann so aus:

Zitat:http://stream.dashitradio.de/dashitradio...stream.mp3
http://mp3-live.swr.de/swr4ma_m.m3u
http://mp3-live.dasding.de/dasding_m.m3u
http://bbcmedia.ic.llnwd.net/stream/bbcm...adio2_mf_p
http://st02.dlf.de/dlf/02/128/mp3/stream.mp3
http://str0.creacast.com/hitradio_ohr_thema1
http://stream.srg-ssr.ch/m/drs4news/aacp_96
http://stream1.evasionfm.com/Chante_France
http://mp3channels.webradio.antenne.de/antenne
http://mp3channels.webradio.antenne.de/80er-kulthits
http://mp3channels.webradio.antenne.de/90er-hits
http://mp3channels.webradio.antenne.de/black-beatz
http://mp3channels.webradio.antenne.de/chillout
http://mp3channels.webradio.antenne.de/c...-rock-live
http://mp3channels.webradio.antenne.de/event
http://mp3channels.webradio.antenne.de/fresh
http://metafiles.gl-systemhaus.de/hr/hr3_2.m3u
http://mp3channels.webradio.antenne.de/lovesongs
http://mp3channels.webradio.antenne.de/new-hits
http://89.249.7.68/alwayselvisradio
http://the1920sradionetwork.mediaplayer.whro.org/128
http://mp3channels.webradio.antenne.de/top-40
http://wdr-1live-live.icecast.wdr.de/wdr...stream.mp3
http://mp3channels.webradio.antenne.de/workout-hits
https://wdr-wdr2-aachenundregion.icecast...stream.mp3
https://wdr-wdr4-live.icecastssl.wdr.de/...stream.mp3
http://mp3.webradio.rockantenne.de:80
http://mp3channels.webradio.rockantenne.de/alternative
http://mp3channels.webradio.rockantenne....sic-perlen
http://mp3channels.webradio.rockantenne.de/heavy-metal
http://ndr-ndr2-niedersachsen.cast.addra...stream.mp3
https://swr-swr3-live.cast.addradio.de/s...stream.mp3


Wie ich es in #127 erklärt habe, es gibt zur Zeit wegen eines Bugs keinen anderen Weg um eine Station eindeutig identifizieren zu können! 
Also URLs aus der Senderliste des iRadios laden und nach dem Umschalten von vlc die URL der aktuellen Station anfragen!
Du kannst ja in den Code für die Skalensimulationen schauen, dort wird es umgesetzt. Bei Fragen bin ich wie immer jederzeit per Mail erreichbar.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#18
Dem Karneval zum Trotz - oder gerade wegen des Karnevals habe ich die Version 03 codiert.

Folgende Änderungen wurden vorgenommen:
  • die Skalentexte werden aus der Datei station.txt gelesen
  • die Positionen der Skalentexte werden anhand deren Länge berechnet
  • liegt die Position ausserhalb des Anzeigebereichs, erfolgt die Anzeige in der nächsten Zeile
  • momentan ist das Programm auf eine Anzeige von 4 Zeilen mit Skalentexten ausgelegt
  • es wurden weitere Stationen in die Playlist eingetragen
Anbei 2 Screenshots mit unterschiedlich langen Stationstexten in der stations.txt: 


.png   IdeeRadio_V03_Bild_0.png (Größe: 20,9 KB / Downloads: 204)


.png   IdeeRadio_V03_Bild_1.png (Größe: 20,3 KB / Downloads: 205)

Das IdeeRadioV03 liegt zum Download bereit:


.zip   IdeeRadio_V03.zip (Größe: 5,22 KB / Downloads: 15)

Viel Spaß beim Testen!
Grüße aus Wassenberg,
Norbert.
Zitieren
#19
Hallo Radiofreunde,
anbei findet Ihr die Version V04 zum IdeeRadio.

Es gibt folgende Änderungen:
  • die Stationsauswahl mittels Maus auf dem Display arbeitet exakter
  • die Begrenzung auf 4 Skalenzeilen wurde neu codiert (eine 5te Zeile führt zum Programmabbruch)
  • der Programmcode wurde aufgeräumt („ doppelte“ Codezeilen gelöscht etc.)   

.png   IdeeRadio_V04_Skin_0.png (Größe: 21,46 KB / Downloads: 164)


.png   IdeeRadio_V04_Skin_1.png (Größe: 21,7 KB / Downloads: 169)

Das IdeeRadioV04 liegt zum Download bereit:


.zip   IdeeRadio_V04.zip (Größe: 5,33 KB / Downloads: 21)


Viel Spaß beim Testen!

Beim Codieren stellte sich mir die Frage, warum eigentlich die Anzeige 4 Skalenzeilen begrenzt ist.
Natürlich in erster Linie auf Grund der Displaygröße und der daraus resultierenden Übersicht.
Diese Thematik lässt mich nicht in Ruhe - ich habe da eine neue Idee, deren Umsetzung noch etwas dauern wird.
Grüße aus Wassenberg,
Norbert.
Zitieren
#20
Hi Norbert,

tolle Sachen machst du da. Hast du deinen Raspberry denn auch verbaut ? Wie schaut das denn aus ?

Gruß
Oliver
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Huth E72 Internetradio mit ESP32 saarfranzose 10 1.780 12.05.2023, 14:49
Letzter Beitrag: saarfranzose
  Ein Internetradio Bausatz von PIMORONI Bernhard45 200 81.529 06.06.2022, 19:17
Letzter Beitrag: Reparateur
  und noch eine Platine für ESP32-Webradio fx2radio 0 864 04.05.2022, 17:05
Letzter Beitrag: fx2radio
  Ein minimales Internetradio für alte und neue Raspberrys Bernhard45 189 105.575 12.04.2022, 16:00
Letzter Beitrag: navi
  Dementia III ESP32 Internetradio mit Simulation saarfranzose 9 2.805 21.01.2022, 23:14
Letzter Beitrag: saarfranzose

Gehe zu: