<?xml version="1.0" encoding="UTF-8"?> <!-- -*- mode:nxml; indent-tabs-mode:nil; fill-column:80; -*- -->
  <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.0//EN"
                      "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
<book id="Hydrogen-manual" lang="en">

  <bookinfo>
    <title>Hydrogen Manual</title>
    <authorgroup>
      <author>
        <firstname>Antonio</firstname>
        <surname>Piraino</surname>
      </author>
      <author>
        <firstname>Alessandro</firstname>
        <surname>Cominu</surname>
      </author>
      <author>
        <firstname>Thijs</firstname>
        <surname>Van Severen</surname>
      </author>
      <author>
        <firstname>Sebastian</firstname>
        <surname>Moors</surname>
      </author>


    </authorgroup>

    <date>22/may/2005</date>

    <abstract>
      <para>Hydrogen is a software synthesizer which can be used alone,
      emulating a drum machine based on patterns, or via an external MIDI
      keyboard/sequencer software. Hydrogen compiles on Linux/x86 and Mac OS X,
      although the latter is still experimental, so ask in the developers
      mailing list for further details.</para>
    </abstract>
  </bookinfo>

  <!--
      ###################
      # FIRST CHAPTER   #
      ###################
  -->

  <chapter id="chap.introduction">
    <title>Introduction</title>

    <section id="sect.download">
      <title>Download</title>

      <para>
        You can download Hydrogen from 
        <ulink url="http://www.hydrogen-music.org/?p=download">http://www.hydrogen-music.org</ulink>.  
        On the 'Downloads' page you can find several binaries (installers) for Linux, Mac and Windows.  (note that some versions may not be available for Windows and Mac)
      </para>

      <para>
        If you want to compile Hydrogen yourself (see <xref linkend="sect.compilation"/>), you can download the latest source files directly from our
        subversion server with:

        <screen><prompt>$</prompt> <command>svn co http://svn.assembla.com/svn/hydrogen/trunk</command></screen>

        A certain release can be fetched with:

        <screen><prompt>$</prompt> <command>svn co http://svn.assembla.com/svn/hydrogen/tags/0.9.5</command></screen>
      </para>

      <para>Compiling Hydrogen depends on the following libraries:</para>

      <itemizedlist mark="opencircle">
        <listitem>
          <para>qt (&gt;= 4.0) at <ulink url="http://www.trolltech.com">http://www.trolltech.com</ulink></para>
        </listitem>
        <listitem>
          <para>libsndfile at <ulink url="http://www.mega-nerd.com/libsndfile/">http://www.mega-nerd.com/libsndfile/</ulink></para>
        </listitem>
        <listitem>
          <para>ALSA (&gt;= 1.x) at <ulink url="http://www.alsa-project.org">http://www.alsa-project.org</ulink>
          (only if you wish to use ALSA as audio driver)</para>
        </listitem>
        <listitem>
          <para>Jack Audio Connection Kit (&gt;= 0.80) at 
          <ulink url="http://jackaudio.org/">http://jackaudio.org/</ulink>
          (only if you wish to use Jack as audio driver)</para>
        </listitem>
        <listitem>
          <para>PortAudio at <ulink url="http://www.portaudio.com">http://www.portaudio.com</ulink>
          (only if you wish to use PortAudio as audio driver)</para>
        </listitem>
        <listitem>
          <para>Flac at <ulink url="http://flac.sf.net">http://flac.sf.net</ulink> (only if you
          wish to use flac samples)</para>
        </listitem>
        <listitem>
          <para>ladspa at <ulink url="http://www.ladspa.org">http://www.ladspa.org</ulink> (only if you wish
          to use ladspa effects)</para>
        </listitem>
        <listitem>
          <para>liblrdf at <ulink url="http://sf.net/projects/lrdf">http://sf.net/projects/lrdf</ulink> (only if you wish to use lrdf to categorise effects)</para>
        </listitem>
        <listitem>
          <para>lash at <ulink url="http://lash.nongnu.org">http://lash.nongnu.org</ulink> (only if
          you wish to use lash)</para>
        </listitem>
      </itemizedlist>

      <para>Please install them with your distribution's package manager. If
      you're running a debian-based system, you can install the libraries
      with:</para>

      <screen>
        <prompt>$</prompt> <command>apt-get install libqt4-dev g++ libasound2-dev \
        libjack-dev liblrdf0-dev libflac++-dev libtar-dev libsndfile1-dev \
        liblash-dev libportaudio-dev libportmidi-dev </command>
      </screen>

    </section>

<!-- COMPILATION  -->

    <section id="sect.compilation">
      <title>Build</title>

      <para>Depending on the branch you are compiling you will need to use Scons or Cmake.  Check the INSTALL.txt and the README.txt files for more info (located in the top level dir once you downloaded the sources).</para>
      
      <section id="sect.compilation.scons">
        <title>Using scons</title>

        <para>Decompress the tarball or go to the directory where the subversion copy
        was checked out:</para>

        <screen>
          <prompt>$</prompt> <command>cd hydrogen-*</command>
          <prompt>$</prompt> <command>scons</command>
          <prompt>$</prompt> <command>su -c "scons install"</command>
        </screen>

        <para>Before compiling, check for additional options with:</para>

        <screen>
          <prompt>$</prompt> <command>scons --help</command>
        </screen>

        <para>If you want to use features which are not enabled by default (for
        instance PortAudio), you can enable them with:</para>

        <screen>
          <prompt>$</prompt> <command>scons portaudio=1</command>
        </screen>

        <para>Namely, if you get some error while running Hydrogen and you want
        to report it remember to configure hydrogen with:</para>

        <screen>
          <prompt>$</prompt> <command>scons debug=1</command>
        </screen>

        <para>To clean up compiled code:</para>

        <screen>
          <prompt>$</prompt> <command>scons -c</command>
        </screen>
      </section>
      
      <!-- 
      <section id="sect.compilation.cmake">
        <title>Using cmake</title>

        <para>Compiling with cmake can be done easily by using the make_helper script. Decompress the tarball or go to the directory where the subversion copy
        was checked out and run the make_helper script without any arguments to display the help :</para>

        <screen>
          <prompt>$</prompt> <command>cd hydrogen-*</command>
          <prompt>$</prompt> <command>./make_helper</command>
        </screen>
      
        <para>The help is now displayed (and is self-explanatory) :
        </para>
      
        <screen>
          <prompt>$</prompt> <command>used builder : cmake</command>
          <prompt>$</prompt> <command>usage ./make_helper [cmds list]</command>
          <prompt>$</prompt> <command>cmds may be</command>
          <prompt>$</prompt> <command>   r or rm     => all built, temp and cache files</command>
          <prompt>$</prompt> <command>   c or clean  => remove cache files</command>
          <prompt>$</prompt> <command>   m or make   => launch the build process</command>
          <prompt>$</prompt> <command>   d or doc    => build html documentation</command>
          <prompt>$</prompt> <command>   h or help   => show the build options</command>
          <prompt>$</prompt> <command>   x or exec   => execute hydrogen</command>
        </screen>
      
      </section>
      -->
      
    </section>

    <section id="sect.preferences">
      <title>Preferences</title>

      <para>First of all you should make sure that the audio engine is
      configured properly.  The preferences dialog can be accessed via the tools
      menu (tools -&gt; preferences).</para>

      <section id="sect.preferences.general_tab">
        <title>The General tab</title>
        
        <para>On the "General" tab (<xref linkend="fig.preferences.general_tab"/>) you can 
        choose to automatically reopen the last used song and/or playlist.  This can save you 
        the trouble of having to reopen the song you are working on every time you open 
        Hydrogen.  Auto loading the playlist can come in handy when you are using Hydrogen live.</para>
        <para>If you want to use Lash to manage your Jack connections you should enable 
        it here so Hydrogen allows interaction with Lash.</para>
        <para>The Beat Counter drift compensation and start offset allow you to compensate
         for system latency when you are using the Beat Counter function (see <xref linkend="sect.tap_tempo"/>)</para>
        <para>The Max number of bars in a song can be set here (currently limited to 800) 
        and if you want to use rubberband for sample time-streching (see <xref linkend="sect.layer_editing.section2"/>)
        you need to enter the path where rubberband is installed on you system here.</para>
        <!-- THIJS : NEED TO AD LINK TO SAMPLE EDITOR -->
        
        <figure id="fig.preferences.general_tab">
          <title>The General Tab</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/PreferencesGeneral_V2.png" format="PNG"/>
            </imageobject>
          </mediaobject>
        </figure>
        

      </section>

      <section id="sect.preferences.audio_tab">
        <title>The Audio System tab</title>

        <para>From the "Audio System" tab (<xref
        linkend="fig.preferences.audio_tab"/>) it is possible to modify the
        audio driver being used (OSS, Jack, ALSA, PortAudio) with its buffer and
        sampling rate (unless you are using JACK, in this case the audio driver
        configuration should happen before starting the JACK server).</para>

        <para>We can set some features of Hydrogen like "Create per-instrument outputs" 
        this will create 1 output per instrument that you can connect to any other Jack enabled application.
        This can be useful if you want to add effects to a single instrument with
        jack-rack for example.  "Connect to Default Output Pair" connects the output to the
        default ports: uncheck this if you want to connect the JACK output to other
        ports without having to disconnect them first.</para>

        <para>Also keep an eye on the value of "Polyphony": depending on your
        CPU you may want to change the max simultaneous notes in order to
        prevent hydrogen from overrunning the audio driver.</para>

        <figure id="fig.preferences.audio_tab">
          <title>The Audio System Tab</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/PreferencesAudioSystem_V2.png" format="PNG"/>
            </imageobject>
          </mediaobject>
        </figure>

        <para>
          The following drivers are available:
        </para>

        <itemizedlist>

          <listitem>
            <para><emphasis role="bold">jackd</emphasis>: The Jack driver is a
            professional audio server which permits very low lag and exchanges
            with other audio software. <emphasis>We strongly recommend using
            this driver to have the best out of Hydrogen</emphasis>.  JACK
            server will start automatically if not already running.</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">ALSA</emphasis>: the widely adopted
            Linux standard audio drivers</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">OSS</emphasis>: The Oss audio driver
            uses /dev/dsp and it's based on the OSS interface which is supported
            by the vast majority of sound cards available for Linux; this said,
            the use of this audio driver blocks /dev/dsp until Hydrogen is
            closed i.e. unusable by any other software. Use it as last
            resort.</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">PortAudio</emphasis>: an open-source
            multi platform audio driver</para>
          </listitem>

          <listitem>
            <para><emphasis role="bold">CoreAudio</emphasis>: a driver for Mac
            OS X (experimental)</para>
          </listitem>
        </itemizedlist>
      </section>

      <section id="sect.preferences.midi_tab">
        <title>The Midi System tab</title>

        <para>The "Midi System" tab (<xref linkend="fig.preferences.midi_tab"/>)
        contains all MIDI settings. Here you can choose the MIDI driver, input, and channel(s) that Hydrogen should respond to.  
        You can also define midi bindings: link a midi note/message to an action. 
        To do this simply press the red 'REC' button left of the 'binding' action line.  
        A popup will inform you that Hydrogen is waiting for your input.  Press/hit/turn 
        the key/pad/knob on your midi keyboard (or controller) that you want to link to 
        this action.  The popup will close and the Event Param value will now show the 
        midi note value of the key you pressed.  Once this is done you can select an Action 
        from the action drop-down list.  Note that some actions (like SELECT_NEXT_PATTERN) 
        also require an Action Param that references the pattern you want to select with this midi action.</para>
       <para>See <xref linkend="sect.midi_actions"/> for more info on Midi actions.</para>

        <figure id="fig.preferences.midi_tab">
          <title>The MIDI System Tab</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/PreferencesMidiSystem_V2.png" format="PNG"/>
            </imageobject>
          </mediaobject>
        </figure>
      </section>

      <section id="sect.preferences.appearance_tab">
        <title>The Appearance tab</title>

        <para>The "Appearance" tab (<xref
        linkend="fig.preferences.appearance_tab"/>) let's you modify Hydrogen look 
        and feel (font settings and interface style). Also the VU meters fall-off speed of
        the Mixer Window can be changed here.</para>

        <figure id="fig.preferences.appearance_tab">
          <title>The Appearance Tab</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/PreferencesAppearance.png" format="PNG"/>
            </imageobject>
          </mediaobject>
        </figure>
      </section>


      <section id="sect.preferences.audio_engine_tab">
        <title>The Audio Engine tab (debug only)</title>

        <para>The "Audio Engine" tab (<xref linkend="fig.preferences.audio_engine_tab"/>) 
        is a window that shows various stats about
        Hydrogen and the audio driver. In case JACK is used, buffer and sampling
        rate should be set before starting Hydrogen (JACK automatically starts
        when an application tries to connect).</para>
        <para>Note that the Audio Engine tab is only available if Hydrogen was complied with 
        debug support.</para>

        <figure id="fig.preferences.audio_engine_tab">
          <title>The Audio Engine tab</title>
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/AudioEngineInfoDialog.png" format="PNG"/>
            </imageobject>
          </mediaobject>
        </figure>
      </section>


    </section>
  </chapter>


  <!--
      ####################
      # SECOND CHAPTER   #
      ####################
  -->

  <chapter id="chap.using_hydrogen">
    <title>Using Hydrogen</title>

<!-- FILETYPES -->
    <section id="sect.file_types">
      <title>Used Filetypes</title>

      <para>Before working with Hydrogen, please familiarize with these
      filetypes:</para>

      <itemizedlist>
        <listitem>
          <para><emphasis role="bold">*.h2pattern</emphasis>: XML file
          describing a single pattern. Patterns are group of beats and are
          managed in the pattern editor.</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">*.h2song</emphasis>: XML file describing
          the whole song (or sequence). Songs are group of patterns with their
          properties and are manager using the song editor</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">*.h2playlist</emphasis>: XML file
          describing a playlist. A Playlist is a (ordered) group of songs.</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">*.h2drumkit</emphasis>: a compressed and
          archived folder containing all sound samples composing a drumkit and a
          description XML file. Drumkits are basically group of sound
          samples.</para>
        </listitem>
      </itemizedlist>
    </section>


