PulseAudio 9.0 erschienen

PulseAudio 9 ist da und lang ersehnte Änderungen wurden umgesetzt.

Sampleraten bis zu 384 kHz möglich

Bislang hat PulseAudio die Sampleraten auf 192kHz begrenzt, was ok ist, wenn man Hifi als Standard nimmt. Mit 384 kHz kann man endlich richtig gute FLAC Aufnahmen wiedergeben, wenn die Audiohardware mitmacht. ALSA, die Advanced Linux Sound Architecture, und Grundlage für Audio auf so fast jeder Linux Distro, braucht die 384 KHz, wenn es Mehrkanaldatenströme abspielen will. Die Macher von PulseAudio weisen darauf hin, daß diese MehrKanaldatenströme noch nicht unterstützt werden, die 384 kHz aber die Voraussetzung sind, es später zu tun. Hoffen wir auf das baldige erscheinen.

Vorgehensweise für Auto-Detection verbessert

PA9 verbessert das logische Verhalten vom Mixxer, wenn Wiedergabegeräte im laufenden Betrieb verschwinden, z.b. weil jemand den Kopfhörer rauszieht, den HDMI Monitor ausschaltet usw.
Kommt so ein Device wieder zurück, ohne das der Benutzer in der Zwischenzeit am Mixxer etwas anderes eingestellt hatte, merkt sich PA9 die alten Einstellungen und stellt Sie wieder her, was meint, daß z,B. besagter Kopfhörer wieder reingesteckt wird und die Wiedergabe sofort dahin umgeleitet wird, weil es vorher auch schon so war.

Beamforming

Was ist Beamforming ? 😀 Ok, wenn man ein ganzes Rudel von Mikros hat, kann man die nun auf einen Punkt ausrichten und das, was alle Mikros laut aufnehmen, wird noch lauter, und alles andere wird leiser. Damit kann man z.b. unerwünschte Nebengeräusche dämpfen und die Sprecher auf einem Podium hervorheben. Das fällt wohl unter Studiotechnik und wird ganz sicher hier im Blog nochmal vorgestellt. Ganz sicher 🙂

Corking

PA9 verbessert den Umgang mit Datenströmen die spezielle Rollen haben. Ein Datenstrom von Skype z.b. ist als „Voice“ getaggt und dementsprechend hat er Vorrang z.b. vor Musik, eine lästige Voreinstellung der man üblicherweise den gar ausmacht, sobald man das mal gefunden hat 😉 Jedenfalls kann man mit PA9 auch Ströme ohne besondere Rolle in seine Konfiguration mit einbeziehen.
Jemand der hier Änderungen vornimmt, hat schon sehr spezielle Vorstellungen von seinem Audiosystem.

LFE remixing wieder abgeschaltet

LFE, das sind besonders tiefe Frequenzen für Subwoofer, und da der LFE Filter nicht richtig funktioniert, ist er defaultmäßig in PA9 abgeschaltet, was Euren Subwooferausgang stumm schaltet. Also nicht vergessen: nach dem Update wieder einschalten.

Es gibt noch mehr Änderungen, aber die sind sehr spezielle und für „Benutzer“ wohl eher uninteressant. Wer es nachlesen will, hier ist der Link.

Wann PulseAudio 9 in Fedora einziehen wird, werden wir sehen.

Pulseaudio – 15 Multiband Equalizer

Wollt Ihr es so richtig krachen lassen !? WOLLT IHR DAS !?!

Dann ist das hier Euer neues Spielzeug, der 15 Band Equalizer für Pulseaudio als Fedora Build 🙂

Pulseaudio-EqualizerDa es sich im ein Plugin für Pulseaudio handelt, profitieren sofort ALLE Anwendungen davon. Natürlich nur wenn man das will, schliesslich kann man alle Ausgaben der Programme auch wieder direkt an das „ungepimpte“ Ausgabedevice senden.

Kleiner Schönheitsfehler: Wenn man Buttons wie „Apply Settings“ benutzt ruckts kurz im Playback. Das ist unschön.

Dafür hat das Plugin eine Mörderverstärkung auf Lager die den QMMP Equalizer ganz bequem in den Schatten stellt. Beim ersten unbedarften Ausprobieren der Regler wären meinem Kopfhörer fast die Membranen gerissen ( Nein, ich übertreibe nicht, ich meins ernst. ) . „Mörderverstärkung“ trifft es sehr gut.

Wo bekommt man das Plugin her ?

Entweder aus dem Systemrepository von Fedora oder aus dem Koji Buildsystem. Ich habe Euch die Koji Links rausgesucht :

Download Section:

Koji Link für Fedora 23 32/64 : pulseaudio-equalizer-2.7-16.fc23( RPM )

Koji Link für Fedora 24 32/64 : pulseaudio-equalizer-2.7-17.fc24( RPM )

Koji Link Fedora : für alle verfügbaren Builds

… und jetzt freu ich mich auf Mombasa vom Inception Soundtrack played by 2Cellos, das wird knallen!

FLAC auf Linux abspielen

