Hydrogen v1.1 Manual

2021-03-04

Antonio Piraino

Alessandro Cominu

Thijs Van Severen

Sebastian Moors

Colin Evans

Philipp Müller

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 runs on Linux, Mac OS X and Windows.


Table of Contents

I. Introduction
1. Download
2. Build
3. Keyboard and Mouse
II. Using Hydrogen
4. Overview
4.1. Main User Interface
4.2. Drumkit Concept
4.3. MIDI-mapping and Virtual Keyboard
4.4. Recording in Hydrogen
4.5. Session Management
4.6. Command-line Options
5. Preferences
5.1. General
5.2. Audio System
5.3. MIDI System
5.4. OSC
5.5. Appearance
6. Main Menu
6.1. Project
6.2. Undo
6.3. Drumkits
6.4. Instruments
6.5. View
6.6. Options
6.7. Debug
6.8. Info
7. Main Toolbar
7.1. Transport Control
7.2. Tap Tempo and Beat Counter
7.3. BPM Control and Metronome
7.4. CPU Usage and MIDI in
7.5. JACK Control
7.6. GUI State
8. Song Editor
8.1. Main Controls
8.2. Song Editor modes
8.3. Sidebar
8.4. Timeline
8.5. Tags
8.6. Playback Track
8.7. Automation Path
9. Pattern Editor
9.1. General
9.2. Drum Pattern Editor
9.3. Note Properties Editor
9.4. Piano Roll Editor
10. Sound Library (Drumkit/Pattern/Song Manager)
10.1. Drumkits
10.2. Songs
10.3. Patterns
11. Instrument Editor
11.1. General
11.2. Layers
12. Sample Editor
12.1. Wave Display and Region Editing
12.2. Pitch Shifting
12.3. Playback and Envelope Editor
13. Mixer
13.1. Instrument Channel Strips
13.2. Component Channel Strips
13.3. FX Rack and LADSPA Plugins
13.4. Master Fader Strip
14. Director
15. Playlist Editor
15.1. Main Window
15.2. Menu
16. MIDI API
16.1. MIDI Actions
16.2. MIDI-learnable Widgets
17. OSC API
17.1. Basics
17.2. Commands
III. Examples
18. A New Song
18.1. Song Mode and Pattern Mode
18.2. A New Pattern
18.3. A New Sequence
18.4. Adjust from the Mixer
19. Create a New Drumkit
19.1. Creating a New Drumkit
19.2. Creating a New Instrument
19.3. Tips on Editing Instruments
IV. Appendix
20. Used File Types
21. Shortcut Lists
Glossary

List of Figures

4.1. The Main UI in Single Pane mode
4.2. The Main UI in Tabbed mode
5.1. The General Tab
5.2. The Audio System Tab
5.3. The MIDI System Tab
5.4. The OSC Tab
5.5. The Appearance Tab
6.1. The Main Menu
6.2. Import Drumkit
6.3. The Audio Engine View
7.1. The Main Toolbar
8.1. The Song Editor
8.2. The Pattern Options menu
8.3. The Dialog to Change the Pattern Properties
8.4. Dialog Window for Adding Tags
8.5. The Automation Path Widget
9.1. Pattern Editor in Drum Mode
9.2. Pattern Editor Controls
9.3. The Sidebar of the Pattern Editor
9.4. Pattern Editor in Drum Mode
9.5. The Note Properties Ruler set to Velocity
9.6. The Note Properties Ruler showing the NoteKey Property
9.7. Pattern Editor in Piano Mode
10.1. The Soundlibrary
11.1. The Instrument editor General view
11.2. The Instrument Editor Layers View
11.3. The Layer Section of the Instrument Editor
12.1. The Sample Editor
12.2. The Wave Display Section of the Sample Editor
12.3. The Pitch Shifting Section of the Playlist Editor
12.4. The Envelope Section of the Sample Editor
13.1. The Mixer
13.2. The Instrument Channel Strip in the Mixer
13.3. The Component Channel Strip in the Mixer
13.4. The FX Rack in the Mixer
13.5. Select an Effect
13.6. The Master Fader Strip in the Mixer
14.1. The Director
15.1. The Playlist Editor with Demo Songs loaded
16.1. MIDI Actions are set in MIDI System tab of the Preferences Dialog
18.1. The Pattern Editor
18.2. Inserting Patterns in the Song Sequence
18.3. The Mixer
44. Visualization of the Interaction of the Different Pan Parameters

List of Tables

4.1. MIDI Mapping
17.1. All OSC Messages
21.1. Shortcut Table

Part I. Introduction

Chapter 1. Download

You can download Hydrogen from http://www.hydrogen-music.org. On the Downloads page you can find several binaries (installers) for MacOS and Windows.

Due to the variety of distributions we do not provide packages for Linux. If you do not find Hydrogen in the repository of your distribution, please ask the people behind it to include Hydrogen.

[Warning]Warning

From MacOS Big Sur onwards you may require some extra steps to run Hydrogen on you computer. This page of the Hydrogen Wiki will guide you through this process step by step.

Chapter 2. Build

[Tip]Tip

The instructions provided in this section are for Linux only. If you intend to build Hydrogen on macOS, check out the corresponding wiki page for tips or guides.

If you want to compile Hydrogen yourself, 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/1.0.0
      

Compiling Hydrogen depends on the following libraries (among others):

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 qtbase5-dev qtbase5-dev-tools           \
    qttools5-dev qttools5-dev-tools libqt5xmlpatterns5-dev  \
    libarchive-dev libsndfile1-dev libasound2-dev liblo-dev \
    libpulse-dev libcppunit-dev liblrdf-dev                 \
    liblash-compat-dev librubberband-dev libjack-jackd2-dev

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
   mm       => launch the build process using ccache
   mt       => launch the build process with clang tidy checks enabled
   d[oc]    => build html documentation
   g[raph]  => draw a dependencies graph
   h[elp]   => show the build options
   x|exec   => execute hydrogen
   t[ests]  => execute tests
   p[kg]    => build source package
   z        => build using ccache and run from tree
        

To build Hydrogen and execute the result, run the build script with the m option

$ ./build.sh m x
        

and to install it permanently on your computer, change into the build folder and use the make command.

$ cd build
$ sudo make install
        
[Note]Note

For further details about the installation process please have a look the INSTALL.txt file (located in the top level directory once you downloaded the sources).

Chapter 3. Keyboard and Mouse

The Hydrogen user interface is designed so that it can be used entirely with the mouse, with the exception of text entry.

Most actions are performed with the left mouse button, and implement what should be the most obvious behaviour for any control. The right mouse button may sometimes perform an alternate action, or bring up a context menu. Some common controls also have alternate actions accessed by clicking while holding a modifier key:

  • Ctrl + left click : restore default value of knob or fader

  • Shift + left click : bind MIDI event to MIDI-learnable widget (see Section 16.2)

Some controls will also respond to scroll wheel events for convenience.

The keyboard can also be used for navigating and editing in the Pattern and Song Editors, using a combination of

  • ||| : move the keyboard input cursor's position, or adjust values under the cursor.

  • Shift + ||| : can be used to make selections of notes or pattern groups as if the mouse had been dragged over them.

  • Enter and Return : generally performs the same action as a mouse click, but can also start or end a move (or copy) of items in the same way a mouse drag would.

  • Tab and Shift + Tab : move between the Pattern, Song and Note Property Editor.

  • Delete : delete notes or patterns.

  • Esc : cancels an ongoing selection, move or copy.

[Note]Note

The keyboard input cursor is hidden from view until one of the above keys is pressed. This keeps the display clear and uncluttered when using the mouse. You can alter this default behavior in the General tab of the Preferences.

Most other keys on the keyboard can be used to play samples and enter notes in the same way a MIDI keyboard can be.

Part II. Using Hydrogen

Table of Contents

4. Overview
4.1. Main User Interface
4.2. Drumkit Concept
4.3. MIDI-mapping and Virtual Keyboard
4.4. Recording in Hydrogen
4.5. Session Management
4.5.1. NSM
4.6. Command-line Options
5. Preferences
5.1. General
5.2. Audio System
5.3. MIDI System
5.4. OSC
5.5. Appearance
6. Main Menu
6.1. Project
6.2. Undo
6.3. Drumkits
6.4. Instruments
6.5. View
6.6. Options
6.7. Debug
6.8. Info
7. Main Toolbar
7.1. Transport Control
7.2. Tap Tempo and Beat Counter
7.2.1. Tap Tempo
7.2.2. Beat Counter
7.3. BPM Control and Metronome
7.4. CPU Usage and MIDI in
7.5. JACK Control
7.6. GUI State
8. Song Editor
8.1. Main Controls
8.2. Song Editor modes
8.2.1. Select Mode
8.2.2. Draw Mode
8.2.3. Song Mode
8.2.4. Pattern Mode
8.2.5. Stacked Mode
8.3. Sidebar
8.4. Timeline
8.5. Tags
8.6. Playback Track
8.7. Automation Path
9. Pattern Editor
9.1. General
9.1.1. Controls
9.1.2. Sidebar
9.2. Drum Pattern Editor
9.3. Note Properties Editor
9.4. Piano Roll Editor
10. Sound Library (Drumkit/Pattern/Song Manager)
10.1. Drumkits
10.2. Songs
10.3. Patterns
11. Instrument Editor
11.1. General
11.1.1. Envelope Parameters
11.1.2. Gain and Mute Group
11.1.3. Filter Parameters
11.1.4. Pitch Shift Parameters
11.1.5. MIDI Out Settings
11.1.6. Hi-Hat Pressure Group
11.2. Layers
11.2.1. Components
11.2.2. Layers
11.2.3. Sample Selection
11.2.4. Controls
12. Sample Editor
12.1. Wave Display and Region Editing
12.2. Pitch Shifting
12.3. Playback and Envelope Editor
13. Mixer
13.1. Instrument Channel Strips
13.2. Component Channel Strips
13.3. FX Rack and LADSPA Plugins
13.4. Master Fader Strip
13.4.1. Humanization
13.4.2. Mixer Settings
14. Director
15. Playlist Editor
15.1. Main Window
15.1.1. Song List
15.1.2. Controls
15.1.3. Scripts
15.2. Menu
15.2.1. Playlist
15.2.2. Scripts
16. MIDI API
16.1. MIDI Actions
16.1.1. Events
16.1.2. Actions
16.2. MIDI-learnable Widgets
17. OSC API
17.1. Basics
17.2. Commands
17.2.1. Syntax
17.2.2. All Commands

Chapter 4. Overview

4.1. Main User Interface

Figure 4.1. The Main UI in Single Pane mode

The Main UI in Single Pane mode

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

[Tip]Tip

You can switch between these two modes in the Appearance tab of the Preferences.

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 4.2. The Main UI in Tabbed mode

The Main UI in Tabbed mode

4.2. Drumkit Concept

Let's start with a little history on the concept of Drumkits within in Hydrogen. It began as a dedicated drum machine but has evolved into a versatile sample-based 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 Roll Editor was introduced.

To sum it up, nowadays a Drumkit is a collection of a number of instruments (snare, kick, sampled voice, bass sound ...), using one or more components which each can consist of multiple layered samples.

[Tip]Tip

In case you are not familiar with the world of sound synthesis, you can check out the Glossary for a number of useful definitions.

4.3. MIDI-mapping and Virtual Keyboard

Instead of playing back programmed patterns Hydrogen can also be used synthesize drum sounds for incoming MIDI or keyboard events.

Using the Input mode in the Options tab of the Main Menu you can choose between two different ways to emulate sound. Drumkit maps different MIDI events and keyboard inputs to different instruments of the current drumkit while Instrument maps them to pitch-shifted samples of the instrument currently selected in the Song Editor. You can think of these modes as input versions of both the Drumkit Editor and the Piano Roll Editor.

Which MIDI input maps to which instrument is depending of the Note parameter in the Instrument Editor set for in each particular drumkit. An example for the GMRockKit is shown in the table below.

[Note]Note

In order to process incoming MIDI messages, you have to enable the Use output note as input option and set up the overall MIDI support in the MIDI system tab of the Preferences dialog first.

Alternatively you can use the Virtual keyboard provided in Hydrogen. It maps a number of keys of your computer keyboard to incoming note and allows you to use it as a traditional MIDI keyboard. The mapping is shown in the table as well as in figure below.

Table 4.1. MIDI Mapping

Instr. Pos. MIDI Note PC Keyboard Key Hydrogen GMRockKit GM Standard
 35  Bass Drum 2
136ZKickBass Drum 1
237SStickSide Stick/Rimshot
338XSnareSnare Drum 1
439DHand ClapHand Clap
540CSnare RimshotSnare Drum 2
641VFloor TomLow Tom 2
742GHat ClosedClosed Hi-hat
843BTom 2Low Tom 1
944HHat PedalPedal Hi-hat
1045NTom 1Mid Tom 2
1146JHat OpenOpen Hi-hat
1247MCowbellMid Tom 1
1348QRideHigh Tom 2
14492CrashCrash Cymbal 1
1550WRide 2High Tom 1
16513SplashRide Cymbal 1
1752EHat Semi-OpenChinese Cymbal
1853RBellRide Bell
19545 Tambourine
2055T Splash Cymbal
21566 Cowbell
2257Y Crash Cymbal 2
23587 Vibra Slap
2459U Ride Cymbal 2
2560  High Bongo
2661  Low Bongo
2762  Mute High Conga
2863  Open High Conga
2964  Low Conga
3065  High Timbale
3166  Low Timbale
3267  High Agogô
3368  Low Agogô
3469  Cabasa
3570  Maracas
3671  Short Whistle
3772  Long Whistle
3873  Short Güiro
3974  Long Güiro
4075  Claves
4176  High Wood Block
4277  Low Wood Block
4378  Mute Cuíca
4479  Open Cuíca
4580  Mute Triangle
4681  Open Triangle

[Note]Note

The names of the instruments depend on the drumkit that is loaded. This table below refers to the GMRockKit that is shipped with Hydrogen and loaded by default.

When adjusting the mapping or creating your own custom drumkit try to follow the General MIDI (GM) 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.

[Note]Note

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.

For a better visualization you can also find the mapping notes to your PC's keyboard key in the figure below.

Picture illustrating the mapping of Hydrogen's virtual keyboard to the layout of the computers' keyboard.

4.4. Recording in Hydrogen

In addition to manually program pattern using mouse and keyboard you can also record one or multiple pattern. You can do so using an external MIDI device, like an e-drum, or use the virtual keyboard provided by Hydrogen.

In order to start recording, first activate the record button Grey record button with a red circle in its center. in the Main Toolbar and afterwards press the Grey play and pause button containing two vertical black lines (left) and a black triangle (right) pointing to the right. button located right next to it (like in a classical tape recorder).

