Kernel 5.3.16 mit HDMI-Audio Problemen

Na klingeln Euch auch noch die Ohren? Mir tun die jetzt noch weh! Wer eine NVIDIA Grafikkarte und einen aktuellen 5.3.16 Kernel einsetzt, der sollte jetzt kein HDMI benutzen.

Kernel Regression durch Patch für eine andere Regression

Es ist immer blöd, wenn der Fehlerfix mehr Probleme macht, als er behebt. So geschehen im neuen 5.3.16 Kernel, wenn man eine NVIDIA Karte hat. Wie Takashi Iwai von Suse dazu schreibt:

The commit e38e486d66e2 („ALSA: hda: Modify stream stripe mask only when needed“) tried to address the regression by the unconditional application of the stripe mask, but this caused yet another
regression for the previously working devices. Namely, the patch clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this may be called multiple times before restarting the stream, so this
ended up with clearance of the flag for the whole time.

Hat da wohl jemand eine Kleinigkeit nicht bedacht aka die falsche Stelle gepatched 😉 Als Resultat fallen einem fast die Ohren ab, weil die Lautstärke des HDMI Streams so derbe übersteuert klingt, daß selbst 2% Lautstärke nur als Lärm bezeichnet werden können. Ich vermute das hier die Audiodaten im falschen Format angeliefert werden, wo alles was leise wäre, extrem laut ist z.b. LE statt BE Sortierung der Bits.

Die Lösung

Natürlich gibt es eine einfach Lösung für das Problem: 5.3.15 booten oder bis zum nächsten Kernelupdate kein HDMI benutzen 😉

Update:

Laut Laura Abbot von Red Hat wird der Fehler nicht mehr in der 5.3er Serie behoben, was ich bislang bestätigen kann, denn der 5.3.18 hat die gleiche Macke. Es soll stattdessen gleich der 5.4.0 Kernel gebaut werden. Frau Abbot bemüht sich darum, daß der Patch bereits in 5.4.0 einfliesst.

Der Soundbug ist auch unabhängig von den Treibern, aber das habe ich nicht anders erwartet.

Update: wurde in 5.4.5 gefixt.

LAHA jetzt auch auf Raspberry PI

Jetzt ist es also passiert, die LAHA Multiroom HomeAudio-Lösung läuft auf der Zielplattform Raspberry PI.

Was war jetzt LAHA nochmal?

Kurzform: Damit kann man Audio an mehrere Endgeräte streamen … verteilen, so daß es überall im Gleichklang erschallt. Hervorgegangen ist das aus einer einseitigen Wette mit den Heise Redakteuren, das man das auch ohne Bäng & Teufelschen Co. mit OpenSource hinbekommt : LAHA – Netzwerklautsprecher mit Linux . Wie sich herausgestellt hat, geht das auch, nur leider nicht ganz so wie anfangs geplant. Das es trotzdem geht, bedeutet natürlich einige Einschränkungen oder Umstellungen.

PulseAudio

Wenn man PulseAudio mit einem römischen Gott vergleichen wollte, wäre es Janus, der Gott mit den zwei Gesichtern. Auf der einen Seite ist PulseAudio echt super einfach, z.b. beim Abnehmen des Sounds vom Player und dem ins Netz stellen, auf der anderen Seite könnte ich dem Entwickler auch gern mal eins reinwürgen, weil die interne Latenzkontrolle Ihren Job nicht macht. Da letzteres nicht sauber klappt, könnte man auf AlsaPlay ( aplay ) ausweichen, aber das benutzt, sobald PulseAudio da ist, richtig geraten, PulseAudio als Backend, womit die Latenzfalle wieder da ist … ächtzzzz. Man hats nicht leicht mit der OpenSource-Plattform 🙂 Es nutzt ja auch nichts, daß es Open-Source ist, wenn bei so komplexen Dingen wie PulseAudio Modulen/Programmen zwar der Source lesbar ist, aber auf 1000 Zeilen Code genau 2 Kommentare kommen und dazu grober C UnFoo getrieben wird.

Das Raspberry PI

