Quantcast
Username/Email:  Password: 

An Introduction to Hydrogen

Find out why Dave is so excited about this drum machine/rhythm programmer.


I'm going to interrupt my regularly scheduled broadcast to bring you
a special program. For those of you expecting Part 2 of my
MIDI article, have no fear, I'll present it next month, so please read
on.

Recently I've been having so much fun with a particular Linux audio
application that I have to share it with readers. The application
is called Hydrogen, and for those of you unfamiliar with it,
Hydrogen is an advanced drum machine/rhythm programmer with a remarkable
set of features. Here's what the features list on the Hydrogen Web site
has to say about the program's capabilities:

  • Very user-friendly, modular, fast and intuitive graphical
    interface based on QT 3
  • Sample-based stereo audio engine, with import of
    sound samples in WAV, AU and AIFF formats
  • Support of samples in compressed FLAC file
    format
  • Pattern-based sequencer, with unlimited number of
    patterns and ability to chain patterns into a song
  • Up to 64 ticks per pattern with individual level per
    event and variable pattern length
  • 32 instrument tracks with volume, mute, solo and
    pan capabilities
  • Multi-layer support for instruments (up to 16
    samples for each instrument)
  • Ability to import/export song files
  • Unique human velocity, human time and swing
    functions
  • Multiple patterns playing at once
  • OSS and JACK audio drivers, with assignable JACK
    ports
  • ALSA MIDI input with assignable MIDI-in channel
    (1..16, all)
  • Import/export of drumkits
  • Export song to WAV file
  • Export song to MIDI file

Impressive, but does it really live up to all that? I'm pleased to
tell you that Hydrogen indeed does offer all that and more. Hydrogen is one of
the finest examples of advanced Linux audio software. Its progress
has been made possible through a successful collective development
process with input from an active community of interested users
and developers. I've watched Hydrogen grow from a relatively simple
rhythm programmer to become the virtual drum machine of choice for Linux
musicians. Now, I'm going to take this opportunity to introduce you to
the latest and greatest cutting-edge Hydrogen, hot from its CVS sources
and filled with enough musical features to keep you busy for a long while.
About CVS Sources
The version of Hydrogen profiled here is version 0.9.1-cvs, built from
the CVS source code made available on the Hydrogen SourceForge site on
October 7. CVS (control versioning system) is a programmer's resource
for managing developmental or experimental source code that may or may
not resemble the code for the official stable release of a program. In
practice, CVS sources often are a preview of features to come, but
be advised that versions of a program built from CVS sources may not
resemble the final release version.

Personally speaking, I like compiling programs from CVS sources. I enjoy
working with and testing new features under development, although I must
say there is the prospect of features not working, application segfaults
and even complete system crashes. Although that rarely happens with
Hydrogen, it still is a possibility. If stability is what you need, you
should use the official release available from Hydrogen's home Web site.
The Tao of the Drum Machine
Preset-only rhythm machines first appeared in 1959. Twenty years later
the Roland Corporation produced their CR-78, the first programmable drum
machine. By the end of the 1980s, the MIDI-capable hardware drum
machine was a standard part of recording studios everywhere. By the
end of the 90s, hardware drum machines were being replaced by software
rhythm programmers that offered greater flexibility and possibilities for
expansion in ways that could not be matched by their hardware ancestors.

Real or virtual, a typical drum machine's basic design divides the
machine's primary functions into two aspects, pattern creation and the
song sequence. Pattern creation is facilitated by setting the machine
to loop-record. That is, you can build your pattern in real time either
by clicking on grid points or by using a MIDI keyboard to enter beats
into the editor as it loops. Patterns can be copied and edited to
make variations on the source pattern. You then arrange the patterns
sequentially in the song editor. Once your song form has been defined,
you can save your work as a standard MIDI file for import into a MIDI
sequencer. Alternatively, you can designate the drum machine to follow a master clock
source and run it in synchronization with external programs. Synchronization
with other hardware or software has been another basic design concern
for drum machines, even for pre-MIDI machines.

