# Hydrogen Manual

### Antonio Piraino

### Alessandro Cominu

### Thijs Van Severen

### Sebastian Moors

Abstract

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.

List of Figures

1.1. The General Tab
1.2. The Audio System Tab
1.3. The MIDI System Tab
1.4. The Appearance Tab
1.5. The Audio Engine tab
2.1. The Main UI in Single Pane mode
2.2. The Main UI in Tabbed mode
2.3. The Main Toolbar
2.4. The Song Editor
2.5. The Pattern Options menu
2.6. Export a song
2.7. Pattern Editor in Drum mode
2.8. Pattern Editor Controls
2.9. Pattern Editor in Piano mode
2.10. The Mixer
2.11. Select an Effect
2.12. Soundlibrary/Drumkit hierarchy
2.13. The Soundlibrary
2.14. Import Drumkit
2.15. The Instrument editor General view
2.16. The Instrument editor Layers view
2.17. The Sample Editor
3.1. The Pattern Editor
3.2. Inserting Notes in a Pattern
3.3. The Mixer

# Chapter 1. Introduction

## 1. Download

You can download Hydrogen from http://www.hydrogen-music.org. 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)

If you want to compile Hydrogen yourself (see Section 2), you can download the latest source files directly from our git repository with:

    $ git clone git://github.com/hydrogen-music/hydrogen.git

A certain release can be fetched with:

    $ git checkout tags/0.9.5

Compiling Hydrogen depends on the following libraries:

- qt (>= 4.0) at http://www.trolltech.com

- libsndfile at http://www.mega-nerd.com/libsndfile/

- ALSA (>= 1.x) at http://www.alsa-project.org (only if you wish to use ALSA as audio driver)

- Jack Audio Connection Kit (>= 0.80) at http://jackaudio.org/ (only if you wish to use Jack as audio driver)

- PortAudio at http://www.portaudio.com (only if you wish to use PortAudio as audio driver)

- Flac at http://flac.sf.net (only if you wish to use flac samples)

- ladspa at http://www.ladspa.org (only if you wish to use ladspa effects)

- liblrdf at http://sf.net/projects/lrdf (only if you wish to use lrdf to categorise effects)

- lash at http://lash.nongnu.org (only if you wish to use lash)

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

            $ apt-get install libqt4-dev g++ libasound2-dev \
            libjack-dev liblrdf0-dev libflac++-dev libtar-dev libsndfile1-dev \
            liblash-dev libportaudio-dev libportmidi-dev

## 2. Build

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).

### 2.1. Using scons (pre-0.9.6)

Decompress the tarball or go to the directory where the git repository was cloned:

              $ cd hydrogen-*
              $ scons
              $ su -c "scons install"

Before compiling, check for additional options with:

              $ scons --help

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

              $ scons portaudio=1

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

              $ scons debug=1

To clean up compiled code:

              $ scons -c

### 2.2. Using cmake (0.9.6 and up)

Compiling with cmake can be done easily by using the build.sh script. Go to the directory where the git repository was cloned and run the build.sh script without any arguments to display the help :

               $ ./build.sh

The help is now displayed (and is self-explanatory) :

                 r[m]     => all built, temp and cache files
                 c[lean]  => remove cache files
                 m[ake]   => launch the build process
                 d[oc]    => build html documentation
                 g[raph]  => draw a dependecies graph
                 h[elp]   => show the build options
                 x|exec   => execute hydrogen
                 t[ests]  => execute tests
                 p[kg]    => build source package
              ex: ./build.sh r m pkg x

To build Hydrogen run the build script with the 'm' option :

               $ ./build.sh m

## 3. Preferences

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 -> preferences).

### 3.1. The General tab

On the "General" tab (Figure 1.1) 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.

If you want to use Lash for session management you should enable it here so Hydrogen allows interaction with Lash. If jou are using Jack Session for session management you have to option to let Hydrogen automatically save the song file in the Jack Session Directory.

The Beat Counter drift compensation and start offset allow you to compensate for system latency when you are using the Beat Counter function (see Section 4.1)

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 Section 9.5.2) you need to enter the path where rubberband is installed on you system here.

Figure 1.1. The General Tab

### 3.2. The Audio System tab

From the "Audio System" tab (Figure 1.2) it is possible to modify the audio driver being used (OSS, Jack, ALSA, PortAudio, PulseAudio, CoreAudio) 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).

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.

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.

The "Interpolate resampling" parameter allows you to select your preferred interpolation methode.

Figure 1.2. The Audio System Tab

The following drivers are available:

- jackd: The Jack driver is a professional audio server which permits very low lag and exchanges with other audio software. We strongly recommend using this driver to have the best out of Hydrogen. JACK server will start automatically if not already running.

- ALSA: the widely adopted Linux standard audio drivers

- OSS: 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.

- PortAudio: an open-source multi platform audio driver

- CoreAudio: a driver for Mac OS X (experimental)

- PulseAudio: a driver for the cross platform PulseAudio sound server.

### 3.3. The Midi System tab

