How does source code work for ardour

I know when working with source code your able to view the program and edit changes when working with code and have the program on a secondary monitor, but if someone wanted to check out the source code for ardour what would I need to be able to do such thing.

I know ardour is a large program in terms of lines of code but is it possible to see how it works while having ardour open at the same time

Well the source code can be found on Github for instance, so you would need Git to be able to check it out.

But from your post I feel like there is a misunderstanding happening… so don’t take this the wrong way but do you have experience with programming? I ask because Ardour’s codebase is not simple, it is fairly complex and if you aren’t already at least somewhat familiar with reading and writing code it is not a project to start learning the basics with.


No. Ardour does realtime audio processing, you cannot easily interrupt it and debug or single-step while it’s running. Usually the soundcard disconnects.

It’s not impossible to introspect application state while Ardour is running, but keep in mind that by Ardour is massively parallel. You’d have to follow multiple threads (30…100) concurrently. It’s rarely done.

Changing the source-code requires re-compilation and an application restart, you cannot modify the application while it is running.

Wow, I know I can’t read that fast… in particular all 32-ish threads at the same time. Audio stream is happening all the time with each input and output (and each dsp block) dealing with 48000 samples per second, true in lumps but still, it is a lot of data going through there. I think it would be a lot easier to read the code. Yes the code base is large, but a lot can be learned just by looking at some of the main lib h files like session.h and route.h which will give a reasonable idea of how Ardour works. (these files of course give good hints about the other files they rely on). It is not necessary to know c++ to get a good idea how things fit together, but some idea of how programing in general works including objects would be something to start with.

Cool thanks, I’m not too familiar with the type of code that ardour works with but I do a bit of programming via HTML and Java and liquid code but i know it doesn’t compare to an inch of what ardour is working with. Like I said I just want to see.

Quick clarification, based on context I suspect you mean Javascript, not Java. HTML is primarily a formatting language, Javascript an interpreted at runtime language and liquid code is a templating factory IIRC. None of those really compare to the workflow of a compiled language like C/C++ which the majority of Ardour is written in. Javascript would be closer to Lua in that regards.

I would suggest starting to learn the basics of C and C++, THEN taking a look at the code and how it compiles and operates. Even for people that have taken classes such topics, such a complex codebase is not exactly simple to compile.


Thanks, for your advise. I like looking and analyzing things I don’t understand yet. It’s how my brain works, I’m not saying I’ll learn by just seeing a bunch of things I don’t understand but I just wanted to look and see behind the scenes footage lol but ya it’s best I learn the basics of what’s going on.