Hydrogen is endowed with all the features and amenities expected in a
hardware drum machine. Like its contemporary software counterparts,
it's also blessed with the expanded capabilities of the virtual drum
machine. Let's take a look at how Hydrogen is put together, and then we'll
walk through a simple example of its typical use.
Figure 1. Hydrogen with Default New Song
SettingsGeneral Organization
Hydrogen's user interface is made of a main parent window with a top-level
menu bar and a set of play/record controls. This main window opens with
its editor and mixer panels displayed. By default, Hydrogen displays
the most recent work file upon opening, including any panels displayed
when the file was last saved, but that action can be toggled from the
File/Preferences dialog.

The main window's File menu supplies common operations such as
new/open/save, export to MIDI and WAV and the program preferences
settings. The Window menu is a list of show commands if you've hidden
the song and instrument editors or the mixer. This menu also calls
the drumkit manager and an audio engine status window, both hidden by
default. The ? menu is Hydrogen's help menu for accessing the
user manual and a tutorial.

The transport bar includes start/stop controls, pattern and song mode
selectors, a tempo control scrollbox and status indicators for JACK,
MIDI input and CPU load. That's all there is to describe for Hydrogen's
main window functions, so now we move on to the various editor panels.
The Pattern And Song EditorsFigure 2. The Pattern Editor
Pattern and song are related closely in Hydrogen's interface. Patterns
are selected, named, copied, added and deleted using the Song editor,
and clicking on the pattern name in the song editor window immediately
activates the pattern editor for the selected pattern. By default, the
song editor provides ten blank patterns, but you can add as many as you
need. Right-clicking on the pattern name pops up a menu for copying,
deleting and naming the selected pattern.

The pattern editor panel presents a grid whose horizontal axis is the
timeline along which you place beats and whose vertical axis
represents the instruments played. Entering beats into a pattern is
as simple as clicking on the desired coordinates point, resulting in
a display similar to Figure 2. Each beat can have its own velocity and
pitch setting, available in the lower panel of the pattern editor (the
VEL and keyboard buttons). This panel can be toggled between velocity
and pitch grids; Figure 2 shows the panel in velocity mode.

The left side of the pattern editor shows the names of the instruments
assigned to their particular timelines. Left-clicking on the instrument
name triggers its sound; right-clicking pops up a menu for
mute/solo status and a clear/fill notes function. The fill function is
useful especially if you like to shape your pattern by removing beats
from a filled line. At this time, there is no undo/redo function
for either pattern or song edits.

The pattern editor's controls are located at the top of the editor
panel, as seen in Figure 2. These controls include a toggle for sounding
the sample when a beat is entered into your pattern. There also are two controls
for recording and quantizing beats entered from either the computer
keyboard or a MIDI device such as a keyboard, guitar, wind controller
or external sequencer.

The pattern editor control strip also includes the grid resolution and
pattern length value selectors. The grid resolution can be set to a
maximum of 64, with triplet resolutions up to the 32nd-note triplet. The
pattern length determines the number of beats per measure, like the
numerator in a conventional time signature, thus allowing odd bar
lengths such as five or seven beats per measure.
Figure 3. The Song Editor
Hydrogen's song editor is its simplest panel. A song form is created by
adding or deleting patterns in the linear track display; left-clicking on
a box in a track enters or removes it from the form. Hydrogen allows
the use of simultaneous patterns, a wonderful addition, especially
for adding variations to an existing pattern. Of course, you can copy a
pattern to an empty pattern slot and then edit it as you wish, but using a
simultaneous pattern can be a more flexible approach to adding variations
to an existing pattern.