<!--  MAIN MENU -->
    <section id="sect.main_menu">
      <title>Main menu</title>

      <para><emphasis role="bold">Projects</emphasis>: this menu offers file
      related functions.</para>

      <itemizedlist>
        <listitem>
          <para><emphasis>New</emphasis> - Create a new song</para>
        </listitem>
        <listitem>
          <para><emphasis>Show Info</emphasis> - Set general properties of the
          song such as name, author, license and generic notes</para>
        </listitem>
        <listitem>
          <para><emphasis>Open</emphasis> - Open a song</para>
        </listitem>
        <listitem>
          <para><emphasis>Open Demo</emphasis> - Open a demo song (demo songs
          are stored in
          <emphasis>$INSTALLPATH/share/hydrogen/data/demo_songs</emphasis>)</para>
        </listitem>
        <listitem>
          <para><emphasis>Open recent</emphasis> - Open a menu showing last used
          songs</para>
        </listitem>
        <listitem>
          <para><emphasis>Save</emphasis> - Save changes to current song</para>
        </listitem>
        <listitem>
          <para><emphasis>Save as</emphasis> - Save current song specifying a
          name (default path:
          <emphasis>$HOME/.hydrogen/data/songs)</emphasis></para>
        </listitem>
        <listitem>
          <para><emphasis>Open pattern</emphasis> - Open a saved pattern
          belonging to the current drumkit</para>
        </listitem>
        <listitem>
          <para><emphasis>Export pattern as</emphasis> - Saves a
          pattern. It will be stored in
          <emphasis>$HOME/.hydrogen/data/patterns/drumkit_name</emphasis></para>
        </listitem>
        <listitem>
          <para><emphasis>Export MIDI file</emphasis> - Export current song in
          MIDI format</para>
        </listitem>
        <listitem>
          <para><emphasis>Export song</emphasis> - Export current song in WAV
          format</para>
        </listitem>
        <listitem>
          <para><emphasis>Quit</emphasis> - Quit Hydrogen</para>
        </listitem>
      </itemizedlist>

      <para><emphasis role="bold">Instruments</emphasis>: this menu offers
      instruments and drumkit (sound libraries) functions.</para>

      <itemizedlist>
        <listitem>
          <para><emphasis>Add instrument</emphasis> - Add a new instrument to
          your current drumkit</para>
        </listitem>
        <listitem>
          <para><emphasis>Clear all</emphasis> - Delete all instruments from the
          current drumkit</para>
        </listitem>
        <listitem>
          <para><emphasis>Save library</emphasis> - Saves all instruments
          settings (and their sound samples) in
          <emphasis>$HOME/.hydrogen/data/library_name</emphasis></para>
        </listitem>
        <listitem>
          <para><emphasis>Export library</emphasis> - Compress all instruments
          samples and settings in a drumkit in
          <emphasis>$HOME/.hydrogen/data/library_name</emphasis></para>
        </listitem>
        <listitem>
          <para><emphasis>Import library</emphasis> - Imports another drumkit
          from the local filesystem or download it from a remote location
          through an XML feed. The XML file that should be provided is <emphasis
          role="bold">NOT</emphasis> RSS compliant (see <ulink
          url="http://www.hydrogen-music.org/feeds/drumkit_list.php" >Hydrogen
          website</ulink> for an example). To load another drumkit in your
          current working session of Hydrogen, read <xref
          linkend="sect.sound_library"/>.</para>
        </listitem>
      </itemizedlist>

      <para><emphasis role="bold">Tools</emphasis>: opens the mixer, the director, the
      playlist editor, the instrument rack and the general preferences
      window.</para>

      <itemizedlist>
        <listitem>
          <para><emphasis>Playlist editor</emphasis> - A tool to manage
          playlists.</para>
        </listitem>
        <listitem>
          <para><emphasis>Director</emphasis> - Open the director window.</para>
        </listitem>
        <listitem>
          <para><emphasis>Mixer</emphasis> - Open the mixer window.</para>
        </listitem>
        <listitem>
          <para><emphasis>Instrument rack</emphasis> - Open the instrument rack
          panel.</para>
        </listitem>
        <listitem>
          <para><emphasis>Preferences</emphasis> - Open the main preferences
          window. Read <xref linkend="sect.preferences"/> on how to configure
          Hydrogen.</para>
        </listitem>
      </itemizedlist>

      <para><emphasis role="bold">Debug</emphasis>: tools mainly for debugging
      and monitoring Hydrogen (only available when compiled with debug
      support !).</para>

      <itemizedlist>
        <listitem>
          <para><emphasis>Show audio engine info - </emphasis>Open a monitor
          with various <link
          linkend="sect.preferences.audio_engine_tab">stats</link></para>
        </listitem>
        <listitem>
          <para><emphasis>debug action - </emphasis> Insert debug
          commands.</para>
        </listitem>
        <listitem>
          <para><emphasis>Print Objects - </emphasis>Print on stdout current
          objects map.</para>
        </listitem>
      </itemizedlist>

      <para><emphasis role="bold">Info</emphasis></para>

      <itemizedlist>
        <listitem>
          <para><emphasis>User manual - </emphasis>Open a window with this
          manual :)</para>
        </listitem>
        <listitem>
          <para><emphasis>About - </emphasis>The usual window with license
          information, acknowledgements, etc.</para>
        </listitem>
      </itemizedlist>
    </section>


<!--   MAIN TOOLBAR  -->
    <section id="sect.main_toolbar">
      <title>The main toolbar</title>

      <para>Before analyzing the two main frames of Hydrogen, let's take a quick
      look at the main toolbar and its components:</para>

      <itemizedlist>
        <listitem>
          <para>Pilot the song using the start, stop, pause, etc. buttons</para>
        </listitem>
        <listitem>
          <para>Choose between "pattern" or "song" mode: in "pattern" mode only
          the currently selected pattern will play, while in "song" mode all
          patterns inserted will be played.</para>
        </listitem>
        <listitem>
          <para>An advanced tap tempo function: choose note length and how many
          notes to wait before recalculating BPM, then hit the comma key
          repeatedly until the 'R' letter appears and then the BPM will be
          updated.  (see <xref linkend="sect.tap_tempo"/>)</para>
        </listitem>
        <listitem>
          <para>Manually set BPM</para>
        </listitem>
        <listitem>
          <para>Manage JACK transport</para>
        </listitem>
        <listitem>
          <para>Open the mixer and the instrument rack panels</para>
        </listitem>
      </itemizedlist>

      <figure id="fig.main_toolbar">
        <title>The Main Toolbar</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="img/MainToolbar_V2.png" format="PNG"/>
          </imageobject>
        </mediaobject>
      </figure>

      <itemizedlist mark="opencircle">
        <listitem>
          <para><inlinemediaobject><imageobject><imagedata
          fileref="img/background_Control_V2.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

          <para>Main controls to start <emphasis role="bold">[Hotkey =
          Spacebar]</emphasis>, stop, record, fast forward, rewind, loop a song or a
          pattern.</para>
        </listitem>

        <listitem>
          <para><inlinemediaobject><imageobject>
          <imagedata fileref="img/background_Mode.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

          <para>Set Pattern/Song Mode. When Song mode is selected Hydrogen will play 
          the complete song. This is the sequence of patterns you have created in the Song 
          Editor (see <xref linkend="sect.song_editor"/>). When Pattern mode is selected 
          Hydrogen will play the pattern that is currently selected, and thus displayed 
          in the Pattern Editor (see <xref linkend="sect.pattern_editor"/>).</para>
        </listitem>
        
        <listitem>
          <para><inlinemediaobject><imageobject>
          <imagedata fileref="img/MeasureSettings.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

          <para>Set measure type and Beat Counter (see <xref linkend="sect.tap_tempo"/>).</para>
          
        </listitem>
        

        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/background_BPM.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

          <para>Set speed of playing (range: 30-400 bpm) <emphasis
          role="bold">[Hotkey = mouse wheel]</emphasis> and button to
          enable/disable metronome</para>
        </listitem>

        <listitem>
          <para><inlinemediaobject><imageobject>
          <imagedata fileref="img/MidiIN_CPU.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

            <para>Shows CPU load and MIDI events.  The CPU bargraph gives you an indication of the CPU load.  The MIDI led lights up every time Hydrogen receives a midi message.</para>
        </listitem>
<!--
        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/midi_in.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

          <para>Shows MIDI events.</para>
        </listitem>
-->
        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/JackTrans_Master.png" format="PNG"/>
          </imageobject></inlinemediaobject></para>

          <para>Click J. TRANS to enable Jack transport.  If the J. MASTER button is pressed Hydrogen will work as 'master', else it will act as 'slave'
          to another 'master' program (e.g. Ardour). This applet is only
          available if Jack Audio Driver is selected.</para>
        </listitem>
      </itemizedlist>


    <!--  TAP TEMPO -->

      <section id="sect.tap_tempo">
        <title>Tap Tempo and BeatCounter</title>

        <para>It is possible to change the tempo at any time using the tap-tempo and
        BeatCounter features of Hydrogen.  You can do this while the song is playing or
        while the song is stopped.  To change the tempo, hit the
        <keycap>,</keycap> (comma) key in the tempo you want.
        After the correct number of keystrokes have been detected (see 
        below for details), the tempo will change to the average tempo 
        you tapped the comma key.  If you continue to tap,
        these new taps will become a part of a rolling average.  If you tap
        accidentally, or if you wait too long between taps, the tap tempo
        counter will start over.</para>

        <para>The Tap Tempo is a part of the BeatCounter, which is essentially a
        Tap Tempo on steroids.  By default the BeatCounter display is not
        visible.  To see the BeatCounter widget click the upright button
        (<guilabel>BC</guilabel>) between Song/Pattern mode selector and the
        BPM-widget, or, simply press the comma key.
        (<keycap>,</keycap>).</para>

        <para>The tempo that you tap will be considered even beats of the song's 
        beat type.  The beat type can be set to 1/8 (for eight-note beats), 1/4 (for
        quarter-note beats), 1/2 (for half-note beats), and 1/1 (for whole-note
        beats).  To change the beat type use the left +/- buttons.  To change
        the Countdown Counter value, use the right +/- buttons.  The Countdown 
        Counter value can be set between 2 and 16 beats.  (I.e. if you set the beat to 6, you will
        have to tap 6 times before the new tempo is computed and set.)  When the
        display shows an <guilabel>R</guilabel>, it means that the BeatCounter
        is ready to start from 0.  When you tap the comma key, the R will change to
        1, and will increment with every keystroke until it reaches the Countdown 
        Counter value (shown just below the 'R').</para>

        <para>The button in the bottom right-hand controls the auto-start
        feature, and it toggles between <guilabel>S</guilabel> and
        <guilabel>P</guilabel>.  When it shows <guilabel>P</guilabel> for
        (<emphasis>Play</emphasis>), the song will set the new tempo and
        automatically start to play after you tap the right number of beats (if
        it's not already playing, of course).  This way, if you have the
        BeatCounter set up for 4/4, you can tap 1-2-3-4, and start playing on
        the next beat.  When it shows <guilabel>S</guilabel> (for <emphasis>Set
        BPM</emphasis>), the auto-start is disabled.</para>

        <para>For example: Suppose you have a live band, Hydrogen, and a
        softsynth that is controlled by Seq24)... and you want them all to start
        at the same time.  Set the beat type to 1/4 and the number of beats to
        4.  Enable auto-start (button shows <guilabel>P</guilabel>).  Count off
        the band 1-2-3-4 (while tapping the comma key) &mdash; and everyone
        starts on 1.</para>

        <para>Another example: Same situation, but the song doesn't require
        Hydrogen or synths until some point later.  During that time, a human
        (e.g. guitar player) will be setting the tempo.  On the measure before
        Hydrogen is supposed to play, tap the comma key 1-2-3-4 with the
        beat... and you're in on the next beat (at the right tempo).</para>

        <para>If you are using the JACK Transport, the BeatCounter continues to
        work.  If another program is the JACK Transport Master, Hydrogen will
        respond to tempo change events from that application.  Note that in this
        situation, Hydrogen is supposed to be a <emphasis>slave</emphasis>, so
        some of the BeatCounter features will be disabled or will not work
        properly.  If Hydrogen is the JACK Transport Master, tempo changes from
        Hydrogen will be reflected in those programs (if they support
        it).</para>

        <para>Some of the settings to adjust the BeatCounter's latency
        compensation, are located on the General tab of the Preferences Dialog 
        (see <xref linkend="sect.preferences.general_tab"/>
        ). Here you will finde two spinboxes:</para>

        <itemizedlist>
          <listitem><para><emphasis role="bold"><guilabel>Beat counter drift
          compensation in 1/10ms</guilabel></emphasis> &mdash; adjust to
          compensate for latency between the keyboard and the
          program.</para></listitem>

          <listitem><para><emphasis role="bold"><guilabel>Beat counter start
          offset in ms</guilabel></emphasis> &mdash; adjust the time between the
          BeatCounter's last input stroke and when the song starts playing (if
          auto-start is activated).</para></listitem>
        </itemizedlist>

        <para>Note that these can be set to positive (+) or negative (-) values.
        In order to find useful values for these, you will need to take some
        time to play with it.  Also, you may want different values depending on
        the speed of your hardware, audio devices, drivers, etc.  Using the
        BeatCounter effectively requires practice.</para>

      </section>

    </section>


