Beiträge von lidocorc

    Beim Laden eines Projekts (Audacity 1.3.4) begegnete mir immer wieder mal die Fehlermeldung, dass eine nicht zuzuordnende Audiodatei aufgetreten wäre. Das ist zwar an sich harmlos für den Anwender, deutet aber auf gewisse Unvollkommenheiten der Beta-Version hin. Erst jetzt ist es mir gelungen, eine Folge von Bearbeitungsschritten zu finden, die sicher und reproduzierbar zu der genannten Fehlermeldung führen. Vielleicht hilft das bei der Programmentwicklung.


    Öffne ein Projekt. Wähle einen Ausschnitt der Tonspur. Wende den Equalizer auf den Ausschnitt an. Nimm den letzten Bearbeitungsschritt mit Ctrl-Z wieder zurück. Schließe das Projekt. Beim erneuten Öffnen des Projekts erscheint nun die Fehlermeldung (Warnung).


    Interessanterweise entsteht der Fehler nicht, wenn statt des Equalizers andere Effekte angewendet werden. Ich habe allerdings nicht alle Effekte durchprobiert und kann nicht sagen, bei welchen genau der Fehler entsteht und bei welchen nicht.

    Zitat von Strenhel:1196617278


    ... gibt es eine Möglichkeit, eigene Equalizerkurven ... irgendwie zu beschreiben und dann zu laden?


    Für OS=Windows gilt: In dem Ordner, in dem Audacity 1.3.4 seine Preferences als Datei audacity.cfg ablegt, findet sich auch eine Datei EQCurves.xml. Darin kann man schon mit einem Ascii-Editor (besser HTML-Editor) seine eigenen Eintragungen nach dem Vorbild der bereits vorhanden Filterprofile einfügen.


    Zu dem Thema hätte ich noch eine ergänzende Frage: Welche Nebenbedingungen sind hinsichtlich der Filterpunkte zu beachten? (Z.B.: Wie nahe dürfen sie beieinander sein? Wie steil dürfen die 'Verbindungslinien' zwischen den Punkten maximal sein? Müssen die Punkte hinsichtlich der Frequenz in aufsteigender Reihenfolge sortiert sein?)

    Audacity kann mehrere Projekte zugleich bearbeiten. Dies geschieht in getrennten Hauptfenstern, für jedes Projekt eines. Das Programm hat deshalb den Menübefehl 'Schließen Ctrl-W'. Er soll, im Gegensatz zu 'Beenden Ctrl-Q' nicht die Anwendung schließen, sondern nur das momentan geladene Projekt mit seinem Hauptfenster.


    Ich fände es benutzerfreundlicher, wenn der Befehl in dem Fall, dass nur ein Projekt bearbeitet wird, er nicht das Programm beeendet, sondern in den Zustand versetzt, den das Programm hat, wenn es neu startet. In diesem Zustand bearbeitet das Programm ein leeres Projekt. Die Bedienung wäre m.E. dann auch in sich schlüssiger: Die Befehle 'Öffnen Ctrl-O' und 'Schließen Ctrl-W' wären dann nicht nur im Fall mehrerer geladener Projekte, sondern auch im Fall genau eines geladenen Projekts zueinander komplementär.

    In der Praxis passiert es mir immer wieder, dass ich unter den vielen Projekten eines Ordners schnell mal das falsche Projekt zum Laden erwische. In dem Fall wäre mit den Hot-Keys Ctrl-W, anschließend Ctrl-O der Irrtum bequem wieder behoben. So wie es jetzt ist, muss außerdem das Programm neu gestartet werden.

    So, jetzt herrscht wieder Freude.


    @edgar
    Dein Filter ist anders zu bedienen, als ich es im ersten Moment erwartete. Stellt man dry/wet = - 10 dB ein, so habe ich erwartet, dass die Kerbe im Spektrum -10 dB tief ist. Sie ist aber -3,3 dB tief. (Bei [-0,5dB; -1dB; -2dB; -5dB; -10dB] ist sie [-24,6dB; -19,1dB; -13,7dB; -7,1dB; -3,3dB] tief. Delogarithmiert man diese Zahlen, so sieht man, dass die Summe jedes Wertepaars 1 ergibt. Damit war die Erklärung für das Programmverhalten gefunden.)


    Ich habe nun die vom Benutzer zu steuernde Variable 'vol' nicht (delogarithmiert) der Variable 'notch-vol', sondern 'sound-vol' zugewiesen.


    (setf sound-vol (db-to-linear vol))
    (setf notch-vol (- 1.0 sound-vol))


    Jetzt funktioniert's so, wie ich es naiv erwartet habe. Darum nochmal mein Dank an dich, Edgar, für die Mühe.


    Als einem Neuling in 'Nyquist' gebt mir bitte noch eine kurze Auskunft: Was ist der Unterschied zwischen Kommentaren, die hinter doppeltem Semikolon stehen und solchen die hinter einfachem stehen? Sind letztere etwa keine Kommentare (wie im Datei-Header)?


    Beiläufig noch eine Beobachtung: Audacity merkt sich die Eingabeparameter der Plugins bis zu ihrem nächsten Aufruf. Aber nicht genau. Stelle ich eine Filterfrequenz von 440 Hz ein und wende das Filter an, dann steht beim nächsten Aufruf in der Editierzeile für die Frequenz 439. Das ist sehr merkwürdig.

    Die (Vor-)Freude währte nur kurz, denn das Kerbfilter tut auf meinem Rechner nicht, was es soll. Es hat fast keine abschwächende Wirkung für die "Kerb"-frequenz.


    Prüfmethode: Ich erzeuge eine Tonspur mit einem 100 Hz-amplitudenmodulierten 500 Hz-Träger, der die zwei Seitenfrequenzen 400 Hz und 600 Hz hat.


    Auf dieses Signal wird das Kerbfilter angewendet. (Parameter sind: Q-Faktor = 10, Frequenz = 500 Hz, Dry/Wet = -20 dB.)
    Sowohl nach Gehör als auch mit der Audacity-Frequenzanalyse zeigt sich fast keine Änderung am Klang bzw. an der Tonspur.


    Ich habe das Kerbfilter sowohl in Verbindung mit Version 1.3.4 als auch mit 1.2.6 verwendet und komme zum selben negativen Ergebnis. Woran mag der Fehler liegen?


    Vergleichsweise habe ich das "Notch filter" von David R. Sky probiert. Es beseitigt die Trägerfrequenz vollständig und dämpft die Seitenbänder entsprechend dem eingestellten Q-Wert.


    Habe heute meine Kenntnisse in Filtertheorie wieder aufgefrischt. Da Kerbfilter auf die Nyquist-Prozedur "notch2" zurückgreifen und diese wiederum auf die Prozedur "biquad", so ist es für meine Aufgabenstellung ein Umweg, notch2 zu verwenden, um anschließend einen Teil des Original-Signals wieder zu addieren. Eleganter wäre es, wenn man aus den Eingabeparametern gleich die passenden Koeffizienten für das biquadratische Filter berechnet. Mixen ist dann überflüssig. Die biquad-Koeffizienten für Kerbfilter findet man im Web, z.B. "Cookbook formulae for audio EQ biquad filter coefficients" von Robert Bristow-Johnson. Sie müssen nur leicht modifiziert werden für nicht vollständige Unterdrückung der Mittenfrequenz. Ich bleibe am Ball und werde einmal (bald?) eine entsprechendes Nyquist-Plug-in schreiben.


    Gruß von lidocorc

    @ edgar:
    herzlicher Dank für das verbesserte Kerbfilter. Ich werde es sogleich ausprobieren.


    Wenn in "Nyquist" so viele Möglichkeiten stecken, dann wächst meine Neigung deutlich, mehr darüber zu wissen - auch wenn 5 min nicht ganz ausreichen werden, bis ich die ersten Schritte damit gehen kann.


    Gruß von lidocorc

    Ich möchte mich der Frage von Paolo anschließen, sie aber entsprechend meinem Problem abwandeln.


    Eine alte Tonbandaufnahme soll verbessert und digital konserviert werden. Sie zeigt eine Resonanzanhebung von ca. 10 dB bei 212 Hz Mittenfrequenz, die entweder durch Resonanz des Raumes oder des Mikrofons hineingekommen ist. Ich möchte die Resonanzanhebung korrigieren. Das Kerbfilter ist für meine Zwecke in direkter Verwendung nicht geeignet, da ich keine völlige Unterdrückung der Resonanzfrequenz haben möchte, sondern nur eine Abschwächung. (Man könnte sich behelfen, in dem man zum Ergebnis der Anwendung des Kerbfilters das Originalsignal mit geeigneter Amplitude wieder beimischte.) Außerdem kann man die Güte des Kerbfilters nicht einstellen und damit nicht die 3 dB-Bandbreite der "Kerbe".


    Im Prinzip wäre der Equalizer das Werkzeug der Wahl. Diesen kann man jedoch wegen seiner graphischen Bedienung nicht frequenzgenau einstellen.


    Angenommen, ich würde Nyquist-Programmierung lernen, könnte ich mir dann mein Wunschfilter selber definieren?


    Vielen Dank für Hinweise.


    Gruß von lidocorc

    Grüß Gott und Guten Tag,


    ich würde gerne so weit ich's kann zur Fehlerbeseitigung in Audacity 1.3.4 beitragen und wenn es nur das möglichst präzise Mitteilen einer Fehlersituation ist.


    Die o.g. Betaversion von Audacity stürzt - jedenfalls auf meinem Rechner (Windows XP, SP2) - immer wieder mal ab, insbesondere wegen unhandled exceptions. Wie sollte in solchen Fällen ein Bug-Report aussehen? Die Programmierer werden natürlich überall dort, wo bekanntermaßen Exceptions auftreten können, entsprechenden Exception-Behandlungs-Code eingefügt haben. Unhandled Exceptions behandelt das Betriebssystem höchstpersönlich, weil sie (noch) kein exception handler im Programm-Code abfängt. Entsprechend wenig erfährt der Anwender über den Grund des Auftretens einer solchen exception.


    Ich versuche mal, "meine" Exception so gut es geht zu beschreiben: Wenn ich eine Aufnahme mache (z.B. 32-Bit, 44100 Hz) und während der Aufnahme die Zeitskala der Tonspur strecke, d.h. mehrfach auf den Button "Einzoomen" drücke, dann tritt nach ein paar mal Knopfdrücken eine unhandled exception beinahe regelmäßig auf. Leider ist das Meldungsfenster der excepion in weniger als einer halben Sekunde schon wieder weg und ich habe gerade noch Zeit, die ersten paar Wörter zu lesen. So weit ich erkennen kann, steht nichts von der Nummer der Zeile drin, an der die Exception im Code aufgetreten ist.


    Gruß von lidocorc

    Ergänzung


    Was das Panel in der Statuszeile betrifft ist meine Vermutung offensichtlich falsch. Eine .wav-Datei mit 8 kHz Abtastrate, die von einem Player abgespielt wird, bewirkt eine Anzeige 'Aktueller Wert 44100'.


    Ich habe es bis jetzt nicht geschafft, eine andere Anzeige als 44100 herzukriegen. Ich muss jedoch einräumen, dass ich einen wesentlichen Parameter meiner Hardware nicht einstellen kann: Die Benutzeroberfläche meiner Soundkarte bietet keine Möglichkeit an, die Abtastrate der Wandler einzustellen - obwohl der SoundChip laut Hersteller (Analog Devices) über eine PLL verfügt, so dass sich Abtastraten zwischen 7 kHz und 96 kHz in 1 Hz Schritten einstellen ließen.

    Habe mit Suchbegriffen 'Resampling' und 'Statusleiste' das Forum und das Handbuch durchmustert und nichts Passendes gefunden, darum frage ich lieber noch mal nach.


    Version 1.3.4 hat gegenüber 1.2.6 eine Windows-typische Statusleiste. In dieser wird ganz rechts in einem eigenen Panel eine Abtastrate angegeben, die als 'Aktueller Wert' bezeichnet wird. (Nur am Rande: Bei einer Bildschirmauflösung von 1280x1024 Pixel und einer 120 DPI Schriftgröße wird der Zahlenwert teilweise abgeschnitten, weil das StatusBarPanel zu schmal ist. Dies jedenfalls, wenn Deutsch als Sprache gewählt wird. - Dürfte ein allgemeines Problem sein, dass die deutsche Beschriftung mehr Platz als die englische braucht.)


    Verstehe ich das richtig: In diesem Panel steht die tatsächliche an Audacity gelieferte Datenrate. Genau die, die von einem Programm ('Player') oder vom ADC eines Soundchips via Treiber geliefert wird. Sollte die Projekt-Abtastrate nicht mit der gelieferten Rate übereinstimmen, dann interpoliert ('resampelt') Audacity zwischen den gelieferten Abtastungen. Das Interpolationsverfahren lässt sich in den Einstellungen wählen.


    Hierzu noch zwei Fragen: Woher bezieht Audacity seine Zeitinformation, um seine eigenen Sampling-Rates zeitlich exakt zu definieren? Wird etwa (in der Windows-Version) der HighPerformanceCounter der Win-API genutzt?


    Sofern die Sampling-Rates des Audacity-Projekts und der Datenquelle zahlenmäßig übereinstimmen, kann natürlich das Resampling entfallen und Audacity übernimmt die Abtastwerte genau so wie sie kommen. Die Frage ist hierbei: 'Glaubt' Audacity der Angabe der Sampling-Rate, wie sie eine Datenquelle liefert, blind oder macht Audacity seine eigene Rate-Messung, da es ja über eine Zeitbasis verfügt, und prüft dann ob die gemeldete Sampling-Rate auch stimmt?


    Danke für eine Stellungnahme.
    lidocorc

    Ja, das ist eine gute Methode. Danke.


    Ich wollte mit meinem Beitrag nur eine Kleinigkeit zur 'Entwanzung' der aktuellen Beta-Version des Programms beitragen. Ein Problem hatte ich mit diesem Bug nicht.
    Gruß von lidocorc

    Danke für die Fundstelle zu Audacitys speziellen au file headers.


    Weil du fragst, wofür ich das brauche: Natürlich würde ich Audacity gerne als Editor benutzen. Ich weiß nur kein Werkzeug innerhalb des Programms, mit dem man Sampling-Werte bitgenau editieren könnte. Mit dem Malwerkzeug ist das zu ungenau. (Hintergrund: Ich möchte ganz spezielle Kurvenformen erzeugen, sozusagen einen Arbitrary Function Generator auf Softwarebasis simulieren. Ein C- oder Delphi-Programm das mir die au-Datei geeignet präpariert, wäre an sich schnell geschrieben. Ich könnte natürlich auch eine wav-Datei generieren, nur scheint mir die Struktur der au-Dateien einfacher. Audacity möchte ich deshalb einsetzen, weil Audacity über schöne Werkzeuge zur Signalverarbeitung verfügt, die ich auf das vorgelegte Signal anwenden könnte.)

    Im deutschsprachigen Forum habe ich kein Unterforum gefunden, das "Adding Features to Audacity" im internationalen Forum entspricht. Darum (und weil mein Englisch nicht so gut ist) schreibe ich mal hier.


    Mit dem Effekt "Verstärken..." lässt sich eine Tonspur mit einem konstanten Faktor (größer Null) multiplizieren. Die vorgegebene eine Dezimalstelle bedeutet aber nicht, dass der Verstärkungsfaktor nicht wesentlich genauer eingegeben werden könnte. (Audacity verwendet intern das 32bit-Gleitkommaformat und hat deswegen recht kleine Diskretisierungsfehler bei seinen Berechnungen.)


    Nun wäre es aus meiner Sicht wünschenswert, den Verstärkungsfaktor auch absolut eingeben zu können und nicht nur dessen zwanzigfachen Logarithmus, sprich sein Dezibelmaß. (Mathematiker mögen einwenden, ich solle eben meinen gewünschten Faktor logarithmieren, dann hätte ich, was ich wollte. Negative Faktoren ließen sich in Kombination mit "Invertieren" erzielen.) Der Feinabgleich in bestimmten Situationen wäre aber mit der direkten Eingabe viel angenehmer.


    Dies nur als kleiner Wunsch, der fast keinen Programmieraufwand bedeutete und das schöne Programm doch flexibler machte.


    Gruß von lidocorc

    OS=Windows XP, SP2
    Audacity-Version=1.3.4


    Projekt-Abtastfrequenz=10000 Hz
    Spur-Abtastfrequenz=10000Hz
    Spur-Format=16BitPCM


    Mit dem Tongenerator(1) wurde eine Tonspur mit (was unwichtig sein dürfte) Sägezahnverlauf, 200 Hz, halbe Vollaussteuerung erzeugt. Als Länge wurde 1000 Samples angegeben.


    Fehler: Es wurden nur 226 Samples erzeugt (das 0-te nicht mitgezählt).


    Meine Erklärung: Da keine Standard-Abtastfrequenz gewählt wurde, rechnet Audacity die gewünschten 1000 Samples gemäß der Standard-Abtastfrequenz 44100 Hz um, was 0,02267 Sekunden entspricht. Für diese falsche Zeitspanne macht Audacity dann korrekt 226 Abtastungen.


    Bemerkung: Auch für die regulären (in der Drop-Down-Liste angebotenen) Abtastfrequenzen f <> 44100 Hz tritt der Fehler ein. Anscheinend wird die Umrechnung zwischen Abtastanzahl und Dauer konstant mit der Abtastfrequenz 44100 Hz vorgenommen.

    Guten Tag,


    ich möchte Audacity auch als Signalgenerator verwenden, der eine extern konstruierte au-Datei abspielt. Folgendermaßen möchte ich es probieren:


    Ein Audacity-Projekt wird neu erzeugt, darin eine Mono-Tonspur, welche mit z.B. 5 Minute Stille "gefüllt" wird. Das Projekt wird gespeichert.


    Mit einem externen Editor werden in der au-Datei, die zu dem Projekt gehört, die bisher auf Null gesetzten Sampling-Werte auf die gewünschten Werte gesetzt. Wie eine au-Datei strukturiert ist, kann man zwar (z.B. in der englischen Wikipedia) nachlesen, doch Audacity nutzt den Datei-Header recht intensiv und schreibt da allerhand Audacity-Spezifisches hinein.


    Weiß jemand, was das bedeutet, was im Header im Anschluss an "AudacityBlockFile112" bis zum Beginn des eigentlichen Datenblocks steht?


    Gruß von lidocorc

    Danke, Markus,
    mit deiner Information weiß ich nun bescheid. Audacity bestätigt deine Einschätzung: Unter Hilfe > Soundkarten-Info... lese ich "Unable to open Portmixer".


    Letztlich ist die Funktionalität von Audacity nicht beeinträchtigt, man muss halt den Windows-Dialog (oder entsprechende Pendants des Treiberherstellers) bemühen, um die richtige Aussteuerung zu erreichen. Auf jeden Fall ist es schön, in dieser diffizilen Frage so schnell kompetente Antwort bekommen zu haben.


    Jedenfalls empfehle ich, ein Audiosystem erst einmal mit einem kalibrierten Signalgenerator durchzumessen, damit man weiß, was die verschiedenen "Hebelchen" bewirken und mit welchen Pegeln man es zu tun hat, sofern man von externen Signalquellen aufzeichnet.


    Gruß von lidocorc

    Guten Abend,


    ich vergleiche gerade die Version 1.3.4 mit der Version 1.2.6, mit der ich bisher gearbeitet habe. Mein OS ist Windows XP, SP2. Soundchip meines Rechners ist der AD1986A von Analog Devices mit der Bedienoberfläche SoundMAX.


    Die neue Version hat eine veränderte Mixer-Werkzeugleiste (sie heißt jetzt "Pegelregler"), wobei ich die Dropdown-Auswahl der Aufnahmequelle vermisse (Line-in, Mikrophon, Stereomix etc.). Wüsste jemand, wo ich die jetzt finde?


    Der Aufnahme-Pegelregler verhält sich anders als in der Version 1.2.6 und nicht unbedingt zweckmäßig. Ich habe natürlich in den Changelogs nachgesehen, aber leider nichts Informatives gefunden.

    1. Die Reglereinstellung hat keinen Einfluss auf die Aussteuerungsanzeige. Das schaut nach Bug aus, was ich aber nicht glauben mag, weil sowas in früheren Betas schon aufgefallen sein müsste. Die tatsächliche Aussteuerung der Aufnahme wird dagegen geregelt. Das sieht man auch im Audio-Track-Fenster.


    2. Während der Aufnahmepegelregler in Version 1.2.6 ein Abbild des Aufnahmereglers der systemnahen Einstellung war (Systemsteuerung > Sounds und Aufnahmegeräte: Reiter Audio: Panel Soundaufnahme: Button Lautstärke... //bzw. gleichwertige Einstellung in SoundMAX), so hat er in V1.3.4 eine neue Funktion: Es ist das Produkt der Verstärkungsfaktoren beider Regler wirksam. Anders ausgedrückt: Der systemnahe Regler dient als Grob-Regler und der Audacity-Regler als nachgeschalteter Fein-Regler. Weiß jemand, ob das von den Entwicklern so beabsichtigt ist und wenn ja, wozu die Änderung gut ist?


    Für Hinweise zu meinen Beobachtungen wäre ich dankbar.


    Gruß von lidocorc