The "Midi System" tab (Figure 1.3) contains all MIDI settings. Here you can choose the MIDI driver (ALSA, PortMidi, CoreMidi or JackMidi) input, and channel(s) that Hydrogen should respond to.

### Note

If you want to use Jack Session management you should select the JackMidi driver. Jack Session management can only (re)store Jack midi connections.

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 event-action binding 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.

See Section 10 for more info on Midi actions.

Figure 1.3. The MIDI System Tab

### 3.4. The Appearance tab

The "Appearance" tab (Figure 1.4) let's you modify Hydrogen look and feel (font settings and interface style). On this tab you can also change the VU meters fall-off speed and switch between Single pane and Tabbed interface mode (see Section 2)

Figure 1.4. The Appearance Tab

### 3.5. The Audio Engine tab (debug only)

The "Audio Engine" tab (Figure 1.5) 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).

Note that the Audio Engine tab is only available if Hydrogen was complied with debug support.

Figure 1.5. The Audio Engine tab

# Chapter 2. Using Hydrogen

## 1. Used Filetypes

Before working with Hydrogen, please familiarize with these filetypes:

- *.h2pattern: XML file describing a single pattern. Patterns are group of beats and are managed in the pattern editor.

- *.h2song: XML file describing the whole song (or sequence). Songs are group of patterns with their properties and are manager using the song editor

- *.h2playlist: XML file describing a playlist. A Playlist is a (ordered) group of songs.

- *.h2drumkit: a compressed and archived folder containing all sound samples composing a drumkit and a description XML file. Drumkits are basically group of sound samples.

## 2. The main User Interface : an overview

The Main UI comes in 2 flavors : the (classic) Single Pane mode (ideal for large- and medium size screens), and the Tabbed mode (optimized for netbook screen sizes).

Below you can see the main UI split up in 5 parts : the Main Menu, Main Toolbar, Song Editor, Pattern Editor and the Instrument and Sound Library Editor. These sections will be explained in detail further down in this manual.

Figure 2.1. The Main UI in Single Pane mode

Figure 2.2. The Main UI in Tabbed mode

## 3. Main menu

Projects: this menu offers file related functions.

- New - Create a new song

- Show Info - Set general properties of the song such as name, author, license and generic notes

- Open - Open a song

- Open Demo - Open a demo song (demo songs are stored in $INSTALLPATH/share/hydrogen/data/demo_songs)

- Open recent - Open a menu showing last used songs

- Save - Save changes to current song

- Save as - Save current song specifying a name (default path: $HOME/.hydrogen/data/songs)

- Open pattern - Open a saved pattern belonging to the current drumkit

- Export pattern as - Saves a pattern. It will be stored in $HOME/.hydrogen/data/patterns/drumkit_name

- Export MIDI file - Export current song in MIDI format

- Export song - Export current song in WAV format (see Section 5.4)

- Quit - Quit Hydrogen

Undo: Undo/Redo functions.

- Undo - Lets you undo your last action

- Redo - Lets you redo the last undone action

- Command History - Gives you an overview of your previous actions

Instruments: this menu offers instruments and drumkit (sound libraries) functions.

- Add instrument - Add a new instrument to your current drumkit

- Clear all - Delete all instruments from the current drumkit

- Save library - Saves all instruments settings (and their sound samples) in $HOME/.hydrogen/data/library_name

- Export library - Compress all instruments samples and settings in a drumkit in $HOME/.hydrogen/data/library_name

- Import library - 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 NOT RSS compliant (see Hydrogen website for an example). To load another drumkit in your current working session of Hydrogen, read Section 8.

Tools: opens the mixer, the director, the playlist editor, the instrument rack and the general preferences window.

- Playlist editor - A tool to manage playlists.

- Director - Open the director window.

- Mixer - Open the mixer window.

- Instrument rack - Open the instrument rack panel.

- Preferences - Open the main preferences window. Read Section 3 on how to configure Hydrogen.

Debug: tools mainly for debugging and monitoring Hydrogen (only available when compiled with debug support !).

- Show audio engine info - Open a monitor with various stats

- debug action - Insert debug commands.

- Print Objects - Print on stdout current objects map.

Info

- User manual - Open a window with this manual :)

- About - The usual window with license information, acknowledgements, etc.

## 4. The main toolbar

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

- Pilot the song using the start, stop, pause, etc. buttons

- 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.

- 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 Section 4.1)

- Manually set BPM

- Manage JACK transport

- Open the mixer and the instrument rack panels

Figure 2.3. The Main Toolbar

- Main controls to start [Hotkey = Spacebar], stop, record, fast forward, rewind, loop a song or a pattern.

- 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 Section 5). When Pattern mode is selected Hydrogen will play the pattern that is currently selected, and thus displayed in the Pattern Editor (see Section 6).

- Set measure type and Beat Counter (see Section 4.1).

- Set speed of playing (range: 30-400 bpm) [Hotkey = mouse wheel] and button to enable/disable metronome

- 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.

- 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). Note that this applet is only available if Jack Audio Driver is selected, NOT when the Audio driver is set to 'Auto'.

- The last section gives you quick access to the Mixer window and the Instrument Rack. The LCD screen displays what Hydrogen is up to.

