The Handbook
This handbook describes , the Analog Real-time Synthesizer.

Introduction

What is ?
The Analog Real-Time Synthesizer, or , is a modular system for synthesizing sound and music on a digital computer. Using small building blocks called modules, the user can easily build complex audio processing tools. Modules typically provide functions such as sound waveform generators, filters, audio effects, mixing, and playback of digital audio in different file formats.
The sound server mixes audio from several sources in real time, allowing multiple sound applications to transparently share access to sound hardware.
Using MCOP, the Multimedia Communication Protocol, multimedia applications can be network transparent, authenticated for security, and cross-platform using interfaces defined in a language-independent way using IDL. Support is also provided for non -aware legacy applications. As a core component of the 2 desktop environment, provides the basis for the multimedia architecture, and will in future support more media types including video. Like , runs on a number of operating systems, including and BSD variants. It can also be used independently of .

Using This Manual
This manual is intended to provide comprehensive documentation on for users at different skill levels. Depending on whether you are a casual user of multimedia applications that make use of or a multimedia application developer, you may want to take different paths through the manual.
It is suggested that you first read the Downloading and Building chapter if you need to get initially installed and running. If you already have a working system, likely bundled with your operating system distribution, you may choose to skip this section.
You should then read the sections in the Tools chapter, especially , artscontrol;, , and . This will help you make the most effective use of .
If you are interested in going further with , read the chapter on and go through the tutorial. This should give you an appreciation of the powerful capabilities of and the provided modules that can be used without the need to be a programmer.
If you want to know more about the internals of , either to develop multimedia applications or extend itself, read some or all of the chapter in Detail. This should give you an understanding of all of the concepts that are prerequisites to software development.
If you are interested specifically in the MIDI capabilities of , you should read the chapter on MIDI.
If you want to develop -aware multimedia applications, the Application Programming Interfaces chapter covers the different APIs in detail.
If you want to extend by creating new modules, read the Modules chapter.
If you are modifying an existing application to run under , read the chapter on Porting Applications to .
You you can find out how to help contribute to the project in the Contributing to chapter, read about upcoming development in the chapter on Future Work, and find links to more information in the References section.
We have also rounded out the manual with some additional material, including answers to frequently asked questions, a list of contributors, the details on copyright and licensing, and some background material on digital audio and MIDI. A glossary of terms is also included.
This manual is still very much a work in progress. You are welcome to contribute by writing portions of it, but if you wish to do so, contact Jeff Tranter tranter@kde.org or Stefan Westerfeld stefan@space.twc.de first to avoid duplication of effort.

History
In late 1997 Stefan Westerfeld started working on a real-time, modular system for sound synthesis. The code initially ran on a PowerPC system running . This first implementation was quite simple but supported a full-featured flow system that was able to do such things as play MP3 files and pipe audio streams through effects modules.
The next step was to implement a so that modules could be manipulated graphically. Stefan had had some good experience using , so that was chosen as the toolkit, (knowing that it might be necessary to do a GNOME/Gtk+ version as well) and this later led to using as the main development platform. Originally named ksynth, the project was renamed and the pace of development accelerated. The project at this stage was quite complete, with a CORBA-based protocol, dozens of modules, a graphical module editing tool, C and C++ APIs, documentation, utilities, and a mailing list and web site with a small group of developers. The project had come a long way after only a little more than a year of development.
As the team started planning for 2.0, it became clear that needed a more powerful infrastructure for sound and other streaming media. It was decided to adapt , as it was a good step in this direction with a proven architecture. Much new development effort went into this new version of , most notably the replacement of the CORBA code with an entirely new subsystem, MCOP, optimized for multimedia. Version 0.4 of was included in the 2.0 release.
Work continues on , improving performance and adding new functionality. It should be noted that even though is now a core component of , it can be used without , and is also being used for applications that go beyond traditional multimedia. The project has attracted some interest from the GNOME team, opening up the possibility that it may someday become the standard multimedia architecture for desktop systems.