Beitrag "Audacity PlugIns für Radioproduktion" als Stapelverarbeitung konzipieren - (oder allgemeines Integrieren von Plug-In's in die Stapelverarbeitung)

  • Hallo liebes Audacity-Forums!


    Es geht mir um den exzellenten Beitrag "Audacity PlugIns für Radioproduktion", in dem beschrieben wird, wie man Dateien zum Zweck der Radioproduktion richtig über das Effekte-Menü bearbeitet.


    Die Vorgehensweise funktioniert vorzüglich, allerdings muss ich leider jede einzelne Datei öffnen und bearbeiten.


    Gibt es eine Möglichkeit, dies auch in die Stapelverarbeitung zu integrieren, so dass die Änderungen automatisch vorgenommen werden (d.h. ich möchte gerne die Effekte-Sektion als Stapelverabeitung konzipieren, in der Stapelverarbeitung selber finde ich die Module "RFT-Compressor" und "RTF-Limiter" aber nicht)? Wenn ja, wie kann ich dies umsetzen?


    Vielen lieben Dank im Voraus und noch einen schönen Tag.


    Gruß
    Enrico

  • Die Radio-Plugins sind in einer in Audacity eingebauten Programmiersprache mit Namen Nyquist geschrieben. Nyquist läuft innerhalb von Audacity sozusagen als "Unter-Programm" und ist nicht über die Audacity Stapelbearbeitung erreichbar oder fernsteuerbar. Die einzige Möglichkeit wäre Nyquist direkt (ohne Audacity) als reine "Stapelverarbeitungs" Sprache zu verwenden. Dann wäre es möglich mehrere Nyquist Plugins in beleibiger Reihenfolge über Skriptdateien fernzusteuern. Wenn da Interesse dran besteht bitte nochmal melden, weil das ist auch für mich mehr als nur fünf Minuten Arbeit.

  • Erstmal vielen Dank für Deine rasche Rückantwort (ich hoffe, "Du" ist in Ordnung?).


    D.h., mit dieser Skriptsprache wäre ich in der Lage, jeden Menüpunkt aus dem Effekte-Menü im Rahmen dieses Skripts auf beliebig viele Dateien anzuwenden?


    Das wäre ja absolut genial.


    Ich habe mir auch schon die Skriptsptache heruntergeladen und schon mal einen Blick in die Onlinehilfe geworfen (an dieser Stelle vielen Dank für den Link).


    Da habe ich wohl einen riesigen Berg vor mir, denn dieses Skript-Sprache erscheint mir sehr mächtig, aber nicht minder kompliziert.


    Gut, da muß ich mich dann selber "durchwurschteln", das hilft dann nicht.


    Prinzipiell: Wie kann ich über dieses Skript alle Dateien des aktuellen Verzeichnisses ansprechen?


    Gruß
    Enrico

  • Zitat

    mit dieser Skriptsprache wäre ich in der Lage, jeden Menüpunkt aus dem Effekte-Menü im Rahmen dieses Skripts auf beliebig viele Dateien anzuwenden?


    Nein, nur die Nyquist Effekte, das ist der untere Teil des Audacity "Effekt" Menüs unter dem Querstrich. Die meisten der Effekte im oberen Teil lassen sich aber mit Nyquist nachprogrammieren.


    Zitat

    Ich habe mir auch schon die Skriptsptache heruntergeladen und schon mal einen Blick in die Onlinehilfe geworfen. Da habe ich wohl einen riesigen Berg vor mir...


    Wenn es nur um die "Stapelverarbeitung" von Plugins (vorgefertigte Nyquist Funktionen) geht kann das auch radikal vereinfacht werden. Du musst also nicht zuerst das gesamte Nyquist Manual auswendig lernen. Audiobearbeitung im Allgemeinen (also wie alle Effekte "innendrin" arbeiten) ist aber wirklich ein Riesenberg. Ich lerne das seit über dreissig Jahren und bin immer noch nicht fertig... :)


    Damit du dir vorstellen kannst um was es ungefähr geht:


    * Lauter kleine Tonschnipsel in die richtige Reihenfolge hin- und her zu schieben und am Ende eine einzige lange Datei daraus zu machen (Radiosendung, Podcast, Hörspiel oder ähnlich) geht mit Audacity wesentlich einfacher als mit Nyquist, ganz einfach deshalb, weil es in Audacity eine Grafikoberfläche gibt, wo du die einzelnen Schnipsel genau sehen kannst. Mit Grafik hast du halt einfach einen besseren Überblick.


    * Viele längere Dateien (z.B. eine Musiksammlung oder eine Höspieldatenbank) mit immer den gleichen Effekten zu bearbeiten geht mit Nyquist (ohne Audacity) wesentlich schneller, weil nicht jedes mal die gesamte Grafik gezeichnet werden muss.


    In der Praxis brauchst du meist beides, manchmal sogar beides gleichzeitig. Was jetzt für Dich genau die richtige Arbeitsweise ist musst du leider selbst herausfinden.


    Was in diesem Zusammenhang auch noch interessant sein könnte ist http://sox.sourceforge.net/, das ist eine Multiplattform Audio Editor, der alle möglichen eingebauten Effekte hat, zusätzlich auch noch externe Plugins verwenden kann und das alles auch noch über Skripte ferngesteuert werden kann.

  • >>> der untere Teil des Audacity "Effekt" Menüs unter dem Querstrich


    Gut, das ist auch primär das, wo ich hin will, denn da sind ja auch Deine Plugins ersichtlich.


    Nun stellt sich mir "nur" noch die Frage, wo ich wie anfangen muß, wie ich auf die Module zugreifen kann, wie ich die Parameter angebe, und und und...


    Ich habe Deinen Limiter schon mal in den Editor geladen, verstehe aber nur Bahnhof :huh:


    Gruß
    Enrico

  • Um den Limiter "einfach" in einem Skript verwenden zu können muss natürlich erst mal eine Infrastruktur für Batch-Skripte programmiert werden. Das ist, was ich mit "mehr als nur fünf Minuten Arbeit" gemeint habe. Damit meine ich jetzt aber nicht, dass du das selber machen musst. Ich werde mir jetzt mal die aktuelle CMU Nyquist Version runterladen und zusammenbasteln, und dann werde ich mal ein paar Zeilen Demo-Code schreiben. Dann kannst du sehen ob du mit so etwas arbeiten möchtest oder nicht. Es kann aber ein paar Stunden dauern bis das fertig ist.

  • >>> Das ist, was ich mit "mehr als nur fünf Minuten Arbeit" gemeint habe
    >>> Es kann aber ein paar Stunden dauern bis das fertig ist


    Wow, mit soviel Unterstützung hätte ich nie und nimmer gerechnet... :)


    >>> Dann kannst du sehen ob du mit so etwas arbeiten möchtest oder nicht


    Es ist sicherer als das Amen in der Kirche, dass ich Dein Gerüst als Vorlage verwenden werde, denn wer PlugIns schreiben kann, der muß definitiv Ahnung haben ;)


    Und bei mir ist es ja so, dass ich mich seit meiner Registrierung zum allerersten Mal an die Materie rantraue.


    An dieser Stelle schon mal vielen, vielen, vielen Dank für Deine Unterstützung :)


    Gruß
    Enrico

  • Zwei Stunden später... :)


    Bitte keinen Schreck bekommen, was du hier unten siehst würde ich selber eine "überkomplizierte Entwicklerversion" nennen, weil ich natürlich die gesamte Infrastruktur (Datei Ein/Ausgabe usw.), die normalerweise von Audacity zur Verfügung gestellt wird, um den eigentlichen Plugin Code drumrum schreiben musste.


    Das ganze lässt sich aber insofern radikal vereinfachen, weil Nyquist auch ohne die Java Programmoberfläche arbeiten kann, so dass z.B. der gesamte Nyquist Code von hier unten in einer Datei "rft-limiter.lsp" (oder irgend ein anderer Name der dir besser gefällt) gespeichern werden kann und mit noch ein bisschen mehr Nyquist Infrastruktur drumherum aus einer Betriebssystem Shell folgendermassen aufgerufen werden könnte:


    [m]nyquist eingabedatei.wav rft-limiter.lsp <threshold-wert> ausgabedatei.wav[/m]


    (oder irgend eine andere Parameter Reihenfolge)


    Da es in jeder Betriebssystem Shell auch Befehle und Kommandos für Schleifen und Verzeichnisinhalte gibt liesse sich auf diese Art der "rft-limiter.lsp" Effekt z.B. auf alle WAV-Dateien in einem Verzeichnis oder in allen Unterverzeichnissen anwenden. Das alles wäre auch mit mehreren Effekten gleichzeitig oder nacheinander machbar.


    Um hier bessere Beispiele geben zu können wäre es hilfreich zu wissen mit welchem Betriebssystem du arbeitest (Windows, Linux, Macintosh usw.) und welche Version des Betriebssystems (z.B. Windows_XP, Windows_Vista, Windows_7, welche Mac_OS-X Version, welche Linux Distribution, usw.) weil dann könnte ich komplette Beispiele vorbereiten und wir müssten nicht zehn mal im Kreis rum reden.


    Den Code von hier unten kannst du mit der Nyquist Java Oberfläche folgendermassen ausprobieren:


    Zuerst ist es wichtig Nyquist auf von "Sal" (Nyquist_3.x) auf "Lisp" (Nyquist_2.x) umzustellen. Unter den beiden kleinen Fenstern am oberen Fensterrand der Nyquist Java Oberfläche gibt ein eine Zeile mit Klick-Buttons:


    Info, Break, Lisp, Top, Replay ...


    Dort klickst du auf den "Lisp" Button, so dass dort "Sal" erscheint (unlogischerweise befindet sich Nyquist dann im "Lisp" Modus). Das ist wichtig, weil Nyquist sonst "Sal" Code erwartet und lauter Syntaxfehler erzeugt.


    In der gleichen Zeile gibt es am anderen Ende (rechts) ein paar Felder:


    ... New File, Open File, Save File, Load, Mark


    Bei mir hier musste ich das Java Fenster erst auf volle Bildschirmgrösse vergrössern, bis ich diese Felder überhaupt sehen konnte.


    * Mit "New File" kannst du ein neues, leeres Editor Fenster öffnen, dort kopierst du den Nyquist Code von hier unten rein.


    * Dann musst du noch die Zeilen mit *input-soundfile* und *output-soundfile* auf die Namen der Dateien ändern, die gelesen und geschrieben werden sollen (das muss noch durch eine Kommandozeilen Parameter Übergabe ersetzt werden).


    * In der (setf vl 0.5) Zeile muss "0.5" durch den gewünschten "Threshold" Wert ersetzt werden (das muss ebenfalls noch verbessert werden).


    * Mit "Save File" speicherst du den Code dann in einer Datei "rft-limiter.lsp" (oder irgend ein anderer Name).


    * Mit einem Klick auf "Load" kannst du den Code dann in den Interpreter laden, wo er dann automatisch ausgeführt wird.


    Im Beispiel Code hier unten wird eine Datei "test.waw" im "/home/edgar/" Verzeichnis gelesen, mit dem "rft-limiter.lsp" Effekt bearbeitet und das Ergebnis in einer Datei "test-out.wav" im gleichen Verzeichnis gespeichert.


    Wichtig: unter Windows muss "Laufwerk:\\irgend\\ein\\Verzeichnis\\" mit zwei "\\" statt nur mit einem "\" geschrieben werden, weil Nyquist ein einzelnes "\" Zeichen für ein Unix "Escape" Zeichen hält.


    Hier der Nyquist Code für den "rft-limiter.lsp" Effekt:


    [line]
    [m];; automatische Verstärkung ausschalten
    (autonorm-off)


    ;; die Datei aus der die Tondaten gelesen werden sollen
    (setf *input-soundfile* "/home/edgar/test.waw")


    ;; die Datei in die das Ergebnis geschrieben werden soll
    (setf *output-soundfile* "/home/edgar/test-out.wav")


    ;; der Wert des Audacity "Threshold" Schiebereglers
    (setf vl 0.5)


    ;; --- der Code aus dem Audacity plugin ---


    ;; sicherstellen dass keine unsinnigen Werte entstehen


    ;; -90 deziBel = 1 bit auf einer CD - alles was leiser
    ;; ist macht nicht viel Sinn das ausrechnen zu wollen
    (if (< vl (db-to-linear -90))
    (setf vl (db-to-linear -90)))


    ;; 1.0 = "Oberkante" der Audacity Tonspur - alles was
    ;; lauter ist wird bereits durch das Dateiformat begrenzt
    (if (> vl 1.0) (setf vl 1.0))


    ;; den "Threshold" Wert von linear nach deziBel umwandeln
    (setf limit (linear-to-db vl))


    ;; s-save = Nyquist Funktion um die Tondaten zu schreiben
    (s-save
    ;; die Audacity "s" Variable simulieren
    ;; s-read = Nyquist Funktion um die Tondaten zu lesen
    (let ((s (s-read *input-soundfile*)))
    ;; die eigentliche "Limiter" Funktion aus dem Audacity Plugin
    (scale (/ 1 (/ vl (db-to-linear 0.45))) (sim
    (scale 0.2 (clip s vl))
    (scale 0.2 (clip s (db-to-linear (- limit 0.25))))
    (scale 0.2 (clip s (db-to-linear (- limit 0.50))))
    (scale 0.2 (clip s (db-to-linear (- limit 0.75))))
    (scale 0.2 (clip s (db-to-linear (- limit 1.00))))
    )))

    ;; weitere Parameter für s-save
    ;; ny:all = wenn der Sound nach 1 Milliarde Samples immer noch
    ;; nicht zu Ende ist die s-save Funktion abbrechen
    ny:all *output-soundfile*)[/m]
    [line]


    Also du musst jetzt keine Komplexe bekommen, ich habe das alles nicht extra nur für dich geschrieben. Es gibt schon längere Zeit den Plan aus Programmen wie:


    * Nyquist - programmierbare Audio DSP Effekte
    * Sox - Kommandozeilen Audio Editor
    * Lame - mp3-encoder
    * FFmpeg - alles nach alles Multimedia Konverter


    ein "stapelverarbeitbares" Multiplattform Gesamtpaket zu basteln, es hat bisher nur noch niemand konkret nach so etwas gefragt. Ich bin deshalb auch nicht böse wenn du sagst dass dir das dann doch alles zu kompliziert wird und du lieber mit einer Grafikoberfläche arbeiten möchtest.

  • Ich versteh weniger als Bahnhof, aber ich fang jetzt einfach mal an... :huh:


    >>> [...] wäre es hilfreich zu wissen mit welchem Betriebssystem [...]


    Ich habe auf meinem Laptop Windows 7 Home Premium 64bit


    >>> Zuerst ist es wichtig Nyquist auf von "Sal" [...] umzustellen


    Wenn ich die "Nyquist IDE" gestartet habe und sie sich vollends entfaltet hat, schaltet sie sich automatisch in den SAL-Modus ("> Entering SAL mode ..." steht im Output-Fenster und danach "SAL>"), da brauche ich wohl nichts umstellen.


    Deinen Code kopiert, eingefügt, abgespeichert, auch erledigt :)


    Wenn ich nun über [Load] in der Nyquist-Oberfläche das Skript ausführe, bekomme ich in der Konsole folgende Fehlermeldung:


    SAL> ; loading "G:\rft-limiter.lsp"
    AutoNorm feature is off.
    Saving sound file to G:\AL CORLEY - SQUARE ROOMS (Nychist).flac
    error: SND-READ: Cannot open file 'G:\AL CORLEY - SQUARE ROOMS.flac'
    error loading lisp file G:\rft-limiter.lsp


    Mit wav-Dateien klappt es vorzüglich, hier rasselt eine ewig lange Zahlenkolonne durch's Output-Fenster und ich bekomme meine geänderte wav-Datei.


    Naja, sofern hier keine Unterstützung für flac-Dateien geben sollte, dann muss ich wohl meine knappen 13.000 Songs in's wav-Format umwandeln, was glücklicherweise verlustfrei geht, dann bearbeiten und wieder in's flac-Format zurückverwandeln, inkl. Taggen der Tags (welch' tolle Formulierung) ;)


    Mir ist hier aufgefallen, dass meine Pegel-Anzeige meines Audioplayers im roten Bereich stagniert und die Spektrum-Analyse fast einen Herzkasperl bekommt, es hört sich aber nicht übersteuert an.


    Kann es sein, dass dies mit dem "Threshold"-Wert zusammenhängt, wie Du geschrieben hast?


    Apropos "Treshold" bzw. woraus ich gar nicht schlau werde:


    Da ich, was Programme angeht - und es auch so gewohnt bin, gerne in Oberflächen "denke" und arbeite, kann ich folgende Zeilen gedanklich nicht auf die grafische Oberfläche projizieren:


    (scale (/ 1 (/ vl (db-to-linear 0.45))) (sim
    (scale 0.2 (clip s vl))
    (scale 0.2 (clip s (db-to-linear (- limit 0.25))))
    (scale 0.2 (clip s (db-to-linear (- limit 0.50))))
    (scale 0.2 (clip s (db-to-linear (- limit 0.75))))
    (scale 0.2 (clip s (db-to-linear (- limit 1.00))))
    )))


    Welche Zeile entspricht welchem Schieberegler?


    Irgendwie war ich der Meinung, dass es einfacher gehen würde, dass ich im Skript einfach nur das Modul aufrufe und es sich die Parameter aus der grafischen Oberfläche zieht, nicht aber, dass ich die Werte nochmals (?) angeben muss.


    Gut, aber das ist wohl so, wie es ist.


    Wenn ich nun aber daran denke, dass das Skript ja letztendlich eine ganze Reihe von Effekten auf die zu bearbeitenden Dateien anwenden soll, wird's schnell recht kompliziert:


    Nach Anwendung Deines "RFT-Compressor" soll Dein "RFT-Limiter" zum Einsatz kommen und irgendwo innerhalb der Kette noch eine vernünftige Equaliser-Einstellung angewendet werden und letztendlich noch eine Normalisierung stattfinden, d.h. worauf ich hinauswill ist, kurz formuliert, eine dynamische Kompression.


    Wobei dies zu einem anderen "Problem" führt: der empfehlenswerten Reihenfolge der Effekte.


    Ui, ui, ui, das kann ja was werden (oder auch nicht ;) ).


    Auf alle Fälle Dir recht herzlichsten Dank schon mal für Dein Engagement, auch wenn Deine Bemühungen nicht alleine meiner Anfrage gelten.


    Ich denke, dass mit meinem Stein, den ich in's (Weiter)Rollen gebracht habe, vielen Forums-Mitgliedern geholfen sein wird, die sich mit ähnlichen Problemen rumschlagen.


    Gruß
    Enrico

  • Zitat

    Wenn ich die "Nyquist IDE" gestartet habe und sie sich vollends entfaltet hat, schaltet sie sich automatisch in den SAL-Modus ("> Entering SAL mode ..." steht im Output-Fenster und danach "SAL>"), da brauche ich wohl nichts umstellen.


    Ja und Nein. Wenn Nyquist_3.03 startet, dann startet es im "SAL>" Modus. Der "SAL>" Modus ist aber genau der Modus, den wir nicht gebrauchen können, Nyquist muss deshalb erst einma in den "Lisp" Modus (nur ">" ohne "SAL") umgeschaltet werden. Weil Nyquist mit "SAL>" im falschen Modus steht erscheinen die ganzen Fehlermeldungen.


    Zitat

    Naja, sofern hier keine Unterstützung für flac-Dateien geben sollte, dann muss ich wohl meine knappen 13.000 Songs in's wav-Format umwandeln...


    SoX kann flac-Dateien in "Echtzeit" hin- und zurück umwandeln, allerdings funktioniert das unter Windows nur mit relativ riesigen temp-Dateien, oder kann Windows_7 jetzt mal endlich richtige Pipes?


    Zitat

    Die Pegel-Anzeige meines Audioplayers stagniert im roten Bereich und die Spektrum-Analyse bekommt fast einen Herzkasperl, es hört sich aber nicht übersteuert an. Kann es sein, dass dies mit dem "Threshold"-Wert zusammenhängt, wie Du geschrieben hast?


    Entschuldigung, das hatte ich vergessen zu schreiben: der "rft-limiter.lsp" Effekt von oben verstärkt automatisch alle Dateien auf Maximalpegel -0.25dB (ich hatte den Code aus der Version herauskopiert, die ich bei mir zu Hause verwende). Der "Treshold" Regler stellt dabei nur den "Absäge-Pegel" (Clipping) ein, das Signal wird danach auf "so laut wie möglich ohne Clipping" verstärkt. Dafür verwende ich den Limiter normalerweise. Das kann natürlich wieder auf die "Audacity-Forum" Version geändert werden.


    Zitat

    Welche Zeile entspricht welchem Schieberegler?


    [line]
    [m](scale (/ 1 (/ vl (db-to-linear 0.45))) ; alle folgenden Zeilen so verstärken, dass das Ergebnis bei -0.25dB liegt
    (sim ; simultaneous = alle folgenden Zeilen gleichzeitig abspielen
    (scale 0.2 (clip s vl)) ; bei "Treshold" clippen, mit 20% Lautstärke abspielen
    (scale 0.2 (clip s (db-to-linear (- limit 0.25)))) ; bei "Treshold-0.25dB" clippen, mit 20% Lautstärke abspielen
    (scale 0.2 (clip s (db-to-linear (- limit 0.50)))) ; bei "Treshold-0.50dB" clippen, mit 20% Lautstärke abspielen
    (scale 0.2 (clip s (db-to-linear (- limit 0.75)))) ; bei "Treshold-0.75dB" clippen, mit 20% Lautstärke abspielen
    (scale 0.2 (clip s (db-to-linear (- limit 1.00))))) ; bei "Treshold-1.00dB" clippen, mit 20% Lautstärke abspielen
    )[/m]
    [line]


    Keine Zeile entspricht keinem Schieberegler, aber alle Zeilen arbeiten mit Werten, die aus einem einzigen Schieberegler abgeleitet sind. Das ist der eigentliche Trick an der Sache, weniger als ein Schieberegler geht nicht. :)


    Grafikoberfläche


    Zitat

    Irgendwie war ich der Meinung, dass es einfacher gehen würde, dass ich im Skript einfach nur das Modul aufrufe und es sich die Parameter aus der grafischen Oberfläche zieht...


    Aus welcher grafischen Oberfläche? Das Java Fenster ist ein reiner Fake. Nyquist besteht aus der "nyquist.exe" Datei (kann unter Windows auch "ny.exe" heissen) und ein paar Lisp Dateien, der Rest wird für die Tondatenbearbeitung überhaupt nicht gebraucht. Ich habe aber natürlich nichts gegen Verbesserungsvorschläge, weil die momentane Version von mir ist zugegebenermassen noch schwerster Murks.


    Zitat

    Wenn ich nun aber daran denke, dass das Skript ja letztendlich eine ganze Reihe von Effekten auf die zu bearbeitenden Dateien anwenden soll, wird's schnell recht kompliziert.


    Es ist grundsätzlich richtig dass alles so einfach wie möglich sein sollte aber Tonbearbeitung besteht leider aus sehr vielen Details. Ich glaube aber nicht dass ein Bearbeitungsskript, das hinterher nur noch Lisp Dateien mit Parametern aufruft, länger als zwanzig oder dreissig Zeilen wird.


    Frage: wie sollte eine Grafikoberfläche für ein Skript-Programm aussehen? "Skripting" bedeutet normalerweise "keine Grafik", aber ganz ohne Grafik ist natürlich auch ätzend. Ich dachte eigentlich eher an so etwas wie eine Dateiliste ungefähr wie in Winamp oder ähnlich, wo die Reihenfolge der Dateien über eine Liste festgelegt werden kann und die Reihenfolge der Effekte in einer zweiten Liste. Viel komplizierter sollte es meiner Meinung aber nicht sein, weil Multiplattform Grafik zu programmieren ist wesentlich mehr Aufwand als die Tongeschichte.


    Reihenfolge der Effekte


    Zitat

    Nach Anwendung Deines "RFT-Compressor" soll Dein "RFT-Limiter" zum Einsatz kommen und irgendwo innerhalb der Kette noch eine vernünftige Equaliser-Einstellung angewendet werden und letztendlich noch eine Normalisierung stattfinden, d.h. worauf ich hinauswill ist, kurz formuliert, eine dynamische Kompression.


    Also der Arbeitsweg hört sich fast genauso an wie ich das auch immer mache. Das Problem ist aber dass ich bis heute keinen Weg gefunden habe wie die drei oder vier Schritte "Kompressor", "Equalizer", "Limiter" und "Normalisierung" (dafür verwende ich normalerwese bereits den Limiter), in einen einzigen Arbeitsschritt zusammengefasst werden können. Der "Equalizer" kann je nach Ausgangsmaterial machmal auch an anderen Stellen auftauchen, zuerst "Limiter" und dann "Kompressor" macht nicht viel Sinn, der "Kompressor" kann manchmal auch komplett weggelassen werden. So eine richtige Universallösung, die mit allen Aufnahme gleich gut funktioniert habe ich da leider auch nicht auf Lager.

  • Nachdem ich mich seit gestern erst so richtig mit der Materie befasse bzw. durch Deine beiden Module erst einen vernünftigen Einstiegspunkt zum Thema "Dynamik-Kompression ohne weitere notwendige Software während des Abspielens" gefunden habe, denn Echtzeit-Software zu diesem Zweck klingt erstens entweder sehr grausam, oder/und ist zweitens sehr teuer, oder/und ist drittens extrem kompliziert zum Bedienen und/oder ist viertens zudem überladen, wäre es super, wenn "wir" das Ding vernünftig unter einen Hut bringen könnten.


    Gut, das "wir" deshalb in Anführungsstrichen, weil ich noch nie programmiert habe, außer mal eine DVD-Verwaltung auf Webbasis mit sehr umfangreichem Javaskript im Hintergrund, aber das war's dann auch schon.


    Ich werde Dir in diesem Punkt wohl absolut keine "Hilfe" darstellen können, ohne vermessen klingen zu wollen. Auch denke ich in diesem Zusammenhang, dass ich nicht erwarten kann/darf, dass Du hier eine Lösung "für mich" zauberst, auch wenn Du es schon länger vorhast, eine allgemeine Lösung bereitzustellen.


    >>> [...] Dateiliste [...] über eine Liste [...] und die Reihenfolge der Effekte in einer zweiten Liste


    Genauso stelle ich mir auch DAS Programm dazu vor, wobei man von Haus aus die Reihenfolge der Effekte auch vorgeben kann/sollte:


    1. EQUALIZER
    (damit der Kompressor aufbereitetes Material bekommt)


    2. RTF-KOMPRESSOR
    (um Lautstärke-Unterschiede auszugleichen; Modul steht ja bereits)


    [3. EQUALIZER
    (um das klangliche Ziel aus Schritt 1 wieder herzustellen)]


    4. Broadcast Limitter III
    (um Clipping zu verhindern; Modul steht ebenfalls)


    5. EXPORT
    (sicherheitshalber in separaten Ordner)


    >>> Aus welcher grafischen Oberfläche?


    Ich meinte damit, dass sich das Skript die Daten aus der grafischen Kurve, die man in Audacity zeichnen kann und aus den Schiebereglern Deines RTF-Stereo-Compressors bzw. Deines Broadcast Limitters "rausziehen" könnte, denn irgendwo müssen die Daten ja abgelegt worden sein.


    Viele Grüsse
    Enrico

  • Nochwas habe ich vorher vergessen:


    Folgende Fehlermeldung erhalte ich im Lisp-Modus:


    Returning to Lisp ...
    T
    > (setdir "G:\\")
    "G:\\"
    > (setdir "G:\\\\")
    "G:\\"
    > (top)
    [ back to top level ]
    (sal-load "G:\\rft-limiter.lsp")
    > ; loading "G:\rft-limiter.lsp"
    AutoNorm feature is off.
    Saving sound file to G:\DR. ALBAN - IT'S MY LIFE (Nquist).flac
    error: SND-READ: Cannot open file 'G:\DR. ALBAN - IT'S MY LIFE.flac'
    error loading lisp file G:\rft-limiter.lsp
    NIL
    >


    Gruß
    Enrico

  • Mann, Mann, Mann, dass einem immer hinterher noch Dinge einfallen... Schlimm ist das...


    Vielleicht wäre es auch nicht verkehrt, zu Beginn der Bearbeitungskette die Wahlmöglichkeit einzubauen, das Ausgabeziel in Mono umzuwandeln oder in Stereo zu belassen (falls sie in Stereo ist).


    Dieser Bearbeitungsschritt müsste aber wohl am Schluß vollzogen werden, da die Gefahr besteht, dass sich Clipping ergibt, da dann in der Monospur die Dynamiken der zuvor beiden Stereospuren zusammengelegt werden.


    Dies würde die Bearbeitungskette aber nochmals erweitern (?), da nach der Umwandlung in Mono der Klang wieder angepasst werden müsste (?)


    Gruß
    Enrico

  • Zitat

    > (setdir "G:\\")
    "G:\\"
    > (setdir "G:\\\\")
    "G:\\"


    Nyquist_3.03 ist älter als Windows_7 und in Windows_7 wurden wieder viele Standard Ordner umbenannt. Nyquist kann das "temporäre Verzeichnis" von Windows_7 nicht finden. Wie das temporäre Windows Verzeichnis heisst kannst du heraus finden indem du in der Windows Shell (konnte immer im Startmenü mit "Programme > Zubehör > Eingabeaufforderung" geöffnet werden, ich weiss aber nicht ob das unter Windows_7 immer noch so ist) folgende Zeile eintippst:


    [m]echo %TEMP%[/m]


    Wenn du dann die Eingabetaste (Returntaste) drückst sollte Windows den Verzeichnisnamen zurückgeben. Wenn du mir den Verzeichnisnamen hier reinschreibst kann ich die sagen wie du das ändern kannst. Das ist aber nicht wirklich dringend, weil die Java Oberfläche später sowieso nicht mehr gebraucht wird.


    Zitat

    error: SND-READ: Cannot open file 'G:\DR. ALBAN - IT'S MY LIFE.flac'


    Nyquist kann keine komprimierten Audiodateien lesen. Das macht bei DSP Effekten auch schon allein deshalb nicht viel Sinn weil die meiste Rechenleistung für das Dekomprimieren und anschliessende erneute Komprimieren draufgehen würde. Komprimierte Dateien (egal ob mp3, ogg, flac oder was-auch-immer) können NICHT direkt mit Effekten bearbeitet werden. Komprimierte Dateien müssen IMMER zuerst dekomprimiert, dann bearbeitet, und danach wieder erneut komprimiert werden.


    Zitat

    Ich meinte damit, dass sich das Skript die Daten aus der grafischen Kurve, die man in Audacity zeichnen kann und aus den Schiebereglern Deines RTF-Stereo-Compressors bzw. Deines Broadcast Limitters "rausziehen" könnte, denn irgendwo müssen die Daten ja abgelegt worden sein.


    Die "Kurve" ist nichts anderes als die Tondaten, die als Zahlen in der WAV oder FLAC Datei gespeichert sind (eine FLAC Datei muss vorher natürlich dafür erstmal dekomprimiert werden). Wenn du in Audacity mit der Lupe ganz weit in die Tonspur hineinzoomst erscheinen irgendwann "dicke Punkte", die mit Linien verbunden sind. Die "dicken Punkte" sind die Zahlenwerte der einzelnen Samples. Bei einer 44100Hz Stereo Datei handelt es sich also in Wirklickeit um nichts anderes als 2x44100=88200 Zahlen pro Sekunde Spielzeit. Ein Standard 3_1/2 Minuten Lied besteht aus ungefähr zwanzig Millionen Zahlen.


    Zitat

    Vielleicht wäre es auch nicht verkehrt, zu Beginn der Bearbeitungskette die Wahlmöglichkeit einzubauen, das Ausgabeziel in Mono umzuwandeln oder in Stereo zu belassen (falls sie in Stereo ist).


    Keine Sorgen machen, ich selber brauche noch viel beknacktere Funktionen, zum Beispiel aus einer Monodatei am Ende eine Pseudo-Stereodatei machen (2xMono in beiden Kanälen) weil manche Software zur Sendeablaufsteuerung keine Monodateien abspielen kann (ich schreibe hier jetzt besser nicht rein was ich von Leuten halte, die sowas programmiert haben).


    Ich schreibe nachher noch mehr dazu, kann aber noch eine Weile dauern...

  • Und weiter geht's... :)


    >>> [...] Wenn du mir den Verzeichnisnamen hier reinschreibst [...]


    Windows gibt mir den Pfad "C:\Users\Morfad\AppData\Local\Temp" aus.


    >>> Nyquist kann keine komprimierten Audiodateien lesen


    Oje, oje, oje. Gut, bin schon dabei, meine zig tausend Dateien vom flac-Format wieder in's wav-Format zurückzuwandeln, geht ja erstens glücklicherweise verlustfrei und zweitens hat hier nur mein Laptop alle Speichermodule voll zu tun, nicht aber ich :D


    >>> Ein Standard 3 1/2 Minuten Lied besteht aus ungefähr zwanzig Millionen Zahlen


    Das bedeutet jetzt aber hoffentlich nicht, dass ich mich hiermit näher befassen muss, oder?! ;)


    >>> Keine Sorgen machen, ich selber brauche noch viel beknacktere Funktionen


    Schön zu hören bzw. zu lesen. Ich fände die Umwandlung in Mono sehr praktisch, weil ich Musik über meine 5.1-Anlage höre und beispielsweise bei Flanger-Effekten, wie sie bei "ETERNAL AFFLICT - SAN DIEGO" am Anfang vorkommen das Problem habe, dass der Effekt bei meinen 4 Boxen, Center spielt hierbei keine Rolle, teils abgeschnitten klingt. Bei Mono hätte ich diesen Effekt nicht, da aus allen 4 "Hauptboxen" die gleichen Signale kommen. Und damit würde das Mono-Signal auch nicht weiter auffallen, ein weiterer Pluspunkt.


    >>> Ich schreibe nachher noch mehr dazu


    Darauf freue ich mich schon, ich habe hier wohl ein wirklich spannendes Thema aufgegriffen :)


    Gruß
    Enrico

  • Zitat

    ...bin schon dabei, meine zig tausend Dateien vom flac-Format wieder in's wav-Format zurückzuwandeln...


    Also es wäre möglich (und wahscheinlich auch sinnvoll) SoX und Lame mit in die Effektkette einzubauen, dann könnten auch "Effekte" wie "Datei dekomprimieren" und "Datei komprimieren" mit in den Effektweg eingebaut werden. So könnten auch einzelne Dateien oder ganze Verzeichnisse vin Dateien von einem Format ins andere umgewandelt werden. SoX und Nyquist können übrigens auch Mehrkanal-Formate, so dass es auch möglich wäre Effekte zu schreiben, die das "Raumbild" von Mehrkanal-Formaten ändern können (was Audacity bis heute nicht richtig kann).


    Ich muss jetzt auf eine Redaktionskonferenz, bin aber ab ca. 22 Uhr wieder da...

  • >>> [...] SoX und Lame mit in die Effektkette einzubauen, dann könnten auch "Effekte" wie "Datei dekomprimieren" und "Datei komprimieren" mit in den Effektweg eingebaut werden


    Mit SoX kenne ich mich überhaupt nicht aus, Dein Vorschlag klingt aber gut. Allerdings würde ich den LAME ganz am Schluß der Effektkette einbauen und, um die hierbei unvermeidlichen Qualitätsverluste so gering wie möglich zu halten, entweder mit 320kbps fest einstellen oder aber dem User die Wahlmöglichkeit lassen, welche Bitrate er verwenden will, dann muß der User natürlich, je nach Einstellung, mit mehr oder weniger groß ausfallenden Qualitätsverlusten zurechtkommen.


    >>> Ich muss jetzt auf eine Redaktionskonferenz


    Am Sonntag?!? Ok, man liest sich :)

  • Mir hat das Thema "Reihenfolge der Effekte" keine Ruhe gelassen und deshalb möchte ich hier, als letzte Amtshandlung für den heutigen Tag, meine gedankliche Reihenfolge aufzeigen, die ich für vernünftig halte:


    1. Stille Passagen am Anfang und Ende löschen
    2. Gain anpassen
    3. RTF-Kompressor
    4. Equalizer
    5. RTF-Limiter


    Schritte 6-10, falls Umwandlung nach Mono gewünscht, ansonsten weiter bei 11


    6. Umwandlung in Mono
    7. Gain anpassen
    8. RTF-Kompressor
    9. Equalizer
    10. RTF-Limiter


    11. Export im gewünschten Format (nero's aac 192kbps, mp3 mit variabel bestimmbarer Rate, wav, flac ?)


    Was ich für sehr wichtig halte, wäre, dass die Originaldateien unberührt bleiben und dass der Export in ein Unterverzeichnis des aktuellen Verzeichnisses erfolgt (der Ordner wird automatisch erstellt, sollte er nicht [mehr] bestehen).


    Gute Nacht, bis bald und...


    ...wie immer...


    Gruß
    Enrico

  • Und wieder eine Idee :)


    Was würdest Du denn davon halten, wenn Audacity um die Möglichkeit erweitert werden würde/könnte, aus den Einstellungen der grafischen Oberfläche per Tastendruck den dahinterliegenden Code für's Scripting zu erzeugen und gleich in der Zwischenablage zu "parken", so dass man ihn nur noch in's Script an der gewünschten Stelle einfügen müsste?


    Dies hätte den riesigen Vorteil, dass man vor der Code-Erzeugung in aller Ruhe die einzelnen Effekte durchprobieren und anhören könnte, ohne sich durch den Code zu den jeweiligen - im Vergleich hierzu nichtssagenden - Zeilen vorhangeln zu müssen, um die Werte abzuändern?


    Gruß
    Enrico

  • Nicht dass du denkst dass ich das vergessen hätte: ich sitze den ganzen Tag schon dran und versuche herauszufinden, wie man mit statistischer FFT Analyse die Reglereinstellungen automatisieren könnte.


    Natürlich wäre es auch ganz schön wenn Audacity das von alleine könnte, aber erstens bin ich kein Audacity Programmierer und zweitens warte ich bereits seit mehr als sieben Jahren darauf dass Nyquist in Audacity mal endlich richtig zum Laufen gebracht wird. Ich würde mich da an deiner Stelle lieber nicht daruf verlassen, dass sich mit Audacity in dieser Richtung in den nächsten Jahren irgendwas tut. Auch gibt es momentan z.B. das Problem, dass alle Audacity Entwickler, die eine eigene Software Firma haben, damit beschäftigt sind ihr Programme unter Windows_7 zum Laufen zu bekommen, so dass es momentan z.B. keinen einzigen Audacity Entwickler gibt, der dieses Forum überhaupt liest.


    Die Audacities kannst du im Zweifelsfall folgendermassen erreichen:


    * feedback [at] audacityteam [dot] org - da kann jeder hinschreiben, es wird keine besondere Anmeldung gebraucht (die meisten verstehen aber nur englisch)
    * http://sourceforge.net/projects/audacity/support - unter "Mailing Lists" findest du die Adressen aller Mailing Listen (die "Archiv" Links kannst du dir auch ohne Anmeldung anschauen)