### 4.1. Tap Tempo and BeatCounter

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 , (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.

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 (BC) between Song/Pattern mode selector and the BPM-widget, or, simply press the comma key. (,).

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 R, 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').

The button in the bottom right-hand controls the auto-start feature, and it toggles between S and P. When it shows P for (Play), 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 S (for Set BPM), the auto-start is disabled.

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 P). Count off the band 1-2-3-4 (while tapping the comma key) — and everyone starts on 1.

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).

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 slave, 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).

Some of the settings to adjust the BeatCounter's latency compensation, are located on the General tab of the Preferences Dialog (see Section 3.1 ). Here you will finde two spinboxes:

- Beat counter drift compensation in 1/10ms — adjust to compensate for latency between the keyboard and the program.

- Beat counter start offset in ms — adjust the time between the BeatCounter's last input stroke and when the song starts playing (if auto-start is activated).

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.

## 5. Song Editor

The "Song Editor" (Figure 2.4) 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 2.4. The Song Editor

### 5.1. Main controls

- Completely delete all patterns (asks for confirmation!).

- Create a new pattern (and asks for a name).

- Move currently selected pattern up or down.

  Note that you can also just drag-and-drop a pattern up/down in the pattern list.

- Enable Select Mode. This mode allows you to select a part of the song and delete/move/copy it.

  Once you have selected a part of your song you can delete it by pressing the Delete button. You can move it by simply dragging your selection to another location, and you can also copy you selection by Ctrl-dragging it to a new location.

- Enable Draw Mode. This mode allows you to create a song by drawing blocks on the song canvas.

  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.

- set Hydrogen to "Single pattern mode" or to "Stacked pattern mode".

  For more info on this see the SELECT_NEXT_PATTERN midi action in Section 10.

### 5.2. Tempo markers and song Tags

This section describes how you can define tempo changes and how you can add tags to your song.

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.

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.

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.

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.

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.

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.

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 :

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.

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

### 5.3. Patterns options

Right-clicking the name of a pattern will show you a menu where you can change a number of things :

Figure 2.5. The Pattern Options menu

- Edit : will open the selected pattern in the Pattern Editor.

- Copy : will copy the selected pattern to a new pattern in your song.

  Note that patterns with the same name are not allowed.

- Delete : will completely remove the selected pattern from the song.

- 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.

- Properties : will open a window where you can change the name of the pattern and also assign it to a certain category.

  Note that you can choose one of the existing categories from the dropdown list, but you can also enter a new category name in the Pattern Category box.

- Load Pattern : will open the selected pattern in the Pattern Editor.

- Save Pattern : will open the selected pattern in the Pattern Editor.

- Virtual Pattern : will open the selected pattern in the Pattern Editor.

  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.

  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.

  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.

### 5.4. Exporting your song

Once your song is finished you can export it to an audio file. This audio file can then be played on your favorite media player or imported in an other audio application.

To do this, go to Project - "Export song" and the following window will pop up:

Figure 2.6. Export a song

To export a song you need to do 3 things:

- Enter a name and location for the export file in the 'Export filename' field

- Select one of the available templates (e.g. CD, DAT ...) according to your needs: each template has a specific bitrate, resolution, and audio format (WAV, AIFF, FLAC or OGG). You can tweak the selected template using the samplerate/sampledepth dropdown boxes underneath the template field.

- Export mode: 'Export to a single track' will export 1 stereo downmix of your song (= the master output). 'Export to separate tracks' will create files for each instrument/track. 'Both' will create a stereo downmix + audio files for all individual instruments.

Once all these settings have been configured all you need to do is click the 'Export' button and Hydrogen will generate the requested files.

### Note

If you have tempo changes in your song (see Section 5.2) these tempo changes will not be exported. This is a know limitation of the current versions (including 0.9.6)

As a workaround you can record the output of Hydrogen with an audio recording application (like Ardour, Qtractor ...)

## 6. Pattern Editor

The "Pattern Editor" allows you to create or modify the selected pattern by adding/removing notes and tunning 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)

### Note

- If you are editing a pattern in Single Pattern Mode you will always hear the pattern you are editing when you press play.

- If you are working in Stacked Pattern Mode you will hear the active pattern(s), not necessarily the pattern you are currently editing. (The active patterns have a small triangle next to the pattern name in the Song Editor).

First let's take a look at the (classic) 'Drum' mode :

Figure 2.7. Pattern Editor in Drum mode

### 6.1. Pattern Editor Controls

The top part of the pattern editor contains a number of controls :

Figure 2.8. Pattern Editor Controls

From left to right :

- SIZE : lets you choose the size of the pattern (the number of bars)

- RES : this is the current grid resolution (4 through 64)

  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.

- HEAR : when enabled Hydrogen will play the sample as it's being added to the pattern.

- QUANT : enables/disables quantization. When enabled the beats inserted will automatically respect the grid resolution currently applied.

- Drumset / Instrument : 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.

- Note Length / Note off : these are 2 different ways to define the duration of a note. See Section 6.3 for usage.

- Drum/Piano : switch Pattern Editor between Drum and Piano mode. (see below)

