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