Nachdem Android und der lokale PAPLAY Backend soweit waren, daß man darüber was abspielen konnte, ohne das es gleich sofort zusammenbrach, war gestern das Raspberry PI dran. Eine genervte Viertelstunde brauchte es schon um das RasPI Image auf die 64GB SD zu bekommen, dazu morgen mehr, aber am Ende war das Pi dann doch kooperativ, bis .. ja bis PulseAudio installiert wurde 🙁 Das lief zwar auf dem PI und mit den nötigen Zusatzprogrammen war das auch nett, aber, und das ist entscheidend, die PI Devs haben der PulseAudio-Welt den Hardwarehack vorenthalten, mit dem Sie den Sound auf den Kopfhöreranschluß umlegen. Ums kurz zu machen, solange PulseAudio installiert und aktiv ist, geht das nicht über die Kopfhörerbuchse, sondern immer über HDMI raus, egal was die Oberfläche sagt.

Da gab es natürlich nur eine Lösung: Back to the Roots aka. PulseAudio wieder löschen, rebooten und Alsa als Backend benutzen. Wenn man dann dem PI erzählt, daß es den Kopfhörer nehmen soll, dann geht das auch.

Der Stand der Dinge

Wir haben jetzt also PI Playback und das auch synchron mit dem Desktop PC und Android. Android ist auch so eine Krankheit für sich, aber das nur neben bei. Es gibt schon Beweisvideos, allerdings war es bislang für Filmaufnahmen zu dunkel, Ihr müßt Euch nicht mehr gedulden, unten ist ein Video mit 4 Geräten zusehen. Damit Ihr Euch schon mal ein Bild davon machen könnt, wie das funktioniert, hier selbiges aus der LAHA Präsentationsfolie :

Der Aufbau von LAHA als Flußdiagramm

So war das bis gestern angedacht, nun muß der RasPi Teil aber auf ALSA als Backend umgebaut werden, weil PulseAudio ja nicht kann 😀

LAHA und die Latenzfalle

Kleines Update zu LAHA, dem Multiroom Sound und PulseAudio.

Stand der Dinge

Wie man es drehen und wenden will, die fertigen Tools zum Abspielen von PCM Sound haben alle irgendeine Macke.

PAPLAY benutzt PulseAudio. Das ist praktisch ein Todesurteil für eine stabile Latenz.
APLAY   benutzt Alsa, das defaultmäßig … PulseAudio benutzt. Siehe erstens 🙂
*JACK*  nun Jack möchte gern alleine tätig sein, ohne Konkurrenz. Fällt auch aus.

Da APLAY und PAPLAY per Default einen PA Stream zum Abspielen benutzen, haben beide in der Form das gleiche Problem: Die Audiolatenz des Playstreams steigt mit der Zeit an. d.b. alle anderen Geräte müßten mitwandern. Blöd nur, das Androids gar keine Latenzwanderung haben und selbst wenn Sie es hätten, wäre das eine blödsinnige Lösung. Jetzt fragt Ihr Euch natürlich: was labbert der da? Da muß man jetzt weiiiiiit ausholen.

Also, wenn man mit PAPLAY Sound ausgibt, geht PAPLAY zum PAServer und sagt dem, das DER eine Latenz wählen soll. Das macht der dann auch, nachdem die ersten Daten geflossen sind und die pegelt sich mit 16Bit Stereo und 48000″hz“ bei rund 1,9s ein. Richtig gelesen 1,9 Sekunden. Nach 40 Minuten sind wir bei knappen 5 Sekunden, wenns dumm läuft. Wenns gut läuft bei 2,4s . Das entscheidet PA selbst, ich nehme an, nach internen Fehlberechnungen aller gestarteten, gestoppten, bewegten etc. Streams die auf dem System drauf sind. Ich hab es noch nicht im Source gefunden. Es ist eigentlich das Ziel eines Audioservers die Latenz niedrig zu halten, aus irgendeinem Grund, ist dem PA-Latenzalgorithmus das egal.