### 6.2. Pattern Editor Drumkit

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.

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

- Clear notes : to remove all notes for this instrument in this pattern.

- Fill notes : 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 that are allowed by the grid setting. So be careful not to mix up the 'musical' 1/2-note and the 'fill 1/2' note.

- Randomize velocity : 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 “hard” on that instrument when played.

- Delete Instrument : well, deletes the instrument ;-)

The small red and green buttons right of the instrument names are the “mute” (red) and “solo” (green) buttons.

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 will however, have an impact on the MIDI note mapping : in the table below you can find the link between the instrument position, the MIDI note and the qwerty keyboard keys.

Important Notes :

The name of the instrument depends on the drumkit that is loaded. This list below refers to the GMkit that is loaded by default.

Try to follow the GM midi standard as accurately as possible. This will ensure that switching between drumkits goes smoothly. You are of course free to place your instruments anywhere in your drumkit, and sometimes it isn't even possible to follow the GM standard, but it makes life a lot easier if you do.

Keep in mind that it is the position of the instrument (within the loaded drumkit) that is linked to a MIDI-note/keyboard-key and not the name of the instrument.

Here's a quick reference of the above bindings for your convenience.

### 6.3. Pattern Editor Sequence area

This is where it all happens, this is where you can make music :-)

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.

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.

(Figure above, from left>right : a 'normal' note, a note in 'note length' mode, a note in 'note off' mode)

So far we have only used the mouse to create a pattern, but you can also record your beats by clicking the Record button (see Section 3) 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 Chapter 3 for a basic walk-through of how the pattern editor works)

### 6.4. Pattern Editor Note Properties

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 :

- Velocity : how hard the note is played (the volume of the note)

  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.

- Pan : with this parameter you can define the stereo image of the note (how loud it will be in the left/right output)

- Lead/Lag : 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 ;-)

- Notekey : if you select this note parameter the area where you can modify the parameter will change into a 'piano keyboard'

  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.

### 6.5. Pattern Editor Piano mode

Drum mode (see Figure 2.7) 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.

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.

Figure 2.9. Pattern Editor in Piano mode

## 7. Mixer

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.

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 2.10. The Mixer

### 7.1. Instrument channel strips

From top to bottom : the 2 top elements on the strip are a 'play' button / 'trig' led combination. ( ) 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.

Just below you can find the Mute and Solo buttons and the Pan(orama) knob. Note that the Mute and Solo states are also reflected in the Song editor.

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.

Just below that you can find an LCD peak-value display, and finally the volume fader and VU meter for that instrument.

IMPORTANT NOTE : 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 !

### 7.2. FX rack and LADSPA plugins

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 ? ;-)

There are dozens of plugins available for download from various sources :

- SWH-Plugins available at http://plugin.org.uk.

  (Note : if you want to compile these plugins you need the FFTW tarball from http://www.fftw.org)

- CMT available at http://www.ladspa.org.

- TAP available at http://tap-plugins.sf.net.

- Calf plugins http://calf.sourceforge.net/.

- ....

### Plugins Kill

A badly designed LADSPA plugin 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.

Once you have installed some plugins you can select one by clicking the button. (if you do not see the FX rack, make sure that the button (in the Master section) is enabled)

Now the FX selector window will pop up :

Figure 2.11. Select an Effect

Once you have selected a plugin you will immediately have access to its parameters:

You can select another plugin by clicking the 'Select FX' button. If you quickly want to enable/disable the effect click the 'Deactivate' button (or the Bypass ( ) button in the FX rack). This can be handy for a quick A/B comparison.

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.

### 7.3. Master section

The Master section contains the Master volume fader with VU meters and three global Humanize settings for Velocity, Timing and Swing (in order to add a 'human feel' to the song):

- Velocity : adds a certain randomness to the note velocity. The higher you turn this knob, the more the velocity will be randomized.

- Timing : adds a certain randomness to the note timing (lead/lag). The higher you turn this knob, the more the timing will be randomized.

- Swing : this knob will add a certain amount of swing to the song.

Note that Hydrogen can also be switched to 'per instrument output' mode (see Section 3.2), 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.

On the bottom-right of the Master section the 'FX' button will show/hide the FX rack, and the 'Peak' button will enable/disable the VU meters.

### Note

The VU meter fall off speed can be configured in the preferences window (see Section 3.4)

## 8. Sound Library (Drumkit/Pattern/Song Manager)

First of all a little history on the Sound library and Drumkits. Hydrogen began as a dedicated drum machine but has evolved into a versatile sound synthesizer/sequencer that is capable of generating and manipulating all sorts of sounds. Hence the original "Drumkit" terminology is slightly misleading. You can load any kind of 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 Section 6.5).

In this manual (and in other documentation) "Drumkit" and "Soundlibrary" frequently mean the same thing, but not always. The diagram below shows the actual relation between the Soundlibrary and Drumkits:

Figure 2.12. Soundlibrary/Drumkit hierarchy

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).

This said. let's take a look at the Soundlibrary interface and see what it can do for you:

The Sound Library saves you time in managing your drum kits, favourite patterns, and favourite songs. When making new songs and new drum kits, it allows you to reuse and mix the instruments and patterns from other kits and songs.

