Arten von Tools zur Automatisierung der "bandähnlichen" Audiomanipulation [geschlossen]

[An alle, die das folgende Setup als schamlos von Musique Concrète und Cages Musik abgeleitet erkennen: Entschuldigung für die groben Vereinfachungen]

Setup: Ich habe ein Projekt, in dem ich Audio-Samples programmgesteuert lesen, möglicherweise ihre Eigenschaften manipulieren (Hüllkurven anwenden, Umkehren, Hall, beschleunigen/verringern usw.) und sie in Sequenzen kombinieren muss.

Grundsätzlich muss ich die Effekte, die ich in einem Tool wie Audacity oder seinen Äquivalenten verfügbar hätte, programmgesteuert steuern.

Frage: Welche Arten von Werkzeugen könnte ich mir ansehen, um dies zu erreichen? Ich habe mich kurz mit Supercollider und Pure Data befasst (= ein paar Tutorials lesen), aber sie scheinen hauptsächlich auf Klangsynthese ausgerichtet zu sein, obwohl das Lesen von Samples aus Dateien möglich ist. Die Klangsynthese-Orientierung scheint auch viel unnötige Komplexität für ein so einfaches Projekt wie meines einzuführen. Außerdem sind reine Daten (und ihre Geschwister) visuell orientiert, und ich würde, wenn möglich, eine textbasierte Umgebung bevorzugen.

Vielleicht gibt es Soundmanipulationsbibliotheken, die den Zugriff auf "Audacity-ähnliche" Effekte aus einer Standardprogrammiersprache heraus ermöglichen (ein Tool, das mangels eines besseren Begriffs wie eine "Audacity-Bindung" für Sprache X wäre)?

Benötigen Sie Echtzeitfähigkeiten oder ist das alles eine Frage der Offline-Verarbeitung?
Diese Frage ist hier nicht zum Thema, da wir uns entschieden haben, Empfehlungen für Hardware oder Software nicht zu diskutieren. Sie können es stattdessen unter softwarerecs.stackexchange.com versuchen.
Stefano – wären Sie mit Empfehlungen für eine bestimmte Art von Tool zufrieden, anstatt für bestimmte Tools?
@topomorto: Ich brauche nur Offline-Verarbeitung. Auch Vorschläge zur empfohlenen Werkzeugklasse sind willkommen. Tatsächlich sind sie sogar noch willkommener als Vorschläge zu bestimmten Tools. Ich muss im Grunde wissen, wo ich suchen muss
Ich habe die Frage bearbeitet, um dies zu verdeutlichen - hoffe, die Bearbeitung ist in Ordnung. (Fragen, die nach Vorschlägen für bestimmte Tools fragen, sind hier kein Thema - aber hoffentlich ist es so, wie es jetzt formuliert ist, in Ordnung.)

Antworten (1)

Eine Möglichkeit wäre einfach, eine Allzweck-Programmiersprache zu verwenden - fast jede ist geeignet -, um die Audio-Samples einzulesen, die Verarbeitung vorzunehmen und das Stück auf die Festplatte zu schreiben. Das Lesen und Schreiben des WAV-Formats ist ziemlich einfach, auch wenn Sie es selbst analysieren müssen. Einige der von Ihnen erwähnten Manipulationen – Anwenden von Hüllkurven, Verlangsamen von Audio – sind sehr einfach zu programmieren; Faltungshall ist ziemlich einfach. Das Beschleunigen von Audio kann etwas schwieriger sein, da Sie es auf eine Weise tun müssen, die Aliasing vermeidet . http://musicdsp.org/ ist eine Ressource für Audioalgorithmen, die Sie selbst implementieren können.

Natürlich ziehen Sie es vielleicht vor, eine Audiobibliothek eines Drittanbieters zu beauftragen, um einen Teil der Arbeit für Sie zu erledigen, damit Sie nicht all diese Low-Level-Arbeit erledigen müssen. Die Auswahl hängt von der Sprache ab, die Sie verwenden.

Eine andere Option wäre eine Sprache, die eine gute Audiounterstützung in ihre Standardbibliotheken integriert hat – zum Beispiel ist JavaScript ziemlich leistungsfähig mit Audio, wenn Sie es in einem Browser verwenden, der die Web Audio API unterstützt . Diese API unterstützt all die Dinge, die Sie erwähnt haben, und Sie könnten sogar einige interessante interaktive Dinge im Webbrowser ausführen (und natürlich Ihre interaktiven Werke ins Web stellen!).

Dann kommen wir zu dedizierten Audioprogrammiersprachen , die oft Dialekte allgemeiner Programmiersprachen mit standardmäßig integrierter Audiobibliotheksunterstützung sind. Eines, von dem ich kürzlich eine großartige Demo gesehen habe, ist Sonic PI (das Supercollider unter der Haube verwendet) und auf Live-Codierung ausgerichtet ist - obwohl Sie Ihre Arbeit genauso einfach auf Festplatte rendern können. Dies wäre eine meiner persönlichen Empfehlungen für einen einfachen Ausgangspunkt, obwohl ich kein Experte dafür bin.

Sie können auch in Betracht ziehen, einige Befehlszeilen-Audiotools zu verwenden und eine Batch-/PowerShell-/andere Skriptdatei zu schreiben, um sie zur Verarbeitung zu bewegen. Sox ist ein Beispiel, und Rubberband ist auch ein interessantes kleines Werkzeug.

Danke. Das ist genau das, wonach ich gesucht habe: eine Taxonomie der verfügbaren Toot-Typen (mit den richtigen Begriffen, um die Suche zu ermöglichen).