Wenn man jetzt denkt, daß der Befehl ja eine OPTION für die gewünschte Latenz hat und sich schon freut, daß die dann ja als Ziel eingehalten wird .. ähm ja, also wie soll ich das Schreiben ohne verklagt zu werden??? Lieber nicht, hier ein Beispiel: 500ms angegeben, Latenz beginnt bei 320ms und wandert pö-â-pö so Richtung 500ms, durchbricht den Median, und verschwindet alsbald jenseits von Gut und Böse im Sekundenbereich.

Wenn man auf die glorreiche Idee kommt, da das anzugeben, was der Algo vorher selbst ausgerechnet hat, dann bekommt man nicht 1,9s , nö, mehr so 1s+- und dann kommt das gleiche Spiel wie vorher bei 500ms.
Ja, man könnte jetzt die PAPLAY-Routine kapern, den anderen Geräten die Latenzen mitteilen und denen somit zu einem Sync verhelfen. ABER.. die Latenz wird ja immer größer, was bedeutet, daß bei jedem neuen Sync mehr Zeit vergeht, bis man was hört. Also auch mal 5 Sekunden schwarzes nichts. Das ist hochgradig Inakzeptabel.

Bugreports sind raus, werden nicht helfen, weil (C) endet 2006 . Sieht nicht so aus, als wenn da wer dran arbeitet.

Kommen wir zu ALSA

APLAY kann ALSA-Devices direkt ansprechen. Warum nutzen wir dann nicht APLAY, statt PAPLAY ? Gesagt, getan. Versuchts mal, viel Glück dabei. Das geht mit etwas Glück genau einmal und auch nur auf einem Device, aus das PA grade nichts ausgibt. Ist auch klar, weil PA ja ALSA als Unterbau hat. Wir erinnern uns, daß PAPLAY 1,9s Latenz hatte. APLAY, wenn man ein Device findet, das geht, hat 0ms und das Startdelay ist nicht ganz so funktional, wie sich APLAY das wünscht aka. auch buggy. ABER, 0ms sind cool, weil Android auch 0ms haben kann, ohne dabei drauf zu gehen. Der Lesezugriff für Netzwerkdaten für „16 Bit Stereo 48k“ auf einem Android liegt bei 1ms. d.b. nimmt man ALSA als Player und bekommt das Device frei, hat man eine echt geile Latenz von 1-2ms und das hört man nicht!

Der Resync

Jetzt gibt es allerlei Hürden, die man umschiffen muß. Androids fliegt das eigene Multitasking um die Ohren, da fängt der Ton dann an zu stottern. Vorwarnung : keine. Gegenmaßnahmen: derzeit unbekannt.Das funktioniert auf dem Desktop etwas besser.

Bei 0ms Latenz ist der Resync instant, da könnte man versucht sein, einfach pauschal alle paar Sekunden mal helfend durch einen Socket.close();Socket.connect() einzugreifen. Könnte klappen, muß nicht.Ist aber eine Option, wenn der Wiedergabetask das nicht merkt. Geheimtip: Vorsicht vor doppelten Daten im AudioBuffer. Vergleicht mal, ob Ihr nach dem connect()+read() einen Teil davon schon habt und schmeißt den raus.

LAHA

Unser ControllCenter steuert jetzt bereits beliebig viele Devices, kann Audiostreams von laufenden Apps kapern, z.b. MPV, FireFox etc. , hat diverse Backends zum Abspielen auf dem Desktop, könnte verschiedene Musikplayer als Quelle nutzen und damit auch Last.FM, Spotify etc. realisieren. Er verschiebt Metadaten, findet neue Geräte im Netz, erlaubt Endgeräten mit Screen ihn fernzusteuern und hat bereits erfolgreich ein Handy als Drahtloskopfhörer für Videos laufen gehabt. Dank MPVs negativer Latenz und der frei einstellbaren Endgeräte Latenz, kann man alles perfekt ausrichten 🙂

Wir sind also auf dem richtigen Weg. Ob das allerdings vor Weihnachten 100% zuverlässig läuft, kann ich nicht garantieren. Trotz des ganzen Frustes mit den Bugs der Anderen, hat das Projekt endlich mal wieder Spaß beim Programmieren beschert. Und das ist doch, weswegen man es tut, oder nicht 😀

Neues von LAHA