The song editor's controls include buttons for adding a new pattern,
shifting pattern positions, performing some song operations and toggling
loop play on/off status. The song operations button calls a menu with
an item for setting song properties (song name, composer's name and
comments) and two controls for clearing a pattern sequence and deleting
all patterns from the song form.
The Instrument EditorFigure 4. The Instrument Editor
Up to 32 instruments can be used within a pattern. Each instrument can
be a single sampled sound, or it may consist of up to 16 samples layered
together for more complex sounds. Of course, your selected sounds need
not be restricted to drum and percussion samples; they can be any sounds
you like. Remember, a drum machine is essentially an audio sequencer,
and Hydrogen can play any sound you tell it to play.

Hydrogen's instrument editor provides some nice controls for shaping
your sounds, with parameter settings for layer properties and an ADSR
(attack/sustain/decay/release) envelope designer. The editor also includes
a neat control for random pitch fluctuation when the instrument is played,
thus creating more realistic sounds. Yes, even percussion sounds have
a pitch element. By the way, in Figure 4 you can see the scrollbox
controls for the envelope values, but plans have been made for adding
a graphic envelope editor.

An instrument's corresponding mixer strip also is shown in the
instrument editor, a nice convenience when designing your sounds. By
default, Hydrogen mutes unused channels, so be sure to un-mute
your new instrument channel.
The Drumkit ManagerFigure 5. Hydrogen's Drumkit Manager
You can save your instrument arrangement as a Hydrogen drumkit. The
process is simple: after making your instrument choices, open the
Window/Show Drumkit Manager dialog, click on the Save tab and do what
must be done--name, comment, save.

If you'd like to share your drumkits with the world, use the Export
tab to create a *.H2DRUMKIT file. Many kits already are available for
import into Hydrogen, and more are welcome; see the Hydrogen Web site
for details. Incidentally, you can load new drum kits or individual
samples into Hydrogen in real time. Loading is smooth, with no delay or
disturbance to the playback sound.
The MixerFigure 6. Hydrogen's Mixer
The mixer panel provides two functions in one panel. Its channels
correspond to the instruments in your pattern, each channel strip
providing a volume fader and level peak LED; four effects sends; controls
for panning, mute and solo; and a sample trigger button. The master
channel strip supplies a master volume control and three controls for
humanizing swing, timing and velocities. These humanization controls
add greater or lesser amounts of randomness to those factors and are
effective at loosening up a too-rigid feel to your patterns.

The master channel also contains the FX toggle to summon the
control strips for the four effects seen in each instrument
channel. Double-click on the strip name (No plugin, by default) to call
up the FX Properties dialog and then click on the Select FX button to see a
list of the LADSPA plugins available on your system. If you've compiled
Hydrogen with RDF (resource description framework) support, you should see
the nicely organized display shown in Figure 7. Select a plugin, click
on the OK button and the Properties dialog displays the parameter
controls for the effect (Figure 8).
Figure 7. The LADSPA Plugins SelectorFigure 8. Freeverb3 in Hydrogen
Now you can apply the plugin effect to any instrument channel, in whatever
amount you choose, and you can adjust the effect parameters in real time
from the FX Properties dialog. And don't forget, you still have three
more plugins to select and apply.
Documentation
A complete installation of Hydrogen includes documentation in the form of
a UNIX-style man page (man hydrogen); a tutorial in English and Italian;
and a manual in English, French, German, Italian and Spanish. Further
documentation and elucidation can be found on the Hydrogen mail-list
(see Resources).

