Tipps + Tricks

Status message

wunderground fetch failed :/

Primary tabs

Netzwerk-Plattenspieler

Problem: Der Plattenspieler hängt an der Anlage im Wohnzimmer, man will die Musik aber eigentlich in einem anderen Raum hören; weil Kinder schlafen, Musik zu "kulturvoll" etc.

Schlechte Lösung: Kabel durch die Wohnung ziehen
Langweilige Lösung: Bluetooth o.ä.
Schwere Lösung: Plattenspieler tragen ;)
Meine Lösung: Netzwerk-Audio (RTP-Multicast mit pulseaudio)

Man nehme:

  • USB-Plattenspieler (habe ich nicht, ich habe aber jüngst meinen Vorverstärker durch das Teil hier ersetzt)
  • Pi (bei mir ein Pi2 mit OSMC, eine beliebige andere Distro tut es sicher auch - hautpsache pulseaudio ist vorhanden)
  • pulseaudio

Rezept:

  • ggf. pulseaudio installieren
    sudo apt-get install pulseaudio pulseaudio-utils
  • Name der Quelle ermitteln, z.B.:
    pactl list sources | grep alsa_input.usb
  • pulseaudio-Konfiguration bearbeiten (RTP-Sender aktivieren und USB-Quelle per Loopback zur RTP-Senke routen)
    sudo nano /etc/pulse/default.pa
    und dies hier einfügen - Quelle unten anpassen!
    ### Load the RTP sender module (also configured via paprefs, see above)
    load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='Plattenspieler'"
    load-module module-rtp-send source=rtp.monitor
    
    #usb-adc auf rtp ausgeben
    #load-module module-loopback source=1 sink=2
    load-module module-loopback source=alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC.analog-stereo sink=rtp
  • pulseaudio starten - vielleicht erstmal im Vordergrund
    pulseaudio -v
Das wars eigentlich schon - fortan sendet pulseaudio das Audio vom USB als RTP-Multicast ins LAN und wer will kann halt mithören - insbesondere natürlich auch mehrere Teilnehmer. Theoretisch funktioniert das sogar synchron über mehrere Räume - getestet habe ich das noch nicht. Der Datenstrom hat ca. 200kiB/s und hört sich für mich super an.

Schön ist, dass die analog-Schiene des Plattenspielers unabhängig weiterlaufen kann. Die restlichen Aufgaben des Pi sind unbeeinträchtigt, da z.B. kodi i.A. direkt mit den SOC-ALSA-Devices spricht und pulseaudio alleine auf dem USB-Gerät arbeiten kann. CPU-Last von pulseaudio ist (bei mir auf dem Pi2) fast vernachlässigbar; selten sieht man über 10%.

Clientseitig empfehle ich natürlich ebenfalls Linux ;). Falls pulseaudio läuft (und das tut es auf den meisten Desktops) wird der Stream sofort eingesammelt und abgespielt (wenn das rtp-rcv-Modul geladen ist!). Man kann auch gleich auf dem Client mitschneiden, so muss der Pi nicht die SD-Karte mit dem unkomprimierten Audio quälen, wenn man mal was digitalisieren will.
Für andere Endgeräte/OSe gibt es sicherlich entsprechende Clients, ist ein offenes, abgehangenes Protokoll.

Ich leg' dann mal 'ne Platte auf ;)

THELI und Debian

Auf einem aktuellen Debian/sid lässt sich THELI nicht so ohne Weiteres installieren - insbesondere wenn man qt3 nicht im System haben möchte. Darum möchte ich das hier kurz durchspielen und auf die Probleme eingehen, die dabei auftreten (können).

  • QT3 installieren
    letztes qt3 runterladen, entpacken, configure, make => Fehler
    Mit GCC >= 4.6 muss der qvaluelist-Header gepatcht werden - siehe Anhang.
  • THELI-Pipeline
    keine Probleme
  • THELI-GUI
    QTDIR auf den Pfad der QT3-Installation setzen. install.sh => Fehler
    Der GUI-Installer verwendet uic/qmake im Pfad, das funktioniert natürlich nicht, wenn man qt3 in irgendeiner anderen dunklen Ecke installiert hat. Deshalb muss install.sh ebenfalls gepatcht werden. Der Patch im Anhang enthält jedoch *nicht* die echten Dateisystempfade sondern nur den Platzhalter THEQTBINDIR. Dadurch kann mein eigenes Install-Skript flexibel zur Laufzeit die Pfade austauschen.

    Den ganzen Prozess habe in einem Shell-Skript zusammengefasst und dokumentiert. Dies nimmt einem auch die Arbeit ab, die Patches runterzuladen und anzuwenden. Dauert auf meiner Kiste alles in allem ca. 45min.

Sternkataloge online mit IRIS

Wenn man IRIS wie ich unter Linux per Emulation (wine) ausführt, gibt es eine elegante Methode, verschiedenste Sternkataloge online einzubinden. So kann man Astrometrie betreiben, ohne den Katalog komplett runterladen zu müssen oder gleich stapelweise Sternkataloge auf CD zu ordern. Dazu sucht man sich nur eine passende FTP-Quelle für den gewünschten Katalog und mountet die FTP-Adresse per curlftpfs an ein lokales Verzeichnis.

  • Vorraussetzungen:
    • Linux-Kernel mit fuse Unterstützung
    • wine
    • curlftpfs
  • Vorgehen am Beispiel USNO-A2.0
    • ggf. Fuse-Kernelmodul laden
      • sudo modprobe fuse
    • ggf. Software installieren:
      • sudo apt-get install curlftpfs
    • mit curlftps mounten
    • IRIS Einstellungen
      • in IRIS das soeben gemountete FTP-Verzeichnis als Katalogquelle eintragen:
        in diesem Beispiel ist root in wine als Z:\ eingebunden
      • im Astrometriedialog den passenden Katalog wählen
  • Probleme:
    • Manchmal scheint mir curlftpfs nicht so 100% stabil zu laufen, mit den oben verwendeten Optionen habe ich aber gute Erfahrungen gemacht. Im Einzelnen sind das:
      • -o cache=no => Cache abschalten
      • -s => Singlethreaded
      • -d => Debug - das hat auch zur Folge, dass curl im Vordergrund bleibt und man auf der Konsole diverse Ausgaben zu sehen bekommt. Wenn hier längere Zeit nichts passiert, IRIS aber weiterhin zu laden scheint, dann ist wahrscheinlich irgendwas hängen geblieben.
    • Je nach Kataloggröße kann der Vorgang sehr lange dauern. Bei mir (DSL 2000) bis zu 10min für den USNO-A2.0. Das liegt natürlich unter Anderem an den o.g. Optionen, da vor Allem das Caching sicherlich Einfluss auf die Geschwindigkeit hat (sonst wärs schließlich nutzlos.. ;).
  • URLs für einige von IRIS unterstützte Kataloge:

Subscribe to Tipps + Tricks