Free Lossless Audio Codec, kurz Flac, ist ein verlustloses Dateiformat, was man auch daran sieht, daß die Dateien echt groß sind, z.B. 31 MB für diesen Song unten. Das MP3 mit 320kbit Encoding ist nur 1/3 so groß.

Wer Nautilius als Filemanager hat und seine Musik mit QMMP wiedergibt, der hat es wirklich einfach Flac abzuspielen. Dazu muß man QMMP nur im Nautilus als Defaultanwendung für Flac angeben:

Eigenschaftenmenü der FLAC Datei

Eigenschaftenmenü der FLAC Datei

Rhythembox kann zwar auch Flac, aber das ist kein Programm, daß man zum Hören von Musik nebenbei laufen lassen will. Das kompaktere QMMP als AMP Ersatz ist da natürlich besser geeignet, zumal es auch lizenzbehaftete Musikdateien abspielt.

Wer Flac kodieren will, braucht natürlich erstmal ein Rohdatenfile in dem die Daten verlustlos vom Musikträger kommt. Es macht z.b. keinen Sinn, ein 128 kbit mp3 in Flac umzuwandeln, dadurch wird es nicht besser, nur größer 😉 hat man sowas, kann man ffmpeg einsetzen, der dann Dank Encoder Flake, ein Flac File erzeugen kann.

Beispiel:

ffmpeg -i ‚/home/marius/Boston – More Than A Feeling – 320k VENYL.mp3‘ -c:a flac ‚/home/marius/Boston – More Than A Feeling – 320k VENYL.flac‘

Wie man am Beispiel sieht, habe ich zu Testzwecken das Flac aus einem MP3 erzeugt, es können aber dank FFmpeg so ziemlich alle Format verwendet werden, die es gibt. Die durchschnittliche Kompressionrate von Flac liegt bei 1,8x zum Original.

