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.
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.
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.
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.
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
In order to delete a row in the MIDI table, you have to set both its Incoming Event and Action to an empty value.
<<_PREVIOUS_BAR: moves the playhead to the previous pattern/bar.
>>_NEXT_BAR: moves the playhead to the next pattern/bar.
BEATCOUNTER: calculates the average time passing between successive encounters of this commands and uses it to set the current tempo using the Beat Counter.
BPM_CC_RELATIVE: changes the tempo relative to the current tempo, using a controller. Using the Action Param you can specify by how much the current tempo will change. If the incoming Event is
-1 (negative), the tempo will be increased and if it's
1 (positive), it will be increased.
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.
BPM_INCR: increases the current tempo by the supplied value.
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%.
for a value of
0 it sets the Filter Cutoff of the
instrument strip specified using the Action Param to
0. For all other
values it sets the cutoff to the provided number divided by
GAIN_LEVEL_ABSOLUTE: sets the Layer Gain. Parameter 1 specifies the instrument, parameter 2 the component, and parameter 3 the layer.
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
-1: -0.05 ,
0: 0 ,
PAN_ABSOLUTE: changes the pan of an instrument determined by the Action Param to the absolute value that the linked controller sends to Hydrogen. Incoming values from
127 will be mapped to pan values between -1 and 1.
PAN_ABSOLUTE_SYM: same as PAN_ABSOLUTE but supports incoming values from
127 will be mapped.
PAN_RELATIVE: changes the pan of an instrument determined by the Action Param relative to the current value. For a
1 it increase the pan by 0.05. For all other values
it decreases it by 0.05. (
-1: -0.05 ,
PITCH_LEVEL_ABSOLUTE: sets the Layer Pitch. Parameter 1 specifies the instrument, parameter 2 the component, and parameter 3 the layer. PAUSE: pauses playback.
PLAY/PAUSE_TOGGLE: works the same as PLAY if the playback has not started yet and same as. PAUSE otherwise. (The playhead will not return to the start of the song, but will stay at its current position).
PLAYLIST_NEXT_SONG: opens the song in the current playlist corresponding to the song number specified in Action Param.
PLAYLIST_PREV_SONG: opens the previous song in the current playlist.
PLAYLIST_SONG: opens the next song in the current playlist.
RECORD_EXIT: deactivates recording.
RECORD_STROBE: activates recording.
REDO_ACTION: redoes the previous undone action.
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.
If Hydrogen is in Song Mode, the command will have no effect.
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.
STRIP_MUTE_TOGGLE: mutes the instrument specified in Action Param.
STRIP_SOLO_TOGGLE: mutes the instrument specified in Action Param.
TAP_TEMPO: another command calculating the average time passing between successive encounters of this commands and uses it to set the current tempo using Tap Tempo.
TOGGLE_METRONOME: toggles the metronome.
UNDO_ACTION: undoes the previous action.
UNMUTE: unmutes the Master output (sequencer keeps running).
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 fader and Mute button of the Master Fader Strip.
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.
If the element that does not support MIDI automation, a different popup will inform you.