Figure 2.13. The Soundlibrary

### 8.1. System Drumkits

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 `/usr/share/hydrogen/data/drumkits`, or possibly `/usr/local/share/hydrogen/data/drumkits`. These kits are available to all users on the system, and users are usually not able to add to them.

To load a drumkit from here, right-click the drumkit and select Load. This will replace your current drumkit with the one that you selected. To load a single instrument from that kit, left-click the plus 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.

### 8.2. (Adding) User Drumkits

These are your own drum kits that you can manage yourself. They are usually stored in `$HOME/.hydrogen/data/drumkits`. When you are creating a new drumkit, you can save it here by selecting Instruments → Save library.

You can import existing drumkits from other users via Instruments → Import library. 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 2.14. Import Drumkit

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

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.

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).

Even if the kit is CC licensed you should always check with the author before using the kit in your songs.

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.

You can install a drumkit by selecting it and clicking 'Download and Install'.

Once the kit has been downloaded it will be available in the Sound Library under "User drumkits".

### 8.3. Songs in the Sound Library

To save songs in the Sound Library, put them in your data directory underneath the `songs` folder (usually `$HOME/.hydrogen/data/songs)`. To remove them, remove the file from that folder.

### 8.4. Patterns in the Sound Library

Before you save a pattern to the sound library, be sure to give it a title and a category. Right-click on the pattern, select "Properties" and enter the details. 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.

You can add a pattern to the sound library by right clicking the title of the pattern in the song editor, and selecting "Save Pattern". It will now appear in the Sound Library underneath "Patterns" and the category that you assigned to the pattern.

## 9. Drumkits and Instrument Editing

### 9.1. Concepts

The synthesizer in Hydrogen is a sample-based synthesizer. A sample is a piece of pre-recorded audio (usually between 0.1 sec and 3 sec). To play a note, the sample is simply played back at the right time. There are a few concepts and terms that you should understand when you are putting together a drumkit. (See Glossary for more detailed explanations.)

Sampling Synthesizer Terms

Sample

  A short recording of a sound, typically between 0.1 and 3.0 seconds long.

Gain

  Volume adjustment.

Velocity

  How hard you hit a note.

ADSR Envelope Generator

  An Attack/Decay/Sustain/Release envelope generator. After you trigger a note, Hydrogen will attack the note by increasing its volume from 0 to the full velocity of the note. After reaching full velocity, it will decay the note by lowering the volume until it reaches the sustain level. When the note is released, Hydrogen reduces the volume from the sustain level back down to 0. See ADSR Envelope for more info

Attack

  The amount of time to go from 0 to full velocity.

Decay

  The amount of time to go from full velocity to the sustain volume.

Sustain

  The level (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.

Release

  The amount of time to go from the sustain volume back down to 0.

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.

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!

### 9.2. Creating a New Drumkit

In the next paragraphs we will show you how to create a complete drumkit. Keeping in mind the 'Soundlibrary hierarchy' (see Figure 2.12) we will use a top-down approach, so we will start at the Drumkit level and work our way down to the samples.

Creating a new drumkit with Hydrogen is done with the Instrument Editor. You can load samples, set envelope parameters, set the gain, and other advanced features like mute groups, a low-pass resonance filter, and pitch randomization.

TIP : Instead of creating your own drumkit, you can also use or download existing drumkits using the Section 8.

Lets make a brand new drum kit :

- select Instruments → "Clear All" . This will give you a bank of 32 blank instruments. To delete instruments, right-click on on each instrument and select "Delete Instrument". To add more instruments, select Instruments → "Add instrument" .

- 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.

- Once you have your drum kit working the way you want, select Instruments → "Save library" . You will be prompted for the name of the kit to save. If you wish to overwrite an existing kit, you will need to type in the same name as the kit that you want to replace.

- Drumkits are automatically stored in the `data` directory (i.e. `$HOME/.hydrogen/data/drumkits`).

- To export a drumkit (for sharing with others), it must first be loaded into your Sound Library. Then, select Instruments → "Export library" from the menu. Select the drum kit that you wish to export, and give it a file name to save it to.

### 9.3. Instrument Parameters

In the instrument editor, click on the General button. Here you can adjust several parameters that apply to the instrument (applies to all layers as well).

Figure 2.15. The Instrument editor General view

The parameters are:

- Envelope parameters: Attack, Decay, Sustain, Release. (See Envelope Generator)

- Gain: The overall volume of the instrument.

- Mute Group: Which mute group this instrument is a member of (see Mute Group).

- Filter Parameters: Bypass, Cutoff, Resonance.

- Random Pitch

- Midi out Channel and Note

- Auto Stop-Note

It's important that you understand Section 9.1 in order to continue on.

#### 9.3.1. Envelope Parameters

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

- Attack — the amount of time 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. [1]

- Decay — the amount of time 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.[1]

- Sustain — the volume 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.

- Release — the time 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.[1]

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 not draw out the note while you are holding it. It only holds the gain (volume) parameter during that time.

#### 9.3.2. Gain and Mute Group

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.

### Warning

It is very easy to set the Gain 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.

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 — 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.

If the mute group is set to "Off", 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.)

#### 9.3.3. Filter and Random Pitch

The filter is a low-pass resonance filter. If you don't wish to use is, click the BYPass 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.

### Note

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.

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: ±2 half-steps × value. Using this sparingly can help your sequences to sound more like a real drummer.

#### 9.3.4. Midi out settings

Hydrogen is capable of generating midi messages that you can use to trigger any external midi device or application. To do this you simply need to configure the Midi out channel and Note for every instrument. As you can see this is a very flexible approach that enables you to trigger samples or sounds from multiple devices and/or apps. Finally you need to make sure the proper Midi routing/wiring is in place and you're set.

From now on every time a note is played for that instrument (in the Hydrogen sequencer) a midi message will be sent to your external app/device and trigger a sound. This way you can use Hydrogen as a pure sequencer for other apps, or combine the internal Hydrogen sampler with multiple external apps/devices.

#### 9.3.5. Auto Stop-Note

If this box is checked Hydrogen will immediately stop any playing sample that belongs to this instrument whenever the instrument is re-triggered.

This option is particularly useful when you are using long samples like a crash or some existing audio that you have sampled (like a looped voice in a dance/electro song) For the crash you will need to use the Auto Stop-Note when you are sequencing multiple notes in fast succession and want to make it sound realistic. If you do not check this option the cymbal will start to sound like multiple cymbals instead of only one (since the sample of each individual hit will be played completely). For the voice sample this option is useful if you are trying to get that 'stuttering' effect.

### 9.4. Creating an Instrument and Layers

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.

To begin creating an instrument, select Instruments → Add instrument. This will give you a blank instrument to start from.

Now, you need two samples. Any .WAV or .FLAC file will do. Hydrogen provides several in the `data/drumkits` directory.

In the instrument editor, click on Layers. You can layer several samples into the instrument. Which one is played depends on the velocity of the incoming note. Click Load Layer and point the Audio File Browser to your sample. Note that the Audio File Browser 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.

After you load the sample, you'll see that there is now a 1 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 Load Layer to bring in another sample.

After bringing in both samples, you'll probably notice that only the first sample is being played whenever you trigger the instrument. This is because you need to set the velocity 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.

Figure 2.16. The Instrument editor Layers view

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).

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 Section 6)