Using the playback mode of the Song Editor you can choose between the following two scenarios. When in Pattern mode all inserted notes will be added to pattern currently selected in the Sidebar of the Song Editor. When, on the other hand, in Song mode the input notes will be added to the active pattern (the one the playhead is located in and is currently used for playback). If several patterns are selected in a single row, the input notes will only be added to the pattern at the bottom.

[Note]Note

The incoming notes will be added in a non-destructive way. This means when adding two notes at the same position, you will have two notes being played back at once (with double the volume of a single one).

4.5. Session Management

With Session Management you can easily restore complex sessions involving numerous applications including their particular state. Hydrogen does support some Session Management systems too.

[Warning]Warning

All the supported Session Management protocols are Linux only. There is no (tested) support for MacOS and Windows yet.

  • NSM: Non Session Manager (NSM) is of 2021 the de facto standard in Session Management tools within the Linux audio community and Hydrogen does over full support and compliance to its API.

    [Tip]Tip

    We highly recommend using this protocol for Session Management.

  • LASH: Hydrogen provides a basic support for LASH Audio Session Handler (LASH). This covers recalling the song used within the session but, unlike the NSM support, no recalling of the JACK connections and no per-session preferences.

    [Note]Note

    You have to activate LASH support in the General tab of the Preference dialog in order to use it.

  • JACK Session: JACK Session has been marked deprecated by the JACK project.

    [Warning]Warning

    Hydrogen versions <= 1.1 still feature this Session Management protocol. But it will be removed in future releases.

4.5.1. NSM

Hydrogen will be under session management if you start it via a NSM server application, like RaySession. You can easily check whether Hydrogen is aware of the session by checking out the Project option of the Main Menu as some action will have changed in order to comply to the NSM API.

  • Replace With New Song: instead of New. Replaces the song associated with the session by an empty one.

  • Import Into Session: instead of Open. Replaces the song associated with the session by a song of your choice.

  • Import Recent Info Session: instead of Open Recent. Replaces the song associated with the session by one of the recently used songs.

    [Warning]Warning

    In Hydrogen version 1.1 the import into a session is not yet fully supported. While the selected file will be loaded and you can work with it, Hydrogen won't recall it after closing and opening the session. You need to copy the corresponding .h2song file manually into the session folder to make your choice permanent.

  • Export From Session As: instead of Save As. Stores the song associated with the session at a location of your choice as .h2song file.

    [Note]Note

    In contrast to the Save As command the underlying path of the current song will not be changed. All subsequent Save actions will store the current state of the song to the file in the session folder and not to the path of the exported file.

[Note]Note

The Open Demo option will be missing.

Both the song and the preferences associated with the session will be stored in a session folder called Hydrogen.*. In addition, the drumkit (and its samples) used with the song will linked into the session folder as well. If the link is replaced by a folder containing a valid drumkit, this one will be used over the system and user drumkits.

[Tip]Tip

This allows you to create fully self sufficient backup of your Hydrogen session using tar -chf. These can be even ported and used to systems which do not have the required drumkits installed.

4.6. Command-line Options

After installing Hydrogen on your system you can invoke it from the command-line with a number of different options.

-h, --help                  Displays this help.
-v, --version               Displays version information.
-d, --driver <Audiodriver>  Use the selected audio driver (jack, alsa, oss)
-i, --install <File>        Install a drumkit (*.h2drumkit)
-n, --nosplash              Hide splash screen
-p, --playlist <File>       Load a playlist (*.h2playlist) at startup
-P, --data <Path>           Use an alternate system data path
-s, --song <File>           Load a song (*.h2song) at startup
-k, --kit <DrumkitName>     Load a drumkit at startup
-V, --verbose <Level>       Level, if present, may be None, Error, Warning, Info, Debug or 0xHHHH
      

Chapter 5. Preferences

Via this window most of the configurations and customization can be altered. The Preferences Dialog can be accessed via the Options element in the Main Menu.

[Note]Note

All changes done in the Preferences Dialog - if not noted otherwise via a popup - will take effect when clicking the Ok button at the bottom of the window.

5.1. General

Figure 5.1. The General Tab

The General Tab

  • Language: chooses one of the translations Hydrogen is available in.

    [Note]Note

    For this setting to take effect you have to restart Hydrogen.

    [Tip]Tip

    If your mother tongue is not available or the corresponding translation is flawed or incomplete, you would have an accessible way to contribute to Hydrogen at hand. Please see the About dialog in the Info option of the Main menu for information of how to contact the Hydrogen dev team.

  • Reopen last used song: determines whether Hydrogen will open the last used song during startup or an empty song instead.

  • Reopen last used playlist: determines whether the last used Playlist will be loaded during startup or none at all.

    [Tip]Tip

    This can come in handy when you are using Hydrogen live.

  • Use relative paths for playlist: specifies whether the path names in the stored .h2playlist file will contain absolute paths or a path relative to the playlist folder in the Hydrogen data directory (usually $HOME/.hydrogen/data/).

    [Tip]Tip

    Using relative paths might be handy when using your playlist on different computers or user profiles.

  • Hide keyboard input cursor: hides the keyboard cursor until you press a key on you keyboard (see Chapter 3). By enabling this feature you can switch to the look and feel of the interaction with the Pattern Editor and Song Editor prior to Hydrogen v1.1.

  • Use LASH: enables LASH (LASH Audio Session Handler) support within Hydrogen. This allows you to recover a particular song associated with a session.

    [Tip]Tip

    You may consider using the more advanced NSM support of Hydrogen which gives you many additional features, like restoring all JACK connections or creating a per-session configuration.

  • Beat counter drift compensation in 1/10 ms: allows you to compensate for system latency. The provided number will be added to each consecutive triggering of the Beat Counter. The allowed range is from -200 to 200.

    [Tip]Tip

    This is quite handy if you are using different sound cards or external MIDI devices, like a keyboard or an e-drum, with mismatching clocks.

    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 Beat Counter effectively requires practice.

  • Beat counter start offset in ms: sets the time between the Beat Counter's last input stroke and when the song starts playing. Its allowed range is from -500 to 500.

    [Note]Note

    The Beat Counter has to be set to Set BPM and play - Blue button containing a "P". should be displayed in the bottom right corner - for this setting to take effect.

  • Maximum number of bars: sets the maximum number of supported bars/patterns for a single song. Its allowed range is from 1 to 800.

  • Maximum number of layers: sets the maximum number of layers for a single instrument. Its allowed range is from 16 to 8192.

    [Note]Note

    For this setting to take effect you have to restart Hydrogen.

  • Path to the Rubberband command-line utility: sets the absolute path to the rubberband command line interface (CLI) Hydrogen will use for stretching samples in the Sample Editor.

    [Note]Note

    This option is only available if your version of Hydrogen does not already has Rubber Band support compiled into it. If it does and the option is hot shown, everything is already configured and you don't have to worry about Rubber Band at all.

    [Tip]Tip

    If you are using Ubuntu, you can install Rubber Band from the Software Center via the package rubberband-cli. For other Linux distros please check your package manager and for other platforms please check the Rubber Band site .

    [Tip]Tip

    If Rubber Band is installed and configured correctly, you will see an extra button Grey vertical button containing the characters "R", "U", and "B" in adjacent lines. button in the Main Toolbar. You can use this behavior to verify your configuration.

5.2. Audio System

Figure 5.2. The Audio System Tab

The Audio System Tab

  • Audio System: let's you choose the audio driver used by Hydrogen to connect to your computer's sound card.

    Available options:

    • Auto: Hydrogen will try a number of different drivers in a predetermined order, choose the first working one, and display the result.

      [Tip]Tip

      This option is recommended for beginners.

    • JACK: The JACK driver is a professional audio server which permits very low lag and exchanges with other audio software. The JACK server will start automatically if not already running.

      [Tip]Tip

      We strongly recommend using this driver to have the best out of Hydrogen.

    • ALSA: The widely adopted Linux standard audio driver.

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

    • PulseAudio: A driver for the cross platform PulseAudio sound server.

  • Device: specifies the particular sound card the audio driver will use.

  • Buffer size: specifies the size of the batch of time Hydrogen will process in one run. Supported values are from 100 to 5000.

  • Sample rate: specifies the number of data points the audio signal will contain within one second.

    [Note]Note

    If you are using the JACK audio driver, the sample rate can not be altered from within Hydrogen and the audio driver configuration should happen before starting the JACK server.

  • Track output: determines which audio settings will be applied to the outgoing audio of the per-instrument JACK output ports.

    Post-Fader:

    Pre-Fader:

    [Note]Note

    This option is only available if the JACK audio driver was selected and it will only take effect if the Connect to default JACK output ports option is checked.

  • BBT sync method: if Hydrogen uses JACK transport in the presence of an external JACK Timebase master (TBM), it will use the provided measure and tempo information instead of the local one of either the song's tempo or the Tempo Markers added to the Timeline. But due to limitations in the current implementation, Hydrogen can not set both measure and speed provided by JACK for arbitrary pattern combinations. You have two options here. Either drop all measure changes in the TBM and work with tempo changes only to support arbitrary patterns (using option constant measure) or to keep the length of each pattern consistent with the corresponding measure in the TBM and to use both tempo and measure provided by JACK (option matching bars).

    [Note]Note

    This option is only available if the JACK audio driver was selected.

    For this option to take effect the Grey button containing the text "J.TRANS". button has to be activated and the Grey button containing the text "J.MASTER". button deactivated in the Main Toolbar (next to having a JACK TBM application).

    [Tip]Tip

    Hydrogen can be registered as JACK Timebase Master via the Main Toolbar.

  • Connect to default JACK output ports: connects the main stereo JACK output ports of the Master Fader Strip to the default JACK input ports of your system (system:playback_1 and system:playback_2). This will be done every time Hydrogen starts up or the JACK audio driver is restarted.

    [Note]Note

    This option is only available if the JACK audio driver was selected.

  • Create per-instrument JACK output ports: in addition to the main stereo output Hydrogen will register JACK output ports for every single instrument.

    [Tip]Tip

    This can be useful if you want to add effects to a single instrument with jack-rack for example.

    [Note]Note

    This option is only available if the JACK audio driver was selected.

    [Warning]Warning

    There are no JACK output ports for the Metronome and the Playback Track. Their audio is only available via the main stereo output ports of Hydrogen.

  • Enable JACK timebase master support: whether Hydrogen will respond to or ignore the incoming BBT (tempo and measure) information sent by the JACK server.

    [Tip]Tip

    Some JACK clients are not well written or have fallen into despair. As a result Hydrogen could receive nuisance signals messing up its playback. If you encounter weird jumps in the transport position and/or Hydrogen is out of sync after relocating the transport position, you might try to uncheck this option.

    [Note]Note

    This option is only available if the JACK audio driver was selected.

  • Apply and restart output: restarts the audio driver and makes all settings specified above take effect without closing and reopening the entire Preferences dialog.

  • Polyphony: specifies the maximum number of notes played simultaneously. Supported values are from 1 to 512.

    [Tip]Tip

    Depending on your CPU Hydrogen might be overrunning your audio driver due to this parameter.

  • Metronome volume: sets the volume of the Metronome. Supported values are from 1 to 100.

  • Interpolate resampling: specifies the type of resampling applied if a sample does not use the same Sample Rate as Hydrogen.

5.3. MIDI System

Figure 5.3. The MIDI System Tab

The MIDI System Tab

  • MIDI driver: selects the MIDI driver Hydrogen will use to send MIDI messages.

  • Input: selects the device Hydrogen will expect MIDI messages to receive from.

  • Output: selects the device Hydrogen will send MIDI messages to.

  • Channel: specifies whether Hydrogen should listen to MIDI messages on one particular of the 16 available channels or on all of them.

  • Ignore note-off: specifies whether Hydrogen will respond to the note-off MIDI message.

    [Note]Note

    This makes better use of the drumkit samples used in Hydrogen when working with certain external MIDI devices. But it may also discard Cymbal choke messages in some e-drums.

  • Enable MIDI feedback: specifies whether Hydrogen will send a message about updated values every time a certain parameter is changed. These parameters are

  • Discard MIDI messages after action has been triggered: specifies whether a MIDI note - after performing the MIDI action associated with it - should be played back or be discard.

  • Use output note as input note: specifies whether the output MIDI note of an instrument specified in the MIDI Out Settings of the Instrument Editor should be used to map the input as well.

    [Note]Note

    If this option is unchecked, only the currently selected instrument will used to play back the received MIDI notes.

Using the table in the lower part of the tab you can associate MIDI actions provided by Hydrogen with incoming MIDI messages. How this is done will be explained in the Section 16.1.

5.4. OSC

Figure 5.4. The OSC Tab

The OSC Tab

The OSC tab (Figure 5.4) let's you modify all options associated with OSC (Open Sound Control) (see chapter OSC API for details).

[Note]Note

In order to see and access the Enable OSC feedback and Import port option, Enable OSC support has to be checked first.

[Note]Note

If the chosen OSC port is already occupied, Hydrogen will pick an alternative one on startup and displays it via a popup as well as in the OSC tab of the Preferences.

5.5. Appearance

Figure 5.5. The Appearance Tab

The Appearance Tab

The Appearance tab let's you modify Hydrogen's look and feel.

  • Application font: specifies both the font family and point size of the application font used for the grid in Pattern Editor and Song Editor as well as for the pattern names in the Sidebar of the Song Editor.

    [Note]Note

    In order for this setting to take effect, Hydrogen has to be restarted.

  • Style: specifies a certain look of GUI elements like menus, scrollbars, and dialog windows.

    [Tip]Tip

    Using this option you might can make Hydrogen integrate with you operating system better.

  • Mixer font: specifies both the font family and point size of the mixer font used for the instrument names in the Instrument Channel Strips and the component names in the Component Channel Strips.

    [Note]Note

    In order for this setting to take effect, Hydrogen has to be restarted.

  • Meters falloff speed: specifies for how fast the update of the maximum value of the audio signal will be shown in the LCD displays of the Instrument Channel Strips, Component Channel Strips, and the Master Fader Strip before its replacement with a more recent value will take place.

  • Default interface layout: specifies whether the GUI of Hydrogen will be arranged in Single Pane mode or Tabbed mode (see Main User Interface for details).

    [Note]Note

    In order for this setting to take effect, Hydrogen has to be restarted.

  • High-resolution display scaling: specifies whether the underlying bitmap graphics of the GUI should be scaled to larger sizes by Qt in order for Hydrogen to look nice with your system's resolution settings.

  • Coloring method for Song Editor elements: determines the coloring of the boxes indicating the presence of a pattern in the Song editor. The available options are:

    • Automatic: Uses as much colors as there are patterns in the song.

    • Steps: Uses a certain number n of colors you have to enter via a second input widget. After coloring the first n patterns with different colors the same set of colors will be used for the next n patterns and so on.

    • Fixed: Colors all patterns using a single color determined via its hue in a separate input widget.

