Keine Aufnahme mit ALSA/Portaudio 1.9 und Audacity 1.3.4

  • Hallo und ein frohes neues Jahr!


    Ich möchte mit Audacity einige Schallplatten/Kassetten aufnehmen. Jedoch habe ich ein Problem mit der Aufnahme. Das aktuelle Ubuntu 7.10-Paket (1.3.3) ermöglicht mir zwar eine Aufnahme mit OSS, aber es kommt manchmal vor, dass diese Aufnahme abrupt abgebrochen wird, ich aber noch den Ton über meine Soundkarte (ESS ES1938 (Solo-1) von Terratec) hören kann. Die Fehlermeldung enthält auf jeden Fall irgendetwas mit "Portaudio" drinnen (leider habe ich die genaue Meldung gerade nicht zur Hand).


    Wenn ich als Aufnahmegerät ALSA wähle (entweder ALSA: ESS .... oder ALSA:default) bekomme ich folgede Fehlermeldung in der Konsole:


    Zitat


    Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1675
    Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1799
    Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1675
    Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1799


    Danach habe ich manuell Audacity 1.3.4-beta und das heutige CVS-build mit "./configure --with-portaudio=v19 --with-portmixer=no" konfiguriert und gebaut. Der ganze Prozess wurde erfolgreich abgeschlossen. Wenn ich nun mit aktivierten ALSA-Aufnahmegerät (ich habe alle durchprobiert) etwas aufnehmen will kriege ich zum einen dieses berüchtigte PopUp mit dem fehlerhaften Aufnahmegerät usw.. In der Konsole erhalte ich folgende Meldungen:


    Zitat


    Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1862
    Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1986


    Ich habe Audacity als normaler Benutzer und als Superuser getestet, jedoch ändert dies nichts an diesem Problem. In jedem Fall funktioniert die Wiedergabe mit ALSA/OSS und die Aufnahme mit OSS.


    Anhand der Fehlermeldungen schließe ich, dass das Problem an Portaudio 1.9 liegt oder besser gesagt an "src/hostapi/alsa/pa_linux_alsa.c". Ich vermute, dass in den aktuellen Audacity-Source-Paketen diese Datei immer fehlerhaft ist, sodass dieser Fehler immer wieder auftritt.


    Ich hänge so an Audacity wegen dem Level-Meter, da dies bei anderen Harddisk-Recordern fehlt bzw. z. B. mhwaveedit mit ALSA Probleme macht (Puffer). Ich kann zwar perfekt mit arecord aufnehmen, aber ohne Level-Meter sind Übersteuerungen schwer zu vermeiden.


    Was für Möglichkeiten habe ich dieses Problem zu lösen? Kann ich evtl. auf die Ubuntu-Pakete von Portaudio 1.9 beim Kompilieren zurückgreifen und die internen von Audacity ignorieren. Oder wäre es evtl. möglich, dass sich ein Audacity-Entwickler mit dieser Angelegenheit beschäftigen könnte? Ist ein Downgrade auf Audacity 1.2.x mit Portaudio 1.8 sinnvoll, um vielleicht mit OSS aufnehmen zu können?


    Ich würde mich sehr freuen, wenn jemand einen Rat für mich hätte :)


    Bis dann,


    Martin

  • Erstmal: Du musst nicht --with-portmixer=no angeben, Portmixer wurde inzwischen auch auf Portaudio v19 portiert. Das heißt aber nicht, dass es wirklich funktioniert :-/


    Die ALSA-Unterstützung in 1.3.4 ist leider immer noch, ich sag mal, "lückenhaft" ;)


    Kannst Du mal folgendes probieren: im Verzeichnis lib-src/portaudio-v19 folgendes ausführen:


    make clean && ./configure --without-jack --enable-debug-output && make


    und dann nochmal im Hauptverzeichnis von Audacity ein "make"


    Funktioniert es jetzt besser? Wenn nicht, werden mehr Infos ausgegeben beim Versuch, mit ALSA aufzunehmen und wie lauten diese?

  • Hallo Markus,


    danke für Deine schnelle Antwort :) !


    Das Portmixer bereits integriert wurde, wusste ich noch nicht ;) . Ich bin gerade dabei Portaudio 1.9 nach Deinem Vorschlag neu zu kompilieren und habe den Prozess erfolgreich abgeschlossen. Audacity ist jetzt ebenfalls neu kompiliert (ging dieses mal auch wesentlich schneller als beim letzten mal). Folgende Meldung habe ich in der Konsole bekommen, als ich Audacity gestartet habe:



    Als ich die Aufnahme starten wollte, kam folgende Fehlermeldung in der Konsole:



    Die gleiche Ausgabe kriege ich auch, wenn ich den Level-Meter starten will. Somit kriege ich die Aufnahme mit ALSA leider immer noch nicht zum Laufen.

  • Hmmm..... das ist ein sehr allgemeiner Fehler. Offensichtlich kommt Portaudio v19 mit Deinem ALSA-Device nicht zurecht. Warum weiß ich jetzt auch nicht genau. Wenn Du abenteuerlich bist: magst Du das Gleiche nochmal mit der aktuellen CVS-Version von Audacity probieren (die gibt's unter http://sourceforge.net/projects/audacity)?

  • Ich habe jetzt mehrmals versucht die CVS-Version zu kompilieren, jedoch konnte ich das ALSA-Problem nicht damit lösen. Ich habe eben noch mal die CVS-Version mit der "pa_linux_alsa.c" aus dem letzten stabilen Portaudio 1.9 Release gebaut, aber das ändert allgemein nichts an der Situation. Hier noch mal die Meldungen:


  • Habe eben mal Audacity 1.3.4-CVS komplett aus OSS umgestellt. So ganz glatt scheint das aber auch nicht zu funktionieren, wenn ich mir folgende Konsolenausgabe anschaue:


    Zitat


    Expression '*idev = open( idevName, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 810
    Expression 'OpenDevices( idevName, odevName, &idev, &odev )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 864
    Expression 'PaOssStream_Initialize( stream, inputParameters, outputParameters, streamCallback, userData, streamFlags, ossHostApi )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 1239


    Da wundert es mich auch nicht, wenn die Aufnahme mit OSS manchmal streikt. Außerdem knackt es immer, wenn ich Audacity mit OSS starte oder eine Aufnahme beginne. Kann das Problem evtl. an der Soundkarte liegen? Ich habe bei eBay eine alte einfache Terratec Soundkarte erworben, da mit meiner alten Soundblaster Live! Karte von Creative keine Aufnahme über Line-In möglich war.

  • Zu diesem Zeitpunkt denke ich, dass es einfach an der ALSA-Unterstützung von Portaudio 1.9 liegt. Wenn ich das auf der Projektseite von Portaudio richtig gesehen habe, ist 1.) 1.9 noch instabil und 2.) die ALSA- und Jack-Unterstützung erst in einem frühen Entwicklungsstadium.


    Deshalb habe ich das aktuelle Audacity-CVS mit Portaudio 1.8 kompiliert. Damit steht mir zwar nur OSS zur Verfügung, jedoch ist diese Version wesentlich ausgereifter und stabiler. Vermutlich werde ich jedoch eher auf die Kombi zwischen Audacity 1.2.6 und Portaudio 1.8 setzen, da dies einfach besser zusammen harmoniert, weil sich eben Audacity (CVS) mit "Segmentation fault (core dumped)" verabschiedet hat.


    Ist das offizielle Audacity-Source-Paket von 1.2.6 oder das CVS von 1.2.x stabiler?

  • Ich habe mir jetzt Audacity 1.2.6 aus dem offiziellen Source-Paket ohne SoundTouch gebaut. Damit müsste ich dann hoffentlich störungsfrei mit OSS aufnehmen können (es knackt zwar noch beim Programmstart und beim Aufnahmebeginn, aber das scheint sonst keine weiteren Störungen hervorzurufen).


    In der Zwischenzeit warte ich auf das nächste stabile Release von Audacity und hoffe auf die baldige Fertigstellung von Portaudio 1.9 mit stabiler ALSA-Unterstützung.


    Danke für Deine Mühen, Markus!

  • Versuche mal, in den Einstellungen unter E/A das "Standart-Sampleformat" zu ändern. Ich konnte erst mit ALSA aufnehmen, nachdem ich von 32bit auf 24- bzw. 16bit geändert habe. Allerdings läuft das Programm bei mir unter OpenSuse 10.3 .

  • Hallo matko,


    ich habe heute nochmal mit der aktuellen CVS von Audacity 1.3.x sämtliche Einstellungen der Sample-Rate und dem Sample-Format ausprobiert - ohne Erfolg. Solange sich Portaudio 1.9 noch in der Beta-Phase befindet, werde ich nicht erwarten, dass eine funktionstüchtige Aufnahme mit ALSA auf meinem momentanen System möglich sein wird.


    Dass es bei einigen 'problemlos' klappt, lässt sich eher auf eine besser funktionierende "Kooperation" zwischen Software und Hardware zurückführen.


    Jedoch bin ich sehr mit Audacity 1.2.6 + Portaudio 1.8 zufrieden, da ich damit weitgehend störungsfrei aufnehmen kann.

  • Zitat von pingwin


    Solange sich Portaudio 1.9 noch in der Beta-Phase befindet, werde ich nicht erwarten, dass eine funktionstüchtige Aufnahme mit ALSA auf meinem momentanen System möglich sein wird.


    Dazu muss man sagen, dass Portaudio v19 schon seit Jahren in der Beta-Phase ist und so schnell da auch nicht rauskommt. Insofern sind wir auf unermüdliche Tester angewiesen. Deswegen würde ich mich freuen, wenn Du auch 1.3.5 wieder "eine Chance gibst" ;)


    Ich würde mir das auch selbst gerne mal anschauen, bei mir funktioniert aber alles. Deswegen fände ich es durchaus mal interessant, mir so ein Problem "live" anzuschauen. Wenn jemand von Euch ALSA-geplagten in der Nähe von Nürnberg wohnt, lässt sich das ja vielleicht mal einrichten!? ;)

  • Natürlich werde ich der 1.3.5 wieder eine Chance geben und es weitgehend testen. Ich will nur keine zu hohen Ansprüche an Portaudio stellen, da es ein reines Open Source-Projekt ist und ich leider im Moment selbst nichts zur Entwicklung beitragen kann, da ich kein Programmierer bin ;) . Aber ich bin mir sicher, dass sich Portaudio stark weiter entwickeln wird und dass es sich auf jeden Fall lohnen wird die neuen Fortschritte voll auszutesten. Die ALSA-Unterstützung ist ja noch recht frisch, aber da wird sicherlich noch einiges passieren.


    Leider wohne ich in der Nähe von Hannover, also praktisch in der entgegen gesetzten Richtung von Dir ;) . Ich kann Dir aber garantieren, dass mein System es immer schafft irgendwelche einzigartigen Fehler zu produzieren ;)


    Falls sonst übers Internet für die Entwicklung beitragen kann, werde ich das natürlich auch gerne machen.