On Thu, Apr 06, 2006 at 04:14:32AM -0800, Patrick Stinson wrote: > I've been looking for a high-performance music engine. It must have an > asynchronous control (socket, pipe?) mechanism to seperate the > application from the audio thread.
Everytime this comes up, i hesitantly recommend GDAM. Its an 8 year old C and glib project, a server/client music engine with various music interfaces on top. Its core goal was DJ mixing, back when there were few software dj apps available. The design for this was not at all "mimic a turntable or cd deck's interface" but rather "digital music files, each with one or more areas with regular rhythm, combined and symchronized in different ways". So there are server-side, sample-accurate synch functions based on defining tempo-and-downbeat for two tracks and commanding one to beatmatch to the other. It will even walk the audio tree and take filters which change tempo, resample, or add latency into account. It is truly sample accurate, you can play two copies of a song, invert one, beatmatch, and get silence. GDAM also has seamless queueing of upcoming tracks, numerous builtin effects and LADSPA and JACK support. You could implement the GDAM protocol yourself in any language, or program against the "client" library which handles the protocol, or program against the "model" library where a number of higher level client-side concepts (turntables, sequencers etc) are implemented. Also a GTK-based GUI library is available with pixmap-based widgets. Why the hesitance? I can't promise any time at all to explain or help. Development of GDAM has been ongoing but i haven't made a release in years, and the documentation is quite old, and doesn't cover developer topics. GDAM server audio engine really should be able to handle nearly anything you can dream up, its just a matter of all the organization and interface work. I was close to doing a live-alike myself (and have a half-finished attempt at a matrix-style loop mixing skin in CVS). If you search for GDAM or ableton in the list archives you'll find some other responses with more details. http://gdam.ffem.org/ -geoff
