Betty als MPD client

Begonnen von phaidros, 13. Okt 2009, 03:36

« vorheriges - nächstes »
Nach unten

Fux


In der neuesten Version auf git-hub ist das testweise drin. Wenn man im Playing-Screen (da wo Titel und Spieldauer und so angezeigt werden) auf "A" drückt, wird das Script
"script_1.sh" im aktuellen Verzeichnis von mpdtool aufgerufen. Taste "B" ruft "script_2.sh" auf. Ist aber noch nicht ausführlich geteste!
Wow, genial! Werde ich mir anschauen.


Extern per Script. So eine Funktion auf der Betty wäre noch schön, so etwas wie Smart-Playlists bei Amarok. Ist aber schwierig. Mal schauen.
Wie speichertst Du denn die letzten 100 Songs ab, mit mpdcron?

Ich habe gestern im MPD-Mantis eine ähnliche Anfrage zu Smart-Playlists reingestellt (-> http://musicpd.org/mantis/view.php?id=3134). In der neuesten MPD git werden ja jetzt auch Audio CDs unterstützt. Ich finde nur das Handling mit den verschiedenen Soundquellen unpraktisch. Deshalb hab ich Playlists vorgeschlagen, die "Audio CD", "Streams", "Recordings" und "Default" enthalten und sich somit mit einem Klick aufrufen lassen sollten. Mal sehen was der Entwickler dazu meint. Wenn das noch jemand gut findet, bitte auch im Mantis eintragen.
Aktuell löse ich den Wechsel von Radio- auf Default-Playlist mit einem Umschaltskript, aber das funktioniert natürlich nur, wenn ich mit der Fernbedienung schalte und nicht mit einem GUI-Client. Wie löst Du denn das?

Grüße
Fux

phaidros

Zitat
Wie speichertst Du denn die letzten 100 Songs ab, mit mpdcron?

Das kenne ich noch gar nicht.

Eigentlich benutze ich Amarok (Verseion 1.4) als Musik-Verwalter. Ich erzeuge dann in Amarok die entsprechende Playlist neu und speichere sie in dem Playlisten-Verzeichnis von MPD ab.
Das ist alles noch ein ziemliches Gewurschtel. Ich verstehe auch das Konzept von MPD bezüglich Playlisten nicht wirklich. Warum haben Playlisten Versionsnummern, aber keinen numerischen Index, mit denen man sie aufrufen kann ???
Und muss ich wirklich für alles Playlisten haben? Ich will doch bestimmte Alben hören, meist sogar nur bestimmte Titel. Muss ich für jedes Album eine Playliste erstellen?

Zitat
Aktuell löse ich den Wechsel von Radio- auf Default-Playlist mit einem Umschaltskript, aber das funktioniert natürlich nur, wenn ich mit der Fernbedienung schalte und nicht mit einem GUI-Client. Wie löst Du denn das?


Oh, sowas kompliziertes mache ich gar nicht. Ich habe ein normales Radio, nix mit diesem bösen Internet :-)
OK, eigentlich hätte ich sowas auch gern, aber im Moment dienen  Betty und MPD nur dazu, mir im Wohnzimmer gelegentlich mal Musik über 'ne richtig gute Anlage anzuhören,
ohne dass ich da einen riesen Rechner mit Amarok drauf stehen haben muss und ohne den Fernseher einschalten zu müssen.

Meine MPD Version ist auch schon recht alt (0.12.1), muss ich dringend mal aktualisieren.

Gruß
Phaidros

jannis

Also ich benutze hier gmpc und ncmpc als clients fuer mpd. Besonders gmpc ist sehr einfach und intuitiv bedienbar.

mpd erlaubt allen clients ueber das Protokoll die Datenbank zu durchsuchen, entweder in der Folder-ansicht oder z.B. nach Artist, Album, Titel getrennt. Auch eine echte Suchfunktion ist vorhanden.
Ich fuege mit all diesem Hilfsmitteln Ordner, Alben und einzelne Titel der current playlist hinzu. Diese selbst speichere ich dann aber nur sehr selten ab.

