Hydrogen v1.2.4 Manual

2024-12-07

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
3.1. Keyboard usage in Editors
II. Using Hydrogen
4. Overview
4.1. Main User Interface
4.2. Drumkit Concept
4.3. 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
16.1. MIDI Input
16.2. MIDI Note Rendering
16.3. MIDI Output
16.4. MIDI Controlling
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. Licensing
20.1. License Parsing
20.2. Common Licenses
21. Used File Types
22. 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 Interface Tab
5.6. The Colors Tab
5.7. The Font 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. 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
20.1. Dialog to view and alter the Properties of a Drumkit
47. Visualization of the Interaction of the Different Pan Parameters

List of Tables

17.1. All OSC Messages
20.1. Common Licenses
22.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, Windows, and Linux.

[Note]Note

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

As operation systems and build environments change more often and totally independent from Hydrogen, all build instructions can be found in our (more dynamic) Github Wiki:

[Tip]Tip

These instructions may not be cutting-edge or might even fail on your particular system and setup. That is most likely because the development team uses and has access to just a small subset of systems.

The AppVeyor build pipelines used to create the Hydrogen releases might get you back on track. But you can always use the issues or discussions on Github or our mailing list to ask questions.

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 (or mouse wheel) and implement what should be the most obvious behaviour for any control. The right mouse button may sometimes perform an alternate action or brings 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 a MIDI Event to MIDI-learnable widget (see MIDI-learnable Widgets).

  • Shift + mouse wheel|| : change values of rotaries and faders at a faster pace.

All rotaries and faders can also be set by using the keyboard. First, you have to click the widget for it to be focussed, indicated by a coloured highlight (orange per default). Now, you can enter numerical input via your keyboard. All numbers and dots are concatenated. If you want to reset your input or start a different one you can either press ESC or wait a couple of seconds.

3.1. Keyboard usage in Editors

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 (see Virtual Keyboard).

Part II. Using Hydrogen

Table of Contents

4. Overview
4.1. Main User Interface
4.2. Drumkit Concept
4.3. 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
5.5.1. Interface
5.5.2. Colors
5.5.3. Font
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. Selected Pattern Mode
8.2.5. Stacked Pattern 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. Note Types
9.1.2. Controls
9.1.3. 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
16.1. MIDI Input
16.2. MIDI Note Rendering
16.2.1. Input Mode
16.2.2. MIDI Note Mapping
16.3. MIDI Output
16.3.1. MIDI Feedback
16.4. MIDI Controlling
16.4.1. MIDI Events
16.4.2. Actions
16.4.3. 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 Interface tab of the Appearance tab in 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.

Drumkits can most easily be loaded by right-clicking their name in the Sound Library. Once loaded its name will be displayed in the Pattern Editor. All changes done to the kit, like altering parameters and adding or removing samples or instruments, are stored in the current song. They need to be saved to the drumkit in case you want them to persist and to be applicable to other songs as well. The actions available in the Drumkits section of the main menu do act on the kit associated with the current song. All options available through the Sound Library on the other hand soley apply to the stock kits. So, reloading the current drumkit will overwrite your local changes in the song using the default parameters stored in the kit's drumkit.xml file and altering the current kit's properties via the Sound Library does only affect the stock kit and not the one associated with your current song.

4.3. Virtual Keyboard

For quick checks and recording (or in case you do not have a MIDI device at hand), you can also use Hydrogen's Virtual Keyboard. It emulates note triggering via MIDI NOTE_ON events (see MIDI Note Rendering).

[Note]Note

Key strokes of the Virtual Keyboard don't trigger Actions associated with NOTE_ON events.

The figure below depicts which keyboard key is associated with which instrument number in Input Mode Drumkit or instrument pitch in Input Mode Instrument.

Picture illustrating the mapping of Hydrogen's Virtual Keyboard to the layout of the computers' keyboard.
[Note]Note

When using German or French keyboard layout the overall mapping is still the same.

4.4. Recording in Hydrogen

In addition to manually program patterns using mouse and keyboard you can also record one or multiple patterns. 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 the 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.

[Tip]Tip

By locking the Pattern Editor in Song Mode Hydrogen will automatically select the pattern recorded notes will be inserted to.

[Note]Note

The incoming notes will be added in a non-destructive way. This means when attempting to add a notes at a position already containing one of equal pitch, the new note will be discarded and the old one kept.

Song ruler with a red rectangle indicating the punch in area.

You can also limit patterns new notes will be recorded to by defining a continuous punch in area via right click and dragging the cursor to the right in the ruler of the Song Editor.

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.

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.

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

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 backups of your Hydrogen session using tar -chf. These can even be ported and used on systems which do not have the required drumkits installed.

[Warning]Warning

Note that only the stock drumkit loaded last will be linked in the session folder. In case you only alter instrument parameters or delete instruments or samples this will work perfectly fine. But as soon as you add instruments from other drumkits or external samples, the linked drumkit folder won't contain all samples required by your current song anymore. You need to saved the kit (or create a new one) in order to ensure consistency.

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 (auto, jack, pulseaudio, ...)
-p, --playlist <File>       Load a playlist (*.h2playlist) at startup
-s, --song <File>           Load a song (*.h2song) at startup
-k, --kit <DrumkitName>     Load a drumkit at startup
-i, --install <File>        Install a drumkit (*.h2drumkit)
-V, --verbose <Level>       Level, if present, may be None, Error, Warning, Info, Debug
-L, --log-file <Path>       Alternative log file path
-T, --log-timestamps        Add timestamps to all log messages
-P, --data <Path>           Use an alternate system data path
    --config <Path>         Use an alternate config file
    --layout <Layout>       UI layout ('tabbed' or 'single')
-O, --osc-port <int>        Custom port for OSC connections
-n, --nosplash              Hide splash screen
      

[Note]Note

Which audio drivers are supported depends on both your platform and its installed packages. Your local help message will display all available options.

Chapter 5. Preferences

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

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 paths stored in a .h2playlist file will be absolute or 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.

  • Numbers of autosaves per hour: sets how often Hydrogen will generate a backup of your current song in case it contains any unsaved modifications. In case there is an autosave file with a more recent timestamp next to a song, Hydrogen will ask you upon opening whether to restore the unsaved changes or to load the raw song.

    [Note]Note

    These autosave files will be hidden and contain an additional suffix "autosave". E.g. if your current song is called example.h2song the backup will be stored in .example.autosave.h2song within the same directory. But you do not need to be careful when chosing a song name. Hydrogen will take care of finding a filename for the backup not existing yet.

  • 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, OS-dependent 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.

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

    • CoreAudio: A driver for MacOS.

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

  • Host API (PortAudio only): some systems (notably Windows) have more than one native way for applications to interact with audio hardware (APIs), and not all audio devices are supported by all APIs. If you don't find your sound device in the device list, try changing the Host API setting.

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

    [Note]Note

    The Preferences dialog does not support hot plugging. In case you connected your device while the dialog was already opened, be sure to close and reopen it again.

  • Buffer size: specifies the size of the batch of time Hydrogen will process in one run. Supported values are from 100 to 5000, although this can vary depending on audio system and sound device.

    In general, selecting a smaller buffer size will allow the audio system to reduce latency (the lag between hitting a key and the sound being played), but can lead to increased likelihood of audio glitches.

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

  • 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 support: whether Hydrogen will respond to or ignore the incoming tempo and bar, beat, tick (BBT) position 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 receive and send MIDI messages.

  • Input: selects the device/port Hydrogen will expect MIDI messages to receive from (see MIDI Input).

    [Note]Note

    For now the list of available Input and Output MIDI devices/ports is compiled for the current MIDI driver when opening the Preferences dialog. If you switch to another driver or connect a device while the dialog is already open, be sure to close and reopen it again in order to have an updated list.

  • Output: selects the device/port Hydrogen will send MIDI messages to (see MIDI Output).

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

    Outgoing MIDI traffic is not affected. The corresponding channels are set on a per-instrument basis in the Instrument Editor.

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

    [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 (see MIDI Feedback).

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

  • Use output note as input note: if checked the instrument mapped to an incoming MIDI note is determined by its MIDI Out Settings in the Instrument Editor. Otherwise, the default MIDI mapping (based on the instrument order in the Pattern Editor) will be used (see MIDI Note Mapping).

    [Note]Note

    This option only takes effect if Input Mode in the Options tab of the Main Menu is set to Drumkit.

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

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

5.5. Appearance

The settings available in the Appearance tab let you modify the look of Hydrogen and are treated differently than the ones found in other tabs. While the latter are stored in the hydrogen.conf file in Hydrogen's data folder, the appearance is stored in .h2theme files in the dedicated theme subfolder. The idea is that while the remaining settings are tailored to your local setup, a theme is something that is easily portable. E.g. you can create a custom dark theme and share it with the Hydrogen community without them having to adopt it to their local setup.

This can be done using the Grey record button with label "Export Theme". and Grey record button with label "Import Theme". buttons. All changes applied to a theme (unless indicated otherwise in the dialog) will take effect immediately. If you are satisfied with the result, accept the dialog by clicking the OK button to save it. If you, however, want to reset all options to their state encountered when opening the dialog or importing last theme, hit the Grey record button with label "Reset Appearance Tab". button or close the dialog.

5.5.1. Interface

Figure 5.5. The Interface Tab

The Interface Tab

The Interface tab covers the overall appearance of Hydrogen.

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

    [Tip]Tip

    Using this option you might be able to better integrate Hydrogen into your operating system.

  • Meters falloff speed: specifies how fast the visual update of the peak values shown in the Instrument Channel Strips, Component Channel Strips, and Master Fader Strip will be done.

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

    [Note]Note

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

  • Icon color: while the color of all button labels can be set in the Colors tab, the icons hold the color used in the corresponding SVG file and can not be altered freely. To still allow you to change the overall colors conveniently, Hydrogen is shipped with all icons available in either Black and White color.

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

    • Automatic: uses as many colors as there are patterns in the song.

    • Custom: uses a certain number of colors in a repeated way.

    By chosing Custom two more settings will become available:

    • Number of colors in Song Editor: how many different colors should be used.

    • Selected colors: a list of color buttons. Clicking one will open a dialog allowing you to change its color.

5.5.2. Colors

Figure 5.6. The Colors Tab

The Colors Tab

The Colors tab exposes most of the colors used within Hydrogen.

You can select a color by clicking its name in the tree you find on the left side. It is grouping the individual colors into

  • General: basic Qt colors. Most of them are used in many parts of the GUI. But some of them might be not used at all. So, don't worry in case altering one of these does not result in visual changes.

  • Widgets: colors in small and interactive elements of the GUI, like buttons or combo boxes.

  • Song Editor: colors specific to the Song Editor.

  • Pattern Editor: colors specific to the Pattern Editor.

Once selected you can change a color by either clicking the large colored rectangle in the upper right part of the tab (which opens a color dialog) or by using the spinboxes and sliders in the lower right part. The latter represent the colors components according to the RGB as well as the HSV color model.

5.5.3. Font

Figure 5.7. The Font Tab

The Font Tab

The Font tab contains all options affecting strings, characters, and numbers displayed in the GUI.

  • Application font: specifies the font family used for headings, larger labels, and most parts of the dialogs and popups.

  • Item font: specifies the font family used for smaller elements, like the name of patterns in the Sidebar of the Song Editor or the name of the samples in the Layers view of the Instrument Editor.

  • Widget font: specifies the font family used for small and interactive elements of the GUI, like buttons.

  • Font size: accessibility option to increase or decrease the overall font size of Hydrogen.

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.

    [Note]Note

    Prior to version 1.2 of Hydrogen new songs were based on DefaultSong.h2song in Hydrogen's data folder and all backups of unsaved changes were associated with it. This had the unfortunate downside that it was quite easy to lose all changes made in a new song in case you forget to change it.

    Since 1.2 new songs are not associated with any file anymore and Hydrogen makes sure the backup file generated does not exist yet and no data gets overwritten. In addition, when working on a newly created song and closing the application without saving the changes, e.g. due to a power outage, Hydrogen is now capable of restoring these changes from the backup file and prompts you at the beginning of the next session whether it should do so.

    If you are used to altering the DefaultSong.h2song and use it as a template, you can still do the same by opening and saving it using a different name.

  • Song Properties: 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 songs 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 the songs subfolder of Hydrogen data directory ($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 as well as audio files for all individual instruments.

    For audio formats FLAC, Ogg/Vorbis, Ogg/Opus, and MP3 the option Compression Level instead of Samplerate and SampleDepth is available. For FLAC it trades off export time against resulting file size. For all other formats (all lossy compression ones) it trades off audio quality against resulting file size.

  • 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: exits 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

    Using 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 associated with the current song, such as name, author, license, general information, image, and image license.

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

    [Tip]Tip

    See Drumkit Concept and Licensing for further information.

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

    [Tip]Tip

    See Drumkit Concept and Licensing for further information.

  • Export: compresses and stores all instrument samples and settings of the current drumkit 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 having multiple ones 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 http://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 on the 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.

    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.

    [Note]Note

    In the rare case a drumkit or one of its contained sample files features UTF-8 encoded characters but your system's locale is not properly set up to handle these, those characters will be omitted. For the kit itself it just means it will carry a slightly different name. But renamed sample files can't be found by Hydrogen anymore when loading the kit. In case you see a popup dialog during installation complaining about encoding, be sure to check the instruments of the imported kit and reassign missing samples using the Instrument Editor.

    A description of how to fix encoding issues on Windows can be found in our Wiki.

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 leaving only an empty one.

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

6.5. View

6.6. Options

  • Input mode: sets the current Input Mode.

  • 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 22 for further related shortcuts) and stop playback, record new patterns (see Section 4.4 for details), fast forward and rewind 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 display showing 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 display 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 transport 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 of the last up to 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 controller, Hydrogen will use the provided tempo and both Tap Tempo and Beat Counter will be disabled. If Hydrogen itself is in control of JACK Timebase, 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 display 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).

