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
List of Figures
List of Tables
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 | |
---|---|
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. |
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 | |
---|---|
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. |
Table of Contents
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.
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 | |
---|---|
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).
Table of Contents
Table of Contents
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 | |
---|---|
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.
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 | |
---|---|
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.
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 | |
---|---|
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
.
Note | |
---|---|
When using German or French keyboard layout the overall mapping is still the same. |
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 in the Main Toolbar and afterwards press the 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 | |
---|---|
By locking the Pattern Editor in Song Mode Hydrogen will automatically select the pattern recorded notes will be inserted to. |
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. |
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.
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
You have to activate LASH support in the General tab of the Preference dialog in order to use it. |
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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. |
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 | |
---|---|
Which audio drivers are supported depends on both your platform and its installed packages. Your local help message will display all available options. |
Table of Contents
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.
Language: chooses one of the translations Hydrogen is available in.
Note | |
---|---|
For this setting to take effect you have to restart Hydrogen. |
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
The Beat Counter has to be set to Set BPM and play - 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 | |
---|---|
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 | |
---|---|
These autosave files will be hidden and contain an additional suffix "autosave". E.g. if your current song is called |
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 | |
---|---|
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 | |
---|---|
If you are using Ubuntu, you can install Rubber Band from the Software Center
via the package |
Tip | |
---|---|
If Rubber Band is installed and configured correctly, you will see an extra button button in the Main Toolbar. You can use this behavior to verify your configuration. |
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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
:
instrument sustain
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 | |
---|---|
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 | |
---|---|
This can be useful if you want to add effects to a single instrument with jack-rack for example. |
Note | |
---|---|
This option is only available if the JACK audio driver was selected. |
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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.
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
This option only takes effect if Input Mode in the Options tab of the Main Menu is set to |
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.
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 | |
---|---|
In order to see and access the Enable OSC feedback and Import port option, Enable OSC support has to be checked first. |
Enable OSC support: Allows Hydrogen to receive OSC commands send by external programs.
Enable OSC feedback: Hydrogen will broadcast OSC messages to all registered clients each time does change. A client can register to receive OSC messages by sending a message to Hydrogen previously. The state broadcast as feedback is composed of the following OSC paths:
Incoming port: Specifies the
OSC port Hydrogen will be register to. Values up to 20000
are supported.
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. |
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 and 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 button or close the dialog.
The Interface tab covers the overall appearance of Hydrogen.
Style: specifies a certain look of GUI elements, like menus, scrollbars, and dialog windows.
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 | |
---|---|
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 | |
---|---|
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.
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.
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.
Table of Contents
This menu offers file related functions.
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 | |
---|---|
Prior to version 1.2 of Hydrogen new songs were based on 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 |
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 | |
---|---|
The demo songs are stored in |
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 | |
---|---|
In order for Hydrogen to automatically list it in the Songs section of the Sound Library, you have to store it in the |
Open Pattern: opens a pattern (a .h2pattern file) belonging to the current drumkit.
Export Pattern As: saves a pattern as a .h2pattern file.
Tip | |
---|---|
In order for Hydrogen to automatically list it in the Patterns section of the Sound Library, you have to store it in
|
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 | |
---|---|
It has the following limitations: Only the GMRockKit and no triplets are supported. |
Quit: exits Hydrogen.
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.
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
The new drumkit will be a physical copy of the old one and is stored into the |
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 | |
---|---|
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).
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.
Once the kit has been downloaded it will be available in the Sound Library under User drumkits.
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. |
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.
Playlist Editor: opens the Playlist Editor window.
Director: opens the Director window.
Mixer: opens the Mixer window.
Instrument Rack: shows or hides the widget of the main window containing both the Instrument Editor and the Sound Library.
Automation Path: shows or hides the Automation Path panel.
Timeline: shows or hides the Timeline panel.
Playback Track: shows or hides the Playback Track panel.
Full screen: maximises the window size to the whole screen area.
Input mode: sets the current Input Mode.
Preferences: opens the main preferences window (see Preferences for details).
Tools mainly for debugging and monitoring Hydrogen.
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.
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.
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.
Table of Contents
Before analyzing the two main frames of Hydrogen, let's take a quick look at the main toolbar and its components.
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 | |
---|---|
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. |
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.
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 | |
---|---|
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. |
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 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 and . 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 (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 ). 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 | |
---|---|
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 | |
---|---|
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. |
Set the speed of the song in the range from 10
to 400
bpm (beats per minute).
You can use to toggle the metronome.
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 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).
The CPU bargraph gives you an indication of the CPU load. The MIDI led lights up every time Hydrogen receives a MIDI message.
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.
Clicking 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 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 | |
---|---|
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 | |
---|---|
The JACK Timebase API uses other terms for these two classes of clients we do not repeat in here. |
- Timebase support itself is activated but neither Hydrogen nor an external application is currently in control. Hydrogen will use its internal tempo.
- Hydrogen is in control of JACK Timebase, uses its internal tempo, and boardcasts it to other JACK clients.
- 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.
- JACK Timebase support was disabled in the Audio tab of the Preferences.
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. |
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.
Table of Contents
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 | |
---|---|
You can alter the colors of the squares using the Interface tab in the Appearance tab of the Preferences. |
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 | |
---|---|
Navigation in Hydrogen is always quantized. It is only possible to move forward / backwards or locate to whole patterns. |
Tip | |
---|---|
You can also locate the keyboard cursor (see Chapter 3) to a desired pattern and press Ctrl + Space to relocate to this position. |
: deletes all patterns (asks for confirmation!).
: creates a new pattern (and asks for a name).
: moves currently selected pattern up or down.
Tip | |
---|---|
You can also drag-and-drop a pattern up/down in the pattern list. |
: indicates that Hydrogen is in Draw Mode or : in Select Mode.
: 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 | |
---|---|
This becomes quite handy when recording notes in Song Mode. Hydrogen will always select the pattern recorded notes will be inserted to. |
Note | |
---|---|
This button is only enabled in Song Mode. In Pattern Mode recorded notes are always added to the currently selected pattern. |
: indicates that Hydrogen is in Selected Pattern Mode or : in Stacked Pattern Mode.
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. |
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 | |
---|---|
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. |
This mode is enabled if the 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.
This mode is enabled if the 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 | |
---|---|
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. |
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 | |
---|---|
By enabling Loop Mode in the Transport Controls, the playback will move seamlessly to the beginning again after reaching the end of the song. |
When Pattern Mode is selected in the Transport Controls of the Main Toolbar and 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 | |
---|---|
When referring to Pattern Mode in this manual the described context works with both Selected Pattern Mode and Stacked Pattern Mode. |
When Pattern Mode is selected in the Transport Controls of the Main Toolbar and 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 | |
---|---|
You can alter the colors of the indicators in the Colors tab of the Preferences. |
Note | |
---|---|
When referring to Pattern Mode in this manual the described context works with both Selected Pattern Mode and Stacked Pattern Mode. |
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:
Duplicate: will copy the selected pattern to a new pattern in your song.
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.
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.
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.
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 button at the bottom of the Song Editor or via the View element of the Main Menu and enable it using the button.
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.
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 | |
---|---|
When disabling the Timeline using the 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. |
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.
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.
Using the Playback Track you can program your song alongside an existing audio file, for example a guitar track.
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.
: loads an audio file.
Tip | |
---|---|
As an alternative, you can load an audio file by dragging it into Hydrogen and dropping over the Playback Track. |
: mutes the Playback Track.
: 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.
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 | |
---|---|
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. |
Table of Contents
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 and button (located on the top-right of the Pattern Editor).
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. |
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.
: Regular note (or just note) can be created using left-clicking or Enter.
Triggers playback of a whole sample of the associated instrument.
Note | |
---|---|
The inner color of the circle represents the note's velocity.
Black: |
: 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 | |
---|---|
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). |
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.
: 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).
The top part of the Pattern Editor contains a number of controls applying to both the Drumkit Editor and the Piano Roll Editor:
: 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 | |
---|---|
Hydrogen supports (only) the following denominators (right combo box): |
Tip | |
---|---|
Typing / within the numerator (first combo box) also you to quickly jump to the denominator. |
: this is the current grid resolution (1/4
through 1/64
with triplet-based resolutions marked as 1/8T
).
Note | |
---|---|
If you are working with a resolution of |
: when checked Hydrogen will play back notes as they are being added to the pattern (even if transport is not rolling).
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 ↓. |
: 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.
/ : switches between Drumkit Editor and Piano Roll 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 | |
---|---|
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 | |
---|---|
Depending on the choice you make ( |
Randomize velocity: automatically apply a pseudo-random velocity to each note of that instrument in the pattern.
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 | |
---|---|
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 button mutes the instrument and 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 | |
---|---|
It will, however, have an impact on the MIDI note mapping. |
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. |
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 | |
---|---|
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 | |
---|---|
Also see Chapter 18 for a basic walk-through of how the Pattern Editor works. |
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 | |
---|---|
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 | |
---|---|
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'
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 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.
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 | |
---|---|
When entering multiple notes in one column - as a chord - the corresponding symbol in the Drumkit Editor will be prepended with e.g. a |
Table of Contents
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.
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 | |
---|---|
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.
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.
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 | |
---|---|
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.
Table of Contents
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.
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 | |
---|---|
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. |
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 | |
---|---|
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.
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 | |
---|---|
It is very easy to set the 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. too high, causing your sample to |
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 | |
---|---|
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 | |
---|---|
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".
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 | |
---|---|
The cutoff frequency of the filter varies with the sample rate
of your audio card. The range of the knob |
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 | |
---|---|
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. |
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 | |
---|---|
In order to enable MIDI output, the channel of an instrument must be set to a
value other than |
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 | |
---|---|
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. |
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.
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.
Right below the General
and Layers
button you find the name of the currently selected component. In the drop down menu accessible by pressing
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 | |
---|---|
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. |
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 | |
---|---|
Empty layers will be displayed as |
Using you can load a sample into the currently selected layer, using you can delete the current layer, and using you can open the Sample Editor to customize the sample loaded to the currently selected layer.
Tip | |
---|---|
Alternatively you can also double-click the wave display to open the Sample Editor. |
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 | |
---|---|
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 | |
---|---|
If there is a(n accidental) hole between two adjacent velocity ranges, the layer closest to the triggered velocity will be used. |
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 | |
---|---|
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.
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 | |
---|---|
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
.
Table of Contents
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 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 | |
---|---|
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. |
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:
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 | |
---|---|
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 | |
---|---|
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. |
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 | |
---|---|
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 |
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 | |
---|---|
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 | |
---|---|
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 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 | |
---|---|
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.
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 | |
---|---|
The volume envelope is blue and the pan envelope is yellow. |
First select volume
or panorama
in the dropdown to the right.
Left-clicking in the Envelope Editor will add a point to the selected envelope or allows you to drag an existing one.
Right-clicking will delete a point.
Hit Apply Changes to make your changes take effect.
Table of Contents
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.
: lets you trigger the instrument at maximum velocity.
Tip | |
---|---|
This is quite handy for checking clipping. |
Right-clicking the button will stop all currently playing notes of the associated instrument.
Tip | |
---|---|
This is especially useful when dealing with long samples and Auto-Stop Note is disabled. |
: lights up whenever this instrument is triggered (e.g. by a note in a pattern).
: shows whether the instrument is currently selected (in both the Mixer and the Pattern Editor).
Note | |
---|---|
If the Input Mode is set to |
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. |
: 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 | |
---|---|
This button is sharing its state with the mute button of corresponding instrument in the Sidebar of the Pattern Editor. |
Note | |
---|---|
This button is sharing its state with the solo button of corresponding instrument in the Sidebar of the Pattern Editor. |
: sets a pan value affecting all notes played using this instrument.
: 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 | |
---|---|
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 | |
---|---|
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 This allows you to route the individual instruments directly into any other JACK enabled application, like Ardour, and gives you a lot more flexibility. |
Right of the Instrument Channel Strips there additional strips corresponding to the instrument components.
Note | |
---|---|
These channels will not be exposed as JACK output ports when enabling the Create per-instrument outputs option in the Preferences. |
: mutes 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 | |
---|---|
You can adjust the falloff speed of the peak values in the display in the Interface tab of the Appearance tab in the Preferences. |
The FX Rack can be accessed by clicking the 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:
SWH-Plugins: available at http://plugin.org.uk.
CMT: available at http://www.ladspa.org.
TAP: available at http://tap-plugins.sf.net.
Calf plugins: available at http://calf.sourceforge.net/.
LSP plugins: available at https://github.com/sadko4u/lsp-plugins/.
....
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 button.
Once you have selected a plugin you will immediately have access
to its parameters.
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 button in the FX Rack).
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 | |
---|---|
Since the FX signal lives in an aux channel it is neither affected by Auto-Stop-Note nor Mute Groups. |
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 button mutes the whole output.
On the bottom-right of the Master section the button will show or hide the FX Rack, and the 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.
In order to make the resulting audio sound more natural and less artificial, Hydrogen does offer some humanization capabilities.
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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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. |
Clicking the button in the upper right corner of Master Fader Strip opens the Mixer Settings window:
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 | |
---|---|
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 | |
---|---|
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. |
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 | |
---|---|
This comes in very handy when you are recording a song, or if you are using Hydrogen live on stage. |
Table of Contents
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 | |
---|---|
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. |
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.
In addition, the Playlist Editor allows you to add scripts executed right before the selected song is loaded.
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 | |
---|---|
Scripts are not supported in the Windows version of Hydrogen. |
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 | |
---|---|
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.
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 | |
---|---|
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 | |
---|---|
The default one is the |
Table of Contents
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.
Before you can use Hydrogen as a MIDI synth or control it using its Actions, you have to setup your incoming MIDI connection.
Connect your MIDI device to your computer and ensure all required drivers are installed.
Open up the MIDI System tab of the Preferences and choose the MIDI driver you connected your device to.
Choose your MIDI device/port from the Input dropdown list.
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 | |
---|---|
For a lot of MIDI drivers you can also establish connections with external tools, like QjackCtl for JACK-MIDI and ALSA-MIDI. |
Click OK to store all changes and restart Hydrogen's MIDI driver.
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.
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 | |
---|---|
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. |
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.
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.
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 | |
---|---|
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 | |
---|---|
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 |
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
Volume faders, Pan rotaries as well as Mute and Solo buttons in the Instrument Channel Strips.
Volume fader and Mute button of the Master Fader Strip.
Metronome button.
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
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 | |
---|---|
For all message types except of the MMC_x ones the Channel set in the Preferences must be matched. |
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 | |
---|---|
Only actions performed in the GUI can be undone. MIDI, on the other hand, can not! |
You can define mapping between incoming MIDI Events and Actions by either choosing an event type and parameter manually or by pressing the 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 | |
---|---|
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 |
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 | |
---|---|
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.
BPM_FINE_CC_RELATIVE: as BPM_CC_RELATIVE but with changes 100 times smaller than the value specified in Action Param. 1.
BPM_INCR: increases the current tempo by the supplied value.
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).
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/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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
By providing a number smaller than |
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).
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:
Volume faders, FX Colume knobs, Pan rotaries as well as Mute and Solo buttons in the Instrument Channel Strips.
Volume fader and Mute button of the Master Fader Strip.
Rewind, Record, Play, Stop, and Fast Forward buttons in the Transport Control and Beat Counter as well as Metronome button.
Rewind, Play, Stop, and Fast Forward buttons in the Playlist Editor.
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 | |
---|---|
If the element that does not support MIDI automation, a different popup will inform you. |
Table of Contents
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 | |
---|---|
Only actions performed in the GUI can be undone. OSC commands, on the other hand, can not! |
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 | |
---|---|
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 | |
---|---|
Hydrogen's port number defaults to |
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. |
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.
Table 17.1. All OSC Messages
URL | type | range | description |
---|---|---|---|
/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. |
Table of Contents
Table of Contents
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.
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.
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 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 | |
---|---|
Remember some constraints of the grid: if you are
working with a resolution of |
Once patterns are created (Figure 18.2), we can copy/paste/delete them using the Select Mode.
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
button to show and hide the
FX Plugin Rack.
Every line features 3 buttons (
), current maximum peak, FX volume control knobs, volume fader, and name of the track. Clicking on
will play the selected instrument, cutting the others. The Mute button
, simply mute that instrument. The maximum peak
indicates the maximum volume reached from the instrument. The peak must
be in a range of 0.0
and 1.0
(in Figure 18.3 you can
see a few volumes too loud). For a full description of the Mixer and its elements please see Mixer.
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. |
Table of Contents
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.
Let's make a brand new drum kit:
in the Main Menu select → . This will give you a single blank instruments. To add more instruments, select → and to delete one, right-click a instrument and select Delete Instrument.
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.
Once you have your drumkit working the way you want, select overwrite an existing kit, you will need to type in the same name as the kit that you want to replace.
→ . You will be prompted for the name of the kit to save. If you wish toDrumkits are automatically stored in the data
directory (i.e. $HOME/.hydrogen/data/drumkits
).
In order to share your drumkit with others, you have to export it using Main Menu. Select the drum kit that you wish to export, and give it a file name to save it to.
→ from theFor 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
→ . 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 and point the Audio File Browser to your sample.
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 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
and the . The pitch also has a 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 | |
---|---|
It is very easy to set the clip. Remember to test the gain with full-velocity using the button in the corresponding Instrument Channel Strip. If you clip your signal here, it will only get worse as Hydrogen processes it. too high, causing your sample to |
The pitch of the sample can be modified with the pitch controls.
The -12
is down 1 octave). The pitch on the right adjusts
the pitch ±50 cents. (One half-step is 100 cents.)
Note | |
---|---|
The pitch is adjusted by playing the sample back faster or
slower. This is called the Doppler Effect. So, if you have a
1-second sample that you turn down |
You can hear the sample in a layer by clicking the layer id (just below the 'General' and 'Layers' buttons).
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!
Table of Contents
Table of Contents
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 | |
---|---|
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 | |
---|---|
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. |
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.
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. |
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
Name | Description |
---|---|
CC0 | The creator choose to give up her copyright and you are free to use, modify, distribute etc. the samples. |
CC BY | You 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-NC | Similar to CC BY but you are in addition only allowed to use the result for noncommercial purposes. |
CC BY-SA | Similar 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-SA | Similar to CC BY-SA but you are in addition only allowed to use the result for noncommercial purposes. |
CC BY-ND | Similar 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-ND | Similar to CC BY-ND but you are in addition only allowed to use the result for noncommercial purposes. |
GPL | License 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 reserved | You are not allowed to modify, reuse, or distribute the samples without asking the copyright holder for permission first. |
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.
Table 22.1. Shortcut Table
Shortcut | Description |
---|---|
Ctrl + N | New Project |
Ctrl + O | Open File |
Ctrl + D | Open Demo |
Ctrl + S | Save Song |
Ctrl + Shift + S | Save Song as |
Ctrl + P | Export Pattern as |
Ctrl + M | Export MIDI file |
Ctrl + E | Export Song (see Export Song) |
Ctrl + L | Export LilyPond file |
Ctrl + Q | Quit Hydrogen |
Ctrl + Z | Undo an action |
Ctrl + Shift + Z | Redo an action |
Alt + D | Show Director |
Alt + M | Show Mixer |
Alt + I | Show Instrument Rack |
Alt + A | Show Automation Path |
Alt + F | Toggle fullscreen mode |
Ctrl + Alt + I | Set Input Mode to Instrument |
Ctrl + Alt + D | Set Input Mode to Drumkit |
Alt + P | Show Preferences |
Alt + ? | Show Manual |
Backspace | Restart song or pattern from the beginning |
Space | Play / Pause |
Ctrl + Space | Starts 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 |
F5 | Jump to previous song in playlist |
F6 | Jump to next song in playlist |
F9 | Jump to previous bar in the song |
F10 | Jump to next bar in the song |
F12 | Panic button (stops the song and mutes all playing sounds) |
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.
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.
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.
In filters and mixers, this the amount that a signal is reduced (volume).
See Also Roll-off.
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.
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.
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 | |
---|---|
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. |
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.
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, 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.
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
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.
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.
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
Its individual Note Velocity
Its individual Note Pan
Its Layer Gain
Its Instrument Pan
Its Instrument Gain
Its Component Gain
Its Component Volume
Velocity contributions by the Automation Path when played in Song Mode
Random contributions introduced by Velocity Humanization
The overall Song Volume
Further modifications of the note's audio can be applied using the Sample Editor, the Low-Pass Resonance Filter, and FX Plugins.
A filter that attenuates (silences) low frequencies, but allows high frequencies to pass through.
See Also Filter, Cutoff Frequency.
In Hydrogen, an instrument is a single noise-maker (like a bass drum kick, or a tom).
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.
A filter that attenuates (silences) high frequencies, but allows low frequencies to pass through.
See Also Filter, Cutoff Frequency.
To make no noise. A setting on an instrument that prevents any audio output.
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 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).
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.
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):
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.
The amount of time to reduce the volume of a note from the sustain level to 0.
See Also ADSR.
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.
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.
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.
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 | |
---|---|
Your system is required to have libsndfile of at least version 1.0.18. |
Compressed Ogg/Opus (*.opus)
Note | |
---|---|
Your system is required to have libsndfile of at least version 1.0.29. |
Compressed Ogg/Vorbis (*.ogg)
Note | |
---|---|
Your system is required to have libsndfile of at least version 1.0.18. |
Compressed MPEG Layer 3 (*.mp3)
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)
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.
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.