Hydrogen for Live usage 2 - Electronic music

Vincent Rateau
www.superdirt.net
www.sonejo.net
CC-BY-NC-SA
Hydrogen for Live usage 2 - Electronic music
Three years ago I was looking for an audio software on linux to make live electronic music with my
new project Superdirt².
I tried a lot around with different software but finally I choosed Hydrogen because it could do mostly
all live operations I wanted. I'm performing now for 3 years and it NEVER crashed on the stage. :)
For live performing with hydrogen I figured out a nice workaround that I want to explain in this
tutorial. Furthermore I want to show more workarounds and enhancements I figured out for live usage
with electronic music.
This article is largely inspired from Thijs' excellent article about Hydrogen for Live usage:
http://www.hydrogen-music.org/hcms/node/29
The Concept : The Superdirt² Set
Superdirt²'s music is based between drum'n'bass, house and dub music, the whole accompanied by a
virtuous cello player playing with an hardware loop machine.
For that I needed to play loops for the drums, bass and synthies in order to create the background for
the cello. The whole controlled by a midi controller to play musically without to worry about the
keyboard and the mouse.
1. Creating the set
For the set I used the following instruments:
1.
2.
3.
4.
5.
6.
7.
8.
9.
kick drum
hihat1
hihat2
snare/clap
bass
percussion
sample / loop 1
sample / loop 2
reverse cymbal - only triggered (not playing in the sequence)
2. Hydrogen Configuration
I use Hydrogen in song mode (looped)
3. The Workaround / Midi Binding
For now the mute button of an instrument is not midi-controllable, so I used the volume of each
instrument to play/mute the tracks a play around with them. (I figured out after a while it is much better
that muting the instruments because it is possible to SEE on the midi controller which instrument are
on or off – no need for midi feedback to the controller)
1. For that shift-left click on a fader in H2 and move a fader of the midi controller to bind it.
When all the faders a done, check the Tool/Preferences/Midi System. It should look like:
→ Don't forget the first instrument (param.) is 0, the second 1, the third 2 etc...
→ If you have less instruments in a different song you need to put dummy instruments (with no
sounds) in order to keep the midi-binding track order.
2. Set all instrument faders to the max level. If you play the song right now it would sound horrible
because all the instruments are too loud!
3. So decrease the master volume in the mixer until the master signal is under 0.99 and don't clip
anymore.
4. Go to each instrument and decrease the instrument gain until it sounds right:
I know its a dirty workaround but it works for me :)
Now start the song and you can play around with the faders of the midi controller and arrange the song
live by enabling/disabling the instruments.
4. The reverse Cymbal
As shown before I put on instrument nr. 9 a reverse cymbal for triggering to get a nice transition
between the parts.
I moved the starting point of the sample in H2's Sample Editor so I only have to start triggering on the
last bar before the end of the loop (so the highest peak on the reverse cymbal will be on the beginning
of the first bar).
For triggering I had to change the midi CC of one button of the midi controller to the right midi NOTE
in the settings of the midi controller (because midi-binding to trigger a instrument is not implemented
yet), but this works fine as well (workaround 2 :) ). In my case it was NOTE 44.
How to do that really depends on your midi controller so I won't explain that here.
Make sure in Tools/Preferences/Midi System the Ignore note-off is enabled to trigger the cymbal
without holding the key.
5. Midi Clock
To synchronize the the hardware loop machine to hydrogen I needed a midi-clock.
H2 can't sent midi clock but that doesn't matter because there is the package jack_midi_clock that send
a midi clock according to the jack transport.
Install the package and start it. It will display a jack_midi_clock in the Jack Midi window:
Simply set up Hydrogen with J.TRANS and J.MASTER
As soon as you hit play in H2 jack will start the transport and send a midi clock.
6. More live stuff
Futhermore I use ZynAddSubFX routed to Sooperlooper (with jack transport sync).
So I can play synths on the Keyboard and loop them with Sooperlooper (4 tracks and 1 delay track).
Also I use H2's Playlist Editor (very nice feature) to navigate between the songs during the gig.
I used as well the GNOME2/MATE window behavior “Always on top” for the mixer and the Playlist
Editor (very useful feature).
And finally I built a Bash script to start all the softwares in the right order and a Patchbay in Qjackctl to
save all the routing connections.
And on the stage it's amazing!
YOUTUBE : https://www.youtube.com/watch?v=5YAFu7hgbE0
Going further with live electronic music
Playing different parts in a song
Now I want to explain new ideas and enhancements for the live set I'm looking for (be careful, workaround party!)
What I really need now is the ability of changing different sequences for each instrument in order to
build songs with more than one groove (for example for a chorus/verse arrangement).
It is possible to use different patterns for that and control them with the buttons of the midi controller.
1. Go in Tools/Preferences/Midi System and create midi bindings for the buttons you want to
connect with your different patterns. Select the Action SELECT_NEXT_PATTERN with the
pattern number as parameter (remember 0 = pattern 1, 1= pattern 2 etc).
2. Setup the song in pattern mode
1. In single pattern mode
In single pattern mode you need to put all instruments sequences in each pattern because H2 will play
only one pattern at once. You can switch between the patterns.
→ In the single pattern mode this works straight away and it is nice to do fast switches between the
parts, but you can't change the sequence of only one instrument (in order to change the instruments step
by step).
2. In stacked mode
In stacked mode you can play several patterns at the same time and you can trigger them with the
buttons of the midi controller with the Action SELECT_NEXT_PATTERN (as before).
You need to put only one instrument on each pattern (because you want to switch between them).
→ This time the changes happen on the first next bar, not immediately. (what is really good as well)
I built a song with 3 patterns for each instrument:
For instance it is possible to play k1, hha1, hhb1 and bass to get the first song part playing and change
each instrument during the song.
This is nice because you can enable/disable each song part on each instrument, but it is also possible to
enable 2 bass patterns at the same time and that really bad.
1. The best would be to introduce a kind of behavior to say “this 3 patterns are linked, play only one of
them” (maybe via the virtual pattern mode?)
2 . Or an other idea-workaround would be to create a DESELECT_NEXT_PATTERN Midi Action so it
would be possible to create bindings like:
Button A : Select P1, Deselect P2, Deselect P3
Button B : Deselect P1, Select P2, Deselect P3
Button C : Deselect P1, Deselect P2, Select P3
3. Or much nicer a kind of matrix view like in other live software. I made a mockup :) Could look like:
(the blue patterns are playing)
Mixing the instruments with live effects
In H2 it is possible to do some basic mixing with the 4 sends but there is now way to put an effect on
an instrument only.
For that I created a new project in ardour with 9 busses. In H2, enable Tools/Preferences/Audio System
“create per-instrument output” and route each instrument track to each bus in ardour. So it is possible to
mix the tracks properly, including different effects (LV2, LADSPA) on the tracks, create busses, and
even to control the effects via your midi controller (very useful with filters and delay :) ).
This is very experimental (especially with the routing between the different songs) and I definitely have
to do more tests on that (and try Qtractor as well).