How do I start contributing to the open source?

Hello, I’m a student at American University here in Washington DC, studying audio technology. I have some coding experience, and really love C/C++. I haven’t built anything too significant but recently began to understand what digital audio is all about; numbers between 1 and -1. Perhaps more elaborate than that, but understanding how to write an audio stream to the computer; and getting portaudio running, I’ve been pretty satisfied so far. I’ve also worked with MAX/MSP a lot for school, but I find C/C++ development more rewarding in some ways. I want to feel like I actually built something, as opposed to abstracting away all the fun stuff. Can anyone point me towards possibly joining the ardour project as a developer?

1 Like

Most people get into open source development by “scratching an itch” - that is, finding something they have a personal stake and interest in implementing. That could be something new and standalone, or it could be something that is part of an existing open source project.

Let’s be honest: getting into Ardour these days is not an easy process - it’s a very big, very complex application, with lots of coding idoms and designs and inter-connections that make it quite a challenge to get started with. That said, people do manage to do this fairly regularly, and most of them report that it wasn’t as bad as they thought it would be. The big problem is that you’re not likely to find anyone to hold your hand - we often answer questions on IRC but we also know that it’s generally a more sensible allocation of our meagre time resources to encourage new developers to find their own way.

A typical path is to find either a bug ( or a small new feature that you want to work on. Do the work, submit a pull request via github. If it’s a new feature, probably discuss it with us first (and be aware that at this point in Ardour’s life, there are not many unimplemented truly “small” features that are easy to find. We’ll review whatever you do, provide feedback and if it meets our standards it will likely become a part of the codebase.

You will not find a comprehensive guide to our internal code designs. What limited documentation we have on such matters is at . We work hard to write clean and and comprehensible code, but that assumes that the code reader is already familiar with MANY general concept and practices that a new programmer likely has not encountered before.

I say all this not to dissuade you from trying - far from it. I just think it’s better you understand the path ahead rather than getting wacked over the head once you get started.

1 Like

… My entire career, distilled down to “numbers between 1 and -1” I’ve wasted my life :slight_smile: