I’m working on a project to write a library to preform simple effects and filters (low-pass, notch, etc.) on a sound file. I’m aware that Audacity has these features and I was hoping I could adapt the Audacity source code to preform these functions in project. Does any developer know what part of the Audacity source code implements these functions? What kind of documentation or citation do I need to give if I use some of the source code?
Thanks for any help!
The Effects tree in the code is here. If you are looking at effects underneath the divider in the Effect menu (like the specific High Pass/Low Pass) those are separate Nyquist effects. The code for those actual effects is in src/plug-ins. The code that makes those plug-ins work in Audacity is in src/effects/nyquist and the Nyquist-XLISP code itself is in /nyquist. That latter XLISP code is as I understand it separately licensed as per README.txt in our source code - that is, you just have to include all the text below “COPYRIGHT AND LICENSE INFORMATION FOR XLISP (part of Nyquist)” given in our README.
Otherwise Audacity and the Nyquist plug-ins themselves are licensed under GPL V2. That is usually taken to mean that if you include anything that is GPL-licensed in your application, you have to license your whole application under the same version of GPL. So essentially, you can sell your application, but you have to include a verbatim copy of the GPL licence (which allows other people to sell your program too) and make your whole source code (not just ours) available under the same GPL. The only way around that is to make any Audacity code and any GPL-licensed plug-ins available as an optional, separately licensed download.
If you just want to use a Nyquist plug-in, then as far as I know if you limit yourself to using the contents of /nyquist and nothing inside src/ then you can include the Nyquist plug-in as a GPL-licensed optional download, include the XLISP licence declaration and not need to licence your application under GPL.
Gale
What about the codes for playing, recording and displaying the waveform? Since it’s integrated with wxwidgets, can I actually implement it in my own C# program without having to use wxwidgets event handlers? Thanks.