Several available free software audio solutions were analyzed, and Jackdmp—a C++ reimplementation of the renowned JACK Audio Connection Kit—was selected as the most appropriate solution for a real-time audio architecture on DROPS. The JACK sound architecture provides the lowest processing latency possible on a desktop computer for a given set of sound card parameters. It reduces the latency jitter caused by software to zero and synchronizes streams at sample accuracy. A real-time admission scheme for JACK clients is proposed. The execution time of different typical JACK clients was analyzed with measurements to validate the assumptions the proposal is based on, but also to gain further knowledge about their timing behavior. The measurements showed that the condition set by Paul Davis—the time to process a client must be a linear function of the buffer size—holds for all tested clients. Jackdmp was ported to DROPS. The developed design of the port and its implementation is documented here. Measurements showed that—although the real-time performance of the Linux kernel is continuously being improved in the mainline and on special external branches—DROPS can provide a signaling latency that is two times lower on average than the values that can be achieved on the same machine running with a low latency patched Linux kernel. Thus, it can be stated that DROPS is well-suited for real-time audio processing and that the pursued path to use it as the foundation of a truly real-time capable audio workstation should be followed. / Wenn man heute digitale Audiotechnik zum Aufnehmen oder Abmischen von Musik oder anderen Audiodaten verwenden möchte, steht man vor der Wahl, entweder auf eine sehr spezialisierte Hardwarelösung zurückzugreifen oder aber sich eines gewöhnlichen Desktopsystems mit entsprechender Audiosoftware zu bedienen. Der Vorteil eines Desktopsystems ist neben seinem deutlich niedrigeren Preis vor allem die Flexibilität. Bezüglich seines Echtzeitverhaltens bietet ein Computer mit einem Standard-Desktop-Betriebssystem aber bei weitem nicht dieselbe Verlässlichkeit einer spezialisierten Hardwarelösung oder analoger Technik. Die Architektur von DROPS --- mit dem echtzeitfähigen Fiasco- Mikrokern auf der einen Seite sowie der Unterstützung von Legacy-Anwendungen durch L4Linux auf der anderen Seite --- birgt die Hoffnung, die Vorteile von den beiden eben beschriebenen Welten auf einem System mit DROPS kombinieren zu können. Die Motivation meiner Arbeit war es, für dieses langfristige Ziel einen ersten Grundstein zu legen. Dazu war es meine Aufgabe, verschiedene Open-Source- Lösungen hinsichtlich ihrer Eignung als Echtzeit-Audioarchitektur für DROPS zu analysieren und die am besten geeignete auf L4Env zu portieren. Meine Wahl fiel dabei auf das in der Linux-Audio-Szene wohlbekannte Jack Audio Connection Kit (JACK). Desweiteren konnte ich in der Arbeit untersuchen, wie sich die JACK Audioarchitektur in ein globales Echtzeit-Scheduling --- z.B. eines von DROPS --- einbetten ließe, und schlage eine generische Methode dafür vor.
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:23592 |
Date | 06 April 2009 |
Creators | Voigt, Michael |
Contributors | Roitzsch, Michael, Härtig, Hermann |
Publisher | Technische Universität Dresden |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | English |
Detected Language | English |
Type | doc-type:masterThesis, info:eu-repo/semantics/masterThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0015 seconds