Chapter 6. Main Menu

Figure 6.1. The Main Menu

The Main Menu

6.1. Project

This menu offers file related functions.

[Note]Note

If you are using Hydrogen within a NSM session, some of the options below will be called and behave differently (see Section 4.5.1 for details).

  • New: creates a new and empty song.

  • Show Info: sets general properties of the song such as name, author, license, and generic notes.

  • Open: opens an existing song (a .h2song file).

  • Open Demo: opens one of the demo song shipped with Hydrogen.

    [Note]Note

    The demo songs are stored in $INSTALL_PATH/share/hydrogen/data/demo_songs).

  • Open recent: opens a menu showing the last used songs (ordered from most recent to least recent).

  • Save: saves changes to current song.

  • Save as: saves current song as .h2song file to a path of your choice.

    [Tip]Tip

    In order for Hydrogen to automatically list it in the Songs section of the Sound Library, you have to store it in $HOME/.hydrogen/data/songs/.

  • Open pattern: opens a pattern (a .h2pattern file) belonging to the current drumkit.

  • Export Pattern As: saves a pattern as a .h2pattern file.

    [Tip]Tip

    In order for Hydrogen to automatically list it in the Patterns section of the Sound Library, you have to store it in $HOME/.hydrogen/data/patterns/drumkit_name/.

  • Export MIDI file: exports the current song in MIDI format.

  • Export song: exports the current song into an audio file.

    The Export mode option Export to a single track will export one 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.

  • Export Lilypond file: exports the current song to LilyPond.

    [Warning]Warning

    It has the following limitations: Only the GMRockKit and no triplets are supported.

  • Quit: exists Hydrogen.

6.2. Undo

  • Undo: lets you undo your last action.

  • Redo: lets you redo the last undone action.

  • Undo History: gives you an overview of your previous actions.

6.3. Drumkits

  • New: creates a new and empty drumkit by clearing all the instruments of the current one.

  • Open: opens one of the registered drumkits and replaces the currently loaded one.

    [Note]Note

    Via this option you can only load drumkits that have been already imported into Hydrogen. If you just received a new one from an external source, be sure to use the Import option described below.

  • Properties: sets general properties of the drumkit such as its name, author, license, general information, image, and image license.

  • Save: saves all settings of the current drumkit (including those of their instruments and sound samples).

  • Save As: saves all settings of the current drumkit (including those of their instruments and sound samples) as new drumkit.

    [Note]Note

    The new drumkit will be a physical copy of the old one and is stored into the $HOME/.hydrogen/data/drumkits/ folder.

  • Export: compress and stores all instruments samples and settings of any drumkit (not just the current one) into a folder of your choice as .h2drumkit file.

    [Note]Note

    For compatibility reasons you can also export your drumkit in a format used in older versions ( <= 0.9.6 ) of Hydrogen. By doing so you need to select a single component to export since this functionality was not supported back than.

  • Import: imports a drumkit (a .h2drumkit file) from the local filesystem.

  • Online Import: imports another drumkit from a remote location through a XML feed. The XML file that should be provided is NOT RSS compliant (see Hydrogen website for an example).

    Figure 6.2. Import Drumkit

    Import Drumkit


    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.

    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.

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

    Widget with progress bar popping up during the download of a drumit.

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

6.4. Instruments

This menu offers instruments functions.

  • Add Instrument: adds a new instrument to the current drumkit.

  • Clear All: deletes all instruments from the current drumkit.

  • Add Component: adds a component to the current drumkit.

6.5. View

6.6. Options

  • Input mode: when set to Drumkit the keys on your MIDI keyboard will map to the instruments in your drumkit. 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 (see Section 4.3 for details). 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.

  • Preferences: opens the main preferences window (see Preferences for details).

6.7. Debug

Tools mainly for debugging and monitoring Hydrogen.

[Note]Note

The Debug option is only available if Hydrogen was compiled with debug support.

  • Show Audio Engine Info: opens a window that shows various stats about Hydrogen and the audio driver.

    Figure 6.3. The Audio Engine View

    The Audio Engine View


    [Note]Note

    In case JACK is used, buffer and sampling rate should be set in the configuration of the JACK server before starting Hydrogen (JACK automatically starts when an application tries to connect).

  • Show Filesystem Info: opens a window that shows you the paths to the user and system data directory as well as to the folder used to create temporary files.

  • Log Level: specifies which log messages will be written into the log file.

    • None: No messages will be written at all.

    • Error: Only messages concerning critical errors will be written out.

    • Warning: Like Error but in addition also general warnings about potential bugs or inconsistencies will be written out.

    • Info: Like Warning but also all info messages indicating the correct behavior of Hydrogen will be written out.

    • Debug: Like Info but also internal help messages used for developing will be written out.

  • Open Log File: opens Hydrogen's log in either the terminal the application was started in or in a new terminal instance.

6.8. Info

  • User Manual: opens a window with a version of this manual installed on your local computer.

  • About: the usual window with license information, acknowledgments, etc.

  • Report Bug: opens the Hydrogen issue page at github.com in your default Internet browser. You can open a new issue to communicate a bug here (first search if there exists already an issue about it).

  • Donate: make a donation to developers/maintainers.

Chapter 7. Main Toolbar

Figure 7.1. The Main Toolbar

The Main Toolbar

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

7.1. Transport Control

Part of the Main Toolbar responsible for the transport control. From left to right: rewind, record, pause and play, stop, fast forward, and loop button.

Using these buttons you can start (also bound to Space, see Chapter 21 for further related shortcuts) and stop the playback, record new patterns (see Section 4.4 for details), fast forward and rewind the transport position, and loop playback.

In addition, you can switch between Song mode and Pattern mode.

[Tip]Tip

When using the Keyboard to navigate in the Song Editor and Pattern Editor the shortcut Ctrl + Space (or Alt + Space on MacOS) will change the mode to the one corresponding to the editor. In addition, it will move the current transport position to either the note (Pattern Editor) or the pattern (Song Editor) focused by the cursor and starts the playback.

7.2. Tap Tempo and Beat Counter

Part of the Main Toolbar responsible for the tempo settings using the Beat Counter. In the center there is a LCD displaying to the left the beat type and to the right on top the current mode of the Beat Counter and the value of the Countdown Counter below. To the left and right of the LCD there are buttons to decrease or increase the beat type (left) and Countdown Counter value (right).

This section covers how to interactively change tempo using the Beat Counter. Due to conceptional similarities the Tap Tempo will be covered as well which itself is not related to the widget displayed above.

7.2.1. Tap Tempo

The Tap Tempo allows you to change the tempo at any time - with playback rolling or stopped - within Hydrogen. To change the tempo, hit the \ key in the tempo you want.

After two keystrokes the tempo will be first changed according to the time difference between the two taps. With each addition keystroke the tempo will be changed again to the rolling average value of the last up top eight hits of the \ button. If you tap accidentally, or if you wait too long between taps, the Tap Tempo counter will start over.

[Note]Note

The widget shown above is the one of the Beat Counter. The Tap Tempo itself does neither have a dedicated widget nor any option to be set by the user.

7.2.2. Beat Counter

The Beat Counter is essentially a Tap Tempo on steroids. By default the Beat Counter widget is not visible. To see the Beat Counter widget click the Grey vertical button containing the characters "B" and "C" in adjacent rows. button or simply press ,.