<!-- SONG EDITOR -->
    <section id="sect.song_editor">
      <title>Song Editor</title>

      <para>The "Song Editor" (<xref linkend="fig.song_editor"/>) gives an
      overview of the whole timeline of the song (e.g. intro, verse, bridge,
      chorus and so on); each blue colored square on this panel represents a complete
      bar as shown in the underlying "Pattern Editor" panel. The song editor gives
      you complete freedom to add/remove patterns to the song and to move or 
      copy any part of your song.
      
           
      <figure id="fig.song_editor">
        <title>The Song Editor</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/SongEditor.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>
      </para>

     <section id="sect.song_editor.main_controls">
      <title>Main controls</title>
      <para>
        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/bg_topPanel.png" format="PNG"/>
          </imageobject>
        </inlinemediaobject>
      </para>

      <itemizedlist mark="opencircle">

        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/btn_clear_off.png" format="PNG"/>
            </imageobject></inlinemediaobject> Completely delete all patterns
            (asks for confirmation!).
          </para>
        </listitem>

        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/btn_new_on.png" format="PNG" />
            </imageobject></inlinemediaobject> Create a new pattern (and asks
            for a name).
          </para>
        </listitem>

        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/btn_updown.png" format="PNG" />
            </imageobject></inlinemediaobject> Move currently selected pattern
            up or down.</para>
          <para>Note that you can also just drag-and-drop a pattern up/down in the pattern list.</para>
        </listitem>



        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/btn_select.png" format="PNG"/>
            </imageobject></inlinemediaobject> Enable Select Mode.  This mode allows 
            you to select a part of the song and delete/move/copy it.</para>
            <para>Once you have selected a part of your song you can <emphasis role=
            "bold">delete</emphasis> it by pressing the Delete button.  You can <emphasis
             role="bold">move</emphasis> it by simply dragging your selection
            to another location, and you can also <emphasis role="bold">copy</emphasis>
             you selection by Ctrl-dragging it to a new location.
          </para>
        </listitem>

        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/btn_draw.png" format="PNG"/>
            </imageobject></inlinemediaobject> Enable Draw Mode.  This mode allows
            you to create a song by drawing blocks on the song canvas.</para>
            <para>Clicking a square on the song canvas will add a pattern (the square 
            will turn blue), clicking it again will remove that pattern from the song.
          </para>
        </listitem>

        <listitem>
          <para><inlinemediaobject><imageobject>
            <imagedata fileref="img/btn_pattern_mode.png" format="PNG"/>
            </imageobject></inlinemediaobject> Switch from "Single pattern mode"
            to "Stacked pattern mode" and back.</para>
            <para>For more info on this see <xref linkend="sect.midi_actions"/>.
          </para>
        </listitem>
      </itemizedlist>

      </section>
      
      
     <section id="sect.song_editor.tempo_and_markers">
     <title>Tempo markers and song Tags</title>
       <para>This section describes how you can define tempo changes and 
       how you can add tags to your song.</para>
       <para>The majority of songs consist of several parts (intro, verse, chorus ...) and
       often these parts will have a different tempo.  Hydrogen provides an easy way
       to let you change the tempo of a song at any given moment in the song.  This is 
       done by adding Tempo change Markers to your song.</para>
       <para>To add a Tempo change marker to your song you first need to enable the 'BPM' option
       (the BPM button is located just above the Song editors main controls).  Once this is done
       the horizontal bar next to the BPM button changes to a ruler with marks at every bar.
       Now simply left-click this ruler at the bar you want the tempo to change and a
       window will pop up where you can enter the new tempo.
     
        <informalfigure id="fig.add_tempo_change">
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/add_tempo_change.png" format="PNG" />
           </imageobject>
         </mediaobject>
         </informalfigure>
            
       Once you have entered the new tempo and clicked OK, the tempo change will 
       show up on the tempo ruler.  If you click the Tempo marker again you can edit 
       the tempo, change the bar or delete the tempo marker.

        <informalfigure id="fig.tempo_bar">
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/tempo_bar.png" format="PNG" />
           </imageobject>
         </mediaobject>
         </informalfigure>

       </para>

       <para>
       In addidtion to changing the tempo when the song switches from intro > verse, 
       it is also very handy to have a clear indication of this tempo switch (or any other
       event in the song).  For this purpose you can also ad Tags markers to the song.
       These Tags are short text messages you can add to your song at any given 
       moment that will be displayed whenever the song playhead passes by that Tag.</para>
       
       <para>
       To add a Tag to your song simply middle-click on the song ruler (just below the 
       tempo ruler) and a window will pop up where that allows you to add text for any bar.
            
        <informalfigure id="fig.add_tag">
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/add_tag.png" format="PNG" />
           </imageobject>
          </mediaobject>
         </informalfigure>

       Once you are done you will see a small blue 'T' in the song ruler for every tag 
       you have entered.  Middle-click anywhere on the song ruler to edit the tags.

         <informalfigure id="fig.tag_bar">
          <mediaobject>
            <imageobject>
              <imagedata fileref="img/tag_bar.png" format="PNG" />
            </imageobject>
           </mediaobject>
          </informalfigure>
       </para>

       <para>
       Now all we need is a way to see the tags we have entered.  This can be done 
       using the Director window.  Open the Director by pressing Alt-D, or Tools- Director : 

           <informalfigure id="fig.director">
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/screenshot-director.png" format="PNG" />
              </imageobject>
            </mediaobject>
            </informalfigure>
       
       The Director is your best friend when you need a quick overview of what Hydrogen
       is currently doing.  This comes in very handy when you are recording a song, or
       if you are using Hydrogen live on stage.</para>
       
       <para>
       The Director shows you the song name, a visual metronome and of course the 
       song Tags.  Just below the metronome you can see the latest tag, and below that 
       the next upcoming tag.  This way you have a nice overview of what is going on, 
       and what is about to happen in the song
       
     </para>

     </section>


     <section id="sect.song_editor.pattern_options">
     <title>Patterns options</title>

      <para>Right-clicking the name of a pattern will show you a menu 
      where you can change a number of things :</para>
      
     <figure id="fig.song_editor.virtualPattern.selectedMenu">
        <title>The Pattern Options menu</title>

        <mediaobject>
          <imageobject>
            <imagedata fileref="img/Virtual_patterns_menu.png" format="PNG"/>
          </imageobject>
        </mediaobject>
      </figure>
      
      
      <itemizedlist mark="opencircle">

        <listitem>
          <para>Edit : will open the selected pattern in the Pattern Editor.
          </para>
        </listitem>
        
        <listitem>
          <para>Copy : will copy the selected pattern to a new pattern in your song.
          </para>
          <para>Note that patterns with the same name are not allowed.</para>
        </listitem>
        
        <listitem>
          <para>Delete : will completely remove the selected pattern from the song.
          </para>
        </listitem>
        
        <listitem>
          <para>Fill/Clear : will open a window that allows you to fill/clear a 
          part of the song with the selected pattern by entering the start- and end bar.
           <informalfigure id="fig.fill_clear_pattern">
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/fill_clear_pattern.png" format="PNG" />
              </imageobject>
            </mediaobject>
            </informalfigure>
          </para>
        </listitem>
        
        <listitem>
          <para>Properties : will open a window where you can change 
          the name of the pattern and also assign it to a certain category.
           <informalfigure id="fig.pattern_properties">
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/pattern_properties.png" format="PNG" />
              </imageobject>
            </mediaobject>
            </informalfigure>
          </para>
        </listitem>
        
        <listitem>
          <para>Load Pattern : will open the selected pattern in the Pattern Editor.
          </para>
        </listitem>
        
        <listitem>
          <para>Save Pattern : will open the selected pattern in the Pattern Editor.
          </para>
        </listitem>
        
        <listitem>
          <para>Virtual Pattern : will open the selected pattern in the Pattern Editor.
          </para>
          <para>
	        Virtual patterns are a convenient way of grouping patterns together. 
          For example, say you have a song in which three patterns are always 
          played together at the start of each bar. Previously, the way to do this 
          in the pattern matrix was to explicitly enable the three patterns at each bar.
         </para>
         <para>
        	With virtual patterns we can assign a pattern to be a sort of meta-pattern 
	        that implicitly invokes these three patterns together when the new virtual pattern 
	        is enabled in the pattern matrix. This way, we only need to set one pattern every 
	        bar, instead of three.
         </para>
         <para>
        	Virtual patterns provide a function that's similar to the regular pattern editor, and one could argue that 
	        since a virtual pattern is also a regular pattern, we could have just merged the three 
	        patterns into this new one. However, the advantage that virtual patterns provide is that 
	        if one of the original three patterns changes, the virtual pattern automatically inherits 
        	the change. A virtual pattern can also invoke other virtual patterns.	
         </para>
         
          
        </listitem>        
        
      </itemizedlist>
        
      


      


     
     </section>


    </section>
    

<!--  PATTERN EDITOR  -->
    <section id="sect.pattern_editor">
    
      <title>Pattern Editor</title>

      <para>The "Pattern Editor" 
      lets us create or modify the pattern (bar) which is currently selected.  You can add/remove 
      notes, and tune a number of per-note properties like velocity and pan. The Pattern Editor 
      can be used in 2 modes : 'Drum' mode or 'Piano' mode.  You can switch between these 
      modes by clicking the Drum/Piano button (located on the top-right of the Pattern Editor) 
      </para>
      
      <para>First let's take a look at the (classic) 'Drum' mode :
        <figure id="fig.PatternEditor_DrumMode">
         <title>Pattern Editor in Drum mode</title>
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/PatternEditor_DrumMode.png" format="PNG" />
           </imageobject>
         </mediaobject>
        </figure>
      </para>
      
      <section id="sect.pattern_editor.controls"> 
       
        <title>Pattern Editor Controls</title>
        <para>The top part of the pattern editor contains a number of controls :</para>
      
        <figure id="fig.PatternEditorControls">
         <title>Pattern Editor Controls</title>
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/PatternEditorControls.png" format="PNG" />
           </imageobject>
         </mediaobject>
        </figure>
        
         <para>From left to right : </para>
         <itemizedlist mark="opencircle">

           <listitem><para><emphasis role="bold">SIZE</emphasis> : lets you choose the size of the pattern (the number of bars)</para></listitem>

           <listitem>
            <para>
             <emphasis role="bold">RES</emphasis> : this is the current grid resolution (4 through 64)
            </para>
            <para>
                Remember this constraint concerning the grid: if you are working
                with a resolution of 16 you can't go back to 8 and remove a 16th note. On
                the other hand if you are working with a resolution of 8 and you try to
                insert a note in the middle of two bars (looking for a 16 bars precision),
                notes will be placed in the previous or in the following 8th bar.  This
                constraint can be removed if you disable the whole grid resolution (choose
                "off" from the grid resolution LCD control). Now you'll be able to place
                notes wherever you prefer.</para>
           </listitem>
        
           <listitem><para><emphasis role="bold">HEAR</emphasis> : when enabled Hydrogen 
           will play the sample as it's being added to the pattern.</para></listitem>

           <listitem><para><emphasis role="bold">QUANT</emphasis> : enables/disables quantization.  
           When enabled the beats inserted 
            will automatically respect the grid resolution currently applied.</para></listitem>

           <listitem><para><emphasis role="bold">Drumset / Instrument</emphasis> : 
           when set to Drumset the keys on your midi keyboard will map to the instruments in your drumkit as
           described in the instrument mapping table below.  If you set it to Instrument the keys of your midi 
           keyboard will trigger the instrument that is currently selected.  The pitch of the instrument will follow 
           the key you press on your keyboard.  This feature is mainly used for non-drum instruments.  An example : 
           if you use a sample of a piano for one of your instruments, you will be able to 'play' that piano instrument 
           using your keyboard just like you are playing a piano synth.</para></listitem>

           <listitem><para><emphasis role="bold">Note Length / Note off</emphasis> : these are 2 different
            ways to define the duration of a note. See <xref linkend="sect.pattern_editor.sequence_area"/> for usage.</para></listitem>

           <listitem><para><emphasis role="bold">Drum/Piano</emphasis> : switch Pattern Editor 
           between Drum and Piano mode. (see below)</para></listitem>

         </itemizedlist>

      </section>
      
      <section id="sect.pattern_editor.drumkit">
      <title>Pattern Editor Drumkit</title>
        <para>The section on the left shows you what drumkit is currently selected (GMkit by default) and below that you can see
        the instruments that are part of this kit.</para>
        
        <para>
        <inlinemediaobject id="ifig.pattern_editor_instrument">
          <imageobject>
            <imagedata fileref="img/PatternEditorInstr_V2.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>
        </para>
          
        <para>Each instrument has its own set of features that are accessible by 
        right-clicking the instrument.  From the context menu that pops up you can select </para>
        <itemizedlist mark="opencircle"> 
          <listitem><para><emphasis role="bold">Clear notes</emphasis> : to remove all notes for this instrument in this pattern.  </para></listitem>
          <listitem><para><emphasis role="bold">Fill notes</emphasis> : this allows you to fill
          up the pattern with notes for the selected instrument.  Depending on the choice you make (fill all, fill 1/2, fill 1/4 ...)
          notes will be placed at all, 1/2, 1/4, etc of the note positions <emphasis role="bold">that are allowed by 
          the grid setting</emphasis>.  So be careful not to mix up the 'musical' 1/2-note and the 'fill 1/2' note.</para></listitem>
          <listitem><para><emphasis role="bold">Randomize velocity</emphasis>
          : automatically apply a pseudo-random velocity to each note of that
          instrument in the pattern. The more velocity you set on the instrument,
          the more hydrogen will hit <quote>hard</quote> on that instrument when
          played.
          </para></listitem>
          <listitem><para><emphasis role="bold">Delete Instrument</emphasis> : well, deletes the instrument ;-)</para></listitem>
        </itemizedlist>
        
        <para>The small red and green buttons right of the instrument names are the
        <quote><emphasis role="bold">mute</emphasis></quote> (red) and <quote><emphasis
        role="bold">solo</emphasis></quote> (green) buttons.</para>

        <para>The order of the instruments can be rearranged by simply dragging an instrument 
        up/down in the list and dropping it on a new position within the drumkit.  Doing so 
        will not change anything to the sequence you have created for that instrument, nor will
        it change anything to the song or pattern you are working on.  It <emphasis role="bold">
        will</emphasis> however, have an impact on the <emphasis role="bold">MIDI note 
        mapping</emphasis> : in the table below you can find the link between the instrument
        position, the MIDI note and the qwerty keyboard keys.</para>

      <para><emphasis role="bold">Important Notes</emphasis> :</para>
      <para>The name of the instrument depends on the
      drumkit that is loaded. This list below refers to the GMkit that is loaded by default.
      </para>
      <para>
      Keep in mind that it is the <emphasis>position</emphasis> of the instrument (within the loaded drumkit) that 
      is linked to a MIDI-note/keyboard-key and <emphasis>not the name</emphasis> of the instrument.
      </para>