Kleines Update zum kleinen heimischen Audioverteilprojekt. Wie ich hier: Multi-Netzwerk-Lautsprecher mit Linux bereits nach einige Stunden zeigen konnte, klappt das mit dem latenzgleichen Abspielen von Audio im Netz bereits mit Linux Bordmitteln.

Endlich mal wieder was los…

In einer abendlichen Dauerprogrammiersession habe ich in wenigen Stunden eine Client-Server Testsuite gebaut, die bereits funktional ist. Wenn ich von Client rede meine ich die Abspieleinrichtung, die aber als Serverkomponente ausgelegt ist. Bitte merken um Verwirrungen vorzubeugen.

Die Kommunikationsarchitektur kommt auch mit einer rudimentären Anti-kaper-Funktion daher, so daß WLAN Gäste den Clienten nicht übernehmen können. Das beugt z.b. dem Problem vor, daß in einem Netz vielleicht mehr als eine Control-Anwendung läuft. Vielleicht wollen ja die Kinder was anderes hören als die Eltern 😉

Die Kontrolleinheit

Was jetzt noch neben einigen Funktionen fehlt, ist das Kontroll-Center. Das Kontroll-Center sollte ein ansprechendes Äußeres haben, aber ob das mit Swing was wird .. fraglich 😉 Ich lasse mich mal überraschen. Das war ein implizites Ja, wie in Java 😉 Kein rumpliges Python, kein PHP, NodeJs oder Ruby.. Java. Wieso?
A) machts was es soll und B) bekommt Ihr raus, wenn der Source released wird 😀

PS: Wofür LAHA steht, wird später verraten 😉

Multi-Netzwerk-Lautsprecher mit Linux

Wer den kleinen Rant über die selbstverschuldete Unselbstständigkeit der Heise-Redakteure gelesen hat, und aufmerksam am Ball geblieben ist, dem seit hiermit mitgeteilt, daß ich die geäußerte Drohung wahr gemacht habe 🙂

War jetzt nicht so richtig schwer

Ich habe ein Latenzgleiches Playback von QMMP an 3 Abnehmer realisiert – mit Bordmitteln!

PulseAudio-LautstärkenkontrolleDa ich natürlich nur begrenzt Rechner habe, habe ich als Abnehmer auch die Lokalen Audioschnittstellen benutzt (oben im Bild)  um die Latenzgleichheit zu testen.

Ein Laptop im WLAN diente als Kontrolle und es klappt bislang 1a 🙂

Ich werde jetzt wohl eine Steuersoftware bauen, die die nötigen Befehle kennt und Einstellungen bereitstellt, aber das ist kein Hexenwerk mehr, sondern reine Fleißarbeit.

PulseAudio und WLAN-Technik aus der POST-Avengers Ära machen es möglich.

Android ist schneller

Eine Probe mit Android als Abnehmer war auch erfolgreich, aber nicht synchron. Liegt vermutlich an dem kleineren Buffer der App im Vergleich zum PC-Programm. Da ich den Sourcecode habe… 😀 Ich muß da eh ran, also kein Aufwand.

@Heise: Told you so! OpenSource rulz.

Schaut mal in einige Wochen rein, obs was nettes zu Weihnachten für Euch gibt 😀

Falls einer eine praktikable Idee hat, wie man ein Fabrikneues Raspi in ein WLAN ohne Tastatur und Monitor bekommt ( WPS-Taste z.b. ) dann findet Ihr im Haupt-Impressum eine Kontaktemailadresse.

Kleine Anmerkung

Für Videos abspielen braucht man einen Player wie MPV mit dem man die -2900ms Audio/Videoversatz ausgleichen kann.

Lollypop – Musikplayer für GNOME

Keine Panik, auch wenn wir wieder einen Beitrag aus der Serie „Musikplayer, die die Welt nicht brauchen“ haben, das wird nicht meine Hauptinspiration für Beiträge sein 😉 Es hat sich halt grade so ergeben.

Lollypop – ein GNOME Musikplayer

Lollypop Window in Schwarz

Irgendwas ist komisch bei GNOME. Pogo und Lollypop kommen beide ohne Lautstärkeregelung daher. Falls es Ziel der Übung war, in der Desktopleiste die Lautstärke zu regeln, muß ich Euch GNOME-Entwicklern leider sagen: Nicht immer will man die Gesamtlautstärke aller Anwendungen gleichzeitig regeln.