The tempo that you tap will be considered to correspond to 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 Beat Counter is ready to start from 0. When you tap ,, 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 Grey button containing a "S". and Blue button containing a "P". . When it shows the latter (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 Beat Counter set up for 4/4, you can tap 1-2-3-4, and start playing on the next beat. When it shows Grey button containing a "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 Blue button containing a "P". ). Count off the band 1-2-3-4 (while tapping the , 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).

[Tip]Tip

An temporal offset when starting the playback after setting the tempo and a latency compensation for the Beat Counter can be configured in the General tab of the Preferences Dialog.

[Note]Note

If you are using JACK transport in the presence of an external JACK Timebase Master, Hydrogen is supposed to be a slave and both Tap Tempo and Beat Counter will be disabled. If Hydrogen itself is the JACK Transport Master, tempo changes from Hydrogen will be broadcasted to other JACK clients.

7.3. BPM Control and Metronome

Part of the Main Toolbar responsible for the tempo settings. To the left there are on top two buttons for decreasing and increasing the tempo and below one to activate the metronome. To the right and covering most of the area is a LCD showing the current BPM. At the far right there is a tall button activating the recalculation of samples processed by Rubber Band at tempo changes.

Set the speed of the song in the range from 10 to 400 bpm (beats per minute).

[Tip]Tip

You can use the mouse wheel to decrease and increase the value of this widget.

In addition you can use Grey button for toggling the metronome. It contains a non-filled black triangle pointing to the left (left), a black dot (middle), and a black closing bracket ")" (right). to toggle the metronome.

[Tip]Tip

The volume of the metronome can be adjusted in the Audio tab of the Preferences.

If either Rubber Band support is compiled into your current version of Hydrogen or correctly configured in the General tab of the Preferences, you will also find the Grey vertical button containing the characters "R", "U", and "B" in adjacent lines. button next to the BPM widget. Activating it will enable recalculation of all sample pitches using Rubber Band whenever the tempo of the song will be changed (see Section 12.2 for details.

7.4. CPU Usage and MIDI in

A block horizontal line in the upper part will contain a meter showing the load of the CPU. Below a small LED-like symbol next to the text "MIDI-IN" will indicated when there is MIDI input.

The CPU bargraph gives you an indication of the CPU load. The MIDI led lights up every time Hydrogen receives a MIDI message.

[Tip]Tip

The MIDI settings can be adjusted in the MIDI tab of the Preferences.

7.5. JACK Control

Part of the Main Toolbar responsible for the JACK configuration. The left button is titled "J.TRANS" and the right one "J.MASTER".

Clicking Grey button containing the text "J.TRANS". will enable JACK transport. If disabled, Hydrogen will still use the JACK driver and registered audio ports. But it decouples its own transport state from the one of the JACK server and will not be in sync with other clients anymore.

Using Grey button containing the text "J.MASTER". Hydrogen can be registered as JACK Timebase Master and will send additional information, like the current speed, to other JACK clients. Else it will either act as slave in the presence of another Timebase Master, like Ardour, or as a stand-alone client in the absence of a Master.

[Tip]Tip

You can check whether Hydrogen is in slave mode by hovering over the disabled Beat Counter or Timeline.

[Note]Note

The support of JACK Timebase can disabled in the Audio tab of the Preferences. This can be useful in the presence of a fault Master broadcasting nuisance information.

7.6. GUI State

In the upper part there are two buttons. The smaller one to the left is titled "Mixer" and the larger one "Instrument rack". Below there is a large blue LCD showing the default message of Hydrogen after startup "Hydrogen Ready.".

Toggles the Mixer window and the Instrument Rack (containing both the Instrument Editor and the Sound Library).

The LCD screen below displays what Hydrogen is up to and gives an optical feedback of the parameters set in the Mixer.

Chapter 8. Song Editor

Figure 8.1. The Song Editor

The Song Editor


The Song Editor gives an overview of the whole song (e.g. intro, verse, bridge, chorus and so on). Each blue colored square on this panel represents a playing pattern. It gives you complete freedom to add/remove patterns to the song and to move or copy any part of your song.

Columns represent time periods within the song. While they're shown as the same width in the Song Editor, the length of time taken to play through a column is set by the length of the pattern or patterns which are active and playing during that time slot.

Multiple patterns can be active at the same time in a column, and they will play simultaneously. This allows instrument parts to be separated out into different patterns, or to add ornamentation or fills on top of basic patterns without duplicating the basics into both patterns.

In the case of multiple patterns of different lengths in one column only the largest one(s) will be represented by a square. The shorter patterns are indicated by rectangles whose width indicate their length relative to the longest one.

[Tip]Tip

Instead of having the same color for all patterns you can set different colors schemes in the Appearance tab in the Preferences.

Picture of a part of the Song Ruler used for naviagation. It indicates the position of certains bars by their number - "1", "5", "9", "13", "17". All remaining bars are indicated with a vertical line - "|". In addition, light-blue colored "T"s indicate the presence of a Tag.

In addition to the transport control provided in the Main Toolbar you can use the song ruler for navigation. This the area above the grid and right of the Main Controls. The position clicked will be rounded to the nearest pattern beginning and transport will be relocated there.

[Note]Note

Navigation in Hydrogen is always quantized. It is only possible to move forward / backwards or locate to whole patterns.

[Tip]Tip

You can also locate the keyboard cursor (see Chapter 3) to a desired pattern and press Ctrl + Space to relocate to this position.

8.1. Main Controls

Main Controls for the Song Editor. From left to right: larger button bearing the text "CLEAR" for deleting all patterns, new pattern button, two buttons to move the selected pattern down and up, two buttons to activate the Draw and the Select mode, and the button to switch between Single Pattern and Stacked mode.
  • Grey button containing the text "CLEAR". : deletes all patterns (asks for confirmation!).

  • Grey button containing a plus sign. : creates a new pattern (and asks for a name).

  • Two grey button horizontally aligned. The left contains a black arrow tip pointing downwards and the right one one pointing upwards. : moves currently selected pattern up or down.

    [Tip]Tip

    You can also drag-and-drop a pattern up/down in the pattern list.

  • Grey button containing a black brush. : enables Select mode (Section 8.2.1).

  • Blue button containing four black horizontal dots in the lower part joined by three black vertical dots at the right bottom corner. : enables Draw mode (Section 8.2.1).

  • Grey button with a horizontal black line. : sets Hydrogen to Single Pattern mode Grey button with three horizontal black lines stacked vertically. or to Stacked mode (Section 8.2.5).

8.2. Song Editor modes

The Song Editor has two different interaction modes. The default Select mode allows pattern blocks to be set, cleared, selected, moved and copied. The Draw mode instead allows pattern sequences to be drawn freehand.

In both modes, you can perform basic editing: clicking an empty square activates the pattern in that time slot, and clicking again will deactivate it.

They keyboard can also be used for editing. The arrow keys ||| will move the keyboard input cursor, and pressing Return will activate or deactivate the pattern in the current column.

In addition, there are two major playback modes, Song mode and Pattern mode, with two minor submodes, Single Pattern mode (covered in the Pattern mode section), and Stacked mode. These will determine which parts of the song you will listen too during playback.

[Note]Note

While Select mode, Draw mode, Single Pattern mode, and Stacked mode are activated via the Main Controls of the Song Editor, Song mode and Pattern mode are activated via the Transport Control section of the Main Toolbar.

8.2.1. Select Mode

This mode allows you to select multiple patterns in the Song Editor and delete/move/copy them.

Once you have selected a part of your song you can delete it by pressing Delete. You can move it by simply dragging your selection to another location with your mouse, or by cutting (Ctrl + x) and pasting (Ctrl + v) using your keyboard. You can also copy your selection by either holding Ctrl while dragging it to a new location, or by copying (Ctrl + c) and pasting (Ctrl + v) using your keyboard.

Selections can be modified by holding Ctrl while clicking to select additional blocks, or to remove selected blocks from the selection.

The arrow keys on the keyboard can also be used, along with Return, to select, move and copy parts of the song:

  • Shift + ||| can be used to make selections using the keyboard

  • Return over a selected block will begin a move or copy

  • ||| to move the selected cells into position

  • Return to move the selected blocks into place

  • Ctrl + Return to copy the selected blocks into place

Pressing Esc will cancel an editing operation that's in progress, or clear any selection.

8.2.2. Draw Mode

This mode allows you to insert patterns by drawing - holding the left button while moving the mouse - blocks on the song canvas.

Clicking a square on the song canvas will add a pattern (the square will turn blue) and clicking it again will remove it. Holding the mouse button down will continue either adding or removing patterns from under the mouse cursor.

Using the arrow keys on the keyboard, and the Return, will also add and remove patterns from the song.

[Note]Note

The keyboard input cursor is usually hidden unless you press one of the keys listed in Chapter 3. You can alter this default behavior in the General tab of the Preferences.

8.2.3. Song Mode

When Song mode is selected Hydrogen will play the sequence of patterns you have created in the Song Editor from left to right until it reaches the end of the song.

[Tip]Tip

By enabling Loop mode in the transport control, the playback will move seamlessly to the beginning again after reaching the end of the song.

8.2.4. Pattern Mode

When Pattern mode is selected Hydrogen will play the pattern that is currently selected in the Song Editor and displayed in the Pattern Editor. This usual behavior is also called Single Pattern mode.

[Tip]Tip

By enabling Loop mode in the transport control, the playback will move seamlessly to the beginning again after reaching the end of the pattern.

8.2.5. Stacked Mode

Normally when composing a pattern and editing it, you'll listen to that single pattern looping over and over again while working on it. Sometimes, however, it's useful to hear that pattern in the context of other patterns (for example, other instrument parts) while working on it.

Stacked mode will play multiple patterns simultaneously, on a loop. You can select which patterns play using Ctrl + left click on the pattern's name. Selected patterns are all marked with a triangle.

[Note]Note

Hydrogen's playback mode must be set to Pattern rather than Song for Stacked mode to take effect.

8.3. Sidebar

The Sidebar of the Song Editor allows you to interact with and arrange the patterns of your song.

Left-clicking selects a pattern, double-clicking allows you to rename a pattern, drag-and-dropping allows you to rearrange the patterns, and right-clicking will show you a menu where you can change a number of things:

Figure 8.2. The Pattern Options menu

The Pattern Options menu

  • Duplicate: will copy the selected pattern to a new pattern in your song.

    [Note]Note

    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.

    Dialog appearing when filling or clearing a pattern. To the left either "Fill" or "Clear" (below) can be checked and to the right the numerical text input form "From" and "To" (below) indicate the range of the operation. At the bottom there are "Cancel" (left) and "OK" (right) buttons.

  • Properties: will open a window where you can change the name of the pattern and also assign it to a certain category. Using the latter you can group pattern in in the Sound Library.

    Figure 8.3. The Dialog to Change the Pattern Properties

    Dialog appearing when changing the properties of a pattern. At the top text input one specifies the "New Pattern Name". In the larger one below the "Pattern description". Underneath one can select the "Pattern category". At the bottom there are "Cancel" (left) and "OK" (right) buttons.

    [Note]Note

    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 load a pattern from a saved pattern file.

  • Save Pattern: stores the pattern in the patterns folder within the Hydrogen data directory (usually $HOME/.hydrogen/data/).

  • Export Pattern: stores the pattern at a location determined via a file browser.

  • Virtual Pattern: will open the virtual 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.

8.4. Timeline

Picture showing the Timeline above the Song Ruler.

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 Markers to your song.

To add a Tempo Marker you first need to show the Timeline by clicking the Grey button containing a black "P". button at the bottom of the Song Editor or via the View element of the Main Menu and enable it using the Grey button containing the black characters "BPM". button. Once this is done the horizontal bar next to the 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.

[Note]Note

Please note that the ruler will not be available while using the JACK transport in slave mode (see Section 7.5 for details.

Dialog for entering/altering a BPM Marker. In the two text inputs in at the upper half of the dialog one can specify the "BPM" (top) and the "Bar" (below). Underneath there is a large button titled "Delete BPM Marker". At the bottom there are "Cancel" (left) and "OK" (right) buttons.

Once you have entered the new tempo and clicked OK, the tempo change will show up on the Timeline. If you click the Tempo Marker again you can edit the tempo, change the bar or delete it.

8.5. Tags

Excerpt of the Song Ruler containing several Tags marked with light-blue "T"s.

In addition to altering the tempo when the song switches from e.g. the intro into a verse, it is also very handy to have a clear indication of more general changes or special events in the song. For this purpose you can also add Tags to the song. These Tags are short text messages you can add at any given moment that will be displayed whenever the song playhead passes by that Tag.

To add a Tag middle-click on the song ruler (just below the Timeline) and a window will pop up that allows you to add text for any bar.

Figure 8.4. Dialog Window for Adding Tags

Dialog Window for Adding Tags


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.

8.6. Playback Track

Figure showing the Playback track ontop of the Song Editor. At the left side there are several controls: the upper half consists of a larger fader and an "EDIT" (middle) and "MUTE" (right) button. The lower half contains the Main Controls of the Song Editor. The right half is made up by an dark-blue area may will contain the waveform of the Playback track but is empty in this example.

Using the Playback Track you can program your song alongside an existing audio file, for example a guitar track.

[Note]Note

When a Playback Track is loaded, it will be played back every time audio transport in Hydrogen is rolling and Song mode is activated.

To add a playback track to your song, you need to enable the playback track view. This can be done by either pressing the Grey button containing a black "T". button left to the scroll bar at the bottom of the Song Editor or via the View element of the Main Menu.

Left to the wave display, the controls of the Playback Track are displayed.

  • Edit: loads an audio file.

    [Tip]Tip

    As an alternative, you can load an audio file by dragging it into Hydrogen and dropping over the wave display.

  • Mute: mutes the Playback Track.

  • Fader: adjusts the volume. You can think of this fader as the mixer strip of the Playback Track. The resulting audio will be pass the Master section of the Mixer like any other strip too.

[Note]Note

In its current implementation the Playback Track does hide the song ruler used for navigation. It is therefore advised to hide the Playback Track again once you are done setting the sound file and adjusting its volume.

8.7. Automation Path

Figure 8.5. The Automation Path Widget

The Automation Path Widget

The Automation Path allows you to control the overall velocity of all notes throughout the song. It can be viewed using the shortcut Alt + A or via the View option of the Main Menu.

Clicking the graph area introduces a new point determining when and to which value the velocity will be changed. Currently only linear interpolations of the velocity between the individual points are supported. You can drag a point to move it and you can delete one by dragging another point over it and "absorbing" it.

[Note]Note

Whether the Automation Path is hidden or shown does not affect its activation state. It is always active and can't be disabled. But in its default setting it won't alter anything. In its current implementation you have to reset the Automation Path to its original state manually in order to disable it.

Chapter 9. Pattern Editor

Figure 9.1. Pattern Editor in Drum Mode

Pattern Editor in Drum Mode

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

The Pattern Editor allows you to create and modify the pattern selected in the Sidebar of the Song Editor by adding/removing notes and tuning a number of per-note properties, like velocity and pan. The Pattern Editor can be used in two modes: as Drumkit Editor or as Piano Roll Editor. You can switch between these two by clicking the Grey button containing a small piano illustration with three white and two black keys. button (located on the top-right of the Pattern Editor).

[Note]Note

If you are editing a pattern in Single Pattern mode you will always hear the pattern you are editing when you playback is rolling.

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. (see Single Pattern and Stacked mode for details).

9.1. General

9.1.1. Controls

Figure 9.2. Pattern Editor Controls

Pattern Editor Controls

The top part of the Pattern Editor contains a number of controls applying to both the Drumkit Editor and the Piano Roll Editor:

  • Blue LCD showing "4/4" and titled "SIZE". : lets you choose the length of the pattern (in note values).

    It will open a dialog to enter the new size as text, in the standard music fractional notation:

    Dialog for entering the "New Pattern length (beats/note value)" via a Text input in the middle. At the bottom there are "Cancel" (right) and "OK" (left) buttons.

    Type / to separate numerator and denominator.

    If you enter just the numerator (e.g. 4), the current denominator will be assumed. You can enter a decimal numerator (e.g. 4.5/4) but since Hydrogen resolution is limited, some values are not supported and will be approximated.

    [Note]Note

    Hydrogen supports (only) the following denominators: 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, and 192 because these are the factors of the maximum resolution (192 ticks per whole note). You can use unsupported denominators, but the size will be approximated almost all the times, hence a warning icon will appear:

    A yellow upright triangle containing a exclamation mark is shown to the right of the "SIZE" LCD.
  • Blue LCD showing "1/16" and titled "RES". : this is the current grid resolution (1/4 through 1/64 with triplet-based resolutions marked as 1/8T).

    [Note]Note

    If you are working with a resolution of 1/16 you can't go back to 8 and remove an upbeat 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.

  • Blue button containing a black speaker symbol. : when enabled Hydrogen will play back samples as they are being added to the pattern (even if transport is not rolling).

    [Note]Note

    When disabled you will still hear the preview sound when clicking on the instrument name in the Sidebar. Be sure to click at the left-most position - where the preview is silent - in case you don't want to get disturbed.

  • Blue button showing a black 2 by 3 grid. : enables/disables quantization. When enabled, beats recorded from MIDI or from the virtual keyboard will automatically respect the grid resolution currently applied, just like notes inserted by clicking.

  • Grey button containing a small piano illustration with three white and two black keys. / Blue button with a quasi-3D display a a cylinder with black outlines, blue sides, and a white top. : switches between Drumkit Editor and Piano Roll Editor.

9.1.2. Sidebar

Figure 9.3. The Sidebar of the Pattern Editor

The Sidebar of the Pattern Editor

The section on the left shows you what drumkit is currently selected (GMRockKit by default) and below that you can see the instruments that are part of this kit.

Left-clicking the box containing the instrument name will play back a sample of the instrument. Which layer will be select depends on the horizontal position of the mouse click representing zero velocity to the left and maximum velocity to the right. In addition, 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.

  • Delete notes: removes all notes for this instrument in this pattern.

  • Fill notes: this allows you to fill up the pattern with notes for the selected instrument.

    [Note]Note

    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.

    [Note]Note

    The more velocity you set on the instrument, the more Hydrogen will hit hard on that instrument when played.

  • Select notes: will select all the notes played on this instrument in the current pattern. They can then be copied, moved etc. in the Pattern Editor main area.

  • Edit all patterns: this section of the menu has actions which operate on notes played by the instrument in all the patterns of the song.

    • Cut notes: remove all notes played on this instrument, in all patterns, and keep them in the clipboard.

    • Copy notes: copy all notes played on this instrument, in all patterns, to the clipboard.

    • Paste notes : paste a multi-pattern selection from the clipboard to this instrument.

    • Delete notes: delete all the notes associated with this instrument, without affecting the clipboard.

    [Tip]Tip

    These can be used together to change the instrumentation of a song, entirely replacing one instrument with another by just copy and pasting the notes to a new instrument.

  • Instrument: this section of the menu has actions which operate on the instrument as a whole:

    • Rename instrument: change the name of the instrument.

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

The Grey button containing a black "M". button mutes the instrument and Grey button containing a black "S". solos it.

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 the sequence of notes you have created for that instrument, nor will it change anything about the song or pattern you are working on.

[Warning]Warning

It will however, have an impact on the MIDI note mapping.

[Warning]Warning

Rearranging the instruments will also mess up the per-instrument JACK output ports. Be sure to have your drumkit set up before starting wiring.

9.2. Drum Pattern Editor

Figure 9.4. Pattern Editor in Drum Mode

Pattern Editor in Drum Mode

Right of the Sidebar 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 Fill notes. 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 :

  • you can add a note by left-clicking, and then can 'stretch' that note by right-click-dragging it. This will change the dot into a rectangle that represents the duration of that note.

  • alternatively, you can add a stop-note by Shift + left-clicking. This adds a blue dot which represents the end of the note.

Three notes are displayed in one line of the Pattern Editor. The one to the left is marked with a black circle. The one in the middle by a black circle from which a black triangle expands over two grid cells, and the left one is represented by a blue circle.

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

As in the Song Editor, the arrow keys can also be used to move around the pattern, and notes can be placed or removed with Return (see Chapter 3).

Notes can be selected by dragging over them with the mouse (or Shift + |||), and can be deleted with Delete, or moved by dragging (or Return followed by ||| movements) the notes to a new location. This allows notes to be moved between different instruments, or to adjust their timing. Movement in the horizontal direction is constrained by the currently selected grid resolution, however this can be overridden by holding down Alt while moving notes.

Moving a selection of notes with Ctrl held down will copy them to the new location rather than moving, as in the Song Editor.

Selected notes can also be copied to the clipboard with Ctrl + C, and pasted with Ctrl + V. When pasting, the relative positions of the input cursor at the time of the Copy and Paste operation will set the new position of pasted notes.

So far we have only used the mouse or keyboard editing to create a pattern, but you can also record your beats. This is probably a more musical way of creating a pattern, but it's up to you to decide what works best for you.

[Tip]Tip

Also see Chapter 18 for a basic walk-through of how the Pattern Editor works.

9.3. Note Properties Editor

Figure 9.5. The Note Properties Ruler set to Velocity

The Note Properties Ruler set to Velocity

Clicking on an instrument or adding/removing a note associated will select this instrument. Once an instrument is selected all note properties of its notes will be shown in the form of vertical lines in the bottom window. The lines represent the values for the selected property of each note of the selected instrument. You can select a different note-property from the note property drop-down list (located bottom-left).

The following note properties are available:

  • Velocity: how hard the note is played (the volume of the note). This property also determines which sample of the instrument will be selected.

    [Note]Note

    The color of 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 property you can move the stereo image position of the note (how loud it will be in the left/right output).

    [Tip]Tip

    For a detailed description of how this Pan value does interact with the instrument Pan and the Pan Laws in the Mixer please see Pan.

  • Lead/Lag: Lead and Lag allows a slight note lead or lag in respect of the actual beat. The range is ca. 5 ticks (ca. 1/10 of quarter notes) 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'

    Figure 9.6. The Note Properties Ruler showing the NoteKey Property

    The Note Properties Ruler showing the NoteKey Property

    The striped black and white area represents a piano keyboard and in the gray area you can choose the octave. By moving the dots on the octave scale and the 'keyboard', you can choose any note value.

    [Note]Note

    Note that the Piano Roll Editor can also be used to change the note value of existing notes.

  • Probability: changing the Probability property of a note provides a way for Hydrogen to automatically create some variation in patterns. By setting the probability to less than 1.0, a note may be randomly skipped: a note with probability 1.0 will always be played, a note with probability of 0.0 will never be played.

Clicking or dragging the value lines in the Note Properties Editor will set the property value. But often you'll want to set the properties of several notes at once, so there are a few ways to do this.

  • Drawing with the mouse:

    Pressing the mouse button over the first note's property, you can hold down the mouse button and drag over multiple notes. This is great for quickly creating a crescendo from a filled set of notes.

  • Selecting multiple notes:

    The mouse or keyboard can be used to select multiple notes, which can then be modified all together by dragging them together. This can be useful for creating really consistent quiet grace notes. Alternatively, you can use the mouse wheel for a coarse adjustment or combine it with a pressed Ctrl key for fine adjustments.

9.4. Piano Roll Editor

Figure 9.7. Pattern Editor in Piano Mode

Pattern Editor in Piano Mode

The Pattern Editor can be used as Piano Roll Editor pressing the Input button.

While the Drumkit Editor focuses on using Hydrogen as a drum machine, you can also use it an instrument via the Piano Roll Editor. It gives you a complete 'piano keyboard' so you can easily put down your tunes.

You can compare the Piano mode to the NoteKey property in the Note Properties Editor. Only here you have a complete piano keyboard, so you don't have to select the octave first.

[Note]Note

When entering multiple notes in one column - as a chord - the corresponding symbol in the Drumkit Editor will be prepended with e.g. a 3x to indicate the presence of three separate notes. Also, to adjust the note properties of the individual notes within a chord can be done by right-clicking on the note and dragging the mouse up or down.

Chapter 10. Sound Library (Drumkit/Pattern/Song Manager)

Figure 10.1. The Soundlibrary

The Soundlibrary

The Sound Library helps you manage your drumkits, favourite patterns, and favourite songs. When making new songs or drum kits, it allows you to reuse and mix instruments and patterns from other kits and songs.

It is located in the Instrument Rack in the lower right corner of Hydrogen, which can be shown or hidden via the View option in the Main Menu or via the corresponding button in the Main Toolbar. The Instrument Rack does either show the Instrument Editor or the Sound Library depending on what is chosen in the View option in the Main Menu or the corresponding buttons at the top of the Instrument Rack.

10.1. Drumkits

The list of drumkits comprises both the kits present at system level and the ones at user level.

The System drumkits are those installed with your package manager or when compiling Hydrogen manually. Their location 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 you usually have no write access to them.

[Tip]Tip

You can still modify those kids by saving a tweaked version as a user level kit.

The User drumkits are those which you can manage yourself. They are stored in the Hydrogen data directory (usually $HOME/.hydrogen/data/) within the drumkits folder. When you have created a new drumkit via New in the Drumkit option of the Main Menu, you can save it using Save As from the same menu. In addition, you can also Online Import a number of drumkits provided by the dev team of Hydrogen.

[Warning]Warning

If you are using Hydrogen for commercial purposes, (creating songs and selling these online 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 Creative Commons (CC) or other open and free license.

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 or via any other channel.

To load a drumkit via the Sound Library, 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 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.

10.2. Songs

To access songs via the Sound Library, you have to put them within the Hydrogen data directory (usually $HOME/.hydrogen/data/) into the songs folder. To remove them, remove the file from that folder.

10.3. Patterns

To access patterns via the Sound Library, you have to put them within the Hydrogen data directory (usually $HOME/.hydrogen/data/) into the patterns folder.

[Note]Note

This is done automatically when using the Save Pattern option in the Sidebar of the Song Editor but not when using Export Pattern via the same Sidebar or Export Pattern As in the Project option of the Main Menu.

Before you save a pattern, be sure to give it a title and a category. This can be done by right-clicking on the pattern in the Sidebar of the Song Editor, selecting Properties and entering 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.

Chapter 11. Instrument Editor

Figure 11.1. The Instrument editor General view

The Instrument editor General view

The Instrument Editor is located in the Instrument Rack in the lower right corner of Hydrogen, which can be shown or hidden via the View option in the Main Menu or via the corresponding button in the Main Toolbar. The Instrument Rack does either show the Instrument Editor or the Sound Library depending on what is chosen in the View option in the Main Menu or the corresponding buttons at the top of the Instrument Rack.

11.1. General

When clicking the General button in the Instrument Editor you can adjust several parameters that apply to the particular instrument (and all its layers) selected in the Sidebar of the Pattern Editor.

[Note]Note

It's important that you understand Drumkit Concepts and a couple of basic concepts of sound synthesis described in the Glossary in order to continue on. To ease reading, several of the latter concepts are linked in the text.

11.1.1. Envelope Parameters

Four rotaries are displayed. From left to right: "ATTACK", "DECAY", "SUSTAIN", and "RELEASE".

When a note associated with this instrument is triggered, its volume is run through an ADSR Envelope. Its particular settings can be adjusted using the envelope parameters located right below the instrument name.

  • 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 back immediately at full velocity. If the value is 1.0, the sample volume will use the maximum time available for the attack phase.

  • 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 full velocity to the sustain volume. If the value is 1.0, the sample volume will use the maximum time available for the decay parameter.

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

[Note]Note

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 (type. 2.27 sec at 44.1 kHz).

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.

11.1.2. Gain and Mute Group

In the upper half there is a LCD displaying "1.00" (left) next to a rotary titled "GAIN" (middle) and a LCD with corresponding decrease and increase buttons (right) titled "MUTE GROUP". In the lower part there are two checkboxes: "AUTO-STOP-NOTE" (left) and "APPLY-VELOCITY" (right).

The Gain adjusts the overall volume of all samples associated with this Instrument. This Gain is applied in addition to the one you set for each layer and before the one that is set in the Instrument Channel Strips. If the set to 0, the instrument will be silent. If the Gain is 1.0, the volume of the samples will not be adjusted. If the Gain is set higher, the samples will be amplified.

[Warning]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 which's playback is mutually exclusive - only one instrument of the group may be playing at a time. If one is playing and another instrument in the group is triggered, the former will immediately be silence (muted) and the latter starts playing. This is useful, especially, for instruments like hi-hats where the opened and closed sound are incorporated into the drumkit as 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.)

If the Auto-Stop-Note box is checked, Hydrogen will immediately stop any playing samples belonging to this instrument whenever the instrument is re-triggered, e.g. by another note.

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.

The Apply Velocity box lets the user decide whether Hydrogen should apply the note velocity to the sample being played.

[Tip]Tip

The note velocity can set it the Note Properties Editor.

When activated, Hydrogen will apply the note velocity to the sample gain in addition to the layer gain, the instrument gain, the component gain, or the instrument volume. If all the layer samples are normalized, this option should be used.

[Note]Note

By default this option will be selected as this is the way older versions of Hydrogen used to work.

When not activated, the note velocity will only be used to select the sample to be played, but the sample gain itself will not be changed. This is useful for set of samples that already have their gain "hard-coded".

11.1.3. Filter Parameters

From left to right: a button titled "BYP", a rotary titled "CUTOFF", and another one titled "RESONANCE".

The filter used in here is a low-pass resonance filter. If you don't wish to use is, click the BYP button (bypass) 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 boost to provide at the cutoff frequency. If the resonance is set to 0, then the filter is just a simple low-pass filter.

[Note]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.

11.1.4. Pitch Shift Parameters

From left to right: a LCD displaying the total pitch and three rotaries titled "PITCH", "FINE", and "RANDOM".

The first two knobs control the pitch shift offset. You can use it to change the tuning of the instrument. Pitch is the Coarse control and has quantized steps of half-tones from -24 to +24. Fine is the Fine control and has quantized steps of cents of half-tones from -0.50 to +0.50.

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

[Note]Note

The pitch change is fairly small, almost always between ±1 half-steps ⨉ value. Using this sparingly can help your sequences to sound more like a real drummer.

11.1.5. MIDI Out Settings

Two LCDs with corresponding decrease and increase buttons. The left one is titled "CHANNEL" and the right one "NOTE".

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 output Channel and Note for every instrument. You need to have a sample loaded (an empty WAV file is fine) and make sure the proper MIDI routing/wiring is in place and you're set. As you can see this is a very flexible approach that enables you to trigger samples or sounds from multiple devices and/or apps.

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.

[Note]Note

By enabling Use output note as input in the MIDI system tab of the Preferences dialog the number specified in the Note field will also be used to associate the current instrument with the corresponding incoming MIDI messages.

11.1.6. Hi-Hat Pressure Group

Three LCDs with corresponding decrease and increase buttons titled "HH PRESS. GRP", "MIN. RANGE", and "MAX RANGE" (from left to right).

The hi-hat is a particular instrument of the drumkit as its sound can be changed by pressing the foot pedal.

For e-drum owners, the hi-hat pressure group enables to group different hi-hat instruments together, for example closed, half closed, fully open.

Pressure Group: you can assign more instruments to the same group. You can create many groups. For example one group for the different opening levels of a hi-hat when playing the top of it, another group when playing the edge. Another example: timpanis - create a group for each timpani and the pressure will change the note.

Range: set the minimum and maximum pressure for each instrument. Each instrument of a given group should seat in its own separate pressure range. The range will decide at what pressure level the instrument will be played. For example, if your closed hi-hat has range from 0 to 20, when the hi-hat pedal is pressed between 0 and 20 the closed hi-hat is played.

11.2. Layers

Figure 11.2. The Instrument Editor Layers View

The Instrument Editor Layers View

When clicking the Layers button in the Instrument Editor you can adjust the samples and synthesizer parameters of the particular layers of the instrument selected in the Sidebar of the Pattern Editor.

11.2.1. Components

In the center you can find the name of the Drumkit component and at the right end a button to open a context menu.

Right below the General and Layers button you find the name of the currently selected component. In the drop down menu accessible by pressing Grey button with a black filled triangle pointing downwards. you find a list of all components available in the current drumkit and can select them via a left click. Below a separator you can also find three options to add a new component, delete the current one, or rename the current one.

[Warning]Warning

The components are shared by all instruments. This means deleting it will delete it including all associated layers from a all instruments and not just the currently selected one.

11.2.2. Layers

Figure 11.3. The Layer Section of the Instrument Editor

The Layer Section of the Instrument Editor

Next you find a listing of all layers of the current component in the selected instrument. The wave form of the sample loaded to the currently selected layer (the one enclosed by a red rectangle) is displayed below.

[Note]Note

Empty layers will be displayed as < - >.

Using Grey button containing the black characters "LOAD LAYER". you can load a sample into the currently selected layer, using Grey button containing the black characters "DELETE LAYER". you can delete the current layer, and using Grey button containing the black characters "EDIT LAYER". you can open the Sample Editor to customize the sample loaded to the currently selected layer.

[Tip]Tip

Alternatively you can also double-click the wave display to open the Sample Editor.

[Note]Note

When loading a sample it will per-default have its active area set to the whole velocity range. By checking the Set auto velocity option all layers will be assigned an equally sized velocity range corresponding to their layer number (the top-most layer will have a range starting a zero velocity and the bottom-most one that ends at maximum velocity). Note however that this option will overwrite all existing velocity ranges.

Above the layer listing you find boxes in different shades of grey indicating which range of note velocity will trigger which sample (left: 0 velocity, right: maximum velocity). Left-clicking on any of these boxes will play back the sound of associated sample modulated by the velocity corresponding to the horizontal position of the mouse cursor.

[Tip]Tip

This will be quite handy when adjusting the velocity ranges of the layers.

You might have already noticed in the picture above or for shipped drumkits in the Hydrogen GUI that a layer row contains a light blue rectangle that those not quite fill the whole row. This rectangle indicates the range in velocity the associated sample should be triggered. This way you can separate samples for soft hits, regular hits, and so on for each instrument (component). Whenever two rectangles do overlap a triggered note with a velocity within this shared range will consult the Sample Selection to determine which sample will be played back. You can adjust the velocity ranges of each layer by left-clicking the left or right end of the light blue rectangles and dragging it to the desired position.

[Note]Note

If there is a(n accidental) hole between two adjacent velocity ranges, the layer closest to the triggered velocity will be used.

11.2.3. Sample Selection

A LCD titled "SAMPLE SEL." with a button to open display the different choices to the right.

Having a set of samples containing different sample versions of similar sound for the same note velocity is a good way to make your drumkit sound more natural. After all, drummers for example never hit the drum set twice the exact same way.

Hydrogen tries to emulate this behavior by providing multiple layers with overlapping velocity ranges. How the selection of the resulting sample will take place is for you to decide using the Sample Sel. dropdown menu at the bottom of the Instrument Editor.

  • First in Velocity: will select the first sample available in the velocity set - the one of the layer most further down in the layer listing.

    [Note]Note

    This is the way previous versions of Hydrogen were working.

  • Round Robin: will cycle through the different samples one after another as note a in the same velocity range are played.

  • Random: will select a random sample inside the velocity range for each note played.

11.2.4. Controls

Four rotaries with corresponding LCDs: "L. GAIN" (top left), "C. VOLUME" (top right), "PITCH" (bottom left), and "FINE" (bottom right).
  • Layer Gain: adds Gain for the currently selected layer and the associated sample.

  • Component Volume: adjusts the volume of all layers within the current component with respect to the ones of the other instruments.

    [Tip]Tip

    The resulting audio from all layers of each instrument associated with a certain component can be controlled via its Component Channel Strip in the Mixer.

  • Pitch: adjusts the pitch of the currently selected layer and the associated sample in quantized steps of half-tones from -24 to +24.

  • Fine: adjusts the pitch of the currently selected layer and the associated sample in quantized steps of cents of half-tones from -0.50 to +0.50.

Chapter 12. Sample Editor

Figure 12.1. The Sample Editor

The Sample Editor

The Sample Editor allows you to tweak and manipulate your samples. It can be accessed by selecting a layer in the Instrument Editor and clicking the Grey button containing the black characters "EDIT LAYER". button. It will really speed up the creation of a drumkit since you can do the fine-tuning of the samples within Hydrogen and avoid a lengthy import-test-tweak workflow using an external application. This mean less switching between Hydrogen and your audio editor and more time to make music!

[Note]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.

12.1. Wave Display and Region Editing

Figure 12.2. The Wave Display Section of the Sample Editor

The Wave Display Section of the Sample Editor

In the larger (left) wave display you can see the wave form of the sample you are about to edit. In there you can set the start, stop, and loop point for the sample by dragging the the 3 markers:

  • Start Marker (green): labeled with a S and indicates the beginning of the tweaked sample.

  • End Marker (red): labeled with a E and indicates the end of the tweaked sample.

  • Loop Marker (blue): labeled with a L and determines the loop-in point of your sample.

[Tip]Tip

You can easily move one of the markers by grabbing them close to the letter that marks them.

Underneath you can find a numerical display of the position set for the individual markers as well as some further options. The position of the markers is expressed in number of frames from the very beginning of the sample.

  • Start: position of the Start Marker.

  • Loop: position of the Loop Marker.

  • Loop Mode: specifies the way the individual loops will be played back.

    • forward: plays the Loop Count loop passages the usual way from left to right.

    • reverse: plays the Loop Count loop passages the backwards (from right to left).

    • ping-pong: plays the Loop Count loop passages alternatively backwards and forwards (starting with backwards).

  • Loop Count: indicates the number of times the sample will be repeated between Loop and the End Marker. This section will therefore be played back Loop Count + 1 times.

  • End: position of the End Marker.

  • Close: exits the Sample Editor.

[Note]Note

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.

Whenever you move one of the markers you will see a detail view of the position of that marker on the smaller (right) wave display 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'.

[Tip]Tip

If you want to hear a preview of the tweaking you have done so far, you first need to press the Apply Changes and then the Play button (both at the bottom of the window) to hear the result.

12.2. Pitch Shifting

Figure 12.3. The Pitch Shifting Section of the Playlist Editor

The Pitch Shifting Section of the Playlist Editor

This section of the Sample Editor allows you to use Rubber Band - a tool that can change the tempo of a sample without changing the sample's pitch (and vice versa) - to tweak your sample.

[Note]Note

These options are only available if Rubber Band support was either compiled into Hydrogen or was properly configures in the General tab of the Preferences. After installing Rubber Band you should check if the path to the rubberband cli is configured correctly (see Section 5.1). If neither is the case, all associated widgets will be disabled.

When Sample length to beat is set to off the whole Rubber Band functionality will be disabled.

  • Sample length to beat: specifies the length of the resulting sample (after Rubber Band was applied to it). After choosing a value other than off the length ratio between the original and the resulting sample will be displayed to the right of the combo box under new sample length. To ease the process of finding a proper value, the checkbox will be highlighted green if the length is more or less the same, yellow if there are larger changes, and red if there are significant changes.

    [Tip]Tip

    This should be set to the length of the part of the sample between the Start and End marker, expressed in number of beats.

    [Note]Note

    The beat length does dependent on the current tempo of the song. If it is changed, the samples need to be recalculated using Rubber Band again. When exporting a song all required recalculations will be done automatically. But while using standard playback the Grey vertical button containing the characters "R", "U", and "B" in adjacent lines. button in the Main Toolbar has to be activated to enable the recalculation of all samples on the fly.

  • Pitch: specifies the resulting pitch of the sample, expressed in semitones,cent.

    [Note]Note

    This pitch will affect all instances of the sample in addition to the Pitch Shift Parameters in the Instrument Editor and the NoteKey property of each individual note.

  • Crispness: fine-tunes the processing algorithm used by Rubber Band. It does not affect tempo or pitch, but changes the way the sample sounds.

12.3. Playback and Envelope Editor

Figure 12.4. The Envelope Section of the Sample Editor

The Envelope Section of the Sample Editor

The bottom part of the Sample Editor features some basic controls and the Envelope Editor.

  • Apply Changes: applies all settings of the Sample Editor to the selected sample in a non-destructive way.

  • Play: plays back the underlying sample with the latest changes applied to it.

  • Play original sample: plays back the underlying sample (without applying any changes).

  • panorama/volume: dropdown specifying whether the pan(orama) or volume of the sample will be tweaked in the Envelope Editor.

Using the Envelope Editor you can fine-tune both the volume and panorama (pan) of your sample. This is done by creating envelopes by

[Note]Note

The volume envelope is blue and the pan envelope is yellow.

  1. First select volume or panorama in the dropdown to the right.

  2. Left-clicking in the Envelope Editor will add a point to the selected envelope or allows you to drag an existing one.

  3. Right-clicking will delete a point.

  4. Hit Apply Changes to make your changes take effect.

Chapter 13. Mixer

Figure 13.1. The Mixer

The Mixer

The Mixer window can be opened by pressing Alt + M, by selecting Mixer in the View option of the Main Menu, or by clicking the Mixer button on the Main Toolbar.

The Mixer consists of 3 sections (from left to right): the one containing the Instrument Channel Strips and Component Channel Strips, the FX Plugin Rack, and the Master Fader Strip. 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 as well as the volume of all of these sources mixed together.

13.1. Instrument Channel Strips

Figure 13.2. The Instrument Channel Strip in the Mixer

The Instrument Channel Strip in the Mixer

  • Grey button with a filled black triangle pointing to the right. : lets you trigger the instrument at maximum velocity.

    [Tip]Tip

    This is quite handy for checking clipping.

  • Vertical, grey LED-like object. : lights up whenever this instrument is triggered, e.g. by a note in a pattern or an external MIDI controller).

  • Horizontal, blue LED-like object. : shows whether the instrument is currently selected (in both the Mixer and the Pattern Editor).

    [Note]Note

    If the Input mode is set to Instrument, incoming MIDI events and virtual keyboard keys will trigger only (pitch shifted) sounds of the currently selected instrument.

    [Tip]Tip

    An instrument can be selected by interacting with its Instrument Channel Strip in the Mixer, by interacting with its associated row in the Pattern Editor, or by the corresponding MIDI or OSC command.

  • Grey button containing a black "M". : mutes all sounds related to the instrument (including the preview sound you hear when clicking on the instrument name in the Sidebar of the Pattern Editor).

    [Note]Note

    This button is sharing its state with the mute button of corresponding instrument in the Sidebar of the Pattern Editor.

  • Grey button containing a black "S". : solos the instrument.

    [Note]Note

    This button is sharing its state with the solo button of corresponding instrument in the Sidebar of the Pattern Editor.

  • Grey rotary widget with black background. On the widget there is a centered black circle and a black vertical line extending from the topmost point of the circle to its center. : sets a pan value affecting all note played using this instrument.

    [Tip]Tip

    For a detailed description of how this pan value does interact with the note pan and the Pan Laws in the Mixer please see Pan.

  • Grey and round widget containing a grey and centered circle as well as a short grey line to indicate the position. : the four pre-fader FX send knobs that determine how much of this instrument will be sent to the effect plugins in the FX Rack.

  • Fader and LCD: the fader next to the instrument's name allows you to adjust the volume of the instrument which will be applied on top of all the individual note velocities, layer gains etc. In the background of the fader a volume unit (VU) meter is included representing the instrument's signal level. The LCD displays shows its peak value.

    [Tip]Tip

    You can adjust the falloff speed of the peak values in the LCD display via the Appearance tab in the Preferences.

[Note]Note

If the Create per-instrument outputs option in the Audio Engine tab of the Preferences was selected for the JACK audio driver, Hydrogen will register ports for each instrument. All the options described above will only take effect if in addition the Track output option in the same tab as set to Post-Fader.

This allows you to route the individual instruments directly into any other JACK enabled application, like Ardour, and gives you a lot more flexibility.

13.2. Component Channel Strips

Figure 13.3. The Component Channel Strip in the Mixer

The Component Channel Strip in the Mixer

Right of the Instrument Channel Strips there additional strips corresponding to the instrument components.

[Note]Note

These channels will not be exposed as JACK output ports when enabling the Create per-instrument outputs option in the Preferences.

  • Grey button containing a black "M". : mutes the instrument.

  • Grey button containing a black "S". : solos the instrument.

  • Fader and LCD: the fader next to the component's name allows you to adjust the volume of all layers (of all instruments) associated with this component. In the background of the fader a volume unit (VU) meter is included representing the instrument's signal level. The LCD displays shows its peak value.

    [Tip]Tip

    You can adjust the falloff speed of the peak values in the LCD display via the Appearance tab in the Preferences.

13.3. FX Rack and LADSPA Plugins

Figure 13.4. The FX Rack in the Mixer

The FX Rack in the Mixer

The FX Rack can be accessed by clicking the Blue button containing the black characters "FX". button in the Master Fader Strip).

It has 4 bays where you can load a LADSPA effect plugin, but before you can load any plugins these must be installed on system-level.

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

[Warning]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 Grey button containing the black characters "EDIT". button.

Now the FX selector window will pop up :

Figure 13.5. Select an Effect

Select an Effect


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

Example widget to alter the properties of a LADSPA FX. At the top left the name of the FX is displayed and at the top left two buttons - "Select FX" and "Deactive" - are shown. In the remainder there are several vertical strips stacked horizontally with each one carrying: an LCD displaying the current value (top), the name of the parameter (left), and a fader with included meter (right).

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 ( Redish button containing the black characters "BYP".) button in the FX Rack).

[Tip]Tip

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 Return knob to increase/decrease how much of this FX will be returned to the master output.

13.4. Master Fader Strip

Figure 13.6. The Master Fader Strip in the Mixer

The Master Fader Strip in the Mixer

The Master Fader Strip contains the Master volume fader with volume unit (VU) meter representing the signal level, and three global humanization settings.

Using the fader you can control the volume of the resulting audio output of Hydrogen which is the sum of all the individual Instrument Channel Strips, the Playback Track, and the Metronome. The Grey button containing the black characters "MUTE". button mutes the whole output.

On the bottom-right of the Master section the Blue button containing the black characters "FX". button will show or hide the FX Rack, and the Blue button containing the black characters "PEAK". button will enable or disable the VU meters in both the Master Fader Strip and all the individual Instrument Channel Strips and Component Channel Strips.

13.4.1. Humanization

In order to make the resulting audio sound more natural and less artificial, Hydrogen does offer some humanization capabilities.

[Tip]Tip

Further humanization capabilities are provided via Random Pitch Shift Parameter in the Instrument Editor. In contrast to the global nature of the humanization in the Master Fader Strip this random pitch will only be applied to notes associated with the corresponding instrument.

  • Velocity: adds a certain randomness to the note velocity set in the Note Properties Editor. The higher you turn this knob, the bigger will be the randomness.

  • Timing: adds a certain randomness to the note timing set in the Note Properties Editor (as Lead/Lag). The higher you turn this knob, the more the timing will be randomized.

    [Note]Note

    Notes are displaced in time but the pattern duration or BPM do not change.

  • Swing: this knob will add a certain amount of swing to the song. Swing (a slight time delay) is applied to upbeat 16th-notes, and not to 8th-notes as it happens in traditional Jazz.

[Note]Note

In technical terms both for the Velocity and the Timing a random number will be sampled independently and identically distributed from a Gaussian distribution. The associated knobs provide a linear scaling of the variance of the underlying distribution.

13.4.2. Mixer Settings

In the upper right corner of Master Fader Strip there is a small "cog" icon button:

Button holding the cog symbol right of the "Master" title of the Master Fader Strip.

Click it to open the Mixer Settings window:

Dialog to "Select Pan Law" with a large dropdown menu in the middle, a text input title "db SPL Center Componensation" below, and the "Cancel" (left) and "OK" (right) buttons at the bottom.

Here you can select the Pan Law used by Hydrogen Mixer.

The Pan Law is the relationship between the Resultant Pan and the separate gains of left and right audio outputs. The aim is to control the horizontal angle the sound seems to arrive from.

Hydrogen features one the most customizable and accurate Pan Law set.

You will find four categories: linear, polar, ratio, quadratic. Every category gives a different "scale" or "sensibility" to the pan knob: the same knob position will make the sound appear more lateral or central depending on the category, from the most lateral (linear) to the most central (quadratic).

Then for each category you will find four options, that define a constraint between the gains of the two channels:

  • Balance Law (0dB): when you turn the pan knob from center to right, the right gain stays constant at maximum level while the left gain decreases from the maximum level to 0 (and symmetrically turning from center to left).

    It is ideal for balancing a DUAL-channel track. It has ZERO center compensation: the sound will be louder when the pan knob is at center - unless channels are out of phase - so you may have to readjust the volume manually with the mixer fader.

  • Constant Power (-3dB): the total power (which is proportional to the square of the gain) is constant for any position of the pan knob.

    Compared to the Balance Law, each channel gain is divided by the square root of 2 when the pan knob is at center (-3.0103 dB center compensation). In a common room, this constraint may give the general perception of uniform volume for any pan knob position (panning a MONO track).

  • Constant Sum (-6dB): the sum of left and right gains is constant for any position of the pan knob.

    This constraint preserves the mix volumes in mono export. Compared to the Balance Law, each channel gain is halved (-6.0206 dB) when the pan knob is at center. If you are in an ideal anechoic room (where there are no acoustic reflections) and you seat perfectly at the same distance from the speakers, with this constraint the volume will be really constant for any pan position, because of the linear super-position of sound waves (panning a MONO track).

  • Constant k-Norm (Custom dB center compensation): you can experiment adjusting the center compensation to your taste!

    [Tip]Tip

    Some hi-end studio mixers - to be used in well tuned rooms - have center compensation between -3dB and -6dB.

The four constraints should not change the perception of the stereo angle, but the volume only (depending on the pan knob).

The Pan Law is something you should choose before starting the mix and keep untouched. Hydrogen sets the ratio Balance Law by default because it was the only available law until version 1.0 (so old songs and drumkits will sound the same). The setting is saved in the song file but not in preferences, so it is NOT remembered when you create a new song.

[Note]Note

Unlike in advanced mixers, Hydrogen panning makes no distinction if a track is mono or dual-channel (stereo). You cannot pan each channel of stereo tracks separately, nor use a balance law for them and another pan law for mono tracks. If the drumkit you are using is made of true stereo samples, you don't want a negative center compensation probably, so you should select a Balance Law.

Chapter 14. Director

Figure 14.1. The Director

The Director


The Director provides a quick overview of what Hydrogen is currently doing. It can be opened by pressing Alt + D or by via the View option in the Main Menu.

The Director shows you the song name, a visualization of the Metronome, and the 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.

[Tip]Tip

This comes in very handy when you are recording a song, or if you are using Hydrogen live on stage.

Chapter 15. Playlist Editor

Figure 15.1. The Playlist Editor with Demo Songs loaded

The Playlist Editor with Demo Songs loaded

15.1. Main Window

15.1.1. Song List

The Playlist Editor allows you to group various songs into a playlist and is intended to ease using Hydrogen live on stage. You can access this window via the View option of the Main Menu.

Using the menu you can add various songs to the playlist and you can arrange their order using the arrow buttons to the right of the widget.

[Note]Note

When playback reaches the end of one song the next one won't be automatically selected and played! You can select an arbitrary song in the playlist using double left-clicking, by pressing the hotkeys F5 and F6, or the corresponding OSC commands.

Also note that selecting a song won't start playback automatically.

15.1.2. Controls

From left to right: rewind, play and pause, stop, and fast forward.

At the bottom of the widget you find a couple of buttons you already know from the Transport Control in the Main Toolbar. They do have the same purposes of starting, pausing, and stopping the playback as well as moving the transport position backwards or forwards by one pattern.

[Note]Note

While focusing the Playlist Editor instead of the main UI the usual shortcuts of Hydrogen, like Space for starting/pausing playback, won't work.

15.1.3. Scripts

In addition, the Playlist Editor allows you to add scripts executed right before the selected song is loaded.

[Note]Note

This means that e.g. OSC commands can not be used to change the state of Hydrogen as the subsequent loading of the associated song would reset it immediately.

The scripts supported in the Playlist Editor are BASH scripts and one has to both add a script to a song as well as to check the corresponding box in the exec Script column in order to have it by your computer whenever you switch to the particular song.

[Warning]Warning

Scripts are not supported in the Windows version of Hydrogen.

15.2. Menu

15.2.1. Playlist

  • Add song to Playlist: let's you select a song to be added to the current playlist.

  • Add current song to Playlist: adds the currently loaded song to the current playlist.

  • Remove selected song from Playlist: deletes the selected song from the current playlist.

  • New Playlist: creates a new and empty playlist.

  • Open Playlist: opens an existing playlist (file of type .h2playlist).

    [Tip]Tip

    In the General tab of the Preferences dialog you can configure Hydrogen to reload the last used playlist.

  • Save Playlist: saves all changes done to the current playlist.

  • Save Playlist as: saves the current playlist into a file (of type .h2playlist) and location of your choice.

15.2.2. Scripts

  • Add Script to selected song: associates a BASH script (file of type .sh) to the currently selected song of the playlist.

  • Edit selected Script: opens the selected script with your default editor (in an external window).

    [Note]Note

    When using the function for the first time Hydrogen will ask you which program to use as your default editor.

  • Remove selected Script: removes the selected script from the playlist.

  • Create a new Script: creates a new and empty .sh scrip at a location of your choice.

    [Note]Note

    The default one is the scripts folder in the Hydrogen data directory (usually $HOME/.hydrogen/data/).

Chapter 16. MIDI API

In this section you can find more info about how to make Hydrogen respond to MIDI messages. This is either done using the available MIDI Actions or using the MIDI-learnable Widgets, like knobs or faders, both triggered using MIDI Events.

[Note]Note

Before you can work with MIDI actions you should have your MIDI devices, drivers, and connections configured correctly in the MIDI System tab of the Preferences.

Please note that this chapter will only cover the table linking external MIDI Events to Hydrogen's MIDI Actions. For all other parameters of the MIDI API please see the MIDI System tab of the Preferences.

16.1. MIDI Actions

Figure 16.1. MIDI Actions are set in MIDI System tab of the Preferences Dialog

MIDI Actions are set in MIDI System tab of the Preferences Dialog

An MIDI Event is an incoming MIDI message, originating from e.g. a MIDI controller or an external sequencer. A MIDI Action is a function built into Hydrogen that can be used to react to a specific MIDI Event. Binding an Event to an Action can be done using the MIDI System tab of the Preferences.

You can also define MIDI bindings by simply pressing the Red circle. 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.

[Tip]Tip

You can also define a binding without the Red circle. button by setting the Event Param. manually to the desired MIDI note.

The Action Param. column to the right of the table specifies the input parameter to the Action (see the corresponding Actions reference for details).

16.1.1. Events

Three types of MIDI Events are available (as described in the MIDI standard):

  • NOTE: an 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 buttons, like 'play' or 'stop', on a controller.

16.1.2. Actions

[Note]Note

Some of the MIDI Actions require that the Action Param. is configured. This parameter usually references a specific channel, instrument, FXsend... Keep in mind that its value is zero-based. So, if you want to reference channel 1 you have to enter 0 in the Action Param. field (1 for channel 2, 2 for channel 3, and so on).

  • <<_PREVIOUS_BAR: moves the playhead to the previous pattern/bar.

  • >>_NEXT_BAR: moves the playhead to the next pattern/bar.

  • BEATCOUNTER: calculates the average time passing between successive encounters of this commands and uses it to set the current tempo using the Beat Counter.

  • BPM_CC_RELATIVE: changes the tempo relative to the current tempo, using a controller. Using the Action Param you can specify by how much the current tempo will change. If the incoming Event is -1 (negative), the tempo will be increased and if it's 1 (positive), it will be increased.

    [Note]Note

    This Action will have no effect if Hydrogen is both in Song mode and the Timeline is activated.

  • BPM_DECR: decreases the current tempo by the supplied value.

    [Note]Note

    This Action will have no effect if Hydrogen is in Song mode or Timeline is activated.

  • BPM_FINE_CC_RELATIVE: as BPM_CC_RELATIVE but with changes 100 times smaller than the value specified in Action Param.

    [Note]Note

    This Action will have no effect if Hydrogen is in Song mode or Timeline is activated.

  • BPM_INCR: increases the current tempo by the supplied value.

    [Note]Note

    This Action will have no effect if Hydrogen is in Song mode or Timeline is activated.

  • EFFECTx_LEVEL_ABSOLUTE: changes the volume level of an FX x provided as an integer between 0 and 127. The value you enter in the Action Param determines the Instrument Channel Strip the Action will be applied to.

  • EFFECTx_LEVEL_RELATIVE:

    [Warning]Warning

    Not implemented yet.

  • FILTER_CUTOFF_LEVEL_ABSOLUTE: for a value of 0 it sets the Filter Cutoff of the instrument strip specified using the Action Param to 0. For all other values it sets the cutoff to the provided number divided by 127.0.

  • MASTER_VOLUME_ABSOLUTE: sets the Master output volume to the value provided by the MIDI event times 1.5 and divided by 127.

  • MASTER_VOLUME_RELATIVE: changes the Master output volume, relative to its current setting. For a value of 0 it sets the volume of the master fader to 0. For a value of 1 it increases its volume by 0.05 and for all other values it decreases it by 0.05. (-1: -0.05 , 0: 0 ,1: +0.05)

  • MUTE: mutes the Master output (sequencer keeps running).

  • MUTE_TOGGLE: toggles the muting of the Master output (sequencer keeps running).

  • PAN_ABSOLUTE: changes the pan of an instrument determined by the Action Param to the absolute value - from 0 to 127 - that the linked controller sends to Hydrogen.

  • PAN_RELATIVE: changes the pan of an instrument determined by the Action Param relative to the current value. For a value of 1 it increase the pan by 0.05. For all other values it decreases it by 0.05. (-1: -0.05 , 1: +0.05).

  • PAUSE: pauses playback.

  • PLAY: starts playback.

  • PLAY/PAUSE_TOGGLE: works the same as PLAY if the playback has not started yet and same as. PAUSE otherwise. (The playhead will not return to the start of the song, but will stay at its current position).

  • PLAY/STOP_TOGGLE: works the same as PLAY if the playback has not started yet and same as. STOP otherwise.

  • PLAYLIST_NEXT_SONG: opens the song in the current playlist corresponding to the song number specified in Action Param.

  • PLAYLIST_PREV_SONG: opens the previous song in the current playlist.

  • PLAYLIST_SONG: opens the next song in the current playlist.

  • RECORD/STROBE_TOGGLE: toggles recording (same as pressing the record button in the main toolbar).

  • RECORD_EXIT: deactivates recording.

  • RECORD_READY: toggles recording (same as pressing the record button in the main toolbar) if the playback has not started yet.

  • RECORD_STROBE: activates recording.

  • REDO_ACTION: redoes the previous undone action.

  • SELECT_AND_PLAY_PATTERN: works as SELECT_NEXT_PATTERN combined with PLAY.

  • SELECT_INSTRUMENT: selects the instrument in the drumkit corresponding to the number supplied in the incoming MIDI Event.

  • SELECT_NEXT_PATTERN: switches to the pattern specified in Action Param.

    [Note]Note

    If Hydrogen is in Song mode, the command will have no effect.

  • SELECT_NEXT_PATTERN_CC_ABSOLUTE: like SELECT_NEXT_PATTERN but only take effect in Stacked mode.

  • SELECT_NEXT_PATTERN_RELATIVE: switches Action Param patterns forward.

    [Note]Note

    This Action does only increment the pattern number and will only take effect if Hydrogen is in Stacked mode.

  • SELECT_ONLY_NEXT_PATTERN: clears the list of patterns scheduled to be played next and adds the one specified in Action Param.

    [Note]Note

    If either Song mode or Stacked mode is activated, this action will have no effect.

  • STOP: stops playback and moves the playhead to the beginning of the song.

  • STRIP_MUTE_TOGGLE: mutes the instrument specified in Action Param.

  • STRIP_SOLO_TOGGLE: mutes the instrument specified in Action Param.

  • STRIP_VOLUME_ABSOLUTE: see MASTER_VOLUME_ABSOLUTE, but applies to the Instrument Channel Strip specified in Action Param.

  • STRIP_VOLUME_RELATIVE: see MASTER_VOLUME_RELATIVE, but applies to the Instrument Channel Strip specified in Action Param.

  • TAP_TEMPO: another command calculating the average time passing between successive encounters of this commands and uses it to set the current tempo using Tap Tempo.

  • TOGGLE_METRONOME: toggles the metronome.

  • UNDO_ACTION: undoes the previous action.

  • UNMUTE: unmutes the Master output (sequencer keeps running).

16.2. MIDI-learnable Widgets

MIDI Events can be mapped to Actions in the dedicated table at the bottom of the MIDI tab of the Preferences Dialog. For more convenient handling some of these Actions are associated with GUI elements and can directly be mapped to MIDI Events by pressing Shift while left-clicking the widget.

Such elements are:

A 'Waiting for MIDI input...' popup informs you that Hydrogen is now waiting for you to press a key or turn/move a controller on your MIDI device.

[Note]Note

If the element that does not support MIDI automation, a different popup will inform you.

Chapter 17. OSC API

Open Sound Control (OSC) is a protocol for communication among programs, computers, and hardware, like synthesizers or multimedia devices, via networking protocols such as UDP or TCP. It can be thought of as a replacement for the MIDI protocol with rich benefits, like supporting symbolic and high-resolution numerical argument data, providing an URL-style naming scheme in combination with a pattern matching language, and allowing to bundle messages for a better handling of timing and simultaneous processing.

17.1. Basics

Hydrogen is able to receive and send OSC messages. This allows you to control it using various devices, like hardware OSC controllers, smartphones, tablets, or any PC. For Linux-based systems you can use or test these interactions using the command line program oscsend.

$ oscsend localhost 9000 /Hydrogen/NEW_SONG s /tmp/new.h2song
       
[Note]Note

To enable OSC support in Hydrogen, open the OSC tab in the Preferences dialog. Make sure that the "Enable OSC support" checkbox is activated, otherwise Hydrogen will not listen for incoming OSC messages.

[Tip]Tip

Hydrogen's port number defaults to 9000 for historical reasons. Since this is also the number used in the coding examples provided by liblo package, you may encounter other applications trying to register the same port (which is not possible). In order to avoid hiccups in your audio setup, it's advised to set a different default port in such cases.

[Warning]Warning

oscsend should only be used for sparse interactive testing and control via a command-line. Using it in scripts is not recommended since every time it sends a command it will registers a new client at the OSC server. If the Enable OSC feedback option in the OSC tab of the Preferences dialog is checked, Hydrogen will send its current state to all registered clients causing it to become slower and slower with every oscsend command sent. Soon you will experience visual lags. When unchecking this option, however, using oscsend is fine.

17.2. Commands

17.2.1. Syntax

The syntax for sending the commands is

$ oscsend localhost OSC_PORT_NUMBER COMMAND_URL COMMAND_TYPE COMMAND_ARGUMENT
         

with the supported types

  • ' ': no argument required

  • i: int32

  • f: float32

  • s: OSC-string (ASCII)

Detailed description of the formats and conventions used in the tables below

  • ff: two types placed right after each other indicated that the command requires two distinct arguments.

  • ' ',[f]: two types separated by a comma indicate that two versions of the command are available. To support TouchOSC all commands expecting no parameter are available in an alternative version requiring a float too. In the latter version the argument will be ignored and it is placed in squared brackets [f] to indicate its inferiority compared to the non-parametric version.

  • [0,]: limitations in possible values of the input parameters are indicated in the range column. For continuous values squared brackets [LOWER_LIMIT,UPPER_LIMIT] are used and a limit will be left empty when it is associated with a "natural" boundary, like the total number of instrument or pattern.

  • {-1;0;1}: sets of discrete values are shown in curly brackets and separated semicolon {VALUE;...} and usually feature the most convenient input options.

  • 1.0: also in order to support TouchOSC all numerical input has to be passed as type float while most of these numbers will be rounded to integers internally. For all true float inputs the range column uses a floating point representation of the limits, like 1.0 instead of 1.

  • X: all commands ending with a /X/ require this character to be replaced by an integer and do affect only the corresponding instrument, e.g. oscsend localhost 9000 /Hydrogen/PAN_ABSOLUTE/1/ f 0.3. The instrument number starts at 1 and is determined by the order of the instrument in the mixer and pattern editor.

17.2.2. All Commands

Table 17.1. All OSC Messages

URLtyperangedescription
/Hydrogen/PLAY/' ',[f] Starts playback.
/Hydrogen/PAUSE/' ',[f] Stops playback.
/Hydrogen/STOP/' ',[f] Stops playback and moves the playhead to the beginning of the song.
/Hydrogen/PLAY_PAUSE_TOGGLE/' ',[f] Works the same as /Hydrogen/PLAY/ if the playback has not started yet and same as. /Hydrogen/PAUSE/ otherwise. (The playhead will not return to the start of the song, but will stay at its current position).
/Hydrogen/PLAY_STOP_TOGGLE/' ',[f] Works the same as /Hydrogen/PLAY/ if the playback has not started yet and same as. /Hydrogen/STOP/ otherwise.
/Hydrogen/RECORD_READY/' ',[f] Toggles recording (same as pressing the record button) if the playback has not started yet.
/Hydrogen/RECORD_STROBE_TOGGLE/' ',[f] Toggles recording (same as pressing the record button).
/Hydrogen/RECORD_STROBE/' ',[f] Activates recording.
/Hydrogen/RECORD_EXIT/' ',[f] Deactivates recording.
/Hydrogen/NEXT_BAR/' ',[f] Moves the playhead to the next pattern/bar.
/Hydrogen/PREVIOUS_BAR/' ',[f] Moves the playhead to the previous pattern/bar.
/Hydrogen/SELECT_NEXT_PATTERN/f[0,]If Hydrogen is in Pattern mode, switch to pattern f. If Hydrogen is in Song mode, the command will have no effect.
/Hydrogen/SELECT_AND_PLAY_NEXT_PATTERN/f[0,]Works as /Hydrogen/SELECT_NEXT_PATTERN/ combined with /Hydrogen/PLAY/.
/Hydrogen/RELOCATE/f[0,]If Hydrogen is in Song mode, locates the playhead to pattern number f. If Hydrogen is in Pattern mode, locates the playhead to the beginning of the current pattern.
/Hydrogen/BPM_DECR/f Decreases the current tempo by f. Note that this command will have no effect if Hydrogen is both in Song mode and the Timeline is activated.
/Hydrogen/BPM_INCR/f Increases the current tempo by f. Note that this command will have no effect if Hydrogen is both in Song mode and Tempo Marker has been passed.
/Hydrogen/BEATCOUNTER/' ',[f] Calculates the average time passing between successive encounters of this commands and uses it to set the current tempo using the Beat Counter.
/Hydrogen/TAP_TEMPO/' ',[f] Another command calculating the average time passing between successive encounters of this commands and uses it to set the current tempo using Tap Tempo.
/Hydrogen/TIMELINE_ACTIVATION/f{0,1}Activates the Timeline if f is not zero and deactivates it otherwise.
/Hydrogen/TIMELINE_ADD_MARKER/ff[0,] [10,400]Adds a Tempo Marker to the Timeline. The first argument specifies the pattern/bar to at the marker to and the second its tempo.
/Hydrogen/TIMELINE_DELETE_MARKER/f[0,]Deletes a Tempo Marker at pattern/bar f on the Timeline.
/Hydrogen/MUTE/' ',[f] Mutes the Master output (sequencer keeps running).
/Hydrogen/UNMUTE/' ',[f] Unmutes the Master output (sequencer keeps running).
/Hydrogen/MUTE_TOGGLE/' ',[f] Toggles the muting of the Master output (sequencer keeps running).
/Hydrogen/MASTER_VOLUME_ABSOLUTE/f[0.0,1.5]Sets the volume of the Master fader.
/Hydrogen/MASTER_VOLUME_RELATIVE/f{-1;0;1}Changes the Master output volume, relative to the current setting. For a value of 0 it sets the volume of the master fader to 0. For a value of 1 it increases its volume by 0.05 and for all other values it decreases it by 0.05. (-1: -0.05 ,0: 0 ,1: +0.05)
/Hydrogen/STRIP_VOLUME_ABSOLUTE/X/f[0.0,1.5]See /Hydrogen/MASTER_VOLUME_ABSOLUTE/, but applies to the Instrument Channel Strip provided in the OSC command path as X. Please not that this only affects Instrument Channel Strips. Strip volume control for Component Channel Strips is not implemented yet).
/Hydrogen/STRIP_VOLUME_RELATIVE/X/f{-1;0;1}See /Hydrogen/MASTER_VOLUME_RELATIVE/, but applies to the Instrument Channel Strip provided in the OSC command path as X. Please not that this only affects Instrument Channel Strips. Strip volume control for Component Channel Strips is not implemented yet).
/Hydrogen/PAN_ABSOLUTE/X/f[0.0,1.0]Sets the pan of instrument strip X.
/Hydrogen/PAN_RELATIVE/X/f{-1;1}Changes the pan of the Instrument Channel Strip X, relative to the current value. For a value of 1 it increase the pan by 0.05. For all other values it decreases it by 0.05. (-1: -0.05 , 1: +0.05)
/Hydrogen/FILTER_CUTOFF_LEVEL_ABSOLUTE/X/f[0,127]For a value of 0 it sets the Filter Cutoff of the Instrument Channel Strip X to 0. For all other values it sets the cutoff to the provided number divided by 127.0. Please note that this parameter is not displayed anywhere in the Mixer but in the Instrument Rack.
/Hydrogen/STRIP_MUTE_TOGGLE/X/f Toggles muting of Instrument Channel Strip X. Input argument will be ignored.
/Hydrogen/STRIP_SOLO_TOGGLE/X/f Toggles soloing of Instrument Channel Strip X. Input argument will be ignored.
/Hydrogen/PLAYLIST_SONG/f[0,]Opens song f of the Playlist.
/Hydrogen/PLAYLIST_NEXT_SONG/' ',[f] Opens the next song in the Playlist.
/Hydrogen/PLAYLIST_PREV_SONG/' ',[f] Opens the previous song in the Playlist.
/Hydrogen/UNDO_ACTION/' ',[f] Undoes the previous action.
/Hydrogen/REDO_ACTION/' ',[f] Redoes the previous undone action.
/Hydrogen/JACK_TRANSPORT_ACTIVATION/f{0;1}Deactivated the JACK transport support for a value of 0 and activates it for all others.
/Hydrogen/JACK_TIMEBASE_MASTER_ACTIVATION/f{0;1}Unregisters Hydrogen as JACK Timebase Master for a value of 0 and registers it for all others.
/Hydrogen/SONG_MODE_ACTIVATION/f{0;1}Deactivated Song mode for a value of 0 and activates it for all others.
/Hydrogen/LOOP_MODE_ACTIVATION/f{0;1}Deactivated looped playback for a value of 0 and activates it for all others.
/Hydrogen/TOGGLE_METRONOME/' ',[f] Toggles the metronome.
/Hydrogen/SELECT_INSTRUMENT/f[0,]Selects a specific instrument in the drumkit.
/Hydrogen/NEW_SONG/s Creates an empty song which will be stored at the absolute path s.
/Hydrogen/OPEN_SONG/s Opens an existing song associated with the absolute path s.
/Hydrogen/SAVE_SONG/' ',[f] Saves the current song.
/Hydrogen/SAVE_SONG_AS/s Saves the current song to the absolute path s.
/Hydrogen/SAVE_PREFERENCES/' ',[f] Saves the preferences.
/Hydrogen/QUIT/' ',[f] Exits Hydrogen.