For each layer, you can set the Gain and the Pitch. The pitch also has a Fine adjustment.

Use the Gain 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).

### Warning

It is very easy to set the Gain 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.

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

### Note

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 Section 9.5.2)

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.

### 9.5. Sample Editor

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.

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 !

### Note

The changes you make to your samples in the Sample Editor are non-destructive and are saved per song. So the original sample will not be changed, and you can reuse the same sample in multiple songs with different Sample Editor settings.

Figure 2.17. The Sample Editor

The Sample Editor consists of 3 sections (as indicated in the figure above):

#### 9.5.1. Sample Editor in/out points

In this section you can set the start, stop and loop points for the sample by dragging the the 3 markers:

- S-marker (green) : indicates the Start-point (in-point) of the sample.

- E-marker (red) : indicates the End-point (out-point) of the sample.

- L-marker (blue) : determines the loop-in point of your sample

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'.

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.

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 that is in between the Loop- and the End-marker. 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.

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.

#### 9.5.2. Sample Editor rubberband

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).

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 the rubberband site . After installing rubberband you should check if the path to the rubberband cli is configured correctly (see Section 3.1).

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:

Back to the rubberband settings :

- 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.

- Pitch : this setting allows you to change the pitch of the sample, expressed in semitones,cent.

- Crispness : this setting does not affect tempo or pitch, but changes the way the sample sounds.

Note: If you want Hydrogen to recalculate the sample length on the fly (using rubberband) you must enable the 'RUB' button (see figure above).

#### 9.5.3. Sample Editor volume/pan

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 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, and 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.

### 9.6. Tips on Editing Instruments

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 are a few tips on setting up an instrument:

Turn down the gain. Every gain knob (i.e. an amplifier), this is a gain stage. With every gain stage you have, it's easy to overdrive your signal — which means the signal gets distorted by clipping. In addition, if you have two samples that, by themselves, peg your meters — what do you think happens when you combine them? That's right, you overdrive the signal again.

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.

Test samples at full velocity. 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? (Hint: clipping.)

Try to use samples that are -6 dB max. Visually, this means samples that peak at only 1/2 of full scale. Otherwise, turn your layer gain to about .5.

Remove all DC offsets from the sample. 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.

The ADSR will not be longer than your sample. If you have a short sample, it doesn't matter how long you set the attack and delay — the sample will stop playing at the end.

Things change with the sample rate. If you have a really nice setup with all your parameters painstakenly tweaked... things will change if you change the sample rate of your audio card. Many of Hydrogen's internal settings and parameters are based on how many samples go by, not on how many seconds go by. The sorts of things that change are: anything time-base (like attack and release) and anything frequency based (like the cutoff frequency).

## 10. Midi