Meistens nur die, des Musikplayers alleine 🙂

OK, kommen wir zum Test. Dieser Player hat deutlich mehr Features zu bieten, als Pogo. ich konnte den Equalizer zwar nicht entdecken, aber dafür ist die Auswahl des Musikstücks schön gelöst.

Das Programm durchsucht beim Start erst mal alles was es in „Musik“ so findet. Die daraus resultieren Listen sind brauchbar aufgebaut. Bei längeren Listen gibt es eine A-Z Direkklickleiste, die dann sichtbar wird, wenn man sie braucht. Das in sich sinnvoll gelöst.

Die Standartfunktionen Vor- und Zurückspulen, Pause,Play und Position im Musikstück sind vorhanden. Es gibt eine Ansicht, der in MP3s eingebetteten Bilder zum Album:Albumbild des Künstlers

Man kann sich die Albumfotos auch aussuchen, sofern eine ImageURL angegeben ist. Einfach mal aufs Bild klicken und das rechte Symbol nehmen, seht Ihr dann schon.

Eigene Playlists zu erstellen ist auch einfach. Die vier Jahre Entwicklungszeit merkt man an einigen Stellen schon positiv 😉

„Aufklärung ist der Ausgang des Menschen aus seiner selbst verschuldeten Unmündigkeit. (Kant)“

Und auch wenn die Heise-Redakteure derzeit der Meinung wären, das es ja nur noch Spotifyuser gäbe und selbst GBweise MP3s & Co auf der Platte zu lagern „oldschool“ wäre, muß ich denen leider sagen: Ihr seid so am Arsch, wenn Spotify Euren Account dicht macht oder die Telko Eure Daten nicht mehr transportieren kann oder will, aber so was von. Geht Ihr dann eigentlich zu Youtube oder wie sieht Eurer Plan aus ?

Ihr gebt Eure Interessen bei Google ab, liefert Eure Daten Microsoft oder Apple aus, ladet Eure Videos bei YouTube hoch und hört nur noch, was Spotify Euch vorgibt. So sieht Abhängigkeit und Unselbstständigkeit in Perfektion aus. Zu allem Überfluss bezahlt Ihr auch noch dafür abhängig zu sein. Dümmer geht es eigentlich nicht mehr.

Dabei kann alles so einfach sein, auch mit Netzwerklautsprechern, was sogar mit Linux-BORDMITTELN geht! Wen kümmern schon die 16 KB/s pro Lautsprecher im Lan? Rasphi an die Wand, Lautsprecher dran, Kodi als Mediencenter und Yatsi als Handyapp und schon hat man das zusammengesteckt. Latenzen von einem Raum zu anderen sind lediglich ein Problem im Großraumbüro. Wenn man eine Wohnung hat, ist die eh so verwinkelt, daß man nicht hört, was in der Küche grade spielt. Und selbst das könnte man über eine Latenzverzögerung einfach lösen.

Aber wer sich in Abhängigkeit von Anderen begibt, ist halt selbst Schuld! @Heise: Während ich Euch neulich zugehört habe, hatte ich mir eine MindMap mit einer selbstgebauten Lösung zusammengestellt. Da man lediglich das PulseAudio Modul auf dem PC mit dem Mediencenter erweitern muß, sollte das in Tagen zu machen sein, wenn man den Willen dazu hat. Vermutlich wird man erstmal den Code des Vorentwicklers verfluchen, aber naja, das wird schon 😀

Haben oder nicht haben

Lokale MP3s, Oggs oder ACC zu haben, erlaubt es einem, z.b. Fehlmischungen der Studios zu beheben, Störgeräusche zu filtern und seltene Aufnahmen, die Spotify & Co. nie sehen werden, zu hören. Ich sehe da keine Alternative zu, um ehrlich zu sein. Die Abmischungen der Radio Edits sind meistens so mies auf Lautstärke getrimmt, statt auf Klang, das einem die Ohren bluten. Da lobe ich mir die Studioalben (LP/CD etc), denn die sind i.d.R. ordentlich abgemischt² und steigern das Wohlbefinden noch, statt den Gang zum Hörgeräteakustiker unausweichlich zu machen.

