Titelaufnahme

Titel
Supernova - a multiprocessor aware real-time audio synthesis engine for SuperCollider / von Tim Blechmann
VerfasserBlechmann, Tim
Begutachter / BegutachterinErtl, Martin Anton
Erschienen2011
UmfangIII, 58 S. : graph. Darst.
HochschulschriftWien, Techn. Univ., Dipl.-Arb., 2011
Anmerkung
Zsfassung in dt. Sprache
SpracheEnglisch
DokumenttypDiplomarbeit
Schlagwörter (DE)SuperCollider / Parallelisierung / Klangsynthese / Echtzeit
Schlagwörter (EN)SuperCollider / parallelism / audio synthesis / real-time
URNurn:nbn:at:at-ubtuw:1-43451 Persistent Identifier (URN)
Zugriffsbeschränkung
 Das Werk ist frei verfügbar
Dateien
Supernova - a multiprocessor aware real-time audio synthesis engine for SuperCollider [0.56 mb]
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

In den meißten derzeit gebauten Computern werden Mehrkernprozessoren verbaut. Allerdings benutzen die meissten Computermusik Systeme einen einzigen Thread für die Klangsynthese. Für viele Anwendungsbereiche der Computermusik ist die Rechenleistung eines einzelnen Kerns einer aktuellen CPU ausreichend, allerdings gibt es einige rechenintensive Anwendungsfälle, in denen man von der Rechenleistung mehrerer Kerne Gebrauch machen kann.

Klangsynthese in Echtzeit hat bestimmte Anforderungen bezüglich ihrer Echtzeitfähigkeit, da die Synthese-Engine für worst-case Latenzen von unter einer Millisekunde ausgelegt sein muss. Aus diesem Grund dürfen keine blockierenden Synchronisationsstrukturen eingesetzt werden und der Signalverarbeitungsgraph muss in sinnvolle Teile zerlegt werden, die eine ausreichende Parallelität aufweisen ohne einen erheblichen Synchronisationsoverhead zu verursachen.

Während der Arbeit an dieser Masterarbeit habe ich Supernova entwickelt, einen mehrprozessorfähigen Klangsynthese Server für SuperCollider.

SuperCollider ist ein Computermusik System, das auf einer dynamischen Skriptingsprache mit einem chtzeitfähigen Garbage Collector basiert, mit der ein separater Klangsynthese Server gesteuert wird. Supernova ersetzt den ursprünglichen Klangsynthese Server. Es ist nicht möglich, den Synthesegraphen von SuperCollider automatisch zu parallelisieren, ohne die Semantik der Klassenbibliothek grundlegend zu verändern. Daher wurde das Programmiermodell des Synthesegraphen erweitert, um dem Benutzer eine Möglichkeit zu geben, Parallelismus explizit zu formulieren. Dafür schlage ich zwei einfache Konzepte vor, 'parallele Gruppen' und 'Satellitenknoten'.

Meines Wissens ist Supernova die erste parallele Klangsynthese-Engine, die für Echtzeitanwendungen bei niedrigen Latenzzeiten ausgelegt ist, ohne das Audiosignal zu verzögern.

Zusammenfassung (Englisch)

These days, most computer systems are built with multi-core processors. However, most computer music systems use a single-threaded synthesis engine. While the single-core performance for current CPUs is sufficient for many computer music applications, some demanding applications benefit from using multiple processors simultaneously. Real-time audio synthesis imposes specific constraints regarding real-time safety, since the synthesis engine needs to be tuned for worst-case latencies below one millisecond. As a result, no blocking synchronization can be used and the signal processing graph needs to be split into reasonably sized parts, that provide enough parallelism without introducing a significant scheduling overhead.

During the work on this master thesis, I developed Supernova as a multiprocessor aware synthesis engine for SuperCollider. SuperCollider is a computer music system based on a dynamic scripting language with a real-time garbage collector, that is used to control a separate audio synthesis server. Supernova replaces the original audio synthesis engine. It is not possible to automatically parallelize the synthesis graph of SuperCollider without fundamentally changing the semantics of the SuperCollider class library. Therefore a the programming model for the synthesis graph was extended, exposing parallelism explicitly to the user. To achieve this, I propose two simple concepts, 'parallel groups' and 'satellite nodes'.

To my knowledge, Supernova is the first parallel audio synthesis engine that is designed for real-time operations under low-latency constraints without adding any additional latency to the audio signal.