Part III. Examples

Chapter 18. A New Song

This chapter provides a quick-and-dirty walkthrough to Hydrogen. Refer to the tutorials and the technical Part II of this document for a more detailed overview.

18.1. Song Mode and Pattern Mode

Hydrogen has two main modes: Pattern mode and Song 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.

18.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 Grey play and pause button containing two vertical black lines (left) and a black triangle (right) pointing to the right. button in the Main Toolbar, and while the pattern is playing let's add notes by left-clicking in the grid of the Pattern Editor (see Figure 18.1). Adjust the grid resolution and tempo if needed.

[Note]Note

Remember some constraints of the grid: if you are working with a resolution of 1/16, you can't go back to 1/8 and remove a 16th note; same thing happens if you are working with a resolution of 1/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 Sidebar of the Song Editor before adding notes in the Pattern Editor!

Figure 18.1. The Pattern Editor

The Pattern Editor

18.3. A New Sequence

Once patterns are created (Figure 18.2), we can copy/paste/delete them using the Select mode.

Figure 18.2. Inserting Patterns in the Song Sequence

Inserting Patterns in the Song Sequence

18.4. Adjust from the Mixer

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

The Mixer (see Figure 18.3) is made of a number independent Instrument Channel Strips, each of these is bound to an instrument, plus a Master Fader Strip and a Blue button containing the black characters "FX". button to show and hide the FX Plugin Rack. Every line features 3 buttons ( Grey button with a filled black triangle pointing to the right. Grey button containing a black "S". Grey button containing a black "M". ), current maximum peak, FX volume control knobs, volume fader, and name of the track. Clicking on Grey button containing a black "S". will play the selected instrument, cutting the others. The Mute button Grey button containing a black "M". , 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 18.3 you can see a few volumes too loud). For a full description of the Mixer and its elements please see Mixer.