phaidros

 
Zitat
mpd erlaubt allen clients ueber das Protokoll die Datenbank zu durchsuchen, entweder in der Folder-ansicht oder z.B. nach Artist, Album, Titel getrennt. Auch eine echte Suchfunktion ist vorhanden.
Ich fuege mit all diesem Hilfsmitteln Ordner, Alben und einzelne Titel der current playlist hinzu. Diese selbst speichere ich dann aber nur sehr selten ab.

Ok. Das klingt gut. Mal sehen ob eine elementare Suchfunktion in Betty machbar ist.

Gruß
Phaidros

Fux

#49
29. Dez 2010, 20:00 Last Edit: 29. Dez 2010, 20:13 by Fux

Also ich benutze hier gmpc und ncmpc als clients fuer mpd. Besonders gmpc ist sehr einfach und intuitiv bedienbar.
GMPC verwende ich auch. Wenn man MPD verwendet, kommt man da wohl kaum dran vorbei.
@phaidros: Schau Dir mal die aktuelle MPD/GMPC Version an, da hat sich einiges getan. Vielleicht gefällts Dir besser als Amarok.

Zitat
Das ist alles noch ein ziemliches Gewurschtel. Ich verstehe auch das Konzept von MPD bezüglich Playlisten nicht wirklich. Warum haben Playlisten Versionsnummern, aber keinen numerischen Index, mit denen man sie aufrufen kann
Geht einfacher als mit Index, Du kannst eine Playlist direkt mit ihren Namen aufrufen. Gegebenfalls kann man sich die vorhandenen Playlisten mit mpc anzeigen lassen.
mpc load playlistname
mpc lsplaylists


Zitat
Zitat
Wie speichertst Du denn die letzten 100 Songs ab, mit mpdcron?
Das kenne ich noch gar nicht.
Ist sehr praktisch, damit schalte ich zum Beispiel je nach MPD-Wiedergabe meine Stereo-Anlage vollautomatisch über eine Funksteckdose an und aus. Das geht über einen USB-Funkstick namens Tellstick, sehr zu empfehlen.

Das ist mein Umschalteskript zwischen Default-Playlist und Radio-Playlist. Es speichert sogar den zuletzt gespielten Titel (inkl. Abspielzeit) bzw. Stream. Aber wär halt viel eleganter, wenn das ganze in MPD integriert wäre.
#!/bin/bash

# FX, 2010-08-06
# Switch between radio (stream) and normal playing

# Requirements: A MPD-playlist called "Radio" with your radio streams
# Fit your $USER and make sure that $USER have respective rights at /home/$USER/.mpd/

# PARAMETER
USER=markus
TEMPMODE=/home/$USER/.mpd/tempMode
TEMPNR=/home/$USER/.mpd/tempNr
TEMPSTATE=/home/$USER/.mpd/tempState
TEMPTIME=/home/$USER/.mpd/tempTime
TEMPRADIONR=/home/$USER/.mpd/tempRadioNr
TEMPRADIOSTATE=/home/$USER/.mpd/tempRadioState



if [ ! -e "$TEMPMODE" ]; then
echo "Mode nicht angelegt"
echo "normal" > "$TEMPMODE"
fi

if [ "$1" == "$(cat "$TEMPMODE")" ]; then
echo "Modus bereits aufgerufen"
case "$1" in
radio)
# /usr/local/skripte/lircLcd.py -f "     RADIO" &
;;
normal)
# /usr/local/skripte/lircLcd.py -f "     MUSIK" &
;;
esac
exit
fi

echo "Übergabeparameter: $1"
case "$1" in
radio)
# Switch to radio playlist
echo "Switch to radio"
echo "radio" > "$TEMPMODE"
ACTNR=$(mpc --format "%position%"  | head -n 1)
echo "Active Nr: $ACTNR"
echo $ACTNR > "$TEMPNR"
# Status einlesen
if [ `/usr/bin/mpc | wc -l` -gt "1" ]; then
if [ `/usr/bin/mpc | grep playing | wc -l` -eq "1" ]; then
echo "Status: play"
echo play > "$TEMPSTATE"
else
echo "Status: pause"
echo pause > "$TEMPSTATE"
fi
echo "$(/usr/bin/mpc | head -n 2 | tail -n 1 | cut -d' ' -f5 | cut -d'/' -f1)" > "$TEMPTIME"
else
echo "Status: stop"
echo stop > "$TEMPSTATE"
fi

