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.<br />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'.<br />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.<br />
en
dc.description.abstract
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.<br />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.<br />Während der Arbeit an dieser Masterarbeit habe ich Supernova entwickelt, einen mehrprozessorfähigen Klangsynthese Server für SuperCollider.<br />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'.<br />Meines Wissens ist Supernova die erste parallele Klangsynthese-Engine, die für Echtzeitanwendungen bei niedrigen Latenzzeiten ausgelegt ist, ohne das Audiosignal zu verzögern.<br />
de
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
SuperCollider
de
dc.subject
Parallelisierung
de
dc.subject
Klangsynthese
de
dc.subject
Echtzeit
de
dc.subject
SuperCollider
en
dc.subject
parallelism
en
dc.subject
audio synthesis
en
dc.subject
real-time
en
dc.title
Supernova - a multiprocessor aware real-time audio synthesis engine for SuperCollider