In this section you can find more info about defining MIDI actions and how they can be useful for you. Before you can work with midi actions you should have your Midi devices, drivers and connections configured correctly (see Section 3.3).

Lets take a look at the available options :

### 10.1. Midi Events

An Event is an incoming Midi message, coming from a MIDI controller or an external sequencer.

If you look at the Events list you will see that there are 3 types of Events available (as described in the Midi standard):

- NOTE: input coming from a regular black/white key of a keyboard or a drumpad

- CC: controller commands coming from faders or rotary controllers

- MMC_x: machine control events coming from play/stop... buttons on a controller

The Param. (parameter) value to the 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 Section 3.3).

### Note

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.

If you Shift-click on a gui element that does not support Midi automation a popup will inform you.

### 10.2. Midi Actions

Next is a list of the available Actions: an Action describes what Hydrogen should do when a specific Midi Event is detected.

### Note

** Some of the Midi Actions require that the Action Parameter is configured. The Parameter usually references a specific channel, instrument, FXsend... Keep in mind that the Parameter value is zero-based. So if you want to reference channel 1 you have to enter '0' in the Parameter field (1 for channel 2, 2 for channel 3 ...)

- PLAY : start playback

- PLAY/STOP_TOGGLE : 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 of the song

- PLAY/PAUSE_TOGGLE : toggles between PLAY and PAUSE. (the playhead will not return to the start of the song, but will stay at its current position)

- STOP : stops playback and returns to the start of the song

- PAUSE : pauses the song

- MUTE : mutes the the Master output (sequencer keeps running)

- UNMUTE : unmutes the Master output (sequencer keeps running)

- MUTE_TOGGLE : toggles between MUTE and UNMUTE (sequencer keeps running)

- NEXT_BAR : jumps to the next bar in the song

- PREVIOUS_BAR : jumps to the previous bar in the song

- BPM_INCR : increments the tempo of the song

- BPM_DECR : decrements the tempo of the song

- BPM_CC_RELATIVE : changes the tempo relative to the current tempo, using a controller

- MASTER_VOLUME_RELATIVE : changes the Master output volume, relative to the current setting (e.g. if you are using rotary encoders)

- MASTER_VOLUME_ABSOLUTE : changes the Master output volume to the absolute value of the midi control (use with midi fader or pot)

- STRIP_VOLUME_RELATIVE : see MASTER_VOLUME_RELATIVE, but applies to the channel strip defined in the Action Parameter **

- STRIP_VOLUME_ABSOLUTE : see MASTER_VOLUME_ABSOLUTE, but applies to the channel strip defined in the Action Parameter **

- EFFECTx_LEVEL_RELATIVE : changes the volume level of effect 'x'; the value you enter in the Action Parameter determines the channel strip this action applies to **

- SELECT_NEXT_PATTERN : selects the pattern that is defined in the Action Parameter **

- SELECT_AND_PLAY_NEXT_PATTERN : combines the SELECT_NEXT_PATTERN with PLAY

- PAN_RELATIVE : changes the panorama setting, relative to the current value; the value you enter in the Action Parameter determines the channel strip this action applies to **

- PAN_ABSOLUTE : changes the panorama setting to the absolute value that the linked controller sends to Hydrogen

- BEATCOUNTER : sets the tempo (see Section 4.1

- TAP_TEMPO : sets the tempo (see Section 4.1

- SELECT_INSTRUMENT : selects one of the instruments in the drumkit

[1] The attack, decay, and release parameters are all set by the number of audio samples. 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).

# Chapter 3. A new song

## 1. "Song" mode and "Pattern" mode

This section is a quick-and-dirty walkthrough to Hydrogen. Refer to the tutorial for a more detailed overview.

Hydrogen has 2 main modes: "Pattern" mode and "Song" mode (refer to Section 4 for the buttons that activate each mode). When "Pattern" mode is activated the current pattern is continuously repeated. This mode is very well suited to tweak your pattern until 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.

## 2. A new pattern

We'll start from the empty song with an empty pattern created when Hydrogen starts up: "pattern" mode should be selected by default. Now let's click on the “Play”button, and while the pattern is playing let's add notes by left_mouse_clicking in the grid of the Song Editor (Figure 3.1). Adjust the 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 “off” from the Grid Resolution LCD in which case you're free to place notes wherever you prefer). Be sure to select the correct pattern in the Song Editor before adding notes in the Pattern Editor!

Figure 3.1. The Pattern Editor

## 3. A new sequence

Once patterns are created (Figure 3.2), we can copy/paste/delete them using the Select Mode (see Section 5.1).

Figure 3.2. Inserting Notes in a Pattern

## 4. Adjust from the mixer

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

The Mixer frame (Figure 3.3) is made of 32 independent tracks, each of these is bound to an instrument, plus a "Master Output" control and a "FX" button to show and hide the effects panel. Every line features 3 buttons ( ), pan adjust ( ), current maximum peak, volume fader and name of the track. Clicking on will play the selected instrument, cutting the others. The "Mute" button , simply mute that 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 Figure 3.3 you can see a few volumes too loud). Peaks outside that range will get distorted (especially with OSS audio driver). Keep an eye on each vu-meter and if distortion appears, turn the volume down for that instrument.