mpc rm temp
mpc save temp
mpc clear
mpc load Radio
if [ -e "$TEMPRADIONR" ]; then
ACTNR=$(cat "$TEMPRADIONR")
mpc play
mpc play $ACTNR
else
mpc play
fi
;;
normal)
# Switch back to normal playlist (saved as temp)
echo "Switch to normal"
#/usr/local/skripte/lircLcd.py -f "     MUSIK" &
echo "normal" > "$TEMPMODE"
ACTNR=$(mpc --format "%position%"  | head -n 1)
echo "Radio Active Nr: $ACTNR"
echo $ACTNR > "$TEMPRADIONR"

# Status einlesen
if [ `/usr/bin/mpc | wc -l` -gt "1" ]; then
if [ `/usr/bin/mpc | grep playing | wc -l` -eq "1" ]; then
echo "Radio State: play"
echo play > "$TEMPRADIOSTATE"
else
echo "Radio State: pause"
echo pause > "$TEMPRADIOSTATE"
fi
else
echo "Radio State: stop"
echo stop > "$TEMPRADIOSTATE"
fi

# Normal Playlist einlesen
mpc clear
mpc load temp
if [ -e "$TEMPNR" ]; then
ACTNR=$(cat "$TEMPNR")
echo "Old State: Play #$ACTNR"
mpc play
mpc play $ACTNR
if [ -e "$TEMPTIME" ]; then
echo "Old State: Play #$ACTNR - $(cat "$TEMPTIME")"
mpc seek "$(cat "$TEMPTIME")"
fi
else
mpc play
fi
;;
*)
echo "Usage: $0 {radio|normal}"
esac


Grüße
Fux

gerdigerdi

Ich habe jetzt alles auf die neuste svn-version upgedatet. Funktioniert anfangs super. Jedoch nach einigen Stunden inaktivität scheint der scart-adapter sich aufzuhängen. Da hilft dann nurnoch ein reconnecten des adapters. Habt ihr das auch oder ist meine Hardware defekt? Das problem hatte ich mit allen versionen!

Ich habe viele mp3's ohne id3-tag. Die werden von der Betty dann nur mit "-" betittelt. Ich hatte mal provisorisch implementiert, dass dann der dateiname angezeigt wird. Sollte nicht der grosse Aufwand sein das an die neue Version anzupassen (Würde ich nach absprache auch übernehmen). Oder gibt es ein tool, was automatisiert die id3-tags nach dem datenamen betittelt falls nicht vorhanden? Per hand mache ich das nicht :P!

Weiter so - saubere Arbeit! Bin gespannt was alles noch so in die betty passt ;)
MfG
Gerdi


phaidros

Zitat
Jedoch nach einigen Stunden inaktivität scheint der scart-adapter sich aufzuhängen.


Ja, das Problem habe ich auch. Da ist irgendwo noch der Wurm drin.
Ich arbeite dran. Es ist  nur so schwierig, den Fehler gezielt zu produzieren.

Zitat
Ich habe viele mp3's ohne id3-tag. Die werden von der Betty dann nur mit "-" betittelt. Ich hatte mal provisorisch implementiert, dass dann der dateiname angezeigt wird. Sollte nicht der grosse Aufwand sein das an die neue Version anzupassen (Würde ich nach absprache auch übernehmen).

Ja gerne. Implementiere das doch bei dir und schicke mir einen Pull-Request (ich glaube so geht das bei git).

Gruß (und frohes neues Jahr)
Phaidros

gerdigerdi

Die reproduktion ist einfach: abends per rote taste stoppen und am nächsten morgen hängt der adapter 100%ig ;/ leider scheint es stunden zu dauern.


Im neuen jahr werde ich mich dranmachen. Evtl könen wir uns ja für detailabsprachen im IRC-Chat z.B. #bettyhacks (freenode) treffen.

gerdigerdi

Wollte nur positive Rückmeldung geben, dass mit dem letzten Scart-Update der morgendliche Hänger behoben scheint!

Besten Dank an Phaidros!

