Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.

Nachrichten - Fux

1
Software / Re: Betty als MPD client
03. Jan 2011, 10:47
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
2
Software / Re: Betty als MPD client
29. Dez 2010, 20:00

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
3
Software / Re: Betty als MPD client
29. Dez 2010, 12:20

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
4
Software / Re: Betty als MPD client
24. Dez 2010, 21:03

Die Pfade zu den Tools (Codesourcery und sdcc) müssen in den Makefiles angepasst werden wenn man selbst kompiliert.
Ok, ich hab mir der einfachheit halber auch einen /home/raap Ordner erstellt und dorthin die Codesourcery installiert.
Make läuft eine Weile und bringt dann einen Fehler, mit dem ich leider nichts anfangen kann:
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-gcc -mcpu=arm7tdmi-s -Wall -mthumb-interwork -msoft-float -I/home/raap/CodeSourcery/Sourcery_G++_Lite/include -I. -Iinterrupt -Idisplay -Ikeyboard -Ikernel -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc  -Itools -Ipwm -Impd -O2 -c  -MMD -MF serial/.deps/serial.o -o serial/serial.o serial/serial.c
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-ld -Tlpc2220_rom.ld -Map boop.map -L/home/raap/CodeSourcery/Sourcery_G++_Lite/lib/gcc/arm-uclinuxeabi/4.3.2 -o muc_rom.elf crt.o isr.o arm_exc.o global.o main.o cc1100/cc1100.o cc1100/rf.o display/lcd.o display/fonty.o display/window.o display/screen.o display/screen_playing.o display/screen_tracklist.o display/screen_playlist.o display/screen_info.o interrupt/irq.o pwm/pwmirq.o keyboard/keyboard.o kernel/kernel.o timer/timerirq.o mpd/model.o mpd/mpd.o serial/serial.o -lgcc
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-ld.real: cannot find -lgcc
make: *** [muc_rom.elf] Fehler 1
EDIT: Habs jetzt über folgenden Workaround in den Griff bekommen:

  • libgcc.a aus dem CodeSourcery lib Verzeichnis (CodeSourcery/Sourcery_G++_Lite/lib/gcc/arm-uclinuxeabi/4.5.1) in das muc Source-Verzeichnis kopieren (McBetty/muc)

  • statt dem angehängten -lgcc ein "libgcc.a" anhängen