You can use Grey button containing black outlines of a classical metronome. 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.

In case a XRUN event occurs (CPU load is so large that audio processing could not be finished in time) the outlines of the CPU bargraph will be colored red for a couple of seconds.

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

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.

The Grey button containing the text "Timebase". button indicates the current state of JACK Timebase support. Via this protocol one JACK cilent - registered as Timebase controller - can share its tempo and position information as beat, bar, and tick with other JACK clients supporting this protocol - Timebase listeners. When pressing the button Hydrogen will attempt to take control of Timebase.

[Tip]Tip

When using JACK Timebase transport relocations should always be done within the Timebase controller application. Otherwise, you could end up at unexpected positions due to the limitations of that protocol.

[Note]Note

The JACK Timebase API uses other terms for these two classes of clients we do not repeat in here.

  • Grey button containing the text "Timebase". - Timebase support itself is activated but neither Hydrogen nor an external application is currently in control. Hydrogen will use its internal tempo.

  • Blue button containing the text "Timebase". - Hydrogen is in control of JACK Timebase, uses its internal tempo, and boardcasts it to other JACK clients.

  • Red button containing the text "Timebase". - An external application is registered as Timebase controller. Hydrogen will disregard its local tempo - BPM widget, Tap Tempo, Beat Counter, Timeline - and, instead, adopts tempo and position provided by the controller.

  • Grey button containing the greyed-out text "Timebase". - JACK Timebase support was disabled in the Audio tab of the Preferences.

    [Tip]Tip

    This can be useful in the presence of a controller with a faulty Timebase implementation or in case of a bug in Hydrogen's own implementation.

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 display 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 line below displays status messages telling what Hydrogen is up to. Clicking it will open a popup menu showing the last 100 messages.

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

You can alter the colors of the squares using the Interface tab in the Appearance tab of 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 to the transport control provided in the Main Toolbar you can use the Song Ruler to navigatw. This is the area above the grid and right of the Main Controls. The position clicked will be rounded to the nearest pattern beginning (indicated by the faint playhead shown upon hovering) 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 Selected Pattern Mode and Stacked Pattern 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 vertically aligned. The lower one contains a black arrow tip pointing downwards and the upper 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. : indicates that Hydrogen is in Draw Mode or Grey button with pointer and dashed rectangle. : in Select Mode.

  • Grey button if a black lock. : locks the Pattern Editor.

    If the Pattern Editor is locked, the user won't be able to select a pattern using the Sidebar of the Song Editor. Instead, Hydrogen will automatically select the currently playing pattern. In case there is more than one pattern present in the current row, the bottom-most one will be chosen.

    [Tip]Tip

    This becomes quite handy when recording notes in Song Mode. Hydrogen will always select the pattern recorded notes will be inserted to.

    [Note]Note

    This button is only enabled in Song Mode. In Pattern Mode recorded notes are always added to the currently selected pattern.

  • Grey button with a horizontal black line. : indicates that Hydrogen is in Selected Pattern Mode or Grey button with three horizontal black lines stacked vertically. : in Stacked Pattern Mode.

    [Note]Note

    These two buttons will only be enabled in Pattern Mode. In Song Mode playing patterns are solely determined by the grid in the Song Editor.

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 Selected Pattern mode and Stacked Pattern Mode). These will determine which parts of the song you will listen to during playback.

[Note]Note

While Select Mode, Draw Mode, Selected Pattern Mode, and Stacked Pattern 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 is enabled if the Grey button with pointer and dashed rectangle. button is shown in the Controls of the Song Editor and 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 is enabled if the Grey button containing a black brush. button is shown in the Controls of the Song Editor and 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 colorful) 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 in the Transport Controls of the Main Toolbar 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 Controls, the playback will move seamlessly to the beginning again after reaching the end of the song.

8.2.4. Selected Pattern Mode

When Pattern Mode is selected in the Transport Controls of the Main Toolbar and Grey button with a horizontal black line. is shown in the Controls of the Song Editor Hydrogen will play the pattern that is currently selected in the Song Editor and displayed in the Pattern Editor.

[Note]Note

When referring to Pattern Mode in this manual the described context works with both Selected Pattern Mode and Stacked Pattern Mode.