<!--
      <itemizedlist>
        <listitem><para>Z = Kick</para></listitem>
        <listitem><para>X = Snare Jazz</para></listitem>
        <listitem><para>C = Snare Rock</para></listitem>
        <listitem><para>V = Tom Low</para></listitem>
        <listitem><para>B = Tom Mid</para></listitem>
        <listitem><para>N = Tom Hi</para></listitem>
        <listitem><para>M = Cowbell</para></listitem>
        <listitem><para>Q = Ride Jazz</para></listitem>
        <listitem><para>W = Ride Rock</para></listitem>
        <listitem><para>E = Instrument No. 17 (currently not assigned)</para></listitem>
        <listitem><para>R = Instrument No. 18 (currently not assigned)</para></listitem>
        <listitem><para>T = Instrument No. 20 (currently not assigned)</para></listitem>
        <listitem><para>Y = Instrument No. 22 (currently not assigned)</para></listitem>
        <listitem><para>U = Instrument No. 24 (currently not assigned)</para></listitem>
        <listitem><para>S = Stick</para></listitem>
        <listitem><para>D = Hand Clap</para></listitem>
        <listitem><para>G = Closed HH</para></listitem>
        <listitem><para>H = Pedal HH</para></listitem>
        <listitem><para>J = Open HH</para></listitem>
        <listitem><para>2 = Crash</para></listitem>
        <listitem><para>3 = Crash Jazz</para></listitem>
        <listitem><para>5 = Instrument No. 19 (currently not assigned)</para></listitem>
        <listitem><para>6 = Instrument No. 21 (currently not assigned)</para></listitem>
        <listitem><para>7 = Instrument No. 23 (currently not assigned)</para></listitem>
      </itemizedlist>
-->

      <informalfigure id="fig.InstrumentMapping">
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/InstrumentMapping.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </informalfigure>

      <para>Here's a quick reference of the above bindings for your
      convenience. </para>

      <informalfigure id="fig.letters_keyboard">
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/tastiera.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </informalfigure>
      </section>

      <section id="sect.pattern_editor.sequence_area">
      <title>Pattern Editor Sequence area</title>
        <para>This is where it all happens, this is where you can make music :-)</para>
        <para>In this area you can see your selected pattern and add notes for any instrument. 
        The simplest way to create a pattern is by adding notes using your mouse 
        (and the 'Fill/Clear notes' function described above). Where you can add notes
        depends on the used pattern size and resolution.</para>
        <para>If you are using Hydrogen as a pure 'drum' you just want Hydrogen to 'hit' 
        the instrument wherever there's a 'dot' in the pattern. If you are using Hydrogen as an 'instrument', the 
        length of the note becomes very important. There are 2 ways to define the length of
        a note : in 'Note Length' mode you can add a note by left-cliking, and you can 'stretch' that note by right-click-dragging it.
        This will change the dot into a rectangle that represents the duration of that note.  In 'Note Off' mode you can also add a
        note by left-clicking, but a right-click will now add a blue dot that represents the end of that note. 
        <informalfigure id="fig.NoteOff_NoteLength">
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/NoteOff_NoteLength.png" format="PNG" />
          </imageobject>
        </mediaobject>
        </informalfigure>
        (Figure above, from left>right : a 'normal' note, a note in 'note length' mode, a note in 'note off' mode) 
        </para>

        <para>So far we have only used the mouse to create a pattern, but you can also record your beats by clicking the Record button 
         <inlinemediaobject>
          <imageobject>
           <imagedata fileref="img/Rec_button.png" format="PNG"/>
          </imageobject>
         </inlinemediaobject>
        (see <xref linkend="sect.main_menu"/>) and simply playing your pattern on your 
        MIDI drum or your pc keyboard (see instrument mapping above).  This is probably 
        a more musical way of creating a pattern, but it's up to you to decide what works best for you.
        (Also see <xref linkend="chap.create_song"/> for a basic
        walk-through of how the pattern editor works) </para>
 
      </section>
      
      <section id="sect.pattern_editor.note_properties">
      <title>Pattern Editor Note Properties</title>
      <para>Clicking on an instrument or adding/removing a note next to it 
      will select this instrument.  Once an instrument is selected the note properties 
      for this instrument will be shown in the form of vertical lines in the bottom window.  
      The lines represent the value for the selected property of each note of the selected instrument.  
      You can select another note-property from the note property drop-down list (located bottom-left).  
      There are 4 note properties available : 
      
      <itemizedlist mark="opencircle">
        <listitem>
          <para><emphasis role="bold">Velocity</emphasis> : how hard the note is played (the volume of the note)</para>
          <para>
          Note that the color of the note-dot and the vertical bar will change according to the velocity value you have defined. 
          A light shade of gray means a low velocity (low volume) and the higher you set the velocity the darker the color will be,
          turning red when you reach the point of clipping.
          </para>
        </listitem>
        
        <listitem>
          <para><emphasis role="bold">Pan</emphasis> : with this parameter you can define
           the stereo image of the note (how loud it will be in the left/right output)</para>
        </listitem>
        
        <listitem>
          <para>
          <emphasis role="bold">Lead/Lag</emphasis> : Lead and Lag allows a slight note
          lead or lag in respect of the actual beat. The range is ca. 5 ticks which
          equals around ca. 10 ms at a tempo of 120bpm.  Changing the lead/lag can make a huge
          difference to the way your pattern sounds and feels.  It's a groove thing ;-) 
          </para>
        </listitem>
        
        <listitem>
          <para>
          <emphasis role="bold">Notekey</emphasis> : if you select this note parameter the 
          area where you can modify the parameter will change into a 'piano keyboard'
          </para>
          <informalfigure id="fig.NoteKey">
            <mediaobject>
              <imageobject>
                <imagedata fileref="img/NoteKey.png" format="PNG" />
              </imageobject>
            </mediaobject>
          </informalfigure>
          <para>The striped black and white area represents a piano keyboard and in the gray 
          area you can choose the octave.  By placing a dot on the octave scale and a dot on the 
          'keyboard' you can choose any note.</para>
        </listitem>
      </itemizedlist>
      </para>


      </section>

      <section id="sect.pattern_editor.piano_mode">
      <title>Pattern Editor Piano mode</title>
      <para>Drum mode (see <xref linkend="fig.PatternEditor_DrumMode"/>) focuses on using Hydrogen as a drum machine.
      If you are using Hydrogen as an instrument there is a big chance that the Piano mode is for you.
      It gives you a complete 'piano keyboard' so you can easily put down your tunes.</para>
      <para>You can compare the Piano mode to the Note properties Notekey (described above), only here you have a 
      complete piano keyboard, so you dont have to select the octave first.</para>
       <figure id="fig.PatternEditor_PianoMode">
         <title>Pattern Editor in Piano mode</title>
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/PatternEditor_PianoMode.png" format="PNG" />
           </imageobject>
         </mediaobject>
        </figure>
      </section>
     
    </section>


