I am a computer science student. I have been asked to write a short research document about software development methodolgies for a class entitled software development fundamentals. My previous education included a degree in music tech, so I have decided to try to write something on music tech software development, in the open source domain. I am looking for any information or feedback related to the development methodologies which are used in the coding and development of open source audio editing software. This project is very much in its infancy so I cant really tell you anything other than this right now, but any information at all will be appreciatively recieved. Thanks in advance.
Also, as a computer science student, I am very interested in helping to add to the software development, but my knowledge so far of this is limited. I am hoping that this project will help me get involved.
CS students often seem to get assignments to look at software development methodologies in various projects or application areas but we don’t really have any formal model we follow. We have a somewhat documented Release Process: http://wiki.audacityteam.org/wiki/Release_Process .
Thank you very much Gale. I’ll check out those links now.
Yea, the project wasnt directed toward this area, its an interest of mine and something I would really like to get involved in now that I am learning to code applications. I have some knowledge of CSound from my music tech days, also of using max/msp, so I understand singnal flow pretty well too. Hopefully I can become a contributor to the project.
Do you mind if I keep this thread alive, post back here occasionally with questions as they arise? Is that cool?
No problem with that at all, though this is primarily a “help forum” for Audacity users, so don’t be disappointed if you don’t get a lot of response. Few of the people here are directly involved with the development of Audacity.
Just out of interest, which platforms / languages have you worked with / are familiar with?
Well currently I am training in JAVA, but I have been starting to gain an interest in learning one of the C languages, most probably C++. My lecturer has told me that jumping from one language to another is relavtively easy when you have a good understanding of the principles of coding and problem solving and general coding syntax. I’d like to think that learning C++ will be aided significantly by having a go at coding for Audacity. Unless you think there is possibly a better language I should be looking at getting into?
I believe that most of Audacity is written in C++ (I’m not a programmer). Audacity also has “Nyquist” embedded in it, which is a LISP based scripting language that can be used for plug-ins (I do write Nyquist plug-ins).
A good place to start with Audacity is building it from the svn source code (see links that Gale posted)
Ok cool. Just a question on Nyquist. When you say you script using it, what are its limitations? Can I write a synthesiser with it? Or is it DSP only, by that I mean reeverbs, delays etc? Is it easy to get a grasp of?
Considering that Nyquist plug-ins are simply written as plain text files, it is amazingly versatile.
Keep in mind that Audacity does not do anything in real time other than record and playback, so there’s no “real time reverb” or “real time anything else”, but you can perform virtually any kind of audio processing to existing audio. Nyquist can also generate audio.
More like cots software than what?
It’s more like cots software than a cheese sandwich.
No, I wouldn’t say that it is much like cots software at all.
Audacity is open source software (this is probably as good a definition as any of “open source” http://opensource.org/docs/osd)
Specifically, Audacity is released under GNU General Public License, version 2
The development of Audacity is not motivated by profit or shareholders interests, it is motivated by making a good product and making it freely available to all.