8.2.5. Stacked Pattern Mode

When Pattern Mode is selected in the Transport Controls of the Main Toolbar and Grey button with three horizontal black lines stacked vertically. is shown in the Controls of the Song Editor Stacked Pattern Mode is used.

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 Pattern Mode will play multiple patterns simultaneously, on a loop. You can select or unselect a pattern by Ctrl + left clicking the pattern's name or by clicking the empty triangle in the Sidebar of the Song Editor. Patterns currently playing are indicated by green triangles while those about to start and stop when playback is looped to the beginning again are indicated using yellow and red ones respectively.

[Tip]Tip

You can alter the colors of the indicators in the Colors tab of the Preferences.

[Note]Note

When referring to Pattern Mode in this manual the described context works with both Selected Pattern Mode and Stacked Pattern Mode.

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 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 at the beginning of any column. 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 "Timeline". button.

[Note]Note

Please note that the Timeline is neither available in Pattern Mode nor in the presence of a JACK Timebase controller.

Now, simply left-click this widget in the middle or upper part and a window will pop up where you can enter the new tempo.

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.

[Note]Note

When disabling the Timeline using the Grey button containing the black characters "Timeline". button, the tempo resets to the previous value used before enabling the Timeline. This one will also be used for all parts of the song located prior to the first Tempo Marker. To indicate this behavior a special, faint Tempo Marker is shown at the first column that can not be removed by the user. You can, however, overwrite it with your custom tempo by clicking it and placing a regular Tempo Marker on top of it.

8.5. Tags

In addition to altering the tempo when the song switches from e.g. intro into 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 the beginning of a column. They will be shown in the Director whenever the playhead passes them.

To add a Tag, you can either left-click the bottom of the Timeline or middle-click Timeline or Song Ruler. A dialog 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 T at the bottom of the Timeline and can view its content by hovering over it.

8.6. Playback Track

Figure showing the Playback track on top 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 left of 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.

  • Grey button containing the text "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 Playback Track.

  • Grey button containing the text "Mute". : mutes the Playback Track.

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

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. and Blue button with a quasi-3D display a cylinder with black outlines, blue sides, and a white top. button (located on the top-right of the Pattern Editor).

[Note]Note

If you are editing a pattern in Selected 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.

9.1. General

9.1.1. Note Types

Four notes are displayed in one line of the Pattern Editor. The one to the left is rendered as black circle. The one right of it consistents of an identical black circle as well as a black triangle expands over two grid cells. The third one is a a semi-transparent circle and the right-most one is rendered as a blue circle.

There are a couple of different notes you can create and encounter within the Pattern Editor. From left to right: regular, custom length, inaccessible, and stop-note.

  • Solid black circle. : Regular note (or just note) can be created using left-clicking or Enter.

    Triggers playback of a whole sample of the associated instrument.

    [Note]Note

    The inner color of the circle represents the note's velocity. Black: 80%, red: 100%, blue: 50%, white: 0%. But in contrast to a stop-note these circles do always have a black outline.

  • Solid black circle extended to the right by a rectangle of the same color. : Custom length note can be set by right-click dragging a regular note.

    Similar to a regular note but only plays back the sample until the specified point. Afterwards the Release of the instrument kicks in to cut off the sample gracefully (small values) or to add a fade out (larger values).

    [Note]Note

    The length of the note is specified in ticks and changes along with the tempo. The sample, however, consists of a certain amount of audio frames and will not change with tempo (unless you activated Rubberband).

  • Semi-transparent black circle. : Inaccessible note

    A regular note which is not part of the pattern you are currently editing. Instead, it belongs to a different one currently played as well. This could be within the same column in Song Mode while the Pattern Editor is locked, activated in Stacked Pattern Mode, or as part of a Virtual Pattern.

  • Solid blue circle. : Stop-note can be created using Shift + left-clicking

    Stops rendering of all notes associated to the corresponding instrument. Afterwards the Release of the instrument kicks in to cut off the samples gracefully (small values) or to add fade outs (larger values).

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

  • Two blue combo boxes showing "4.00" and "4" and are labeled "Size". : lets you choose the length of the pattern (in note values).

    The left combo box represents the numerator of your current measure. You can enter a decimal numerator, like 4.5/4, but since resolution in Hydrogen is limited, some values are not supported and can not be entered.

    [Note]Note

    Hydrogen supports (only) the following denominators (right combo box): 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).

    [Tip]Tip

    Typing / within the numerator (first combo box) also you to quickly jump to the denominator.

  • Blue display 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 1/8 and remove an upbeat 16th note by clicking it. But you can still select and remove it via dragging or keyboard.

  • Blue button containing a black speaker symbol. : when checked Hydrogen will play back notes 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. Or switch the currently selected instrument using and .

  • Blue button showing a black 2 by 3 grid. : enables/disables quantization. When checked, notes recorded using incoming MIDI messages or Hydrogen's 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 cylinder with black outlines, blue sides, and a white top. : switches between Drumkit Editor and Piano Roll Editor.

9.1.3. Sidebar

Figure 9.3. The Sidebar of the Pattern Editor

The Sidebar of the Pattern Editor

The section on the left shows you which drumkit was loaded last and below that you can see the instruments that are part of the current song.

[Note]Note

Keep in mind that these are not necessarily the instruments of the kit associated with the displayed name! Each song has its own set of instruments.

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. This is where you can add notes depending on the used pattern size and resolution.

As in the Song Editor, the arrow keys can also be used to move around individual or group of notes, 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 subsequently be deleted with Delete as well as be moved by dragging (or Return followed by ||| movements) them 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.

[Tip]Tip

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

[Tip]Tip

The color of the vertical bar will change according to the velocity value you have defined and can be customized in the Colors tab of the Preferences.

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.

  • 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 drumkits, it allows you to reuse and mix instruments as well as 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 kits present at both system and user level as well as those loaded via command-line option or OSC command.

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 which is why you only have read access to the kit's properties and can not delete them. If you want to change one of these kits you have to load it via right click and save it first. This will add a modified copy on user level.

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 subfolder. 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 creating songs or drumkits or redistribute existing ones you need to pay special attention to the licenses of the drumkit(s) you are using.

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

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

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

  • 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, however, that this only affects notes for which you set a note length smaller than the underlying sample length (see Section 9.2). All other notes are played back till the end of the sample without reaching the release phase.