PS: Updaten des Scart-Adapters per seriell (USB2ser cp21xx) hat auch traumhaft funktioniert ;)

Fux

Bekomme leider kein aktuelles (Neuanlage) git mehr drauf:
$ git clone https://github.com/HerrSchrader/McBetty
Initialized empty Git repository in /usr/src/mpd/mcbetty/git2/McBetty/.git/
fatal: https://github.com/HerrSchrader/McBetty/info/refs not found: did you run git update-server-info on the server?


"USB2ser cp21xx" sagt mir jetzt nichts, ist das neu?

Gruß
Fux

gerdigerdi

Ich clone immer per:
git clone git://github.com/HerrSchrader/McBetty McBetty
Gestern hats bei mir noch geklappt - sollte also jetzt auch noch gehen :)

Bitte zu Entschuldigen, dass ich mich nicht klar ausgedrückt habe bezüglich des "USB2ser cp21xx". Mein Scart-Adapter hängt an einen USB-Serielwandler mit einem cp2102-chip drauf. Wir hatten die Theorie, dass das serielle flashen des Scart-Adapters eventuell wegen mangelnder "Break"-Funktionalität des cp2102-chips nicht funktionierte - Lag dann wohl eher an dem falschen Image im Scart-Adapter ohne Bootloader.

Mit dem passenden Image im Scart-Adapter funktioniert das Flashen über die serielle Schnittstelle perfekt!

Ich habe durch Zufall mal die Blaue Taste betätigt. Es erscheint eine Suchmaske. Eingabe wie beim Handy. Gefällt mir gut auch wenn es anscheinend noch ohne Funktion ist. Evtl könnte man da dann später auch per Timeout auf die nächste Stelle springen. Aber das ist Finetuning ;)) Weiter so!
Phaidros: Hast du Urlaub oder arbeitest du auf dem Amt ;)? Oder wie hat man so viel zeit für ein Projekt?! (Hab Frau+Kind(er)+Hunde - da geht quasi nichts nebenbei)

MfG
Gerdi

phaidros

Zitat
Phaidros: Hast du Urlaub oder arbeitest du auf dem Amt


Lehrer! Sind gerade noch Schulferien. Leider bald vorbei  :(

Gruß
Phaidros

jannis

Und kannst du mit den Schülern auch gemeinsam weiter an der betty programmieren?

phaidros

Zitat
Und kannst du mit den Schülern auch gemeinsam weiter an der betty programmieren?

Wird schwierig. Sind Sonderschüler!

Zitat
Wollte nur positive Rückmeldung geben, dass mit dem letzten Scart-Update der morgendliche Hänger behoben scheint!

Sieht bei mir auch so aus. Scart läuft problemlos durch. Hoffen wir, dass es so bleibt.
Dieser blöde drahtlose Kram ist echt schwer in den Griff zu kriegen.

Gruß
Phaidros

gerdigerdi

Echt traumhaft wie stabil die Betty nun rennt!

Ich hätte da noch ne Idee. Leider ist die betty ja nicht wirklich mit reichlich RAM bestückt (64KB), aber es gibt soweit ich weiß noch einen unbenutzten Flash-Speicherchip (1MB NOR).
Könnte man den nicht für die Speicherung der Titelnamen verwenden. Dann müssten nur bei Bedarf noch Titelinfos über die doch manchmal arg langsame Funkverbindung gesendet werden. Ist nur mal ins Unreine gedacht. Aber eine Tittelnummer+Prüfsumme ist immer weniger als manchmal bis zu 300Bytes pro Lied (bei langen Dateipfaden+viele lange id3taginfos). Dann wäre bei einem MB für 5000 Titel immerhin jeweils etwa 200Bytes da. Sollte theoretisch machbar sein. Vergibt der mpd jedem Lied ne eindeutige id? Wie seht ihr das?

Evtl ists auch der falsche Ansatz. Manchmal ist der aufbau der Trackliste rasend schnell und kurz drauf dümpeln die Tracks alle 5 Sekunden einzelnd ein. Ist das denn noch optimierbar oder einfach aufgrund der störungsanfälligen Funkübertragung so gegeben?

MfG
Gerdi

Nach oben