<!-- MIXER -->
    <section id="sect.mixer">
      <title>Mixer</title>

      <para>The Mixer window can be opened by pressing Alt+M, by clicking 
      Mixer in the Tools menu, or by clicking the Mixer button on the main toolbar.
      </para>
      <para>The Mixer consists of 3 sections (left>right) : the instrument channel strips, 
      the FX plugin rack and the master fader section.  The Hydrogen Mixer works very
       much like a hardware mixer does : it lets you set the volume, pan, FX and several 
       other things for every instrument.

      <figure id="fig.mixer">
        <title>The Mixer</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/Mixer.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>
      </para>

    <section id="sect.mixer.channel_strips">
      <title>Instrument channel strips</title>
       <para>From top to bottom : the 2 top elements on the strip are a 'play' button / 'trig' led combination.
            (
      <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/btn_play_on_mixer.png" format="PNG" />
        </imageobject>
      </inlinemediaobject>
       )
         The play button lets you trigger the instrument at maximum velocity (handy for checking clipping), 
       and the trig led lights up whenever this instrument is triggered (from the song sequence, 
       or by an external midi controller).  Right of this button/led you will find another led that shows
       you what instrument is currently selected.  This is also the instrument that is selected in the pattern editor.
       As soon as you change one of the settings of a channel strip the instrument will be selected.</para>

       <para>Just below you can find the Mute
       
       <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/btn_mute_on.png" format="PNG" />
        </imageobject>
       </inlinemediaobject>
      
        and Solo
        
       <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/btn_solo_on.png" format="PNG" />
        </imageobject>
       </inlinemediaobject>       

        buttons and the Pan(orama) knob. 
       Note that the Mute and Solo states are also reflected in the Song editor.</para>

      <para>
      Next are 4 pre-fader FX send knobs that determine how much of this instrument will be sent to
      the effect plugins in the FX rack.
      
        <informalfigure id="fig.FX_send_knobs">
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/FX_send_knobs.png" format="PNG" />
           </imageobject>
         </mediaobject>
         </informalfigure>
      
      
      
      Just below that you can find an LCD peak-value display,
      and finally the volume fader and VU meter for that instrument.</para>
      <para><emphasis role="bold">IMPORTANT NOTE</emphasis> : keep in mind that the volume and pan settings that you
      find on the Mixer are global settings.  The per-note velocity and pan settings in the Pattern editor
      are settings that are relative to the settings in the Mixer window !</para>


    </section>
    
    <section id="sect.fx_rack_LADSPA">
      <title>FX rack and LADSPA plugins</title>
       <para>The FX rack has 4 bays where you can load a LADSPA effect plugin, but before
        you can load any plugins these must be installed (surprised ?  ;-)</para>
        <para>There are dozens of plugins available for download from various sources :

      <itemizedlist>
        <listitem>
          <para>SWH-Plugins available at <ulink
          url="http://plugin.org.uk">http://plugin.org.uk</ulink>. </para>
          <para>(Note : if you want to compile these plugins
          you need the FFTW tarball from <ulink
          url="http://www.fftw.org">http://www.fftw.org</ulink>)</para>
        </listitem>

        <listitem>
          <para>CMT available at <ulink url="http://www.ladspa.org">http://www.ladspa.org</ulink>.</para>
        </listitem>

        <listitem>
          <para>TAP available at <ulink url="http://tap-plugins.sf.net">http://tap-plugins.sf.net</ulink>.</para>
        </listitem>

        <listitem>
          <para>Calf plugins <ulink url="http://calf.sourceforge.net/">http://calf.sourceforge.net/</ulink>.</para>
        </listitem>

        <listitem>
          <para> ....</para>
        </listitem>

      </itemizedlist>
      </para>
      
      <warning>
        <title>Plugins Kill</title>
        <para>A LADSPA plugin is compiled, executable code.  It is capable of
        hanging, crashing, freezing, screeching, overflowing buffers, and even
        phoning home.  If you start having issues with Hydrogen, disable your
        plugins and see if things improve.  Some plugins are not designed for
        real-time use, and some are just plain better than others.</para>
      </warning>

      <para>Once you have installed some plugins you can select one by clicking the
      

      <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/edit_off.png" format="PNG" />
        </imageobject>
      </inlinemediaobject>

      button.  (if you do not see the FX rack, make sure that the 

      <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/showFX_on.png" format="PNG" />
        </imageobject>
      </inlinemediaobject>

      button (in the Master section) is enabled)</para>
      <para>Now the FX selector window will pop up :
      
      <figure id="fig.select_effect">
        <title>Select an Effect</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/MixerFXSelect.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>
      
      Once you have selected a plugin you will immediately have access 
      to the parameters of that plugin :
      
       
        <informalfigure id="figLADSPA_FX_Properties">
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/LADSPA_FX_Properties.png" format="PNG" />
           </imageobject>
         </mediaobject>
         </informalfigure>


      You can select another plugin by clicking the 'Select FX' button, and If you quickly want to 
      enable/disable the effect click the 'Deactivate' button (or the Bypass (

      <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/bypass_over.png" format="PNG" />
        </imageobject>
        </inlinemediaobject>)

      button in the FX rack).  This can be handy for a quick A/B comparison.</para>
      
      <para>After you have selected the FX and tweaked it's parameters you can use the 
      FX return knob to increase/decrease how much of this FX will be returned to the master output.</para>

    </section>
     
    <section id="sect.master">
      <title>Master section</title>
       <para>
       
      The Master section contains the Master volume fader with VU meters, and 3 global Humanize 'effects'
      (Velocity, Timing and Swing).  These are not the type of effects as described in the LADSPA
      section, instead these effects will alter the way the notes are played, in order to add a 'human feel' to the song :
      
     <itemizedlist>
        <listitem>
          <para>Velocity : this knob will add a certain randomness to the note velocity. 
           The higher you turn this knob, the more the velocity will be randomized.
          </para>
        </listitem>

        <listitem>
          <para>Timing : this knob will add a certain randomness to the note timing (lead/lag).  
          The higher you turn this knob, the more the timing will be randomized.</para>
        </listitem>
        
       <listitem>
          <para>Swing : this knob will add a certain amount of swing to the song.</para>
        </listitem>        
        
     </itemizedlist>
      
      Note that Hydrogen can also be switched to 'per instrument output' mode (see <xref linkend="sect.preferences.audio_tab"/>),
      and in this mode all channel strip outputs will be available in Jack (not just the Master output).  
      This allows you to route the individual instruments directly into any other Jack enabled application (eg Ardour) and gives you
      a lot more flexibility.</para>
      
      <para>On the bottom-right of the Master section you can find the' FX' button (show/hide the FX rack), and
      the 'Peak' button (enable/disable the VU meters).
       
      <inlinemediaobject>
        <imageobject>
          <imagedata fileref="img/showPeaks_on.png" format="PNG" />
        </imageobject>
      </inlinemediaobject>       
       
       Note that the VU meter fallof speed can be configured in the preferences window (see
       <xref linkend ="sect.preferences.appearance_tab"/>)

        each instrument switching the

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/showFX_on.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        button. See next section for a detailed overview.
       
       </para>
    </section>
    
    
    </section>

    <section id="sect.sound_library">
      <title>Sound Library (Drumkit/Pattern/Song Manager)</title>

      <para>First of all a little history on the Sound library and Drumkits : 'In the beginning' Hydrogen was a 90% drum 
      machine.  Consequently the collection of drum sounds was called 'a drumkit'.
      Since then a lot has changed and Hydrogen has become much more than a drum machine.
      It is a versatile sound synthesizer/sequencer that is capable of generating and manipulating all sorts
      of sounds.  Hence the term Drumkit might be misleading since you can load any sound into
      a Drumkit and manipulate that sound just like playing a 'regular' synthesizer.  
      (This is also the main reason why the Piano mode was added to the pattern editor : 
      see <xref linkend="sect.pattern_editor.piano_mode"/>).</para>
      <para>In this manual (and in other documentation) you will find the terms Drumkit and
      Soundlibrary frequently, and they might be referring to the same thing ... or not. The diagram
      below shows the actual relation between the Soundlibrary and Drumkits :
      <figure id="fig.SoundlibraryHierarchy">
         <title>Soundlibrary/Drumkit hierarchy</title>
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/SoundlibraryHierarchy_V4.png" format="PNG" />
           </imageobject>
         </mediaobject>
        </figure>
      
      As you can see the Soundlibrary contains all Drumkits (System- and User drumkits), your saved Patterns and your saved Songs.  Each Drumkit is a collection of a number
      of instruments (snare, kick, sampled voice, bass sound ...) and in its turn an instrument can consist of multiple
      layered samples.  Note that every block has a number of parameters (continue reading for more details).</para>
      <para>This said. let's take a look at the Soundlibrary interface and see what it can do for you:</para>
      <para>The Sound Library saves you time in managing your drum kits,
      favorite patterns, and favorite songs.  When making new songs and drum
      kits, the Sound Library makes it easier for you to reuse and mix the
      instruments and patterns from other kits and songs.

      <figure id="fig.soundlibrary">
        <title>The Soundlibrary</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/SoundLibrary.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>
      </para>

      <section id="sect.systemdrumkits">
        <title>System Drumkits</title>

        <para>This lists the drumkits that were installed by your system
        administrator.  The location of these System Drumkits is determined by the compile-time prefix.  On
        Unix-like operating systems, this is usually <filename
        role="directory">/usr/share/hydrogen/data/drumkits</filename>, or
        possibly <filename
        role="directory">/usr/local/share/hydrogen/data/drumkits</filename>.
        These kits are available to all users on the system, and users are
        usually not able to add to them.</para>

        <para>To load a drumkit from here, right-click the drumkit and select
        <guimenuitem>Load</guimenuitem>.  This will replace your current drumkit
        with the one that you selected.  To load a single instrument from that
        kit, left-click the <guibutton>plus</guibutton> to the left of the
        drumkit's name to show all the instruments.  With your left mouse
        button, click and drag the instrument into your current kit.  The
        instrument will be added to the drumkit that you currently have
        loaded.</para>
      </section>

      <section id="sect.userdrumkits">
        <title>(Adding) User Drumkits</title>

        <para>These are your own drum kits that you can manage yourself.  They
        are usually stored in <filename
        role="directory">$HOME/.hydrogen/data/drumkits</filename>.  When you are
        creating a new drumkit, you can save it here by selecting
        <menuchoice><guimenu>Instruments</guimenu><guimenuitem>Save
        library</guimenuitem></menuchoice>.</para>

        <para>
        You can import existing drumkits from other users via <menuchoice>
        <guimenu>Instruments</guimenu><guimenuitem>Import library</guimenuitem>
        </menuchoice>.  The Import window will pop up with the Internet tab selected.
        By default the link to the drumkit list (on hydrogen-music.org) will be filled in, 
        and after pressing the 'Update list' button you will get a complete list of all
        drumkits that are available for download.  In the status column you can see
        if a kit is installed or not.

       <figure id="fig.import_drumkit">
         <title>Import Drumkit</title>
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/Sound_Library_import.png" format="PNG" />
           </imageobject>
         </mediaobject>
       </figure>
  
        If you select one of the drumkits you will see info about this kit in the right
        pane of the Import window : name, description, author and also the license type.

       <warning>
       <para>If you are using Hydrogen for commercial purposes, (creating songs and 
       selling these on-line or in any other way) you need to pay special attention to the
       license type of the drumkit(s) you are using.
       </para>
       <para>
       If the exact license is not available for a drumkit, do _NOT_ assume that it is a CC (or
       other open and free license type).
       </para>
       <para>
       Even if the kit is CC licensed you should always check with the author before using 
       the kit in your songs.
       </para>
       <para>DISCLAIMER : hydrogen is not responsible for the drumkits that are 
       made available for download by our users, either via the hydrogen-music.org site or
       via any other channel.</para>
       
       </warning>

    
       You can install a drumkit by selecting it and clicking 'Download and Install'.
    
       <informalfigure id="fig.downloading_soundlibrary">
         <mediaobject>
           <imageobject>
             <imagedata fileref="img/Downloading_SoundLibrary.png" format="PNG" />
           </imageobject>
         </mediaobject>
        </informalfigure>
    
       Once the kit has been downloaded it will be available in the Sound Library under User drumkits.
     
       </para>


      </section>
      <section id="sect.sl.songs">
        <title>Songs in the Sound Library</title>

        <para>To save songs in the Sound Library, put them in your data
        directory underneath the <filename role="directory">songs</filename>
        folder (usually <filename role="directory">$HOME/.hydrogen/data/songs)</filename>.
        To remove them, remove the file from that folder.</para>
      </section>      
      
      <section id="sect.sl.patterns">
        <title>Patterns in the Sound Library</title>

        <para>Before you save your favorite patterns to the sound library, be
        sure to edit it's properties by right-clicking and selecting
        <guimenuitem>Properties</guimenuitem>.  There, you can give the pattern
        a title and a category.  You can use one of the categories already
        provided, or create your own categories by simply typing in a category
        name.  The category name is important, because the patterns will be
        filed by category in the Sound Library.</para>

        <para>You can save your favorite patterns in the sound library by right
        clicking the title of the pattern in the song editor, and selecting
        <guimenuitem>Save Pattern</guimenuitem>.  It will appear in the Sound
        Library underneath <guilabel>Patterns</guilabel> and the category that
        you assigned to the pattern.</para>
        </section>
    </section>

    <section id="sect.instrument_editing">
      <title>Drumkits and Instrument Editing</title>


      
      <!-- Need to add an explaination of what the instrument list
           and instrument editor are. -->

      <section id="sect.instrument_editing.concepts">
        <title>Concepts</title>

        <para>
          The synthesizer in Hydrogen is a sample-based synthesizer.  A sample
          is a piece of pre-recorded audio (usually between .1 sec and 3 sec).
          To play a note, the sample is simply played back at the right time.
          There's a few concepts and terms that you should understand when you
          are putting together a drumkit.  (See <xref linkend="glossary"/> for
          more detailed explanations.)
        </para>

        <variablelist>
          <title>Sampling Synthesizer Terms</title>
         
          <varlistentry>
            <term>Sample</term><listitem><para>A short recording of a sound,
            typically between .1 and 3.0 seconds long.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>Gain</term><listitem><para>Volume
            adjustment.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>Velocity</term><listitem><para>How hard you hit a
            note.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term> ADSR Envelope Generator</term><listitem><para>An
            Attack/Decay/Sustain/Release envelope generator.  After you trigger
            a note, Hydrogen will <emphasis>attack</emphasis> the note by
            increasing its volume from 0 to the full velocity of the note.
            After reaching full velocity, it will <emphasis>decay</emphasis> the
            note by lowering the volume until it reaches the
            <emphasis>sustain</emphasis> level.  When the note is
            <emphasis>released</emphasis>, Hydrogen reduces the volume from the
            sustain level back down to 0.  See <ulink url="http://en.wikipedia.org/wiki/ADSR_envelope">ADSR
            Envelope</ulink> for more info</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>Attack</term><listitem><para>The amount of <emphasis
            role="bold">time</emphasis> to go from 0 to full
            velocity.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>Decay</term><listitem><para>The amount of <emphasis
            role="bold">time</emphasis> to go from full velocity to the sustain
            volume.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>Sustain</term><listitem><para>The <emphasis
            role="bold">level</emphasis> (how loud) to hold the note between the
            sustain and the release.  It is a percentage of the velocity.  It
            does not depend on time.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>Release</term><listitem><para>The amount of <emphasis
            role="bold">time</emphasis> to go from the sustain volume back down
            to 0.</para></listitem>
          </varlistentry>

        </variablelist>

        <para>
          Typical samples that are used in Hydrogen are: the sound of a single
          drum hit, the sound of a single cymbal hit, the sound of a single
          cowbell hit.  Whenever you put a note in the pattern (or play a note
          using MIDI), Hydrogen will play whatever sound you have loaded.  So,
          to put together a drum kit you need to gather short recordings of the
          bass drum, each tom, each cymbal, the high hat open, the high hat
          closed, the snare drum (snare on), the snare drum (snare off), rim
          shots, etc.
        </para>

        <para>
          However, there are no rules about what a sample can be.  It's not
          uncommon to use Hydrogen to trigger non-drum sounds like: audio clips
          of people talking, a clip from a song, sound effects, audio clips from
          movies, and famous people speaking.  Be creative!
        </para>

      </section>
      <section id="sect.instrument_editing.new_kit">
       <title>Creating a New Drumkit</title>
       <para>In the next paragraphs we will show you how to create a complete drumkit.  
       Keeping in mind the 'Soundlibrary hierarchy' (see <xref linkend="fig.SoundlibraryHierarchy"/>)
       we will use a top-down approach, so we will start at the Drumkit level and work our way 
       down to the samples.</para> 
        
       <para>Creating a new drumkit with Hydrogen is done with the Instrument
       Editor.  Using the instrument editor you can load samples, set envelope
       parameters, set the gain, and a few other advanced features like mute
       groups, low-pass resonance filter, and pitch randomization.</para>

       <para>TIP : Instead of creating your own drumkit, you can also use or download
       existing drumkits using the <xref linkend="sect.sound_library"/>.</para>

        <para>Lets make a  brand new drum kit :</para>
        <itemizedlist>
          <listitem><para>select
          <menuchoice>
            <guimenu>Instruments</guimenu>
            <guimenuitem>Clear All</guimenuitem>
          </menuchoice>

          .  This will give you a bank of 32 blank instruments.  To delete
          instruments, right-click on on each instrument and select
          <guimenuitem>Delete Instrument</guimenuitem>.  To add more instruments,
          select

          <menuchoice>
            <guimenu>Instruments</guimenu>
            <guimenuitem>Add instrument</guimenuitem>
          </menuchoice>
          .</para>
          </listitem>


          <listitem>
          <para>Select an instrument to start editing it.  This is done by
          left-clicking on the name of the instrument in the instrument list (at
          the left).  You will notice that the name of the instrument in the
          Instrument Editor matches the one that you clicked.</para>
          </listitem>
         
          <listitem>
          <para>After you have your drum kit working the way you want, select

          <menuchoice>
            <guimenuitem>Instruments</guimenuitem>
            <guimenuitem>Save library</guimenuitem>
          </menuchoice>

          .  It will ask you for the name of the kit to save.  If you wish to
          <emphasis>overwrite</emphasis> an existing kit, you will need to type in
          the same name as the kit that you want to replace.</para>
         </listitem>

         <listitem>
          <para>Drumkits are automatically stored in the <filename
          class="directory">data</filename> directory (i.e. <filename
          class="directory">$HOME/.hydrogen/data/drumkits</filename>).</para>
         </listitem>

         <listitem>
          <para>To export a drumkit (for sharing with others), it must first be
          loaded into your Sound Library.  Then, select

          <menuchoice>
            <guimenuitem>Instruments</guimenuitem>
            <guimenuitem>Export library</guimenuitem>
          </menuchoice>

          from the menu.  Select the drum kit that you wish to export, and give it
          a file name to save it to.</para>
          </listitem>
        </itemizedlist>

      </section>
      
      <section id="sect.instrument_editing.parameters">
        <title>Instrument Parameters</title>

        <para>In the instrument editor, click on the
        <guibutton>General</guibutton> button.  Here you can adjust several
        parameters that are apply to the whole instrument (not for each layer).
        
        <figure id="instrumenteditor.general">
        <title>The Instrument editor General view</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/Instrument_General.png" format="PNG" />
          </imageobject>
        </mediaobject>
        </figure>
        
        The parameters that you can adjust are:</para>
        <itemizedlist>
          <listitem>
            <para><emphasis role="bold">Envelope parameters</emphasis>:
            <guibutton>Attack</guibutton>, <guibutton>Decay</guibutton>,
            <guibutton>Sustain</guibutton>, <guibutton>Release</guibutton>.
            (See <xref linkend="def.envelopegenerator"/>)</para>
          </listitem>
          <listitem>
            <para><emphasis role="bold"><guibutton>Gain</guibutton></emphasis>:
            The overall volume of the instrument.</para>
          </listitem>
          <listitem>
            <para><emphasis role="bold"><guibutton>Mute
            Group</guibutton></emphasis>: Which mute group this instrument is a
            member of (see <xref linkend="def.mutegroup"/>).</para>
          </listitem>
          <listitem>
            <para><emphasis role="bold">Filter Parameters</emphasis>:
            <guibutton>Byp</guibutton>ass, <guibutton>Cutoff</guibutton>,
            <guibutton>Resonance</guibutton>.</para>
          </listitem>
          <listitem>
            <para><emphasis role="bold"><guibutton>Random
            Pitch</guibutton></emphasis></para>
          </listitem>
        </itemizedlist>

        <para>It's important that you understand <xref
        linkend="sect.instrument_editing.concepts"/> in order to continue
        on.</para>

        <section id="sect.instrument_editing.envelope_parameters">
          <title>Envelope Parameters</title>

          <para>When the instrument is triggered, its volume is run through an
          ADSR Envelope.  The parameters operate as follows:</para>

          <itemizedlist>
            <listitem>
              <para><emphasis role="bold">Attack</emphasis> &mdash; the amount
              of <emphasis>time</emphasis> that the volume of the sample goes
              from 0 to the full velocity of the note.  If the value is 0, the
              sample will play immediately at full velocity.  If the value is
              1.0, the sample volume will use the maximum time available for the
              attack parameter.
              <footnote id="fn.adsrtimes">
                <para>The attack, decay, and release parameters are all set by
                the number of <emphasis>audio samples</emphasis>.  This means
                that the time changes depending on the sample rate of your sound
                card.  The max time for each of them is 100,000 audio samples
                (typ. 2.27 sec at 44.1 kHz).</para>
              </footnote>
              </para>
            </listitem>
            <listitem>
              <para><emphasis role="bold">Decay</emphasis> &mdash; the amount of
              <emphasis>time</emphasis> for the volume of the sample to go from
              full velocity down to the sustain volume.  If the value is 0, the
              sample will immediately skip from the attack volume to the sustain
              volume.  If the value is 1.0, the sample volume will use the
              maximum time available for the decay parameter.<footnoteref
              linkend="fn.adsrtimes"/></para>
            </listitem>
            <listitem>
              <para><emphasis role="bold">Sustain</emphasis> &mdash; the
              <emphasis>volume</emphasis> to play the note after the decay phase
              is over, and until the note is released.  If set to 0, the note
              will be silent.  If set to 1.0, the note will play at full
              velocity.</para>
            </listitem>
            <listitem>
              <para><emphasis role="bold">Release</emphasis> &mdash; the
              <emphasis>time</emphasis> to fade out the note from the sustain
              volume back down to 0 (silent).  If set to 0, the note will fade
              out in the minimum amount of time (about 5 ms).  If set to 1, it
              will fade out for the maximum time available.<footnoteref
              linkend="fn.adsrtimes"/></para>
            </listitem>
          </itemizedlist>

          <para>If the sample is shorter than the times that you specify, the
          sample will end, regardless of which phase of the ADSR it is in.  If
          the note is sustained, it does <emphasis>not</emphasis> draw out the
          note while you are holding it.  It only holds the gain (volume)
          parameter during that time.</para>

        </section>

        <section id="sect.instrument_editing.gain_and_mute_group">
          <title>Gain and Mute Group</title>

          <para>The gain sets the overall volume for the sample.  This gain is
          applied after the gain that you set for the layer, and before the gain
          that is set for the mixer.  If the Gain is 0, the instrument will be
          silent.  If the gain is 1.0 the volume of the samples will not be
          adjusted (i.e. 0 dB).  If the gain is set higher, the samples will be
          amplified.</para>

          <warning>
            <para>It is very easy to set the <guibutton>Gain</guibutton> too
            high, causing your sample to clip.  Remember to test the gain with
            full-velocity notes.  If you clip your signal here, it will only get
            worse as Hydrogen processes it.</para>
          </warning>

          <para>Hydrogen provides more mute groups than you know what to do with
          (over 256).  A mute group is a grouping of instruments that are
          mutually exclusive &mdash; only one instrument may be playing at any
          time.  If one is playing and another instrument in the group is
          triggered, it will immediately silence (mute) and start playing the
          other instrument.  This is useful, especially, for instruments like
          hi-hats where the open sound and the closed sound are different
          instruments.</para>

          <para>If the mute group is set to <guilabel>Off</guilabel>, then the
          instrument is not part of any mute grouping.  If the mute group is set
          to any number, then that is the group that the instrument is a part
          of.  To set other instruments into the same grouping, set their mute
          group parameter to the same number.  (For example, to group all the
          high-hat instruments, you can set all their mute group parameters to
          1.  To have a snare drum mute group, set their mute group parameters
          to 2.)</para>

        </section>

        <section id="sect.instrument_editing.filter_and_random_pitch">
          <title>Filter and Random Pitch</title>

          <para>The filter is a low-pass resonance filter.  If you don't wish to
          use is, click the <guibutton>BYP</guibutton>ass button so that it's
          red.  If it's not red, then the filter is active.  The cutoff
          parameter adjusts the cutoff frequency for the filter.  The resonance
          parameter adjusts how much to resonate the cutoff frequency.  If the
          resonance is set to 0, then the filter is just a simple low-pass
          filter.</para>

          <note>
            <para>The cutoff frequency of the filter varies with the sample rate
            of your audio card.  The range of the knob (0 to 1.0) is optimized
            for a 48,000 kHz sample rate.</para>
            <!-- NOTE:  I tried to reverse engineer the LPRF in the
                 sampler to calculate what the cutoff frequency is.
                 I think it's *something* kind of like this:

                 f = cutoff * samplerate / 2

                 - OR MAYBE -

                 f = sqrt(cutoff) * samplerate / 2   (or / 4)

                 http://en.wikipedia.org/wiki/Low-pass_filter
                 -gabriel
            -->
          </note>

          <para>The random pitch parameter allows you to randomly vary the pitch
          of the sample every time it is triggered.  The value is set between 0
          and 1.0.  The pitch change is fairly small: &plusmn;2 half-steps
          &times; value.  Using this sparingly can help your sequences to sound
          more like a real drummer.</para>

        </section>
      </section>
      
      
      <section id="sect.instrument_editing.new_instrument">
        <title>Creating an Instrument and Layers</title>

        <para>For each instrument in a drum kit, you can load several samples
        and set different synthesizer parameters.  This section will step you
        through how to create a new instrument and load the samples.</para>

        <para>To begin creating an instrument, select
        <menuchoice>
          <guimenu>Instruments</guimenu>
          <guimenuitem>Add instrument</guimenuitem>
          </menuchoice>.  This will give you a blank
        instrument to start from.</para>

        <para>Now, you need two samples.  Any .WAV or .FLAC file will do.
        Hydrogen provides several in the <filename
        class="directory">data/drumkits</filename> directory.</para>

        <para>In the instrument editor, click on <guibutton>Layers</guibutton>.
        You can layer several samples into the instrument.  Which one is played
        depends on the velocity of the incoming note.  Click <guibutton>Load
        Layer</guibutton> and point the <guimenu>Audio File Browser</guimenu> to
        your sample.  Note that the <guimenu>Audio File Browser</guimenu> will
        allow you to preview the sample before you load it.  It will also allow
        you to load more than one sample at a time.  But for now, only load
        one.</para>

        <para>After you load the sample, you'll see that there is now a
        <guilabel>1</guilabel> at the top, and the topmost rectangle has turned
        light blue.  To load a second sample, click the slot just below it, and
        then click <guibutton>Load Layer</guibutton> to bring in another
        sample.</para>

        <para>After bringing in both samples, you'll probably notice that only
        the <emphasis>first</emphasis> sample is being played whenever you
        trigger the instrument.  This is because you need to set the
        <emphasis>velocity</emphasis> ranges for the layers.  Move your mouse to
        the sides of the light blue rectangles and you see that you get a
        left-right drag cursor.  Now drag the sample to the left or right (like
        a curtain).  You will now see Layer 2 appear.</para>
        
        <figure id="instrumenteditor.layers">
        <title>The Instrument editor Layers view</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/Instrument_Layers.png" format="PNG" />
          </imageobject>
        </mediaobject>
        </figure>

        <para>The velocity setting for the layer is 0-velocity on the left, and
        full velocity on the right.  Set up Layer 1 to sound for soft notes, and
        Layer 2 to sound for hard notes.  (I.e. Layer 1 on the left and Layer 2
        on the right.)</para>

        <para>Now, in the pattern area, set up a simple pattern that plays this
        instrument.  Adjust the velocity settings on each note so that you can
        get the different samples to sound.  Now set the pattern to loop and
        notice how your different samples are getting triggered.  (To learn
        about editing a pattern, see <xref
        linkend="sect.pattern_editor"/>)</para>

        <para>For each layer, you can set the <guibutton>Gain</guibutton> and
        the <guibutton>Pitch</guibutton>.  The pitch also has a
        <guibutton>Fine</guibutton> adjustment.</para>

        <para>Use the <guibutton>Gain</guibutton> adjustment to control how loud
        the sample will play.  This is necessary because it's extremely
        difficult to get a set of samples that all sound at about the same
        volume.  By adjusting here, the samples that were recorded too quietly
        can be turned up to match your loud samples (that had to be turned
        down).</para>

        <warning>
          <para>It is very easy to set the <guibutton>Gain</guibutton> too high,
          causing your sample to clip.  Remember to test the gain with
          full-velocity notes.  If you clip your signal here, it will only get
          worse as Hydrogen processes it.</para>
        </warning>

        <para>The pitch of the sample can be modified with the pitch controls.
        The <guibutton>Pitch</guibutton> knob adjust the pitch in musical
        half-steps.  (So, -12 is down 1 octave).  The pitch on the right adjusts
        the pitch &plusmn;50 cents.  (One half-step is 100 cents.)</para>

        <note>
          <para>The pitch is adjusted by playing the sample back faster or
          slower.  This is called the Doppler Effect.  So, if you have a
          1-second sample that you turn down -12 (1 octave), your sample will
          only last for .5-seconds.  If you do not want this to happen you should
          use rubberband instead (see <xref linkend="sect.layer_editing.section2"/>)</para>
        </note>

        <para>You can hear the sample in a layer by clicking the layer id (just 
        below the 'General' and 'Layers' buttons) and the 'Delete Layer' button 
        will delete the currently selected layer.</para>

      </section>

      <section id="sect.layer_editing">
        <title>Sample Editor</title>
        <para>So far we have created a multilayered Drumkit, set a number of 
        instrument parameters, played with velocity settings and so on.  Now it's 
        time to go one step deeper and edit the samples using one of the newest
        Hydrogen features : the Sample Editor.</para>
        <para>The Sample Editor allows you to tweak and manipulate your samples.
        This is a function that will really speed up the creation of a drumkit since
        you can do the fine-tunning of the sample within Hydrogen. In pre-0.9.5 builds
        the typical workflow would be to prepare your sample in an external sound editor,
        import the sample in Hydrogen, test it, go back to the audio editor, import again, 
        test ...  The sample editor allows you to do most of the sample manipulation 
        within Hydrogen.  This mean less switching between Hydrogen and your audio editor
        and more time to make music !</para>
        <para><emphasis role="bold">NOTE</emphasis> : the changes you make to
        your samples in the Sample Editor are <emphasis role="bold">non-destructive
        </emphasis> and are saved <emphasis role="bold">per song</emphasis>.  
        So the original sample will not be changed,
        and you can reuse the same sample in multiple songs with different Sample Editor
        settings.</para>
        
        <figure id="sample.editor">
        <title>The Sample Editor</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/SampleEditor_V5.png" format="PNG" />
          </imageobject>
        </mediaobject>
        </figure>        
        
        <para>The Sample Editor consists of 3 sections (as indicated in the figure above):</para>
       
        <section id="sect.layer_editing.section1">
        <title>Sample Editor in/out points</title>
        <para>
        In this section you can set the start, stop and loop points for the sample by dragging the 
        the 3 markers :
        <itemizedlist>
          <listitem><para>S-marker (green) : indicates the Start-point (in-point) of the sample.</para></listitem>
          <listitem><para>E-marker (red) : indicates the End-point (out-point) of the sample.</para></listitem>
          <listitem><para>L-marker (blue) : determines the loop-in point of your sample</para></listitem>
        </itemizedlist>
        You can easily move one of the markers by grabbing them close to the
        letter that marks them.  Whenever you grab one of the markers you will see a detail
        view of the position of that marker on the second (smaller) window on the right, making it easy to 
        find the zero-crossings in the sample.  This detail window also has a slider next to
        it that allows you to zoom in and out on the vertical axis. Think of it as a sort of 
        volume 'zoom'.
        </para>
        <para>Underneath these 2 windows you can find (from left>right) : the position of the Start
        marker, the position of the Loop marker, the Loop mode, the number of loops and the
        position of the End marker.  The position of the markers is expressed in number of
        samples from the very beginning of the sample.  These values will change if you drag the markers,
        but you can also fine-tune the marker position by using the up/down arrows of the spinboxes, 
        the up/down keys on your keyboard, or by using your mouse scroll wheel while hovering
        above the spinboxes.</para>
        <para>Apart from the marker positions there are 2 settings that apply to the Sample
        Editor's loop function : loop mode and loop number.  With the loop function you can
        repeat the part of your sample <emphasis>that is in between the Loop- and the 
        End-marker.</emphasis>. The way it is looped is determined by the Loop mode 
        (forward, revers or ping-pong) and the number of times it is looped is determined
        by the Loop number.</para>
        <para>If you want to hear a preview of the tweaking you have done so far, you first need to
        press the 'Apply Changes' button (@ the bottom of section 3) and then the Play button to
        hear the result.</para>
        </section>
        
        <section id="sect.layer_editing.section2">
        <title>Sample Editor rubberband</title>
        <para>This section of the Sample Editor allows you to control the Rubberband settings.
        Rubberband is a tool that can change the tempo of a sample without changing 
        the sample's pitch (and vice versa).</para>
        <para>If you are using Ubuntu you can install rubberband from the Software Center 
        (rubberband-cli).  For other linux distros check your package manager.  For other platforms
        please check <ulink url="http://breakfastquay.com/rubberband/">the rubberband site
        </ulink>.  After installing rubberband you should check if the path to the rubberband cli is 
        configured correctly (see <xref linkend="sect.preferences.general_tab"/>).</para>
        
        <para>If rubberband is installed correctly you will have access to the rubberband 
        settings, and an extra button named 'RUB' will be available in the Main Toolbar,
        right of the BPM LCD display :
        
       <informalfigure id="rubberband_button">
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/MainControls_Rubberband_btn.png" format="PNG" />
          </imageobject>
        </mediaobject>
        </informalfigure>                
        
        </para>
        <para>Back to the rubberband settings : 
        <itemizedlist mark="opencircle">
         <listitem><para>Sample length to beat : when set to 'off' rubberband functionality is disabled. 
         Normally this parameter should be set to the length of the part of the sample between 
         the Start and End marker, expressed in number of beats.</para>
         </listitem>
         <listitem><para>Pitch : this setting allows you to change the pitch of the sample, expressed in 
         semitones,cent.</para>
         </listitem>
         <listitem><para>Crispness : this setting does not affect tempo or pitch, but changes the way
         the sample sounds.</para>
         </listitem>
        </itemizedlist>
        </para>
        <para><emphasis role="bold">Note </emphasis>: If you want Hydrogen to recalculate the sample length on the fly (using rubberband)
        you must enable the 'RUB' button (see figure above).</para>
        
        </section>
        
        
        <section id="sect.layer_editing.section3">
        <title>Sample Editor volume/pan</title>
        <para>In the bottom section of the Sample Editor you can see the end result 
        of the tweaks you have made by pressing the Apply Changes button.  You can
        also change the the Volume and Panorama (Pan) of your sample here.
        This is done by creating 'envelopes' like the 
        ones you find in numerous DAW's for (parameter) automation.  To edit an
        envelope you first need to select 'Volume' or 'Panorama'in the upper right 
        corner of section 3.  The Volume envelope is blue, the pan envelope is yellow.
        Left clicking in the bottom window will ad a node to an envelope, and also 
        allows you to drag an existing node.  Right-clicking a node will delete it. 
        Don't forget to Apply Changes before you play your tweaked sample.</para>
        </section>
        
      </section>
      
      <section id="sect.instrument_editing.tips">
        <title>Tips on Editing Instruments</title>

        <para>With all of the different parameters available to tweak, it can be
        difficult to set up something that sounds nice when you're done.  Here's
        a few tips on setting up an instrument:</para>

        <para><emphasis role="bold">Turn down the gain.</emphasis> Every time
        you have a gain knob (i.e. an amplifier), this is called a
        <emphasis>gain stage</emphasis>.  With every gain stage you have, it's
        easy to overdrive your signal &mdash; which means the signal gets
        distorted by clipping.  In addition, if you have two samples that, by
        themselves, peg your meters &mdash; what do you think happens when you
        combine them?  That's right, you overdrive the signal again.</para>

        <para>If things sound bad and distorted, start by turning down the gain
        setting on the layer... especially if it's larger than 1.0.  Then turn
        down the instrument gain.  Then any gain on a LADSPA effect.  Then the
        fader on the mixer.  Then the master output fader.</para>

        <para><emphasis role="bold">Test samples at full velocity.</emphasis>
        Your sample will be played louder if the velocity is higher.  So, if you
        set everything to sound nice and full with velocity at 0.7, what will
        happen when you get a full velocity of 1.0?  (<emphasis>Hint:
        clipping.</emphasis>)</para>

        <para><emphasis role="bold">Try to use samples that are -6 dB
        max.</emphasis> Visually, this means samples that peak at only
        1/2 of full scale.  Otherwise, turn your layer gain to about
        .5.</para>

        <para><emphasis role="bold">Remove all DC offsets from the
        sample.</emphasis> In a sample editor, there is usually a line down the
        center of your sample's waveform.  This is the zero-line.  The beginning
        of your sample should be on this line.  The end of your sample should
        also be on this line.  However, if your signal is a little above or a
        little below this line, you will hear a click at the beginning and the
        end of your sample whenever it is played.  If your sample editor doesn't
        provide any tools to fix a DC Offset problem, you can eliminate the
        noise by putting a slight fade-in/out at the ends of your sample.</para>

        <para><emphasis role="bold">The ADSR will not be longer than your
        sample.</emphasis> If you have a short sample, it doesn't matter how
        long you set the attack and delay &mdash; the sample will stop playing
        at the end.</para>

        <para><emphasis role="bold">Things change with the sample
        rate.</emphasis> If you have a really nice setup with all your
        parameters painstakenly tweaked... things <emphasis>will</emphasis>
        change if you change the sample rate of your audio card.  Many of
        Hydrogens internal settings and parameters are done based on how many
        samples go by, and not on how many seconds go by.  The sort of things
        that change are: anything time-base (like attack and release) and
        anything frequency based (like the cutoff frequency).</para>

      </section>
    </section>

   
    
    <section id="sect.midi_actions">
      <title>Midi actions</title>
      
      <para>In this section you can find more info about defining MIDI actions 
       and how these can be useful for you.  Before you can work with midi actions
       you should have your Midi devices, drivers and connections configured
       correctly (see <xref linkend="sect.preferences.midi_tab"/>)
      </para>

      <para>Lets take a look at the available actions :
      <informalfigure id="midi_actions">
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/Midi_Actions.png" format="PNG" />
          </imageobject>
        </mediaobject>
        </informalfigure>                

      An Event is an incoming Midi message, and the Action describes what Hydrogen should do 
      whenever that Event is detected.
      </para>
      <para>If you take a look at the Events list you will see that there are 3 types of Events 
      available (as described in the Midi standard): 

      <itemizedlist mark="opencircle">

        <listitem><para>
	        <emphasis role="bold">NOTE </emphasis> : input coming from a regular black/white key of a keyboard or a drumpad
	      </para></listitem>
	    
        <listitem><para>
	        <emphasis role="bold">CC</emphasis> : controller commands coming from faders or rotary controllers
	      </para></listitem>
	    
        <listitem><para>
	        <emphasis role="bold">MMC_x</emphasis> : <ulink url="http://en.wikipedia.org/wiki/MIDI_Machine_Control">
	        machine control events</ulink> coming from play/stop... buttons on a controller
	      </para></listitem>
	    
       </itemizedlist>
       
       The Param. (parameter) value right of the Event is the identifier of the note/button/controller
       that is linked to this Action.  This parameter can be entered manually, or automatically by 
       using the Midi learn function (see <xref linkend="sect.preferences.midi_tab"/>).
       
       <note><para>You can also activate the Midi learn function by Shift-clicking most of the gui elements.  
       A 'Waiting for Midi input...' popup informs you that Hydrogen is now waiting for you to press
       a key or turn/move a controller.
       </para>
       <para>If you Shift-click on a gui element that does not support Midi automation a popup will
       inform you about this.
       </para></note>
       
       </para>
       
       <para>

      Next is a list if the available Actions :

      <itemizedlist mark="opencircle">
      <listitem><para>
	      <emphasis role="bold">PLAY</emphasis> : start playback
	    </para></listitem>
	    
      <listitem><para>
        <emphasis role="bold">PLAY/STOP_TOGGLE</emphasis> : toggles between PLAY and STOP.  Execute this action will 
        start playback, execute it again and playback will stop + the playhead will return
        to the start op the song.
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">PLAY/PAUSE_TOGGLE</emphasis> : toggles between PLAY and PAUSE.  (the playhead will not return
	      to the start of the song, but will stay at its current position)
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">STOP</emphasis> : stop playback and return to the start of the song
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">PAUSE</emphasis> : pause the song
	    </para></listitem>
	    
      <listitem><para>
        <emphasis role="bold">MUTE</emphasis> : mutes the the Master output
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">UNMUTE</emphasis> : unmutes the Master output
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">MUTE_TOGGLE</emphasis> : toggles between MUTE and UNMUTE
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">NEXT_BAR</emphasis> : jumps to the next bar in the song
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">PREVIOUS_BAR</emphasis> : jumps to the previous bar in the song
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">BPM_INCR</emphasis> : increments the tempo of the song
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">BPM_DECR</emphasis> : decrements the tempo of the song
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">BPM_CC_RELATIVE</emphasis> : change the tempo relative to the current tempo, using a controller
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">MASTER_VOLUME_RELATIVE</emphasis> : changes the Master output volume, relative
	      to the current setting (if you are using rotary encoders)
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">MASTER_VOLUME_ABSOLUTE</emphasis> : changes the Master output volume to the 
	      absolute value of the midi control (use with midi fader)
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">STRIP_VOLUME_RELATIVE</emphasis> : see MASTER_VOLUME_RELATIVE, but applies to
	      the channel strip defined in the Action Parameter.
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">STRIP_VOLUME_ABSOLUTE</emphasis> : see MASTER_VOLUME_ABSOLUTE, but applies to
	      the channel strip defined in the Action Parameter.
	    </para></listitem>
	    
      <listitem><para>
        <emphasis role="bold">EFFECTx_LEVEL_RELATIVE</emphasis> : changes the volume level of an effect
	    </para></listitem>
	    
      <listitem><para>
        <emphasis role="bold">SELECT_NEXT_PATTERN</emphasis> : will select the pattern that is defined in the Action Parameter.</para>
        <para>Note that the reference to the pattern is zero-based : pattern1=0, pattern2=1 ...
	    </para></listitem>
	    
      <listitem><para>
        <emphasis role="bold">SELECT_AND_PLAY_NEXT_PATTERN</emphasis> : combines the SELECT_NEXT_PATTERN with PLAY
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">PAN_RELATIVE</emphasis> : will change the panorama setting, relative to the current value
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">PAN_ABSOLUTE</emphasis> : will change the panorama setting to the absolute value that the linked controller sends to Hydrogen
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">BEATCOUNTER</emphasis> : allows you to set
	      the tempo (see <xref linkend="sect.tap_tempo"/>
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">TAP_TEMPO</emphasis> : allows you to set
	      the tempo (see <xref linkend="sect.tap_tempo"/>
	    </para></listitem>
	    
      <listitem><para>
	      <emphasis role="bold">SELECT_INSTRUMENT</emphasis> : selects one of the instruments in the drumkit
	    </para></listitem>
	    
   
      </itemizedlist>
      </para>



    </section>

  </chapter>

  <!--
      ##################
      # THIRD CHAPTER  #
      ##################
  -->

  <chapter id="chap.create_song">
    <title>A new song</title>
    <section id="sect.song_vs_pattern">
      <title>"Song" mode and "Pattern" mode</title>

      <para>This is just a quick-and-dirty walkthrough to Hydrogen. Refer to the
      tutorial for a more detailed overview.</para>

      <para>Hydrogen has 2 main modes: "Pattern" mode and "Song" mode (refer to
      <xref linkend="sect.main_toolbar"/> for the buttons to activate). When
      "Pattern" mode is activated the current pattern is continuously repeated.
      This mode is very well suited to tweak your pattern untill it's just right, since the 
      pattern you are working on is constantly repeated. This way you can immediately 
      hear the changes you have made. In "Song" mode the whole song is played.  
      This is useful when putting together the patterns, to create the structure of the song.</para>
    </section>

    <section id="sect.create_pattern">
      <title>A new pattern</title>

      <para>We'll start from an empty song with an empty pattern, as created by
      default: "pattern" mode should be selected now. It is also possible to
      change name of the pattern. Now let's click on the <quote>Play</quote>
      button and while the pattern is playing let's add notes in the grid of the
      Song Editor (<xref linkend="fig.pattern_editor.2"/>) simply
      left_mouse_clicking on it: adjust grid resolution and BPM speed if
      needed. Remember some constraints of the grid: if you are working with a
      resolution of 16 you can't go back to 8 and remove a 16th note; same thing
      happens if you are working with a resolution of 8 and you try to insert a
      note in the middle of two bars (looking for a 16 bars precision): they
      will be placed on the previous or on the following 8th bar (unless you
      choose <quote>off</quote> from the Grid Resolution LCD, in this case
      you're free to place notes wherever you prefer). <emphasis role="bold">Be
      sure to select the correct pattern in the Song Editor before adding notes
      in the Pattern Editor!</emphasis></para>

      <figure id="fig.pattern_editor.2">
        <title>The Pattern Editor</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/PatternEditor.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>
    </section>

    <section id="sect.create_sequence">
      <title>A new sequence</title>

      <para>Once patterns are created (<xref linkend="fig.insert_notes"/>), we
      can copy/paste/delete them simply dragging with the mouse (activate the
      select mode for the Song Editor and keep pressed left mouse button to
      select those you want to move or copy).</para>

      <figure id="fig.insert_notes">
        <title>Inserting Notes in a Pattern</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/SongEditor.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>

    </section>

    <section id="sect.create_song.adjust_mixer">
      <title>Adjust from the mixer</title>

      <para>Of course we can always use the mixer window, either when creating
      or playing patterns.</para>

      <para>The Mixer frame (<xref linkend="fig.mixer.2"/>) is made of 32
      independent tracks, each of these is binded to an instrument, plus a
      "Master Output" line to adjust general output volume and a "FX" button to
      set effects. Every line features 3 buttons (

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/btn_play_on_mixer.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/btn_solo_on.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/btn_mute_on.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        ), pan adjust (

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/MixerPan.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        ), current maximum peak, volume fader and name of the track. Clicking on

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/btn_solo_on.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        will play the selected instrument, cutting the others. The "Mute"
        button

        <inlinemediaobject>
          <imageobject>
            <imagedata fileref="img/btn_mute_on.png" format="PNG" />
          </imageobject>
        </inlinemediaobject>

        , simply mute <emphasis>that</emphasis> instrument. The maximum peak
        indicates the maximum volume reached from the instrument; the peak must
        be in a range of 0.0 and 1.0 (in <xref linkend="fig.mixer.2"/> you can
        see a few volumes too loud), otherwise it will get distorted producing a
        weird sound (especially with OSS audio driver), in this case it's better
        to set volume down; keep an eye on each vu-meter.
      </para>

      <figure id="fig.mixer.2">
        <title>The Mixer</title>
        <mediaobject>
          <imageobject>
            <imagedata fileref="img/Mixer.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </figure>
    </section>
  </chapter>
  
  
  <chapter id="chap.shortcuts">
    <title>Shortcut lists</title>
    
      <itemizedlist mark="opencircle">
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + N]</emphasis> = New Project
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + O]</emphasis> = Open File
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + D]</emphasis> = Open Demo
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + S]</emphasis> = Save File
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + SHIFT + S]</emphasis> = Save File as
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + P]</emphasis> = Export Pattern as
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + M]</emphasis> = Export MIDI file
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + E]</emphasis> = Export Song
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + Q]</emphasis> = Quit Hydrogen
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[ALT + D]</emphasis> = Show Director window
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[ALT + M]</emphasis> = Show Mixer window
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[ALT + I]</emphasis> = Show Instrument rack
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[ALT + P]</emphasis> = Show Preferences window
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[CTRL + ?]</emphasis> = Show manual
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[Backspace]</emphasis> = Restart
            song or pattern from the beginning
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[spacebar]</emphasis> = Play / Pause
          </para>
        </listitem>
        <listitem>
          <para>
            <emphasis role="bold">[,]</emphasis> (comma key) = Tap tempo (beatcounter)
          </para>
        </listitem>
      </itemizedlist>    
    
  </chapter>
  
  <glossary id="glossary">
    <title>Glossary</title>

    <para>This is a glossary of general terms encountered when using Hydrogen,
    synthesizers, drums, or samplers.  The definitions in the text are
    simplified, but the definitions here are more general and have more
    explanation.  For example, the text of the manual would have you believe
    that an ADSR is the only kind of envelope generator, and could only ever
    control the volume.  While it's simple for new users, it's not quite
    right.</para>

    <!--  ...  -->

    <!--   A   -->

    <glossentry id="def.adsr">
      <glossterm>ADSR</glossterm>
      <glossdef>
        <para>A type of envelope generator that allows you to control the
        <link linkend="def.attack">Attack</link>,
        <link linkend="def.decay">Decay</link>,
        <link linkend="def.sustain">Sustain</link>, and
        <link linkend="def.release">Release</link> parameters.
        Generally, the
        parameters are proportional to
        the <link linkend="def.velocity">velocity</link>.</para>

        <para>In Hydrogen, the ADSR envelope generator only controls the volume
        (attenuation).</para>

        <para>Read more about this in the Wikipedia
        Article <ulink url="http://en.wikipedia.org/wiki/ADSR_envelope">ADSR
        Envelope</ulink></para>

        <glossseealso otherterm="def.envelopegenerator"/>
        <glossseealso otherterm="def.attack"/>
        <glossseealso otherterm="def.decay"/>
        <glossseealso otherterm="def.sustain"/>
        <glossseealso otherterm="def.release"/>
      </glossdef>
    </glossentry>

    <glossentry id="def.attack">
      <glossterm>Attack</glossterm>
      <glossdef>
        <para>This is the first phase of an ADSR envelope, and is the amount
        of <emphasis>time</emphasis> to turn the parameter up from
        0 to full velocity after triggering the note.</para>

        <glossseealso otherterm="def.adsr"/>
      </glossdef>
    </glossentry>

    <glossentry id="def.attenuation">
      <glossterm>Attenuation</glossterm>
      <glossdef>
        <para>In filters and mixers, this the amount that a signal is reduced
        (volume).</para>

        <glossseealso otherterm="def.rolloff"/>
      </glossdef>
    </glossentry>

    <!--   B   -->

    <glossentry id="def.bandpassfilter">
      <glossterm>Band-Pass Filter</glossterm>
      <glossdef>
        <para>A filter that preserves a certain band of frequencies, and
        attenuates (silences) all others.  This is often done by combining a
        high-pass and a low-pass filter.</para>

        <glossseealso otherterm="def.filter"/>
        <glossseealso otherterm="def.highpassfilter"/>
        <glossseealso otherterm="def.lowpassfilter"/>
      </glossdef>
    </glossentry>

    <!--   C   -->

    <glossentry id="def.clipping">
      <glossterm>Clipping</glossterm>
      <glossdef>
        <para>A phenomenon that happens to a signal when the signal is too large
        for whatever is receiving it.  The peaks of the signal (which are
        normally smooth curves) get cut off straight at the max volume
        (clipped).  This distorts the sound and is usually undesirable.</para>

        <para>An example of clipping is when you play music louder than your
        speaker can handle.  Parts of the music sound harsh and fuzzy.</para>
      </glossdef>
    </glossentry>

    <glossentry id="def.cutoff">
      <glossterm>Cutoff Frequency</glossterm>
      <glossdef>
        <para>On high-pass and low-pass filters, this is the frequency that
        divides between those that pass, and those that are attenuated
        (silenced).  In a high-pass resonance filter, or a low-pass resonance
        filter, the cutoff is also the frequency zone that gets boosted.</para>

        <para>For example, if you have a low-pass filter and you set the cutoff
        frequency high (i.e. 20kHz)... the filter will not affect the sound.
        All the audible frequencies will pass through undisturbed.  As you lower
        the cutoff frequency to something like 40 Hz (the low string on a bass
        guitar), it sounds like someone is putting a blanket over the speaker.
        The higher frequencies are being attenuated above 30 Hz.</para>

        <glossseealso otherterm="def.filter"/>
        <glossseealso otherterm="def.highpassfilter"/>
        <glossseealso otherterm="def.lowpassfilter"/>
        <glossseealso otherterm="def.resonancefilter"/>
      </glossdef>
    </glossentry>

    <!--   D   -->

    <glossentry id="def.decay">
      <glossterm>Decay</glossterm>
      <glossdef>
        <para>After reaching full velocity from the attack, this is the amount
        of <emphasis>time</emphasis> to turn the parameter down from full
        velocity to the sustain level.</para>

        <glossseealso otherterm="def.adsr"/>
      </glossdef>
    </glossentry>

    <!--   E   -->

    <glossentry id="def.envelopegenerator">
      <glossterm>Envelope Generator</glossterm>
      <glossdef>
        <para>A way to control (change) a parameter over time as a response to
        triggering, holding, and releasing a note.</para>

        <!-- TRANSLATORS: This is a witty English expression that means, "Did I
             just say something really complicated, and you quit paying attention?
             I'll try it again a little more informally." -->
        <para>Did your eyes just glaze over? Let's try again:</para>

        <para>Imagine that you're playing a note on the keyboard and you have
        your other hand on a knob (volume, filter cutoff, etc.).  As you play
        the note, you twist the knob (often up, then down... or down, then up).
        You do the same thing on each note.  That's what an envelope generator
        does.  See also <link linkend="def.adsr">ADSR</link></para>
      </glossdef>
    </glossentry>

    <!--   F   -->

    <glossentry id="def.fader">
      <glossterm>Fader</glossterm>
      <glossdef>
        <para>A slider control used to adjust the attenuation (volume) in a
        mixer.  Faders always have an "audio" taper, which means that the
        attenuation amount changes on an exponential scale.</para>
      </glossdef>
    </glossentry>

    <glossentry id="def.filter">
      <glossterm>Filter</glossterm>
      <glossdef>
        <para>A device that changes a sound by attenuating specific frequencies.
        A tone knob is an example of a simple, low-pass filter.</para>

        <glossseealso otherterm="def.bandpassfilter"/>
        <glossseealso otherterm="def.highpassfilter"/>
        <glossseealso otherterm="def.lowpassfilter"/>
        <glossseealso otherterm="def.resonancefilter"/>
      </glossdef>
    </glossentry>

    <!--   G   -->

    <glossentry id="def.gain">
      <glossterm>Gain</glossterm>
      <glossdef>
        <para>In an amplifier, this adjust how much (or how little) a signal is
        amplified (volume).  A higher gain value is a louder signal.</para>
      </glossdef>
    </glossentry>

    <!--   H   -->

    <glossentry id="def.highpassfilter">
      <glossterm>High-Pass Filter</glossterm>
      <glossdef>
        <para>A filter that attenuates (silences) low frequencies, but allows
        high frequencies to pass through.</para>

        <glossseealso otherterm="def.filter"/>
        <glossseealso otherterm="def.cutoff"/>
      </glossdef>
    </glossentry>

    <!--   I   -->

    <glossentry id="def.instrument">
      <glossterm>Instrument</glossterm>
      <glossdef>
        <para>In Hydrogen, an instrument is a single noise-maker (like a bass
        drum kick, or a tom).</para>
      </glossdef>
    </glossentry>
    <!--   J   -->

    <!--   K   -->

    <!--   L   -->

    <glossentry id="def.layer">
      <glossterm>Layer</glossterm>
      <glossdef>
        <para>In an instrument you can load several different samples (each one
        called a <emphasis role="bold">layer</emphasis>), and have a different
        sample play depending on the velocity of the note.  Only one sample at a
        time will play.</para>

        <para>Suppose you have a sample of a floor tom being struck softly.  If
        you simply play the sample louder &mdash; it will
        <emphasis>not</emphasis> sound the same as a real tom that has been
        struck very hard.  If you wish to mimic this in your instrument, you can
        load one sample for soft playing, and a different sample for loud
        playing.</para>

        <glossseealso otherterm="def.instrument"/>
      </glossdef>
    </glossentry>

    <glossentry id="def.lowpassfilter">
      <glossterm>Low-Pass Filter</glossterm>
      <glossdef>
        <para>A filter that attenuates (silences) high frequencies, but allows
        low frequencies to pass through.</para>

        <glossseealso otherterm="def.filter"/>
        <glossseealso otherterm="def.cutoff"/>
      </glossdef>
    </glossentry>

    <!--   M   -->

    <glossentry id="def.mute">
      <glossterm>Mute</glossterm>
      <glossdef>
        <para>To make no noise.  A setting on an instrument that prevents any
        audio output.</para>
      </glossdef>
    </glossentry>

    <glossentry id="def.mutegroup">
      <glossterm>Mute Group</glossterm>
      <glossdef>
        <para>A group of instruments (samples) that should mute (stop playing)
        immediately after another instrument in the group is triggered.</para>

        <para>This is typically used in hi-hats, where there's a different
        instrument (sample) for when the hi-hat is open or closed.  With a real
        hi-hat, the sound of the open hi-hat will stop as soon as you close it.
        However, if you use two samples &mdash; the open sound will continue
        even after you have triggered the closed sound.  By placing both
        instruments in the same mute group (group #1, for example)... triggering
        closed sound will immediately stop the open sound (and vice
        versa).</para>
      </glossdef>
    </glossentry>

    <!--   N   -->

    <!--   O   -->

    <glossentry id="def.octave">
      <glossterm>Octave</glossterm>
      <glossdef>
        <para>A span of frequencies where the top-most frequency is exactly
        twice the frequency of the bottom frequency.</para>

        <para>For example, the range 20 Hz to 40 Hz is an octave.  So is 120 Hz
        to 240 Hz, and 575 Hz to 1150 Hz.  While the frequency differences are
        very different (20 Hz, 120 Hz, and 575 Hz, respectively), to the human
        ear they <emphasis>sound</emphasis> like the same distance.</para>
      </glossdef>
    </glossentry>

    <!--   P   -->

    <!--   Q   -->

    <!--   R   -->

    <glossentry id="def.release">
      <glossterm>Release</glossterm>
      <glossdef>
        <para>After the note is released, this is the amount of
        <emphasis>time</emphasis> to reduce the parameter from the sustain level
        to 0.</para>

        <glossseealso otherterm="def.adsr"/>
      </glossdef>
    </glossentry>

    <glossentry id="def.resonance">
      <glossterm>Resonance</glossterm>
      <glossdef>
        <para>When referring to a resonance filter, this is the parameter that
        determines how much of a boost (gain) to give the frequencies at the
        cutoff.</para>

        <glossseealso otherterm="def.resonancefilter"/>
      </glossdef>
    </glossentry>

    <glossentry id="def.resonancefilter">
      <glossterm>Resonance Filter</glossterm>
      <glossdef>
        <para>A filter that gives a large boost to a very narrow range of
        frequencies.  Typically it will be part of a high-pass or a low-pass
        filter, where the boosted frequencies are centered on the cut-off
        frequency.</para>

        <glossseealso otherterm="def.filter"/>
        <glossseealso otherterm="def.cutoff"/>
        <glossseealso otherterm="def.resonance"/>
      </glossdef>
    </glossentry>

    <glossentry id="def.rolloff">
      <glossterm>Roll-off</glossterm>
      <glossdef>
        <para>This is the amount that frequencies are attenuated (suppressed) as
        the frequency changes (typically measured in dB/octave).</para>

        <para>For example, in a low-pass filter the frequencies below the cutoff
        frequency are not attenuated (they pass-through with the same volume).
        Same with the cutoff frequency.  As you go above the cutoff frequency,
        the frequencies that are near the cutoff frequency are not attenuated
        very much at all.  However, the frequencies that are much higher than
        the cutoff are attenuated (suppressed) a lot.  This is usually
        approximated by a straight line (on a log scale) and measured in in dB
        of attenuation per octave of frequency.</para>

        <glossseealso otherterm="def.attenuation"/>
        <glossseealso otherterm="def.filter"/>
      </glossdef>
    </glossentry>

    <!--   S   -->

    <glossentry id="def.sample">
      <glossterm>Sample</glossterm>
      <glossdef>
        <para>A short recording of a sound, typically between .1 and 3.0 seconds
        long.</para>
      </glossdef>
    </glossentry>

    <glossentry id="def.sustain">
      <glossterm>Sustain</glossterm>
      <glossdef>
        <para>The <emphasis>level</emphasis> to hold the parameter after
        finishing the decay time.  This level will be maintained until the not
        is released.</para>
        <glossseealso otherterm="def.adsr"/>
      </glossdef>
    </glossentry>

    <!--   T   -->

    <!--   U   -->

    <!--   V   -->

    <glossentry id="def.velocity">
      <glossterm>Velocity</glossterm>
      <glossdef>
        <para>How hard you hit a note.</para>

        <para>MIDI devices are required to send this information along with the
        note.  Synthesizers use this information to adjust several parameters on
        the sample (typically the volume).  In Hydrogen, it is only used to
        adjust how loud the sample is played back.</para>
      </glossdef>
    </glossentry>

    <!--   W   -->

    <!--   X   -->

    <!--   Y   -->

    <!--   Z   -->

  </glossary>
</book>
