4.1.2009

Musikproduktion am Computer (11)

(Themenanfang)

Es gibt zwei unterschiedliche Strategien, wenn man ein Programm schreiben will, mit dem man am Computer Audiodateien abspielen, aufnehmen, und editieren kann. Bei der einen wird jedes einzelne Sample getrennt berechnet; bei der anderen wird ein größerer Speicherblock aus mehreren Samples in einem Rutsch bearbeitet.

Die ältesten Verfahren sind Sample-orientiert (was nicht heißt, daß dies überholt wäre). Sie basieren auf spezieller Hardware - DSP-Chips, die auf die Bearbeitung von 16-Bit-Daten spezialisiert sind und zudem einen (im Vergleich zu einer CPU) stark reduzierten Befehlssatz haben, dafür aber über eine Reihe Features verfügen, die sie echtzeitfähig machen.

Block-orientiertes Vorgehen hingegen ist seit Mitte der 90er Jahre auch auf der CPU eines gewöhnlichen PC lauffähig - es ist wesentlich einfacher zu optimieren, weil die Vorbereitungen für die Berechnungen nur einmal für einen kompletten Block aus mehreren hundert (oder tausend) Samples durchlaufen werden müssen, statt immer wieder für jedes einzelne Sample - letzteres verlangt einen Chip, der ausschließlich mit der Berechnung von Audio beschäftigt ist, während ersteres sich auch als Hintergrundtask für die Haupt-CPU - die ja auch andere Dinge, wie Userinput und GUI zu verarbeiten hat - programmieren läßt.

Es ist klar, daß Block-orientierte Verfahren im Resultat wesentlich billiger für den Enduser sind, weil dieser keine neue Hardware anschaffen muß. Tatsächlich kam es zum Siegeszug der Audiobearbeitung für das Homerecording erst, als Steinberg mit VST und ASIO zwei Standards etablierte, die sich mit der Rechenleistung der Haupt-CPU bescheiden - und die auf dem Processing von Sample-Blöcken basieren.

In der professionellen Szene hat sich dieser Ansatz jedoch bis heute nicht durchgesetzt. Wer etwas auf sich hält, hat ein ProTools-System von Digidesign in seinem Tonstudio installiert, sprich: (sehr) teure Hardware. Ein entscheidendes Argument ist die Tatsache, daß man hier keine Probleme mit Latenz hat - ein Signal, das man in den Eingang der Hardware schickt, kommt mit nur einem Sample Verzögerung am Ausgang wieder an, und zwar mit sämtlichen Berechnungen für das Mixing und für die Effekte. Für die Wiedergabe ist dies zwar ohne Bedeutung - die Block-orientierte Konkurrenz löst das Problem, indem sie die Abspiel-Engine in die Zukunft vorverlegt, d.h. vorberechnete Buffer bereit stellt, die auf Anforderung ohne Zeitverzögerung ausgegeben werden können. Anders sieht das bei der Aufnahme aus: wenn man einem Sänger oder Gitarristen das mit Halleffekten oder einer Verstärkersimulation bearbeitete Signal auf den Monitor legen will, sind Verzögerungen von mehreren Millisekunden, wie sie in der Block-orientierten Verarbeitung zwangsläufig auftreten, inakzeptabel. Wenn ein Gitarrist sich erst hört, nachdem er die Saite längst angeschlagen hat, dürfte es ihm unmöglich werden, korrektes Timing oder gar Groove an den Tag zu legen.

[Disclaimer: als Steinberg-Mitarbeiter bin ich in dieser Debatte natürlich Partei - ein zweiter, noch folgender Teil zu dem Thema wird das auch deutlich zeigen.]

(Kommentarfunktion z.Zt. deaktiviert.)