Project definition/specification
Introduction
Current problems:
- There is no way to have more than one song (composition) using the same sound setup. If you have two or more songs that are part of a single project, and if you modify an instrument in one of these, the other song files still have the old settings.
- There is no way to share a project with other people if you are using any custom samples, as Hydrogen uses absolute paths for them.
Project definition
Project is a directory structure that is easy to maintain for a user (e.g. to drop new samples or compositions into it) and no less easy to implement in Hydrogen.
Project holds everything you have in Hydrogen:
- Compositions (each having it's own Patterns)
- Samples
- Instruments
- Effects Rack and Master Rack setup
Project structure
/My New Project.h2prj
- /Samples
Contains sample files (.wav/.aiff/.flac). IMPORTANT NOTE: when Hydrogen loads an instrument from a Sound Library, it should copy the sample file(s) from the library to this directory; otherwise it's not possible to share the project with others as they may not have this library installed.
- /Sequences
Contains the composition .h2comp files
- /Setup
Contains the setup.xml file which holds the instruments (Syntesizer setups), Effects Rack and Master Rack setups
Required functionality
New project
- The user browses to a desired directory
- The user specifies a name for the project, hits "Create"
- Hydrogen creates the project directory structure
- Hydrogen initializes all instruments, clears the patterns and the pattern sequence
Load project
- The user browses for a project, hits "Load"
- Hydrogen internally remembers the project path (e.g. /home/artemio/hydrogen/MyProject.h2prj) so in further it knows where to save samples/sequences to
- Hydrogen loads the setup (/Setup/setup.xml) and all used samples (/Samples)
- Loads the last used composition
Save project
- The user selects "Save project"
- Hydrogen simply saves the setup (Instruments and Racks) into /Setup/setup.xml. There is no need to save the samples/compositions as they are already in the project directory tree.
- Hydrogen also stores the last-loaded Composition in /Setup/setup.xml.
New composition
- Simply clears the patterns and pattern sequence
Load composition
- In the upper menu, there will be a new entry Project and subentry Compositions which will list a submenu with all compositions in the current project. Simply choosing a Composition name will make Hydrogen load it.
Save composition
- The user selects Project -> Save composition
- The user specifies the file name (Hydrogen suggests one based on the Composition name)
- Hydrogen saves the file into /Sequences/xxx.h2comp
