Difference between revisions of "Developer Guide"

From Audacity Wiki
Jump to: navigation, search
(minor tweak to trimmed coding standards wording)
(Quick Links: add link to notes for packagers)
Line 1: Line 1:
 
==Quick Links==
 
==Quick Links==
 
* Overview of compilation on [[Developing On Windows|Windows]], [[Developing On Linux|Linux]] and  [[Developing On Mac|Mac]].
 
* Overview of compilation on [[Developing On Windows|Windows]], [[Developing On Linux|Linux]] and  [[Developing On Mac|Mac]].
* [[CompilingAudacityForBeginners|Mac/Linux/Unix]] step by step guides for compiling Audacity  
+
* [[CompilingAudacityForBeginners|Mac/Linux/Unix]] step by step guides for compiling Audacity
 +
* [[Notes for Packagers]] - people building Audacity for Linux distributions and the like.
 
* [[ArchitecturalDesign|Designing Audacity]] - read and write about what goes into Audacity and how it works     
 
* [[ArchitecturalDesign|Designing Audacity]] - read and write about what goes into Audacity and how it works     
 
* [[Quality|Ensuring Quality]] - coding standards, submitting patches...  
 
* [[Quality|Ensuring Quality]] - coding standards, submitting patches...  
 
* [[Mezzo]] - The future of Audacity (formerly known as "libaudacity")
 
* [[Mezzo]] - The future of Audacity (formerly known as "libaudacity")
 
* Please subscribe to our {{external|[http://lists.sourceforge.net/lists/listinfo/audacity-devel audacity-devel]}} mailing list to exchange your ideas with our developers or to seek help
 
* Please subscribe to our {{external|[http://lists.sourceforge.net/lists/listinfo/audacity-devel audacity-devel]}} mailing list to exchange your ideas with our developers or to seek help
 
  
 
==Tips for New Developers==
 
==Tips for New Developers==

Revision as of 13:46, 15 June 2008

Quick Links

  • Overview of compilation on Windows, Linux and Mac.
  • Mac/Linux/Unix step by step guides for compiling Audacity
  • Notes for Packagers - people building Audacity for Linux distributions and the like.
  • Designing Audacity - read and write about what goes into Audacity and how it works
  • Ensuring Quality - coding standards, submitting patches...
  • Mezzo - The future of Audacity (formerly known as "libaudacity")
  • Please subscribe to our audacity-devel  mailing list to exchange your ideas with our developers or to seek help

Tips for New Developers

  • Ask lots of questions and don't be afraid to look a divvy! It's a learning process and like I tell my students, 'if you don't understand (after a reasonable amount of effort), ask somebody who can help!'.
  • Note our Coding Standards for Audacity (these don't apply to subordinate libraries). Most importantly, don't use tabs at all, and always use three spaces for indentation (otherwise things don't line up on different editors). We mostly use standard camel-case capitalization. Some use Hungarian notation, but not everybody.
  • Use the same tools other people are using.
  • Post error messages when asking for help, but try and select relevant bits.


Platform Specific Guides

Getting Audacity building on Linux is usually trouble-free because the right tools are there in the environment, or can be found and installed easily. The same isn't really true for Windows and the win/compile.txt file provided with the Audacity source code assumes you know quite a lot about how stuff works under the bonnet, and about Visual Studio.


Design Topics


Improving and Adding Features

Adding new features is one of the more exciting aspects of the job, but needs care so as not to destabilise what is already there. New approaches using a plug-in type of architecture can help this. Even so, there are some things that cannot always be done in an open source program due to licensing restrictions. Have a look at our Feature Requests page to see what our users most wish to see in Audacity, add your own requests, and let us know if you are interested in helping us implement the best of these.

We also have a Roadmap of planned steps in Audacity development.


More about Digital Audio

There are a few articles in our Digital Audio Technology category on this Wiki, and there is a short explanation of digital audio basics on this page  of our current Audacity Manual .

There are also articles on the internet ranging from beginners' guides on how sound is represented in a computer, to research papers on digital signal processing (DSP) algorithms. For some recommended sources, see Digital Audio Recommended Articles.