Da ich viele Alben höre, habe ich mir ein Bash-Skript geschrieben, welches in der Playliste zum ersten Titel des aktuellen bzw. vorherigen Album springt (siehe http://mpd.wikia.com/wiki/Hack:mpdNextAlbum).
D.h ich möchte mit dem "PROG+/PROG-" Button auf der Fernbedienung dieses Skript aufrufen. Kannst Du mir grob sagen, an welchen Stellen (Button-Abfrage der FB und wo Aufruf des Skripts im mpdtool) ich im Code dies mir einbauen kann? Bzw. muß ich dem mpdtool hierzu einen bestimmten Befehl schicken? Ich kenn mich leider mit C nur rudimentär aus.

Danke!

EDIT: Noch eine andere Frage, auf der Betty Webseite ist auf den Screenshots der Playliste zu sehen: "100 Lastest Tracks" bzw. "500 Random Tracks", wie werden denn diese Tracks "erzeugt", ist das im Code enthalten oder extern per Skript?

Grüße
Fux
5
Software / Re: Betty als MPD client
22. Dez 2010, 21:29
Bei mir lässt sich das Scart-Interface leider nicht direkt mit dem flashtool flashen (McBetty 0.7 ist aktuell drauf).
Version ist die aktuelle aus dem Git.
:/usr/src/mpd/mcbetty/git/McBetty/scart_image$ ./flashtool /dev/ttyUSB0
Sending break
Read 0 characters:

Read 0 characters:

buffer[0] = 00
Error: Could not negotiate baud rate!


Es kommt eine Fehlermeldung beim kompilieren, vielleicht liegt es daran?
:/usr/src/mpd/mcbetty/git/McBetty/scart_image$ make
gcc bin2c.c -o bin2c
gcc makebin.c -o makebin
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include -c main.c
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include -c serial.c
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include -c cc1100.c
cc1100.c:53:1: warning: "SMARTRF_SETTING_PKTCTRL1" redefined
In file included from cc1100.c:21:
smartrf_CC1100.h:73:1: warning: this is the location of the previous definition
cc1100.c:54:1: warning: "SMARTRF_SETTING_IOCFG0D" redefined
smartrf_CC1100.h:72:1: warning: this is the location of the previous definition
cc1100.c:55:1: warning: "SMARTRF_SETTING_IOCFG2" redefined
smartrf_CC1100.h:71:1: warning: this is the location of the previous definition
cc1100.c:56:1: warning: "SMARTRF_SETTING_FIFOTHR" redefined
smartrf_CC1100.h:70:1: warning: this is the location of the previous definition
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include main.rel  serial.rel cc1100.rel  -o betty_scart.ihx
./makebin -s 7680 <betty_scart.ihx >betty_scart.bin
./bin2c scart_image 7680 <betty_scart.bin >scart_image.h
gcc flashtool.c -o flashtool
asx8051 -losg isp.asm
/usr/bin/sdcc --iram-size 0x100 --model-small --code-size 8192 -I/include main.rel  serial.rel cc1100.rel isp.rel -o betty_scart_boot.ihx
./makebin -s 8192  <betty_scart_boot.ihx >betty_scart_boot.bin
./bin2c scart_image 8192 <betty_scart_boot.bin >scart_image_boot.h
cp scart_image_boot.h boop.orig/tools/scart_image.h
cd boop.orig && make clean && make
make[1]: Betrete Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
rm -Rf .deps adc/.deps audio/.deps cc1100/.deps display/.deps flash/.deps games/.deps gui/.deps infrared/.deps interrupt/.deps keyboard/.deps rtc/.deps serial/.deps timer/.deps tools/.deps
rm -f crt.o main.o global.o audio/soundirq.o infrared/infraredirq.o interrupt/irq.o keyboard/keyirq.o timer/timerirq.o adc/adc.thumb.o adc/adcirq.thumb.o audio/sound.thumb.o audio/sid.thumb.o cc1100/cc1100.thumb.o cc1100/rf.thumb.o display/lcd.thumb.o display/fonty.thumb.o display/backlight.thumb.o flash/flash.thumb.o flash/bfs.thumb.o games/gamesmenu.thumb.o games/tic_tac_toe.thumb.o games/sokoban.thumb.o games/connect4.thumb.o gui/menu.thumb.o gui/mainmenu.thumb.o gui/testmenu.thumb.o gui/settingsmenu.thumb.o gui/controls.thumb.o infrared/infrared.thumb.o infrared/codes.thumb.o infrared/encoders.thumb.o infrared/ir_capture.thumb.o infrared/ir_selector.thumb.o keyboard/keyboard.thumb.o rtc/rtc.thumb.o rtc/i2c.thumb.o serial/serial.thumb.o timer/timerfuncs.thumb.o tools/toolsmenu.thumb.o tools/scart_icp.thumb.o infrared/ir_itt.thumbunopt.o infrared/ir_nrc17.thumbunopt.o infrared/ir_raw.thumbunopt.o infrared/ir_rc5.thumbunopt.o infrared/ir_rc6.thumbunopt.o infrared/ir_rca.thumbunopt.o infrared/ir_rcmm.thumbunopt.o infrared/ir_rec80.thumbunopt.o infrared/ir_recs80.thumbunopt.o infrared/ir_rf.thumbunopt.o infrared/ir_sirc.thumbunopt.o infrared/ir_spaceenc.thumbunopt.o *.elf *.bin *.hex *~
make[1]: Verlasse Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
make[1]: Betrete Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
mkdir -p .deps
mkdir -p adc/.deps
mkdir -p audio/.deps
mkdir -p cc1100/.deps
mkdir -p display/.deps
mkdir -p flash/.deps
mkdir -p games/.deps
mkdir -p gui/.deps
mkdir -p infrared/.deps
mkdir -p interrupt/.deps
mkdir -p keyboard/.deps
mkdir -p rtc/.deps
mkdir -p serial/.deps
mkdir -p timer/.deps
mkdir -p tools/.deps
/home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-as -mcpu=arm7tdmi-s -D --gstabs -mthumb-interwork -mfpu=softfpa -o crt.o crt.s
make[1]: /home/raap/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-as: Kommando nicht gefunden
make[1]: *** [crt.o] Fehler 127
make[1]: Verlasse Verzeichnis '/usr/src/mpd/mcbetty/git/McBetty/scart_image/boop.orig'
make: *** [betty_flasher] Fehler 2


EDIT:
Ich habe zwei Betty Fernbedienungen. Das Flashen hatte bei einer mit der Version 0.7 partout trotz mehrmaliger Versuche nicht geklappt. Konnte eben beide auf die git-Version der McBetty flashen. Nur als positive Rückmeldung :-).
Flashen des Scart-Interfaces klappt weiterhin nicht.