Figure 3.3. The Mixer

# Chapter 4. Shortcut lists

- [CTRL + N] = New Project

- [CTRL + O] = Open File

- [CTRL + D] = Open Demo

- [CTRL + S] = Save File

- [CTRL + SHIFT + S] = Save File as

- [CTRL + P] = Export Pattern as

- [CTRL + M] = Export MIDI file

- [CTRL + E] = Export Song

- [CTRL + Q] = Quit Hydrogen

- [ALT + D] = Show Director window

- [ALT + M] = Show Mixer window

- [ALT + I] = Show Instrument rack

- [ALT + P] = Show Preferences window

- [CTRL + ?] = Show manual

- [Backspace] = Restart song or pattern from the beginning

- [spacebar] = Play / Pause

- [,] (comma key) = Beatcounter

- [\] (backslash) = Tap tempo

- [+] and [-] = Tempo up / down

- [F9] = Jump back to previous bar in the song

- [F10] = Jump to the next bar in the song

- [F12] = Panic button (stops the song and mutes all playing sounds)

# Glossary

This is a glossary of general terms encountered when using Hydrogen, synthesizers, drums, or samplers. The definitions here provide more detail and explanation than the simplified ones in the text. 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 the simplified definitions help new users start using Hydrogen quickly, they can lack the nuances presented here.

ADSR

  A type of envelope generator that allows you to control the Attack, Decay, Sustain, and Release parameters. Generally, the parameters are proportional to the velocity.

  In Hydrogen, the ADSR envelope generator only controls the volume (attenuation).

  Read more about this in the Wikipedia Article ADSR Envelope

  See Also Envelope Generator, Attack, Decay, Sustain, Release.

Attack

  This is the first phase of an ADSR envelope, and is the amount of time to turn the parameter up from 0 to full velocity after triggering the note.

  See Also ADSR.

Attenuation

  In filters and mixers, this the amount that a signal is reduced (volume).

  See Also Roll-off.

Band-Pass Filter

  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.

  See Also Filter, High-Pass Filter, Low-Pass Filter.

Clipping

  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.

  An example of clipping is when you play music louder than your speaker can handle. Parts of the music sound harsh and fuzzy.

Cutoff Frequency

  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.

  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.

  See Also Filter, High-Pass Filter, Low-Pass Filter, Resonance Filter.

Decay

  After reaching full velocity from the attack, this is the amount of time to turn the parameter down from full velocity to the sustain level.

  See Also ADSR.

DC-offsety

  DC offset, or DC coefficient is the mean value of the wavefor.m

  DC offset is usually undesirable. For example, in audio processing, a sound that has DC offset will not be at its loudest possible volume when normalized (because the offset consumes headroom), and this problem can possibly extend to the mix as a whole, since a sound with DC offset and a sound without DC offset will have DC offset when mixed. It may also cause other artifacts depending on what is being done with the signal.

Envelope Generator

  A way to control (change) a parameter over time as a response to triggering, holding, and releasing a note.

  Did your eyes just glaze over? Let's try again:

  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 ADSR

Fader

  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.

Filter

  A device that changes a sound by attenuating specific frequencies. A tone knob is an example of a simple, low-pass filter.

  See Also Band-Pass Filter, High-Pass Filter, Low-Pass Filter, Resonance Filter.

Gain

  In an amplifier, this adjust how much (or how little) a signal is amplified (volume). A higher gain value is a louder signal.

High-Pass Filter

  A filter that attenuates (silences) low frequencies, but allows high frequencies to pass through.

  See Also Filter, Cutoff Frequency.

Instrument

  In Hydrogen, an instrument is a single noise-maker (like a bass drum kick, or a tom).

Layer

  In an instrument you can load several different samples (each one called a layer), and have a different sample play depending on the velocity of the note. Only one sample at a time will play.

  Suppose you have a sample of a floor tom being struck softly. If you simply play the sample louder — it will not 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.

  See Also Instrument.

Low-Pass Filter

  A filter that attenuates (silences) high frequencies, but allows low frequencies to pass through.

  See Also Filter, Cutoff Frequency.

Mute

  To make no noise. A setting on an instrument that prevents any audio output.

Mute Group

  A group of instruments (samples) that should mute (stop playing) immediately after another instrument in the group is triggered.

  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 — 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).

Octave

  A span of frequencies where the top-most frequency is exactly twice the frequency of the bottom frequency.

  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 sound like the same distance.

Release

  After the note is released, this is the amount of time to reduce the parameter from the sustain level to 0.

  See Also ADSR.

Resonance

  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.

  See Also Resonance Filter.

Resonance Filter

  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.

  See Also Filter, Cutoff Frequency, Resonance.

Roll-off

  This is the amount that frequencies are attenuated (suppressed) as the frequency changes (typically measured in dB/octave).

  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.

  See Also Attenuation, Filter.

Sample

  A short recording of a sound, typically between .1 and 3.0 seconds long.

Sustain

  The level to hold the parameter after finishing the decay time. This level will be maintained until the not is released.

  See Also ADSR.

Velocity

  How hard you hit a note.

  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.