Hydrogen also comes with some instructive and musical demos from
developers Emiliano Grilli and Artemiy Pavlov. These demos are excellent
lessons themselves, and you can learn a lot about the program simply by
studying them.
A Simple Exercise
Now I am going to show you how to create some patterns and put them together into
a simple song form. We select Hydrogen's default General MIDI drum kit
for our sounds. Open the File/Preferences to select either the JACK or OSS/Free (or
ALSA's OSS emulation) audio driver. I suggest using the JACK driver:
Hydrogen development keeps in close step with JACK development, and its
implementation of JACK usually is up to date. Thanks to JACK, Hydrogen
can direct each instrument to a separate audio output, a valuable feature
for recordists who like to dedicate a channel to each drum in a drum
kit. Hydrogen also adheres to the JACK transport interface and is equally
happy acting as the master timekeeper or as a synchronizer for another master.

Begin by selecting File/New to initialize the pattern and song
settings. Leave the tempo and time signature settings at their default
values, then activate Pattern 1 by clicking on its name in the song
editor window. Because you want to work in the pattern editor, click on the
P button in the main window controls to start pattern playback. For
the kick drum, in the pattern editor click on each of the four numbered
beat divisions, then add a snare drum on beats two and four and add
other instruments as you wish. Figure 9 demonstrates one possible result
with beats added for open and closed high-hat. Now add more instances
of Pattern 1 to its track in the song editor to create an eight-bar chain.

Left-click on Pattern 2 in the song editor and add a crash cymbal on the
first beat. Add the pattern to the first position in its track in the
song editor. Repeat this process with Pattern 3, but add a tom-tom fill
on the fourth beat. Add this pattern to the fourth position in its track
in the song editor. The song form now should look like the screenshot
in Figure 9. Figure 9 also demonstrates the use of a LADSPA plugin, the
Freeverb reverberation effect, which has been adjusted for and applied
to the high-hat sounds. Notice the positions of the FX send knobs in the
high-hat mixer channels.
Figure 9. A Simple Pattern and Song Form
Repeat these procedures to create more patterns and the song form you
desire. Remember, you can edit your song form in real time just as you
can with the pattern editor. Play with the mixer balances, the FX sends,
the instrument panning and the humanization controls. Try controlling
Hydrogen's transport status from an external JACK-aware application, such
as Ardour or Rui Nuno Capela's QJackCtl utility. If you're recording to
Ardour or ecasound, set up Hydrogen to send each instrument out on its
own channel--see the Audio System tab in the File/Preferences dialog--and
route each channel to a separate track in the recording software.
Parting Comments
Chemically or musically, Hydrogen is powerful stuff. In my opinion it
currently is the most sophisticated software drum machine available
for Linux, and its development team is driving quickly towards
the program's 1.0 release. Hydrogen's main developer, Alex Cominu
(aka Comix), is dedicated to improving Hydrogen's already formidable
capabilities, and I've come to expect wonderful things from him and
his crew. If you'd like to get involved with Hydrogen development or
if you'd like to use Hydrogen for your own music-making projects,
check out the program's Web site for details on downloading the package,
directions for joining the mail-list or catching up on the latest
news about Hydrogen's development plans. Projected improvements include
a more usable pitch editor grid, a graphic envelope editor for Hydrogen
instruments, a copy & paste pattern function, various MIDI enhancements
and various GUI improvements. Obviously I'm enthused about Hydrogen:
it's already one of the best examples of distributed development, and
I find it fascinating to watch as the best just gets better.

Next month: Back to MIDI, with Part 2 of
last
month's article
. See you then!
Resources
Hydrogen

JACK

ALSA

The Linux Audio
Developers Mail-List

The
Linux Audio Users Mail-List

Dave Phillips (dlphilp@bright.net) is a musician, teacher and
writer living in Findlay, Ohio. He has been an active member of the
Linux audio community since his first contact with Linux in 1995. He is
the author of The Book of Linux Music & Sound, as well as numerous
articles in Linux Journal.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

does any audio software do this

Anonymous's picture

oh, and this one too. Pleas please if anyone knows of software that will let me do what this guy does on this machine with a similar tactile interface (computer keyboard) please let me know!!!!!

http://youtube.com/watch?v=_6yZjrQXvx8&mode=related&search=

Not just for Linux either!

Anonymous's picture

Thanks to the support for OSS (Open Sound System) as well as ALSA, Hydrogen isn't just for Linux. I run it on a NetBSD machine, and it's an absolutely brilliant program. I do need to upgrade the version that's in NetBSD's package collection, which I've left languishing at version 0.8.x.

I just wish someone had the time and talent to make an ALSA compatability layer for NetBSD so I could run Hydrogen alongside Rosegarden. Then I could finally stop sequencing on my ancient Atari ST and Cubase.

Chris

still need real drum machine software

Anonymous's picture

I've tried dozens of apps like this and the just don't work for me artistically. They're just not NATURAL!

For YEARS I've been trying to find a piece of software that mimics an actual Drum Machine. Something that I can use just the (computer) keyboard to hit notes and trigger samples and loops. Still haven't found one. That's what the world really needs! Not another fruity loops or similar app. There are already too many like this.

These are drum machines:
http://youtube.com/watch?v=OMiNUyU0Y8s
http://youtube.com/watch?v=C0R7B12X8dY (pay close attention to 4:00 it's most important)

Noteedit and Hydrogen

Carl's picture

I've been using a combination of Hydrogen drum tracks saved to wav format and Noteedit tracks saved to wav. Set both to the same tempo and mix them using Audacity! You can balance the tracks by amplifying one of them and then mix them using 'Quickmix' and export as an mp3.

Correction re: GUI

Anonymous's picture

I mistakenly ascribed the GUI widgets designs to developer Willie Sippel. Willie kindly pointed out that the actual design is done by Christian Vorhof. Thanks to Willie for the correction, and many thanks to Christian for his excellent improvements to the Hydrogen GUI.

Best regards,

Dave Phillips

Re: An Introduction to Hydrogen

Anonymous's picture

I wish someone would get a driver for my Yamaha DSP Factory
also know as a dsp 2416 so I could ditch windows for midi also.

Same here. Can it be done?

Anonymous's picture

Same here. Can it be done?

I feel your pain...

Anonymous's picture

However, the only way that driver will ever happen is for owners to persistently (but politely) write to Yamaha and ask for either a driver from Yamaha or for Yamaha to release the needed specifications to the ALSA team. Alas, Yamaha has shown no indication that they'll do such a thing, even though it could result in more sales of their product. This short-sightedness re: Linux is a constant in the pro-audio industry, sad to say.

Best,

dp

Author's additions

Anonymous's picture

I would like to emphasize the fact that the CVS version tested in this article may not necessarily reflect the features that will be included in the eventual "finished" public release. CVS versions should be considered as "testing ground" for new ideas and features, there is no guarantee that they will become the mainstream versions.

I also want to mention the outstanding work on Hydrogen's GUI, done by Willie Sippel. Willie's improvements are most likely to be included in the mainstream release. As you can see in the screenshots to this article he's made some very professional-looking improvements to Hydrogen's appearance, and I just thought they deserved special mention. Nice work, Willie !

Best regards,

Dave Phillips

Re: Author's additions

Anonymous's picture

Thanks Dave! But the graphic design was done by Christian Vorhof, a friend of mine. I did some usability/ layout work and implemented small parts of the interface, Christian designs the widgets (he knows next to nothing about music production tools, but he's a very good graphic designer).

Ciao,

Willie Sippel

Re: An Introduction to Hydrogen

Anonymous's picture

Another great article, Dave. I think Hydrogen is a great program, but it does have one flaw - no triplets! Unless I'm missing something, there is no way (or no easy way?) to put triplets and more general tuplets into a 64 box grid.

Re: An Introduction to Hydrogen

Anonymous's picture

I find this forum absolutley amazing.

http://www.fuelcells.org.au/

Steve Z

Author's reply

Anonymous's picture

Triplets (up to 32nd-note triplets) are supported in the Grid Resolution drop-down menu in the Pattern editor, and the resolution can be changed in realtime.

Best,

dp

Post new comment

  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.
  • Use to create page breaks.

More information about formatting options