RTMix main screen

RTMix (2001) is the first program I ever wrote that had a comprehensive GUI implementation. It was introduced at a point in time when Linux-based real-time performance tools were scarce, there was no easy way to coordinate multiple digital signal processes, and command line ruled the day. Consequently, there was a need for a tool that could unite multiple seemingly disparate real-time digital signal processing tools (many of which had no graphical user interface), while also providing a user-friendly compositing, rehearsal, and performance environment.

Built in C++ and Qt, RTMix in its name pays homage to Paul Lansky’s Cmix (and its real-time counterpart RTcmix), as well as his RT, a truly unique script-based multitrack mixer that was later ported to OSX and Linux by Doug Scott under the name of Qrt. These tools played an important part in my college-level computer music education. My mentor Mara Helmuth who studied with Paul Lansky used said tools extensively in her own teaching and as a result introduced me to them.

RTMix is inspired by a command-line tool I developed for my masters thesis which called for a live interactive treatment of a guitar. I still vividly remember hauling in my bulky tower that was the only computer with adequate computing power to successfully pull off the piece, and practically one of the few, if not the only one Linux-based audio-centric workstation at the time in the entire Cincinnati College-Conservatory of Music. Encouraged by the outcome, I set out to create a visual editor with visual cues that would allow for triggering various processes and events through system calls, like the ones RTcmix was capable of. As the program grew, it also offered comprehensive Open Sound Control (OSC), MIDI, and networking support, as well as a growing number of logical operators that would allow for dynamic changes in the overall playback timeline. RTMix also offers a robust editor and error-checking routines (despite the fact the underlying code, as my first serious endeavor, is unbearably ugly), a collection of external visual widgets, like the polyrhythmic metronome, and a fairly comprehensive (albeit rather plain HTML 90s style) documentation with example scripts. This was also one of my earliest experiments with multithreaded design. Although I am not any more actively developing RTMix, over the years Linux audio community members have contributed patches to ensure that the application continues to build and function. It also continues to be available from various repositories, including Stanford’s CCRMA.

Works utilizing RTMix include SlipStreamScapes III: The Sea (a.k.a. Meditations III: The Sea), a five-movement piece for guitar and computer and my masters thesis, and the SlipStreamScapes V: Lullaby for two pianos. Please note the 25-minute recording of SlipStreamScapes III: The Sea includes all five movements, out of which the first one is for guitar solo, the last one is for tape, and the inner three movements starting at 5:15 utilize real-time processing of the guitar. The Sea features Todd Nelson who commissioned and premiered the work, while Lullaby features Michael Fowler who commissioned the work and co-premiered it with me.

SlipStreamScapes III: the Sea
SlipStreamScapes V: Lullaby

Research Publications:


RTMix software and documentation