Am Ende bleibt einem eh nur Kant und die Frage, ob man sich selbst am Schopf aus den selbstgewählten Abhängigkeiten zieht, oder halt im Sumpf untergeht.

² okok, ich habe da auch schon anderes erlebt, z.b. „Andrew W.K. – Ready to Die“ das Album von 2000 war so schlecht, daß ich zum ersten mal eine CD an einen Verkäufer zurück geschickt habe, mit Verdacht auf Raubpressung wohlgemerkt, weil die Quali so schlecht war. Ich habe dann lernen müssen, daß die Quali wirklich so grottig war. Irgendein Depp von Studiotechniker hatte damals den Satz „Das Upsampeln wir von 32kbps einfach“ fallen lassen und naja, wer sich das antut hat danach was an den Ohren. Der Aufnahme konnten auch die Compressions im Codec nichts mehr antun 🙂 Das Album in 320kbps neu eingespielt .. wow.. das wärs. Das Album an sich wäre ein Meilenstein, wenn es nicht qualitativ so schlecht wäre 😉

Pogo – Fast alles was man braucht

Aus unserer Serie „Musikplayer – Ihre Clone und Konkurrenten“ heute „Pogo“.

Pogo – fast alles drin..

.. was Puristen so nicht haben wollen könnten. Puristen deswegen, weil, naja , nicht mal eine Lautstärkeregelung dabei ist :

In der Theorie könnte man die Lautstärke über den Equalizer regeln, aber dazu ist der wirklich nicht da 🙂 Aber, hey, es ist ein Equalizer dabei 🙂

Das Programm tut, was es soll: Es spielt Musik ab.

Es ist dabei intuitiv zu bedienen, was fast ohne Bedienkontrollen nicht weiter schwer ist 😉  Da es außer Play/Pause, Trackskip, dem Dateiwähler und dem Fortschrittsbutton leider so gar keine Funktionen zu erklären gibt, wird das ein recht kurzer Beitrag 😉

Einzig zu erwähnen beleibt nur noch, daß das Einstellungsfenster die HauptGUI blockt, weil das nicht als eigener Thread, sondern als Unterfenster aka Unteroutine realisiert wurde ( Anfängerfehler 😉 ) . Mal sehen was Version 2.0 bringt, ich behalts mal im Auge 😉

 

Pulseaudio, Mumble und der Korken

Wenn man auf einem modernen Audiosystem wie unter Linux, verschiedene Sounds gleichzeitig abspielen will, kann es Konflikte geben, was man definitiv hören will und was nicht. Einige Entwickler haben daher Prioritätsklassen für bestimmte Soundapps implementiert.  Da wären „Games“,“Phones“,“Musik“,“Apps“ und alle anderen 🙂

Den Korken benutzen

Wenn man als VOIP Anwendung z.b. ein Klingel abspielt, dann sollte das Priorität vor der Musik haben, so daß man das auch hören kann, genau wie das resultieren Gespräch. Gleiches kann auch für Gruppenchats wie Teamspeak oder Mumble gelten. Damit das klappt, gibt es das „module-role-cork“ von PulseAudio. Ist das in der /ect/default.pa aktiviert, funktionieren diese Sachen, weil jede Anwendung Ihrem Soundstream die Role mitgibt, die ihm zu kommen sollte.

Wenn man das Module deaktiviert, sind alle Sounds wieder gleichrangig.

… oder doch nicht ?

Mumble, eins der Backbones der modernen Spielewelt, zusammen mit Teamspeak vermutlich das meistbenutzte VOIP Gruppenchattool, hat sich gedacht: Hey, wieso darauf verlassen ? Machen wir doch einfach eine Funktion, die alle anderen Anwendung leiser macht, während jemand redet!

Das kann man in den Mumble Einstellungen einstellen und das sollte aus sein, bis… ja bis ein Update die Konfig schrottet und man plötzlich denkt, daß PulseAudio durchdreht, weil module-role-cork aus ist, es aber doch stattfindet 😀

Wie man es abschaltet

In den erweiterten Einstellungen  -> Audioausgabe die beiden Boxen „Während andere Benutzer sprechen“ und „Während Sie sprechen“ abschalten. Fall gelöst :

Mumble Audioprefs

mit FFMPEG von Mono auf Stereo wandeln

„Mono“ dürfte für die Kids von heute ein Fremdwort sein, aber wer mit alten Aufnahmen zurecht kommen muß, stolpert auch heute noch darüber. An sich wärs ja nicht schlimm, weil 1 Kanal weniger Platz wegnimmt, als 2 und man ja von der Stereoumwandlung nichts weiter hat, oder doch ?

Es zeigt sich, daß Updates nicht immer alles besser machen 🙂

QMMP, der wohl beste Player für Linux, hatte vor einigen Jahren noch die Eigenschaft, bei Mono Mp3s, die eine Spur auf beiden Kanälen abzuspielen. Leider hat er das verloren, was mich jetzt dazu nötigt, doch den Unsinnsschritt  von Mono auf Stereo zu machen, wenn doch noch mal ein Mp3 mono ist.

Und so geht es das ganz einfach :

# ffmpeg -i mono.mp3 -ac 2 -c:a:0 mp3  stereo.mp3

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‚mono.m4a‘:
  Metadata:
    compatible_brands: iso6mp41
    creation_time   : 2016-12-11 07:18:29
  Duration: 00:03:30.72, start: 0.000000, bitrate: 95 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 4 kb/s (default)

Output #0, mp3, to ’stereo.mp3′:
  Metadata:
    compatible_brands: iso6mp41
    TSSE            : Lavf57.41.100
    Stream #0:0(und): Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp (default)
      encoder         : Lavc57.48.101 libmp3lame
Stream mapping:
  Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame))

 

JackD – Der Störenfried

Völlig überraschend kam heute für mich ein Ausfall des Hauptaudiodevices im Pulseaudio, nämlich das Interne Audio Device vom Mainboard. Das Mainboard ging aber noch und ansonsten gab es auch kaum interessantes zu melden, außer, daß die Programme die Audio benutzen wollten alle im Mixer festhingen.

Was konnte also die Ursache sein ?

In solchen Fällen wird es hilfreich sein,  also-info.sh zu starten und mal einen Blick in die Ausgabe zu werfen. Gedacht, getan:

!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - Yes

Jack:
      Installed - Yes (/usr/bin/jackd)
      Running - Yes

Was zum Geier ist Jack ?

Der Gedanke kam mir zwar nicht, aber wer es nicht weiß, unter Linux Audiosystemen gibt es die großen drei Alsa, Jack und Pulseaudio. Auf Fedorasystemen ist die Kombination aus Alsa und Pulseaudio im Desktopbereich normal. Jack führt eher so ein Nischendasein, was aber einige Tools nicht davon abhält auf Jackkomponenten zuzugreifen z.B. Calf , weswegen es auf einem Desktop durchaus vorhanden ist.

Ok, es war da, aber was hat das mit dem Ausfall zu tun ?

Wie wir oben sehen können, liefen zwei SoundServer und das kann nicht klappen, wenn man nicht jedem der Server sagt, für welches Device er zuständig sein soll. Könnte ja sein, daß man eine SpezialSoundkarte im Einsatz hat mit der man professionell Musik machen will, da könnte das schon Sinn machen, diese von Jack verwalten zu lassen, besonders da Calf auf Jack aufbaut.

Durch ein ungünstiges Zusammenwirken vom „Dicken-Finger-Syndrom“, „Hast“, „Tippfehler“ und „Cinnamon“ wurde versehenlich Calf gestartet, was ich noch nie gesehen hatte und auch nie wieder sehen will, denn es hat einen lausigen ersten Eindruck gemacht 😉 Der Start von Calf führte zum Start von Jack und da Jack dumm wie Stroh zu sein scheint, griff sich der Soundserver die Interne Soundkarte von Mainboard und mein Sound war weg.

Abhilfe schafft …

einfach mit „killall jackd“ als Root töten und danach Calf und Flowblade deinstallieren. Problem solved 😉