[Tip]Tip

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

The Mixer

Chapter 19. Create a New Drumkit

19.1. Creating a New Drumkit

In this chapter we will show you how to create a complete drumkit. Be sure to have a look at the conceptional design of a drumkit first. Keeping this in mind 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]Tip

Instead of creating your own drumkit, you can also open or download an existing one.

Lets make a brand new drum kit:

  1. in the Main Menu select DrumkitsNew. This will give you a single blank instruments. To add more instruments, select InstrumentsAdd instrument and to delete one, right-click a instrument and select Delete Instrument.

  2. Select an instrument to start editing it. This is done by left-clicking on the name of the instrument in the Sidebar. You will notice that the name of the instrument in the Instrument Editor matches the one that you clicked.

  3. Once you have your drumkit working the way you want, select DrumkitsSave As . 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.

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

  5. In order to share your drumkit with others, you have to export it using DrumkitsExport from the Main Menu. Select the drum kit that you wish to export, and give it a file name to save it to.

19.2. Creating a New Instrument

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. For details about the individual parameters please refer to Section 11.1.

To begin creating an instrument, select InstrumentsAdd 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 folder in the Hydrogen data directory (usually $HOME/.hydrogen/data/).

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 Grey button containing the black characters "LOAD LAYER". and point the Audio File Browser to your sample.