[Note]Note

All transitions between the individual ADSR phases are done using exponential functions.

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 display showing "1.00" (left) next to a rotary titled "GAIN" (middle) and a display 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 e.g. the layer gain, the instrument gain, the component gain, or the instrument volume. (A full list of all contributions can be found in Gain). 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 display showing 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 displays 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 need to configure the MIDI output Channel and Note for an instrument.

[Note]Note

In order to enable MIDI output, the channel of an instrument must be set to a value other than off, like 10, and the instrument must contain at least one sample. Having just an empty one is fine.

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 displays 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. 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: zero 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 display titled "SAMPLE SEL." with a button to open show 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 displays: "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 Gain: 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.

    Right-clicking the button will stop all currently playing notes of the associated instrument.

    [Tip]Tip

    This is especially useful when dealing with long samples and Auto-Stop Note is disabled.

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

  • 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 notes 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: 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 display above shows its peak value.

    [Tip]Tip

    You can adjust the falloff speed of the peak values in the display in the Interface tab of 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: 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 displays shows its peak value.

    [Tip]Tip

    You can adjust the falloff speed of the peak values in the display in the Interface tab of 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 slots where you can load a LADSPA effect plugin already installed on your system.

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

[Note]Note

Linux Audio Developer's Simple Plugin API (LADSPA) is the only plugin format supported by Hydrogen and it is tailored to be used on Linux platforms. On macOS it's rather easy to get the plugins running as most of their code works on this platform too without any changes. On Windows, however, things are not that straight forward. As of 2022 there are no packages, bundles, or other applications shipping LADSPA plugins for Windows usable within Hydrogen and you have to compile them from source too. But in contrast to Linux and macOS your have to adopt the codebase first (which is most easily done for the CMT plugins). So, it's possible to use plugins under Windows but, unfortunately, not feasible at all.

You can select a plugin using the FX selector opened by clicking the Grey button containing the black characters "EDIT". button.

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 "Deactivate" - are shown. In the remainder there are several vertical strips stacked horizontally with each one carrying: an display showing the current value (top), the name of the parameter (left), and a fader with included meter (right).

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

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 in the FX Rack of the mixer to increase/decrease how much of this FX will be added to the master output.

The FX itself lives in an aux channel. This means it's not directly added into the signal path of any instrument line but a copy of the audio output of each of them is sent to the FX for processing instead. The amount of signal - 0 per default - send by each can be controlled using the pre-fader FX knobs in the corresponding instrument channel strip. The top left one refers to the top-most FX, the top right one to the second FX and so on. This means, in order to get an all wet signal (none of the original signal but just the processed one enters the mix) of an instrument, you have to ramp up the pre-fader FX knob and set the line's fader to 0.

[Note]Note

Since the FX signal lives in an aux channel it is neither affected by Auto-Stop-Note nor Mute Groups.

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.

    This means for instance when setting the resolution of a pattern to 1/16 every second note will be affected. If set to 1/32 instead, every third out of four consecutive notes will be affected. For smaller resolution the swing won't have any effect.

    [Note]Note

    Please also notice that the amount of lag depends on the current speed as well. The slower the song, the larger is the offset introduced (it scales with 1/tempo).

