Who Did This?
Ardour is a collaborative software development effort, representing the work of many people.
Most of the design and development of Ardour happens in realtime via discussions on IRC. You won't see anything on this website, and very little on any of the mailing lists, that will indicate new designs and new ideas that we are working on. IRC allows the core developers to chat in realtime (or somewhat asynchronously, which is useful too), and hash out hard issues without the delays caused by email back-and-forth delays.
At present, there is no roadmap for future development, but there probably should be. This list is about as close as it gets.
Ardour is written in C++ (with a little C and assembler thrown in where it makes sense). The graphical user interface is written using the gtkmm C++ "wrapper" around the GTK+ toolkit. The codebase is currently at about 160,000 lines of code, which includes some 3rd party C++ libraries. The user interface alone is about 48,000 lines while the backend ("engine") weighs in at about 34,000 lines. Ardour makes heavy use of an asynchronous signal/callback system as a way to provide anonymous coupling between components, particulular between the backend and user interface. The code makes heavy use of the Model-View-Controller programming model, and attempts to draw from the best work on programming pattern languages.
We run a self-hosted git server at git.ardour.org, which is read-only for everyone except core Ardour developers. If you want to get involved with development, you may prefer to use the mirror we have at GitHub. It will allow you to easily submit pull requests and carry out related tasks.
Reports about crashes with no further information is rarely helpful to the developers. You can give better crash reports if you're able to create backtraces of the crashes. Information on how to do that is available here.
- From time to time, we update this Doxygen-generated "documentation" of the software design and implementation.
- Building Ardour on Linux
- Building Ardour on OS X
- The Ardour Coding style guide
- Transport Threading design
- How to do interactive debugging via IRC
- Notes on the Canvas used in Ardour's editing window
- Notes on how to add a new editing operation
- Notes on how selection works
- Notes on Actions and key bindings
- Thoughts about Time Representation
- Why Ardour does not sandbox plugins
- Event handling in the Ardour GUI
- How Ardour handles cross-thread notifications/callbacks