Gruß
Fux
6
Software / Re: Betty als MPD client
21. Dez 2010, 00:38
Wow, danke für das vorweihnachtliche Geschenk  :)

Muss alles aktualisiert werden, auch das Scart-Interface? Könnte jemand ggf. wieder ein "boop_rom_mitMCBetty" Image hochladen.

Danke!

Gruß
Fux
7
Software / Re: Betty als MPD client
20. Nov 2010, 00:27
Wenn ich die mcbetty.bin auf die Betty flashe geht nur die Hintergrundbeleuchtung an, ansonsten passiert gar nichts. Kennt jemand diesen Effekt?
Die Boop-Firmware funktioniert im Gegensatz einwandfrei.
EDIT: Hab zwei Fernbedienungen, bei der zweiten läuft McBetty jetzt. Die erste hat jedoch immer noch obiges Phänomen.


Wenn ich woanders als auf der Betty z.B. einen anderen Titel aktualisiere, dann wird die Betty leider nicht aktualisiert. Ist das ein Bug oder fehlt dieses Feature noch?
Title-Skip funktioniert sehr gut, jedoch lassen sich die Playlisten nur hin und wieder auswählen, meistens passiert einfach keine Reaktion, ist das jemanden bekannt?

Gruß
Fux
8
Software / Re: Betty als MPD client
08. Nov 2010, 18:26
Zitat
Die Übertragungsgeschwindigkeit ist in Ordnung. Allerdings ist das Handling z.B. übers Smartphone (Android) schon um Klassen besser. Die Betty ist nur "Backup", um mal schnell Musik machen zu können, ohne Rechner oder Handy zu bemühen.
Hört sich gut an, d.h. man muß nicht ewig auf irgendeine Verbindung warten, sondern Betty an und los gehts?
Für die Couch hab ich auch einen alten ipod Touch, die Betty ist fürs Bad gedacht. Da ist es nicht so schlimm, wenn die mal untertaucht ;-). Für den Sound hab ich einen USB FM-Transmitter, kann ich sehr empfehlen.
9
Software / Re: Betty als MPD client
08. Nov 2010, 14:46
Wenn ich McBetty-0.7.tar.bz2 runterlade bekomme ich immer eine Fehlermeldung:
bzip2: (stdin) is not a bzip2 file.
Kann das bitte mal jemand gegenprüfen, bzw. die Datei irgendwo neu raufladen. Danke!

@t0bit0bsen:
Deine Firmware-Datei "boop_rom_mitMCBetty_scart_python.bin" wird in die Betty Fernbedienung geladen und dann damit der Scart-Adapter geflasht. Anschließend lade ich dann die McBetty Firmware in die Betty Fernbedienung. Ist das richtig so?


Noch zwei allgemeine Fragen:
Wie schnell geht denn der Verbindungsaufbau bei McBetty, bzw. wie flüssig läuft das ganze (bei überschaubarer Playlist <= 100 Titel)?
Reicht für die Verbindung von Scart-Adapter zu PC ein USB-Handykabel aus, wie unter http://bettyhacks.com/wiki/index.php/Interfaces_PC_zu_Betty beschrieben?

Grüße
Fux