[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

Clicking the Button holding the cog symbol right of the "Master" title of the Master Fader Strip. button in the upper right corner of Master Fader Strip opens 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 script 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

MIDI is a standard for connecting electronic devices, like your edrum or keyboard and your computer. It enables them to exchange messages commonly used in audio synthesis, processing, and recording.

This chapter will, firstly, feature a guide about how to connect your MIDI device to Hydrogen in section MIDI Input. Next, you will learn how to trigger sounds in Hydrogen using incoming MIDI events in MIDI Note Rendering. Section MIDI Output gives a short description of how to connect and send MIDI data from Hydrogen to other applications and, finally, MIDI Controlling covers how to control Hydrogen using incoming MIDI messages.

16.1. MIDI Input

Before you can use Hydrogen as a MIDI synth or control it using its Actions, you have to setup your incoming MIDI connection.

  1. Connect your MIDI device to your computer and ensure all required drivers are installed.

  2. Open up the MIDI System tab of the Preferences and choose the MIDI driver you connected your device to.

  3. Choose your MIDI device/port from the Input dropdown list.

    [Note]Note

    For now the list of available input and output MIDI devices/ports is compiled for the current MIDI driver when opening the Preferences dialog. If you switch to another driver, be sure to click OK and reopen the Preferences dialog in order to have an updated list.

    [Tip]Tip

    For a lot of MIDI drivers you can also establish connections with external tools, like QjackCtl for JACK-MIDI and ALSA-MIDI.

  4. Click OK to store all changes and restart Hydrogen's MIDI driver.

  5. Check for incoming MIDI messages in Hydrogen. Each time you send a MIDI message using your device the MIDI-in LED in Hydrogen's Main Toolbar should light up in a blue color and a corresponding message should appear in the log on log level Info (see Open Log File).

If you still do not hear any audio, check the Instrument strips in the Mixer. On each MIDI event corresponding to an instrument the LED in its strip should light up. If so, the problem is most probably with your audio output setting.

16.2. MIDI Note Rendering

Hydrogen can be used as MIDI synth for your MIDI device. All settings in both Instrument Editor and Mixer are applied but instead of notes picked up from patterns while playback is rolling, incoming MIDI messages will trigger sounds. In addition, all incoming MIDI notes can be recorded.

NOTE_ON type MIDI messages will trigger a note while NOTE_OFF will stop all note rendering in the corresponding instrument. This behavior might be exactly what you expected from an edrum but, on the other hand, also might be a pain when using a MIDI keyboard (since releasing a key will stop the note). In this case you can disable NOTE_OFF message handling by unchecking Ignore note-off in the Preferences.

Which incoming MIDI note is mapped to which particular instrument does depend on multiple settings. First of all, each NOTE_ON message is assigned a channel - the default one in the General MIDI standard is 10. Using Channel in the Preferences you can set whether Hydrogen should listen to incoming notes on all channels or just to a single one. The second degree of freedom of a note is its pitch. Depending on the current Input Mode it is either mapped to a pitch-shifted sample of the currently selected instrument or an instrument of the current drumkit. The latter will be discussed in section MIDI Note Mapping in more detail.

[Note]Note

When NOTE_ON messages are mapped to Actions they will be discarded and do not trigger sound when Discard MIDI messages after action has been triggered is checked in the Preferences.

16.2.1. Input Mode

Using Input Mode in Options within the Main Menu you can choose between two different ways of triggering sounds and record notes.

Drumkit maps different MIDI notes (or Virtual Keyboard strokes) to different instruments of the current drumkit. Instrument, on the other hand, maps them to pitch-shifted samples of the instrument currently selected in the Pattern Editor. You can use these modes to record notes into both Drumkit Editor and Piano Roll Editor respectively. The third property of a MIDI note, its velocity, will be used as velocity for the triggered note.

16.2.2. MIDI Note Mapping

If Input Mode was set to Drumkit, Hydrogen has two ways of dealing with incoming MIDI notes: order-based and output-based.

Per default mapping in done order-based. Hydrogen maps incoming MIDI notes of pitch 36 and above to instruments of your drumkit. A MIDI note of pitch 36 will trigger a sample of the first instrument of your current drumkit, one of pitch 37 a sample from the second one and so forth. When choosing this option you can control mapping by drag-dropping the instruments into the desired order.

Alternatively you can use output-based mapping by checking Use output note as input note in the Preferences. This way an incoming MIDI note is mapped to the instrument which's MIDI Output Note setting in the Instrument Editor matches its pitch.

16.3. MIDI Output

Hydrogen allows you to send both notes encountered during playback as NOTE_ON and NOTE_OFF messages and the current state of specific controls using MIDI Feedback as CC messages.

But first of all you have to set a MIDI Output device in the Preferences.

[Note]Note

The list of available MIDI output devices/ports is compiled for the current MIDI driver when opening the Preferences dialog. If you switch to another driver, be sure to click OK and reopen the Preferences dialog in order to have an updated list.

Now every note encountered during playback will trigger a MIDI note with the note's velocity and the channel and pitch specified in the corresponding instrument. In case the channel is set to off, no MIDI message will be sent.

[Note]Note

To enable MIDI output, you have to set both an output device in the Preferences as well as all instrument MIDI channels to a dedicated value, like 10.

16.3.1. MIDI Feedback

You can also keep other MIDI-capable applications posted about parameter changes in Hydrogen using MIDI Feedback. If one or more CC events are mapped to a parameter supporting feedback, all of its changes - also those triggered by incoming MIDI messages - will cause Hydrogen to send a CC message. This message will carry the same message parameters as the one mapped to the particular parameter within Hydrogen and will contain its value mapped to a range between 0 and 127.

Supported feedback parameters are

16.4. MIDI Controlling

This section explains how you can change parameters in Hydrogen, start playback or recording, switch patterns, and many more using incoming MIDI messages. Firstly, we will have a look at which types of MIDI messages are supported in MIDI Events. Then we will discuss two different ways of mapping them to Actions: via the MIDI table in the Preferences and MIDI-learnable Widgets

16.4.1. MIDI Events

There is a vast number of MIDI message types available. But Hydrogen only supports a selection of most common ones listed below.

  • NOTE_ON: an incoming note triggered by a regular black/white key of a MIDI keyboard or a pad of an e-drum. The note's pitch will be used as event parameter and its velocity as new value.

  • CONTROL_CHANGE (CC): controller commands coming from e.g. faders or rotary controllers. These ones can be used for MIDI Feedback as well.

  • PROGRAM_CHANGE (PC): usually intended to change the sound of instruments or to select different sound banks. It does only contain an single event parameter, e.g. the bank number, which will be interpreted as new value.

  • MMC_x: MIDI machine control events coming from e.g. buttons, like 'play' or 'stop', on a controller. These messages carry neither an event parameter nor a number which could be used as new value. They are intended for triggering Actions expecting no input arguments, like toggling mute or playback, and will use 0 as new value for all other Actions.

  • START: System Realtime message which is hard-coded to start playback in Hydrogen. It can not be mapped to an Action or an MIDI-learnable widget.

  • CONTINUE: System Realtime message which is hard-coded to start playback in Hydrogen. It can not be mapped to an Action or an MIDI-learnable widget.

  • STOP: System Realtime message which is hard-coded to pause playback in Hydrogen. It can not be mapped to an Action or an MIDI-learnable widget.

Whether the MIDI event sent by the play button of your MIDI device corresponds to e.g. a START or MMC_PLAY event is up to the manufacturer and should be stated in the user manual.

[Note]Note

For all message types except of the MMC_x ones the Channel set in the Preferences must be matched.

16.4.2. Actions

An MIDI Event recognized by Hydrogen can be mapped to an Action using the MIDI table in the MIDI System tab of the Preferences.

[Note]Note

Only actions performed in the GUI can be undone. MIDI, on the other hand, can not!

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

Actions are set in MIDI System tab of the Preferences Dialog

You can define mapping between incoming MIDI Events and Actions by either choosing an event type and parameter manually or by pressing the Red circle. button in the left-most column of the table. 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 the Action. The popup will close and the Event Param. value will now show the MIDI message corresponding to the key you pressed. Once this is done you can select an Action from the drop-down list.

The Action Param. columns to the right of the table specifies the parameters to the Action not provided by the MIDI message. In the example shown in the picture above the value set using the controller 70 of your MIDI device will be assigned to the pan of the third top-most instrument in the current drumkit.

[Note]Note

Most Action parameters references a specific channel, instrument, FXsend id, ... Keep in mind that their values are 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).

[Tip]Tip

In order to delete a row in the MIDI table, you have to set both its Incoming Event and Action to an empty value.