[Note]Note

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 Grey button containing the black characters "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.

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 (see Sample Selection for further info).

Now, in the Drumkit Editor, set up a simple pattern that plays this instrument. Adjust the velocity settings on each note in the Note Properties Editor so that you can get the different samples to sound. Now, set the playback to loop and notice how your different samples are getting triggered. To learn about editing a pattern, see Chapter 9.

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 be played. 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]Warning

It is very easy to set the Gain too high, causing your sample to clip. Remember to test the gain with full-velocity using the Grey button with a filled black triangle pointing to the right. button in the corresponding Instrument Channel Strip. 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]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 0.5-seconds. If you do not want this to happen you should use Rubber Band instead (see Section 12.2)

You can hear the sample in a layer by clicking the layer id (just below the 'General' and 'Layers' buttons).

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

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!

Part IV. Appendix

Chapter 20. Used File Types

Before working with Hydrogen, please familiarize with these file types:

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

Chapter 21. Shortcut Lists

Table 21.1. Shortcut Table

ShortcutDescription
Ctrl + NNew Project
Ctrl + OOpen File
Ctrl + DOpen Demo
Ctrl + SSave Song
Ctrl + Shift + SSave Song as
Ctrl + PExport Pattern as
Ctrl + MExport MIDI file
Ctrl + EExport Song (see Export Song)
Ctrl + LExport LilyPond file
Ctrl + QQuit Hydrogen
Ctrl + ZUndo an action
Ctrl + Shift + ZRedo an action
Alt + DShow Director
Alt + MShow Mixer
Alt + IShow Instrument Rack
Alt + AShow Automation Path
Alt + FToggle fullscreen mode
Ctrl + Alt + ISet Input mode to Instrument
Ctrl + Alt + DSet Input mode to Drumkit
Alt + PShow Preferences
Alt + ?Show Manual
BackspaceRestart song or pattern from the beginning
SpacePlay / Pause
Ctrl + SpaceStarts playback at the current cursor position. If playback is already rolling, it will relocate to the cursor position without pausing or stopping playback. Note that on MacOS this shortcut is bound to Alt + Space.
,Use the Beat Counter
\Use Tap Tempo
+Increase tempo by 0.1 BPM
-Decrease tempo by 0.1 BPM
F5Jump to previous song in playlist
F6Jump to next song in playlist
F9Jump to previous bar in the song
F10Jump to next bar in the song
F12Panic 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.

