Frage

Ich bin daran interessiert, herauszufinden, ob es ein Programm oder eine Bibliothek vorhanden ist, die die folgende Aufgabe ausführen können, und würde für den Betrieb als Teil eines serverseitigen Prozesses auf einer Website geeignet sein. (Es ist in Ordnung, wenn es länger als die 200 milisecond maximal dauert, die für eine einzelne Seite Anforderung angemessen ist -. Ich kann es als ein asynchroner Prozess ausgeführt werden kann)

Die Aufgabe ist: Ich habe als Eingabe eine Reihe von Audio-Dateien, und ich habe einige Daten darüber, wann jede Audiodatei in einer Timeline zu spielen beginnen sollte. Das Programm sollte Ausgang eine Audiodatei, die eine Mischung aus dem Audio-Eingang ist, kombiniert, um die Timeline-Daten. Das heißt, ich ein Audiomischpult mag, die in arbeitet Batch-Modus , und nicht in Echtzeit.

Ich habe einige Google-Suchen durchgeführt, kam aber ein wenig frustriert, weil ich nicht ganz sicher bin, was soll ich suchen. Die meist Audio-Mixer scheint in Richtung Echtzeit-Anwendungen wie Spiele ausgerichtet, und ich bin nicht sicher, wie etwas zu finden, die diese Aufgabe als etwas tun, wie ein Kommandozeilen-Utility - rein Eingang nehmen und Ausgangssignal zu erzeugen, so schnell wie möglich.

Ich hoffe, diese Frage macht Sinn.

Edit: Jemand kommentierte Csound und gelöscht es dann. Was ist Csound? Ist es relativ einfach zu tun, was ich frage? Beachten Sie, dass meine Eingabe Tondateien zwischen 10-50 Sekunden lang sein kann, und ich bin nicht daran interessiert, in der Tonhöhe Verzerrung.

Wie würden Sie dies in Csound erreichen?

Gibt es etwas anderes als Csound, die diese Art der Sache tun?

War es hilfreich?

Lösung

Sie können auf jeden Fall Csound für diesen, und es könnte eine Reihe von Arten implementiert werden. Leider ist mein noch ziemlich im Entstehen begriffenen Studium der Csound hat mehr mit Audiosynthese und algorithmische Komposition als Probenahme und Verarbeitung, so dass ich keine Vorschläge für eine robuste Implementierung bieten.

Allerdings würde ich vermuten, dass Ihr Projekt Orchester Datei (der Teil eines Csound Programm, das Audio-Synthese und Verarbeitung von Informationen enthält, die so genannte in-Module enthalten Instrumente ) würde bedeuten, die soundin Opcode, die von einer Audio-Datei liest, und dann würde es die Amplitude der verschiedenen Ströme skaliert und sie mischen, bevor die Ausgabe übergeben.

Die Timeline wahrscheinlich in der Score-Datei behandelt werden würden (der Teil eines Csound Programms, das die Initialisierung von Instrumenten und Funktionstabellen Griffe), die Timeline-Daten in der Wiedergabe Timing übersetzen würde.

Sie können auch sehen Csound des GEN01 Unterprogramm, das in eine Funktionstabelle aus einer Datei Audiodaten liest.

Andere Tipps

Wenn Sie bereit sind, zu prüfen, Batch-Skripten als Teil dieses Prozesses ausgeführt wird, finden Sie vielleicht SoX nützlich . Sein „Mixer“ und „Remix“ Befehle schauen, wie sie nützlich sein könnten, obwohl Sie möglicherweise zu Beginn der Sound-Dateien leeren Raum machen, müßten Offsets zu behandeln.

Sie sollten einen Blick auf Supercollider . das würde den Trick für Sie vielleicht.

So etwas wie PHP OpenAL Bindungen ?

Sie aussehen könnten auf der BASS Audio-Bibliothek . Ich bin nicht in der Lage zu sehen, ob es schneller als in Echtzeit mische, wie es an der Firewall blockiert wird, aber ich habe festgestellt, es freundlich in der Vergangenheit zu verwenden.

Sie sind wahrscheinlich viele Vorschläge in Richtung Echtzeit-Audio-Lösungen bekommen wegen der Art und Weise Sie Ihre Frage formuliert haben:

  

Das Programm ausgeben soll ein Audio   Datei, die eine Mischung aus dem Eingang ist   Audio, kombiniert, um die Zeitleiste   Daten.

"Input-Audio" ist sehr vage. Für mich klingt es wie ein Live-Eingangsstrom (wie ein Mikrofon). Wenn Sie nicht mit Live ich tun / O-Streams überhaupt, dann ja, würde Csound ein wahrscheinlicher Kandidat. Es gibt viele Csound Tutorials online.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top