User Tools

Site Tools


developer_guide

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developer_guide [2012/07/11 15:21]
rryan [Major Subsystems]
developer_guide [2019/03/19 03:22] (current)
daschuer
Line 1: Line 1:
 +====== Mixxx Developer Guide ======
 +
 Welcome to the Mixxx Developer Guide. ​ Welcome to the Mixxx Developer Guide. ​
  
-====== ​Introduction ​======+====== ​Overview ​======
  
 The purpose of this guide is to give you, our intrepid contributor,​ an overview of the Mixxx codebase. Mixxx is a big project with millions of lines of code so it can be daunting at first. If you know how to get around then it really isn't that big and scary. The purpose of this guide is to give you, our intrepid contributor,​ an overview of the Mixxx codebase. Mixxx is a big project with millions of lines of code so it can be daunting at first. If you know how to get around then it really isn't that big and scary.
  
-**This guide is a work in progress. If you have any questions, join the [[http://mixxx.org/irc.php|Mixxx ​IRC channel]] to get live help from developers.**+**This guide is a work in progress. If you have any questions, join the [[https://mixxx.zulipchat.com/|Mixxx ​Zulip chat]] to get live help from developers.**
  
 ====== Prerequisites ====== ====== Prerequisites ======
 +First, you will need to download the code of Mixxx [[using Git]].
  
-To understand this guide, you should have a working experience with a systems language like C, C++, or Java. You should be able to get by with trial and error even if you don't know these. It will help significantly if you have some experience with the [[http://qt.nokia.com/​products/|Qt Framework]] which Mixxx uses extensively.+To understand this guide, you should have a working experience with a systems language like C, C++, or Java. You should be able to get by with trial and error even if you don't know these. It will help significantly if you have some experience with the [[http://doc.qt.io/|Qt Framework]] which Mixxx uses extensively.
  
 We recommend you review these sections of the Qt documentation to get familiar with aspects of Qt that we use heavily: We recommend you review these sections of the Qt documentation to get familiar with aspects of Qt that we use heavily:
   * [[http://​qt-project.org/​doc/​latest/​signalsandslots.html|Signals & Slots]]   * [[http://​qt-project.org/​doc/​latest/​signalsandslots.html|Signals & Slots]]
 +
 +If you're not familiar with C++, [[https://​www.youtube.com/​watch?​v=18c3MTX0PK0&​list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb|The Cherno Project]] on YouTube has a good series dedicated to the core concepts.
 +
 +We also highly recommend that you use a C++ IDE rather than a text editor. Mixxx is a huge project spread across hundreds of source code files. IDEs index the entire code tree and allow you to jump from where a function is used to its definition, even if that is in another file (which it often is). Without this powerful tool, you will spend a lot of time simply finding the code you're looking for instead of understanding what it is doing. We have [[developer tools#using IDEs|guides]] for setting up several IDEs to work on Mixxx, but feel free to use whatever IDE you prefer.
 +
 +We highly recommend these resources from the Xiph.org Foundation for background information on digital and analog signal processing:
 +  * [[https://​wiki.xiph.org/​Videos/​A_Digital_Media_Primer_For_Geeks|A Digital Media Primer For Geeks]]
 +  * [[https://​wiki.xiph.org/​Videos/​Digital_Show_and_Tell|Digital Show and Tell]]
 +  * [[https://​xiph.org/​~xiphmont/​demo/​neil-young.html|24/​192 Music Downloads are Very Silly Indeed]]
  
 ====== main.cpp ====== ====== main.cpp ======
Line 60: Line 72:
   * [[developer_guide_engine|Mixing Engine]]   * [[developer_guide_engine|Mixing Engine]]
   * [[developer_guide_engine_player|Deck/​Sampler Processing]]   * [[developer_guide_engine_player|Deck/​Sampler Processing]]
 +  * [[developer_guide_effects|Effects Framework]]
   * [[developer_guide_soundmanager|SoundManager (OS audio interface)]]   * [[developer_guide_soundmanager|SoundManager (OS audio interface)]]
   * [[developer_guide_soundsource|SoundSource (per-format audio decoding)]]   * [[developer_guide_soundsource|SoundSource (per-format audio decoding)]]
Line 68: Line 81:
   * [[developer_guide_preferences|Preferences Dialogs]]   * [[developer_guide_preferences|Preferences Dialogs]]
   * [[developer_guide_waveform|Waveform]]   * [[developer_guide_waveform|Waveform]]
-  * [[developer_guide_widgets|GUI Widgets]] +  ​* [[developer_guide_skins|Skins]] 
- +  ​* [[developer_guide_widgets|GUI Widgets ​(non-skin)]]
-====== How to write Mixxx Code ====== +
- +
-Now that you've had a brief overview of the Mixxx codebase. It's time to dive in! +
- +
-This section will go over how to be a Mixxx developer -- building Mixxx yourself, to filing bugs, submitting patches and getting your feature branches merged. +
-===== Getting the Code ===== +
- +
-===== Building Mixxx ===== +
- +
-===== Choosing an IDE or Text Editor ===== +
- +
-===== Filing Bugs ===== +
- +
-===== Submitting Patches ===== +
- +
-===== Using Branches ===== +
developer_guide.1342034491.txt.gz · Last modified: 2012/07/11 15:21 by rryan