Available Actions:

  • <<_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 Action Param. 1 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. 1.

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

  • CLEAR_PATTERN: removes all notes of the selected pattern.

  • CLEAR_SELECTED_INSTRUMENT: removes all notes of the selected pattern associated with the currently selected instrument.

  • EFFECT_LEVEL_ABSOLUTE: changes the volume level of an FX. Action Param. 1 determines the Instrument Channel Strip and Action Param. 2 specifies the FX the Action will be applied to.

  • EFFECT_LEVEL_RELATIVE: same as EFFECT_LEVEL_ABSOLUTE but instead mapping the incoming values directly to the FX volume 1 will increase and all other values will decrease it by 5%.

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

  • GAIN_LEVEL_ABSOLUTE: sets the Layer Gain. Action Param. 1 specifies the instrument, Action Param. 2 the component, and Action Param. 3 the layer.

  • INSTRUMENT_PITCH: sets the Pitch of the instrument specified by Action Param. 1.

  • 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. 1 to the absolute value that the linked controller sends to Hydrogen. Incoming values from 0 to 127 will be mapped to pan values between -1 and 1.

  • PAN_ABSOLUTE_SYM: same as PAN_ABSOLUTE but supports incoming values from -127 to 127 will be mapped.

  • PAN_RELATIVE: changes the pan of an instrument determined by Action Param. 1 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.

  • PITCH_LEVEL_ABSOLUTE: sets the Layer Pitch. Action Param. 1 specifies the instrument, Action Param. 2 the component, and Action Param. 3 the layer.

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

  • 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 previously undone GUI action (not MIDI 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: selects the pattern specified in Action Param. 1.

    [Note]Note

    If Hydrogen is in Selected Pattern Mode, playback will be switched to the selected pattern immediately. If it is, instead, in Stacked Pattern Mode, playback of the selected pattern will be toggled next time transport is loop again. In case the pattern was already playing, it will be stopped. If not, it will be started.

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

  • SELECT_NEXT_PATTERN_CC_ABSOLUTE: like SELECT_NEXT_PATTERN but the pattern to be selected is determined by the value of the MIDI message.

  • SELECT_NEXT_PATTERN_RELATIVE: like SELECT_NEXT_PATTERN but the pattern to be selected is determined by the pattern number of the currently selected one plus the value specified in Action Param. 1.

  • SELECT_ONLY_NEXT_PATTERN: selects the pattern specified in Action Param. 1.

    [Note]Note

    If Hydrogen is in Stacked Pattern Mode, only the selected pattern will be played back once the transport gets looped again. For Selected Pattern Mode this Action behaves as SELECT_NEXT_PATTERN.

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

    [Tip]Tip

    By providing a number smaller than 0 or larger than the number of available patterns all playing patterns can be stopped at once without stopping playback itself.

  • SELECT_ONLY_NEXT_PATTERN_CC_ABSOLUTE: like SELECT_ONLY_NEXT_PATTERN but the pattern to be selected is determined by the value of the MIDI message.

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

  • STRIP_MUTE_TOGGLE: mutes the instrument specified in Action Param. 1.

  • STRIP_SOLO_TOGGLE: mutes the instrument specified in Action Param. 1.

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

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

  • 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 GUI action (not MIDI action!).

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

16.4.3. MIDI-learnable Widgets

For more convenient handling some 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. If successful, the new mapping is shown in both the tooltip of the GUI element as well as the MIDI table in the Preferences.

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

[Note]Note

Only actions performed in the GUI can be undone. OSC commands, on the other hand, can not!

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_ONLY_NEXT_PTTERN/f If Hydrogen is in Stacked Pattern Mode, play back pattern f and stop all other patterns currently playing. In Selected Pattern Mode this action behaves like /Hydrogen/SELECT_NEXT_PATTERN/. If Hydrogen is in Song Mode, the command will have no effect.
/Hydrogen/SELECT_AND_PLAY_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/f Sets the current tempo to f. Note that this command will have no effect if Hydrogen is both in Song Mode and the Timeline is activated.
/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. Optional input argument will be ignored.
/Hydrogen/STRIP_SOLO_TOGGLE/X/'',[f] Toggles soloing of Instrument Channel Strip X. Optional input argument will be ignored.
/Hydrogen/INSTRUMENT_PITCH/ff[0,] [-24.5,24.5]Sets the Pitch of the instrument specified using the first parameter f to the second parameter f.
/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 GUI action (not OSC command!).
/Hydrogen/REDO_ACTION/' ',[f] Redoes the previously undone GUI action (not OSC command!).
/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 controller 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.
/Hydrogen/NEW_PATTERN/s Creates an empty pattern of name s.
/Hydrogen/OPEN_PATTERN/s Opens an existing pattern at the absolute path s.
/Hydrogen/REMOVE_PATTERN/f Removes pattern number f.
/Hydrogen/CLEAR_PATTERN/' ',[f] Removes all notes of the selected pattern.
/Hydrogen/CLEAR_SELECTED_INSTRUMENT/' ',[f] Removes all notes of the selected pattern associated with the currently selected instrument.
/Hydrogen/CLEAR_INSTRUMENT/f[0,]Works as /Hydrogen/CLEAR_SELECTED_INSTRUMENT/ but on instrument f instead.
/Hydrogen/NOTE_ON/ff[36,127] [0.0,1.0]Handled like a MIDI NOTE-ON event without triggering Actions. The first parameter f determines the pitch of the note and the second f its velocity.
/Hydrogen/NOTE_OFF/f[36,127]Handled like a MIDI NOTE-OFF event. The provided parameter f determines the pitch of the note.
/Hydrogen/SONG_EDITOR_TOGGLE_GRID_CELL/ff Toggles a pattern in the pattern grid of the Song Editor. The first argument will be used as column and the second as row.
/Hydrogen/LOAD_DRUMKIT/s,sf Loads a drumkit into the current song. s can be either the name of a drumkit already present in the Sound Library Editor or an absolute path pointing to an extracted drumkit folder (containing both drumkit.xml file as well as all required samples). The second argument is optional and specifies whether (0) or not (any other value) instruments of the old kit should be kept in case newly loaded one has less and there are note present for that particular instrument in a pattern.
/Hydrogen/EXTRACT_DRUMKIT/s,ss Inflates a compressed drumkit found at the absolute path s (first argument). The second argument specifies the target path to extract the kit to. It's optional and if omitted the kit will be extracted into Hydrogen's user drumkit folder.
/Hydrogen/VALIDATE_DRUMKIT/s,sf Validates a compressed or inflated drumkit found at the absolute path s against the current drumkit format. When setting the second arguent to 1 the kit will be validated against all former drumkit definitions as well.
/Hydrogen/UPGRADE_DRUMKIT/s,ss Upgrades a compressed or inflated drumkit found at the absolute path s to the latest drumkit format. The second argument specifies the target path to upgraded kit will be stored in. It's optional and if omitted the kit will be upgraded inplace.

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

Let's 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 (see Sample for a list of supported formats). 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. Licensing

[Warning]Warning

No one of us is a lawyer and all information found in this section should be taken with a grain of salt and come with no warranty. But we try our best to condense information we found online.

When exporting a song or saving or exporting a drumkit you are reusing and/or redistributing licensed sound samples. Thus you are legally obliged to comply with every license hold by the samples you used.

In this chapter we cover how Hydrogen can help you handle and manage the licenses involved and what the most common ones do imply.

[Note]Note

Our custom data types .h2pattern, .h2song, and .h2playlist do not contain any samples and are not affected by the issues described in this chapter.

[Warning]Warning

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.

20.1. License Parsing

Hydrogen does display some info dialogs in case any of the used samples holds a copyleft license, like CC BY-SA or GPL, holds one that require an attribution of the copyright holder (as CC BY* licenses do), or you are mixing different licenses during drumkit saving or export. But all this is only possible if the licenses of the involved drumkits are correctly parsed (and are one of the supported common licenses).

You can access and alter the license of the drumkit used in the current song via Drumkits > Properties in the main menu or the license of a stock kit via the Sound Library. In addition, you can view all licenses of the contained samples which is especially helpful when mixing instruments of different drumkits in the current song.

Figure 20.1. Dialog to view and alter the Properties of a Drumkit

Dialog to view and alter the Properties of a Drumkit

[Note]Note

Samples loaded directly into Hydrogen using the Layer section of the Instrument Editor are not associated to any drumkit until you save it and will be handled as if they are unlicensed. Please take extra care of checking which licenses they are distributed with and what implication their presence has for your song/drumkit.

20.2. Common Licenses

By default all copyrights of your creative work belongs to you - its creator. But you are obliged to comply with the licenses of the samples you used to create it. In this section you find a list and some short description of the licenses most commonly encountered in Hydrogen drumkits.

Also, you are free to abstain from some or all rights by licensing your work with e.g. one of the licenses provided by Creative Commons (CC). This allows other people to reuse it more easily and in a legally secure way and helps the audio community to prosper.

Table 20.1. Common Licenses

NameDescription
CC0The creator choose to give up her copyright and you are free to use, modify, distribute etc. the samples.
CC BYYou are free to use, modify, distribute etc. the samples but you are obliged to give attribution to the creator. This can be done in e.g. the info property of the new drumkit or in the liner notes of the song you created by reusing the samples.
CC BY-NCSimilar to CC BY but you are in addition only allowed to use the result for noncommercial purposes.
CC BY-SASimilar to CC BY but you are obliged to license your work as CC BY-SA as well. This means you have to give the general public permission to modify, redistribute, reuse, and sell it without being able to require them to give royalty to you.
CC BY-NC-SASimilar to CC BY-SA but you are in addition only allowed to use the result for noncommercial purposes.
CC BY-NDSimilar to CC BY but you are not allowed to alter the material and can only use or distribute them in unadapted form.
CC BY-NC-NDSimilar to CC BY-ND but you are in addition only allowed to use the result for noncommercial purposes.
GPLLicense similar to CC BY-SA but targeted on usage with software instead of creative content. It is discouraged to license your newly created drumkit using this license since it's not clear whether it actually can be legally applied to audio samples. Instead, it's recommanded to stick to the Creative Commons (CC) ones covered above. However, most of the drumkits available in Hydrogen are licensed as GPL and require you to adopt this license too in case you reuse their samples. It's a bit of an unpleasant situation but grew naturally. Most importantly, this license also obliges you to make your product (drumkit/music) available for free!
All rights reservedYou are not allowed to modify, reuse, or distribute the samples without asking the copyright holder for permission first.

Chapter 21. 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 groups of patterns managed using the Song Editor, groups of instruments comprising the current drumkit and managed via the Instrument Editor, as well as all states not already covered by the Preferences.

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

  • *.h2drumkit: a compressed folder containing all sound samples composing a drumkit and the description XML file drumkit.xml storing the kit's structure and parameters.

  • *.h2theme: XML file describing all preferences available in the Appearance tab of the Preferences.

Chapter 22. Shortcut Lists

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

In Hydrogen there is a plethora of different ways to affect the volume of the resulting sound. Each single note rendered to audio will contain contributions of

Further modifications of the note's audio can be applied using the Sample Editor, the Low-Pass Resonance Filter, and FX Plugins.

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

Hydrogen supports the following audio formats:

  • Waveform Audio File (*.wav)

  • Free Lossless Audio Codec (*.flac)

    [Note]Note

    Your system is required to have libsndfile of at least version 1.0.18.

  • Compressed Ogg/Opus (*.opus)

    [Note]Note

    Your system is required to have libsndfile of at least version 1.0.29.

  • Compressed Ogg/Vorbis (*.ogg)

    [Note]Note

    Your system is required to have libsndfile of at least version 1.0.18.

  • Compressed MPEG Layer 3 (*.mp3)

    [Note]Note

    Your system is required to have libsndfile of at least version 1.1.0.

  • Apple AIFF (*.aiff, *.aif, *.aifc)

  • Sun/NeXT AU (*.au)

  • Core Audio Format (*.caf)

  • Creative Voice File (*.voc)

  • Sonic Foundrys' 64 bit RIFF/WAV (*.w64)

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.