After you trigger a note, Hydrogen will start the attack phase in which the volume of the note is increase from 0 to its full velocity. After reaching full velocity, the volume will decay until it reaches the sustain level. When the note is released, Hydrogen reduces the volume from the sustain level back down to 0.

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. It represents the amount of time to increase the volume of a note from 0 (triggering) to full velocity.

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

Component

A component is a part of Hydrogen's instrument model. Instrument consist of one or more components, and each component consists of one or more layers.

To make an example: A snare could have two components. One component includes sounds from the top side of the snare drum, and the other component includes the sounds from the bottom side of the snare drum (where the snare wires are fitted). Each component can consist of several layers (snare drum hits with different velocities). Now you can adjust the volume of the two components to build your ideal drum sound. If you want more of the attack, you can put in more of the "top head" component. If you want more of the snare wires, you put in more of the bottom component.

[Note]Note

Components will be created for all instruments. So, even if you just want to have two of them in the snare you will automatically have two components in all other instruments. If you thus remove an empty component in one instrument, you will remove it for all other instruments - even if they are non-empty - too.

In addition, all layers belonging to the same component do share a common volume fader in the Component Channel Strips in the Mixer.

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 the attack phase, this is the amount of time for the volume of a note to decrease from full velocity to the sustain level.

See Also ADSR.

DC-offset

DC offset, or DC coefficient is the mean value of the waveform.

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) out of which only a single one can be unmuted. If another instrument from the same group is triggered, the former one will be muted (stop playing) immediately.

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

Normalization

Normalization is the process of applying a uniform gain to an audio signal in order to make its largest amplitude peak match a predefined value (usually 0dBFS).

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.

Pan

Panning allows you to change the position of both a mono and stereo sample within the stereo sound field of the resulting audio output. In other words, it controls whether the sound of e.g. the snare is coming from the left or right speaker or somewhere in between. With careful pan adjustments of the different instruments you can make you drumkit sound more natural and simulate the feeling of listening to a real kit in close distance.

The effect of note Pan depends on the instrument Pan knob, which is set in the Mixer. Look to next figure to see how the Resultant Pan is determined (from version 1.1):

Figure 44. Visualization of the Interaction of the Different Pan Parameters

Visualization of the Interaction of the Different Pan Parameters


This multi-pan model resembles a "matryoshka" in some way: the note Pan value moves the Resultant Pan in a smaller pan range centered at instrument Pan, whose extension depends on instrument Pan value. Some examples: if instrument Pan is central, note Pan moves the signal in the whole stereo range (really from Left to Right); if instrument Pan is sided, note Pan moves the signal in a progressively smaller stereo range centered at instrument Pan; if instrument Pan is HARD-sided, note Pan doesn't have any effect.

The way the Resultant Pan will be translated into the volume of each stereo channel is determined by the Pan Law in the Mixer settings.

Release

The amount of time to reduce the volume of a note 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, Low-Pass Filter, High-Pass Filter, 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. Each time a note is triggered within Hydrogen the corresponding sample will be played back (after applying all customization and effects).

Sustain

The level (how loud; volume) to hold the note between the decay and the release. It is given as percentage of the velocity and does not depend on time.

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.