======Development======
A place to gather miscellaneous development notes.
===== doxygen =====
Generate and view doxygen code documentation from the rosegarden directory as follows:
doxygen
xdg-open build/doc/html/index.html
Or substitute your favorite browser for ''xdg-open''.
//These used to be available online at http://rosegarden.sourceforge.net/code_doc but that is no longer maintained.//
===== From the Main Page =====
==== Development ====
* [[dev:new_developers|Welcome For New Developers]]
* [[dev:Coding Style]]
* [[dev:file_format_version|File Format Version]]
* [[dev:layout_code|Rosegarden Coding Style: Qt Layouts]]
* [[dev:config_groups_config_groups|QSettings Config Groups]]
* [[dev:unittesting|Unit Testing]]
* [[dev:rg_qt4_dialogs|Blurb about dialog buttons rescued from an otherwise obsolete set of pages]]
* [[dev:Dealing with Latencies]]
* [[dev:svn To git Transition]]
==== Work In Progress ====
* [[dev:linked_segments|Linked Segments Branch]]
* [[dev:notation_cleanup|Notation Cleanup Branch]]
* [[dev:tnp|TrackButtons Notification Project]]
* [[dev:percussion|Percussion Notation]]
==== Ideas ====
* [[dev:Summer Code]] -- suggestions for pieces of work that new developers might like to get started with
* [[dev:midi_control_interface_draft| Draft for better MIDI-Controler support]]
* [[dev:Future Plans|Future Plans]]
==== Metrics ====
* License structure: Currently GPL2+ and 1 Artistic license.
* [[https://www.openhub.net/p/rosegarden|Rosegarden on OpenHub]]
* [[https://www.openhub.net/p/rosegarden/contributors/summary|Contributors]]
* [[https://www.openhub.net/p/rosegarden/map|World map of registered users and developers]]
* [[https://www.openhub.net/p/rosegarden/commits/summary|Commits]]
===== Old Stuff =====
* [[dev:Code Consistency]]
* [[http://www.linuxtech.net/downloads/rosegarden_1.7.3_mandriva_rpm.html|Rosegarden 1.7.3 rpm for Mandriva Linux 2008.1]]
* [[http://www.linuxtech.net/musicgear/synth_korg_05rw.html|complete Korg 05R/W rgd device definition file]] - This is already shipped with rg, although the shipped version is slightly different in terms of the "ipbposition" of some of the controllers. Otherwise they are identical. This link can be archived someplace for reference off the front page.
* [[http://www.linuxtech.net/musicgear/synth_yamaha_rm50.html|complete Yamaha RM50 rgd device definition file]]
=====Explanatory Snippets=====
These are short explanations that have come up on the Rosegarden developers' mailing list at one time or another, sometimes with a bit more detail added in the wiki.
See also the [[http://sourceforge.net/mailarchive/forum.php?forum_name=rosegarden-devel|rosegarden-devel archives]].
====Basics====
* [[Manipulating the document]]
* [[MIDI dataflows]]
* [[Control Changes]]
* [[Update Notifications]] - Keeping the UI in sync with underlying data.
====GUI====
* [[Loading the Studio or other partial documents from XML]]
* [[Keeping GUI elements updated]]
====Sequencer====
* [[How A Note Becomes A Sound]]
* [[Instruments and Devices]]
====Translations====
* [[Making strings translatable]]
=====Documents in Subversion=====
There are several plain-text documents found in the Rosegarden source code repository ([[http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/trunk/docs/|browse]]).
These ones are either vaguely interesting, or at least not hopelessly out of date:
**NOTE I didn't realize this page simply linked to SVN. These documents are no longer available. We should just move them into the wiki and update them as we go, but I am not going to finish that anytime soon. The documents that have not yet been rescued can be found in http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/branches/obsolete/docs/ **
====Basics====
* [[Overall code structure]]
* [[dev:creating_events.txt|Creating Events and their properties]]
* [[dev:how_a_note_becomes_a_sound|How a note becomes a sound]]
* [[dev:units.txt|Pitch and time units for Events]]
* [[http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/trunk/docs/code/iterators.txt?view=markup|Iterating over Events in segments and compositions]] (Need to rescue from svn. See NOTE above.)
* [[dev:xml_format| XML format]]
====Notation====
* [[http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/trunk/docs/data_struct/tuplets.txt?view=markup|Triplet/tuplet event storage properties]] (Need to rescue from svn. See NOTE above.)
* [[http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/trunk/docs/data_struct/sets.txt?view=markup|Notation event grouping terminology]] (Need to rescue from svn. See NOTE above.)
* [[http://rosegarden.svn.sourceforge.net/viewvc/rosegarden/trunk/docs/code/notation_layout.txt?view=markup|Notation layout procedure]] (Need to rescue from svn. See NOTE above.)
====Sequencer====
* [[Recording from multiple MIDI ports]] (but not onto multiple tracks simultaneously - this document predates that work) (was branches/obsolete/docs/code/multiport_recording.txt)
===== Obsolete Pages =====
==== Subversion ====
* [[dev:subversion|Subversion Quick Start]] - //Obsolete//
* [[:Development from SVN|Installing a Development Version from Subversion]] - //Obsolete//
* [[dev:Using git with svn]] - //Obsolete//
* [[dev:Branching|Working with Branches]] - //Obsolete//
==== Miscellaneous ====
* [[dev:eclipsecdt|Using Eclipse/CDT with Rosegarden]] - //Obsolete//
* [[dev:Working with Multiple Installed Build Versions]] - //Obsolete//