FFMpeg kann viele verscheidene verlustlose Codecs benutzen:

 D..... = Decoding supported
 .E.... = Encoding supported
 ..V... = Video codec
 ..A... = Audio codec
 ..S... = Subtitle codec
 ...I.. = Intra frame-only codec
 ....L. = Lossy compression
 .....S = Lossless compression
 D.VI.S cllc                 Canopus Lossless Codec
 D.VI.S lagarith             Lagarith lossless
 .EVI.S ljpeg                Lossless JPEG
 D.VI.S mszh                 LCL (LossLess Codec Library) MSZH
 D.VI.S vble                 VBLE Lossless Codec
 D.V..S zerocodec            ZeroCodec Lossless Video
 DEVI.S zlib                 LCL (LossLess Codec Library) ZLIB
 DEA..S alac                 ALAC (Apple Lossless Audio Codec)
 DEA..S flac                 FLAC (Free Lossless Audio Codec)
 D.A..S mlp                  MLP (Meridian Lossless Packing)
 D.A..S mp4als               MPEG-4 Audio Lossless Coding (ALS) (decoders: als )
 D.A..S ralf                 RealAudio Lossless
 .EA... sonicls              Sonic lossless
 D.A..S tak                  TAK (Tom's lossless Audio Kompressor)
 D.A..S wmalossless          Windows Media Audio Lossless

Für das Kodieren von Audiodaten kommen also  „ALAC“,“FLAC“ und „Sonicls“ infrage.

Obige Liste bekommt man so :  ffmpeg -codecs | grep -i -E „(lossless|=)“

Kleine Randnotiz: Marianne war, Zitat: „Das schönste Mädchen, das ich (als Junge) je gesehen hatte.“ so Komponist & Texter Tom Scholz, der das Lied in seiner Garage aufgenommen hatte. Mary Jane dagegen, Gegenstand der Beatle Songs, war ein Pseudonym für Drogen aller Art. Die Band Boston wurde mit dem Lied auf einen Schlag weltberühmt und das Album war jahrelang ein Bestseller in den Läden, mit über 17 Millionen verkauften Alben, allein in den USA. Der Gag, Tom Scholz hat am MIT die Polaroid Technik entwickelt und mit der Kohle seine Musikaustattung gekauft. Vom Foto-Chemie Studenten zum Musiker, alle Achtung.

 

Linux, Android und die PA

Nein, die PA ist keine unbekannte Regulierungsbehörde für Linuxe aller Art 😀 Eine PA meint die Beschallungsanlage auf Veranstaltungen deren Zielgruppe das Publikum ist.

Aber was hat das mit Linux zu tun ?

Wer mein Blog beobachtet hat, wird wissen, daß ich eine ganze Reihe von Beiträgen zum Thema Audiodatenströme im Netz veröffentlicht habe. Wir können von Linux an Linux senden, von Linux an Android und von Android zu Linux , aber eins hatten wir bislang nie: Livestreaming.

Ok, so ganz stimmt es nicht, weil Pulseaudio jede angeschlossene Tonquelle umrouten kann, und damit auch Liveton, aber von Android hatten wir das bislang nicht. Das wird sich jetzt ändern.

Wir brauchen :

Android: AirAudio
Linux: Rygel ( oder Kodi )

Ein Wort zu Kodi.. vieles von dem, was ich hier schon vorgestellt habe, geht auch mit Kodi als Empfänger und das sogar einfacher, weil Kodi ein echt gutes Produkt ist. Allerdings hat Kodi den Nachteil, daß es recht groß ist, weswegen kleinere Lösung preferiert werden. Leider hat es auch eine 6 Sekunden Verzögerung mit dem was wir heute machen wollen und das geht gar nicht 🙂

Erstmal Rygel starten

Zunächst mal starten wir Rygel in der Konfiguration vom letzten mal. Kleines Update dazu: man benötigt GStreamer für Rygel und da das MP3 Decoder Plugin sonst geht es nicht. Ich selbst hatte auch Probleme Rygel auf meinem Laptop zum Laufen zu bringen, wenn es nicht will  -> Kodi nehmen.

AirAudio starten

Groß konfigurieren muß man AirAudio nicht, aber ein paar Anmerkungen sind angebracht. Das Programm kann an fast alle gänigen ( und ein paar mir völlig unbekannte Produkte ) Daten senden. Wenn man AirAudio das erste mal startet, streamt es das ins Handy eingebaute Mikrofon ins Netz, es kann aber auch die Ausgaben von fast jedem installierten Programm als Quelle benutzen, weil es die Lautsprecher anzapft 🙂 Wir brauchen das Mikro.

In den Einstellungen tragen wir für AirPlay eine Verzögerung von 0 Sekunden ein, 0,5 Sekunden wäre wohl auch noch möglich, aber man sollte immer bedenken, das die PA auch noch eine Verzögerung hat und nichts ist schlimmer, als wenn der Sprecher schon irgendwas macht, aber aus der PA noch Texte von vor 10 Sekunden kommen 😉  Ist das Netz stabil, sind 0,0 Sekunden vollkommen ok.

Screenshot_2016-05-14-18-38-00

Android – AirAudio

Wenn man schon beim Konfigurieren ist, kann man gleich noch bei DLNA MP3 einstellen. Das hat zwar heute keine Auswirkungen, aber wenn man z.b. mal seine Familie beim Smartfernsehen beglücken will … 😀 Mit diesen Apps läßt sich soooooviel Spaß haben .. Totenkopf oder bei Internetaffineren Anonymous Logo aufm TV, oder man steht vor der Tür und „klopft digital an“.. Möglichkeiten ohne Ende 😉

Wenn wir mit Konfigurieren fertig sind, aber meisten schon beim Einschalten der App, finden wir eine Liste mit „Listenern“ zu denen wir Senden können. Es ist kein Multicast im Spiel, also sendet man i.d.R. nur an einen Empfänger. Man kann in der Liste aber auch mehr als einen anschalten. Wo ich grade so drüber nachdenken, macht das auf verteilten Veranstaltungen Sinn, wenn verschiedene Räume mit mehreren PA genutzt werden. Bei wichtigen Durchsagen, z.B. wenn es brennt oder etwas andere wichtiges passiert ist, könnte man sich bequem überall draufschalten.

Wenn es dann geht …

sieht und hört man das im Pulseaudio Mixer :

Rygel - Audiostream in PulseaudioJetzt wo es im Pulseaudio ist, könnte man es natürlich gleich wieder auf den Multicast schicken und … aber ab hier übernimmt die eigene Verstellungskraft 😉

Wozu das ganze, es gibt doch Funkmikros ?!

Stimmt, es gibt Bluetooth Mikros, Funkmikros und alles mögliche. Warum also so etwas nehmen? Natürlich a) weils geht und b) weil die meisten ein Handy haben, und damit zusätzliche Ausrüstung unnötig wird. je weniger man mit sich rumschleppen muß, desto besser 🙂 Peinlich wird es nur, wenn während des Vortrags die Mama anruft 😀 Um das zu verhindern, einfach das Handy auf Stumm stellen. Das Mikro geht trotzdem.

Followup: Fedora: Audio auf Android streamen

Im Beitrag Fedora: Audio auf Android streamen wurde eine Methode vorgestellt, wie man den Desktopton schlank zum Android bekommt. Dazu war ein eigener kleiner Streamserver nötig.

Hier nun eine Methode die mit PulseAudio und einem APK auf dem Android auskommt.

Auf Linux starten wir als User erstmal das Streammodul für PulseAudio:

pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2  record=true port=8000

Dann installieren wir auf dem Android dieses APK: PulseDroid

Wir starten den PulseDroid auf dem Androidgerät und tragen die LAN IP des Linuxrechners mit dem Port 8000 ein. Auf Start klicken und schon rauscht es. Das liegt daran, daß jetzt der „Default“ Ton des Linuxrechners übertragen wird, was das Mikro sein dürfte. Im PulseaudioMixer stellt man jetzt einfach die Quelle des Tons so ein, wie man das braucht und schon hört man es auf dem Android.

Wer direkt etwas anderes streamen will, der kann auch direkt die Quelle angeben:

pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2  record=true port=8000 source=pa quell device>