-
Notifications
You must be signed in to change notification settings - Fork 10
/
manual.docbook
9171 lines (8173 loc) · 422 KB
/
manual.docbook
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- mode:nxml; indent-tabs-mode:nil; fill-column:80; -*- -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<book id="Hydrogen-manual" lang="en">
<bookinfo>
<title>Hydrogen v1.2.3 Manual</title>
<authorgroup>
<author>
<firstname>Antonio</firstname>
<surname>Piraino</surname>
</author>
<author>
<firstname>Alessandro</firstname>
<surname>Cominu</surname>
</author>
<author>
<firstname>Thijs</firstname>
<surname>Van Severen</surname>
</author>
<author>
<firstname>Sebastian</firstname>
<surname>Moors</surname>
</author>
<author>
<firstname>Colin</firstname>
<surname>Evans</surname>
</author>
<author>
<firstname>Philipp</firstname>
<surname>Müller</surname>
</author>
</authorgroup>
<subtitle>2024-01-12</subtitle>
<abstract>
<para>Hydrogen is a software synthesizer which can be used alone,
emulating a drum machine based on patterns, or via an external <abbrev>MIDI</abbrev>
keyboard/sequencer software. Hydrogen runs on Linux, Mac OS X and Windows.</para>
</abstract>
</bookinfo>
<part id="part.1">
<title>Introduction</title>
<chapter id="chpt.download">
<title>Download</title>
<para>
You can download Hydrogen from
<ulink url="http://www.hydrogen-music.org">http://www.hydrogen-music.org</ulink>.
On the <ulink url="http://hydrogen-music.org/downloads/">Downloads</ulink>
page you can find several binaries (installers) for macOS, Windows, and
Linux.
</para>
<note>
<para>
From <emphasis role="bold">MacOS Big Sur</emphasis> onwards you may
require some extra steps to run Hydrogen on you computer. <ulink url="https://github.com/hydrogen-music/hydrogen/wiki/Running-Hydrogen-on-macOS">This
page</ulink>
of the Hydrogen Wiki will guide you through this process step by step.
</para>
</note>
</chapter>
<chapter id="chpt.compilation">
<title>Build</title>
<para>
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:
</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">
<ulink url="https://github.com/hydrogen-music/hydrogen/blob/master/INSTALL.md">
Linux
</ulink>
</emphasis>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">
<ulink url="https://github.com/hydrogen-music/hydrogen/wiki/Building-Hydrogen-from-Source-(macOS)">
macOS
</ulink>
</emphasis>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">
<ulink url="https://github.com/hydrogen-music/hydrogen/wiki/Building-Hydrogen-from-source-(Windows)">
Windows
</ulink>
</emphasis>
</para>
</listitem>
</itemizedlist>
<tip>
<para>
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.
</para>
<para>
The <ulink
url="https://github.com/hydrogen-music/hydrogen/blob/master/.appveyor.yml">
AppVeyor build pipelines</ulink> 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.
</para>
</tip>
</chapter>
<chapter id="chpt.keyboard_and_mouse">
<title>Keyboard and Mouse</title>
<para>
The Hydrogen user interface is designed so that it can be
used entirely with the mouse, with the exception of text entry.
</para>
<para>
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:
</para>
<itemizedlist>
<listitem>
<para>
<keycap>Ctrl</keycap> + <emphasis>left click</emphasis> : restore default value of knob or fader.
</para>
</listitem>
<listitem>
<para>
<keycap>Shift</keycap> + <emphasis>left click</emphasis> : bind a
<link linkend="chpt.midi.controlling.events"><abbrev>MIDI</abbrev>
Event</link> to <abbrev>MIDI</abbrev>-learnable widget (see <xref
linkend="chpt.midi.controlling.learnable"/>).
</para>
</listitem>
<listitem>
<para>
<keycap>Shift</keycap> + <emphasis>mouse wheel</emphasis>|<keycap>↑</keycap>|<keycap>↓</keycap> : change values of rotaries and faders at a faster pace.
</para>
</listitem>
</itemizedlist>
<para>
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 <keycap>ESC</keycap> or wait a couple of seconds.
</para>
<sect1>
<title>
Keyboard usage in Editors
</title>
<para>
The keyboard can also be used for navigating and editing in
the <link linkend="chpt.pattern_editor">Pattern</link> and <link linkend="chpt.song_editor">Song Editors</link>, using a combination of
<itemizedlist>
<listitem>
<para>
<emphasis role="bold"><keycap>↑</keycap>|<keycap>↓</keycap>|<keycap>←</keycap>|<keycap>→</keycap></emphasis> : move the
keyboard input cursor's position, or adjust values under
the cursor.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold"><keycap>Shift</keycap> + <keycap>↑</keycap>|<keycap>↓</keycap>|<keycap>←</keycap>|<keycap>→</keycap></emphasis> :
can be used to make selections of notes or pattern
groups as if the mouse had been dragged over them.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold"><keycap>Enter</keycap> and <keycap>Return</keycap></emphasis> : 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.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold"><keycap>Tab</keycap> and <keycap>Shift</keycap> + <keycap>Tab</keycap></emphasis> : move
between the Pattern, Song and Note Property Editor.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold"><keycap>Delete</keycap></emphasis> :
delete notes or patterns.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold"><keycap>Esc</keycap></emphasis> :
cancels an ongoing selection, move or copy.
</para>
</listitem>
</itemizedlist>
</para>
<note>
<para>
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 <link linkend="chpt.preferences.general_tab">General tab</link> of the Preferences.
</para>
</note>
<para>
Most other keys on the keyboard can be used to play <link
linkend="def.sample">samples</link> (see <xref
linkend="chpt.overview.virtual_keyboard"/>).
</para>
</sect1>
</chapter>
</part>
<part id="part.using_hydrogen">
<title>Using Hydrogen</title>
<chapter id="chpt.overview">
<title>Overview</title>
<sect1 id="chpt.overview.gui">
<title>Main User Interface</title>
<figure id="fig.UI_overview">
<title>The Main UI in Single Pane mode</title>
<mediaobject>
<imageobject>
<imagedata fileref="generated_en/GUI_Sections_0.9.5_v2.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
<para>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).
</para>
<tip>
<para>
You can switch between these two modes in the <link linkend="chpt.preferences.appearance_tab.interface">Interface</link> tab of the Appearance tab in the Preferences.
</para>
</tip>
<para>
Below you can see the main UI split up in 5 parts: the <link linkend="chpt.main_menu">Main Menu</link>, <link linkend="chpt.main_toolbar">Main
Toolbar</link>, <link linkend="chpt.song_editor">Song Editor</link>, <link linkend="chpt.pattern_editor">Pattern Editor</link> and the <link linkend="chpt.instrument_editor">Instrument</link> and <link linkend="chpt.sound_library">Sound Library Editor</link>.
These sections will be explained in detail further down in this
manual.
</para>
<figure id="fig.tabbed_UI_overview">
<title>The Main UI in Tabbed mode</title>
<mediaobject>
<imageobject>
<imagedata fileref="generated_en/MainUI_tabbed.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
</sect1>
<sect1 id="chpt.overview.drumkits" xreflabel="Drumkit Concept">
<title>Drumkit Concept</title>
<para>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 <link linkend="def.sample">sample</link>-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 <link linkend="chpt.pattern_editor.piano_mode">Piano Roll Editor</link> was introduced.
</para>
<para>
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 <link linkend="def.component">components</link> which each can consist of multiple
<link linkend="def.layer">layered</link> samples.
</para>
<tip>
<para>
In case you are not familiar with the world of sound synthesis, you can check out the <link linkend="glossary">Glossary</link> for a number of useful definitions.
</para>
</tip>
<para>
Drumkits can most easily be loaded by right-clicking their name in the <link linkend="chpt.sound_library">Sound Library</link>. Once loaded its name will be displayed in the <link linkend="chpt.pattern_editor">Pattern Editor</link>. 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 <link linkend="sect.main_menu.drumkits.save">saved</link> to the drumkit in case you want them to persist and to be applicable to other songs as well. The actions available in the <link linkend="sect.main_menu.drumkits">Drumkits</link> 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 <filename>drumkit.xml</filename> file and altering the current kit's properties via the Sound Library does only affect the stock kit and <emphasis>not</emphasis> the one associated with your current song.
</para>
</sect1>
<sect1 id="chpt.overview.virtual_keyboard" xreflabel="Virtual Keyboard">
<title>Virtual Keyboard</title>
<para>
For quick checks and recording (or in case you do not have a
<abbrev>MIDI</abbrev> device at hand), you can also use Hydrogen's
Virtual Keyboard. It emulates note triggering via
<abbrev>MIDI</abbrev> <emphasis>NOTE_ON</emphasis> events (see <xref
linkend="chpt.midi.note"/>).
</para>
<note>
<para>
Key strokes of the Virtual Keyboard don't trigger <link
linkend="chpt.midi.controlling">Actions</link> associated with
<emphasis>NOTE_ON</emphasis> events.
</para>
</note>
<para>
The figure below depicts which keyboard key is associated with which
instrument number in Input Mode <option>Drumkit</option> or instrument
pitch in Input Mode <option>Instrument</option>.
</para>
<informalfigure id="fig.letters_keyboard">
<mediaobject>
<textobject>
<phrase>
Picture illustrating the mapping of Hydrogen's Virtual Keyboard to
the layout of the computers' keyboard.
</phrase>
</textobject>
<imageobject>
<imagedata fileref="virtual_keyboard.png" format="PNG" width="100%"/>
</imageobject>
</mediaobject>
</informalfigure>
<note>
<para>
When using German or French keyboard layout the overall mapping is still the same.
</para>
</note>
</sect1>
<sect1 id="chpt.overview.recording">
<title>Recording in Hydrogen</title>
<para>
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 <link linkend="chpt.midi.note"><abbrev>MIDI</abbrev>
device</link>, like an e-drum, or use the <link
linkend="chpt.overview.virtual_keyboard">Virtual Keyboard</link>
provided by Hydrogen.
</para>
<para>
In order to start recording, first activate the record button
<inlinemediaobject>
<textobject>
<phrase>
Grey record button with a red circle in its center.
</phrase>
</textobject>
<imageobject>
<imagedata fileref="generated_en/playerControlRecordButton.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
in the <link linkend="sect.main_toolbar.transport_control">Main Toolbar</link> and afterwards press the
<inlinemediaobject>
<textobject>
<phrase>
Grey play and pause button containing two vertical black lines
(left) and a black triangle (right) pointing to the right.
</phrase>
</textobject>
<imageobject>
<imagedata fileref="generated_en/playerControlPlayButton.png" format="PNG"/>
</imageobject>
</inlinemediaobject>
button located right next to it (like in a classical tape recorder).
</para>
<para>
Using the playback mode of the <link linkend="chpt.song_editor">Song
Editor</link> you can choose between the following two scenarios. When
in <link linkend="chpt.song_editor.editor_modes.pattern_mode">Pattern
Mode</link> all inserted notes will be added to the pattern currently
selected in the <link
linkend="chpt.song_editor.sidebar">Sidebar</link> of the Song
Editor. When, on the other hand, in <link
linkend="chpt.song_editor.editor_modes.song_mode">Song Mode</link> 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.
</para>
<tip>
<para>
By <link linkend="chpt.song_editor.main_controls.pattern_editor_lock">locking</link> the Pattern Editor in Song Mode Hydrogen will automatically select the pattern recorded notes will be inserted to.
</para>
</tip>
<note>
<para>
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.
</para>
</note>
<informalfigure id="fig.overview.recording.punch_in">
<mediaobject>
<textobject>
<phrase>
Song ruler with a red rectangle indicating the punch in area.
</phrase>
</textobject>
<imageobject>
<imagedata fileref="punch_in.png" format="PNG" />
</imageobject>
</mediaobject>
</informalfigure>
<para>
You can also limit patterns new notes will be recorded to by defining a continuous <emphasis role="bold">punch in</emphasis> area via right click and dragging the cursor to the right in the ruler of the <link linkend="chpt.song_editor">Song Editor</link>.
</para>
</sect1>
<sect1 id="chpt.overview.session_management">
<title>Session Management</title>
<para>
With Session Management you can easily restore complex sessions involving numerous applications including their particular state. Hydrogen does support some Session Management systems too.
</para>
<warning>
<para>
All the supported Session Management protocols are Linux only. There is no (tested) support for MacOS and Windows yet.
</para>
</warning>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold"><abbrev>NSM</abbrev></emphasis>:
<ulink url="http://non.tuxfamily.org/nsm/API.html">Non Session Manager (<abbrev>NSM</abbrev>)</ulink> 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>
<para>
We highly recommend using this protocol for Session Management.
</para>
</tip>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold"><abbrev>LASH</abbrev></emphasis>:
Hydrogen provides a basic support for <ulink url="http://lash.nongnu.org">LASH Audio Session Handler (<abbrev>LASH</abbrev>)</ulink>. This covers recalling the song used within the session but, unlike the NSM support, no recalling of the <abbrev>JACK</abbrev> connections and no per-session preferences.
<note>
<para>
You have to activate <abbrev>LASH</abbrev> support in the <link linkend="fig.preferences.general_tab">General</link> tab of the Preference dialog in order to use it.
</para>
</note>
</para>
</listitem>
</itemizedlist>
<sect2 id="chpt.overview.session_management.nsm">
<title>NSM</title>
<para>
Hydrogen will be under session management if you start it via a <abbrev>NSM</abbrev> server application, like <ulink url="https://github.com/Houston4444/RaySession">RaySession</ulink>. You can easily check whether Hydrogen is aware of the session by checking out the <option>Project</option> option of the <link linkend="chpt.main_menu">Main Menu</link> as some action will have changed in order to comply to the <abbrev>NSM</abbrev> API.
</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Replace With New Song</emphasis>
instead of <link linkend="sect.main_menu.projects.new">New</link>. Replaces the song associated with the session by an empty one.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Import Into Session</emphasis>
instead of <link linkend="sect.main_menu.projects.open">Open</link>. Replaces the song associated with the session by a song of your choice.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Import Recent Info Session</emphasis>
instead of <link linkend="sect.main_menu.projects.open_recent">Open Recent</link>. Replaces the song associated with the session by one of the recently used songs.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Export From Session As</emphasis>
instead of <link linkend="sect.main_menu.projects.save_as">Save As</link>. Stores the song associated with the session at a location of your choice as <link linkend="chpt.file_types.h2song">.h2song</link> file.
<note>
<para>
In contrast to the <emphasis>Save As</emphasis> command the underlying path of the current song will not be changed. All subsequent <emphasis>Save</emphasis> actions will store the current state of the song to the file in the session folder and <emphasis role="bold">not</emphasis> to the path of the exported file.
</para>
</note>
</para>
</listitem>
</itemizedlist>
<para>
Both the song and the preferences associated with the session will be stored in a session folder called <filename>Hydrogen.*</filename>. 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>
<para>
This allows you to create fully self sufficient backups of your Hydrogen session using <command>tar -chf</command>. These can even be ported and used on systems which do not have the required drumkits installed.
</para>
</tip>
<warning>
<para>
Note that only the stock <link linkend="chpt.overview.drumkits">drumkit</link> 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 <link linkend="sect.main_menu.drumkits.save">saved</link> the kit (or create a new one) in order to ensure consistency.
</para>
</warning>
</para>
</sect2>
</sect1>
<sect1 id="chpt.overview.cli">
<title>Command-line Options</title>
<para>
After <link linkend="chpt.download">installing</link> Hydrogen on your system you can invoke it from the command-line with a number of different options.
<screen>
<command>-h, --help Displays this help.</command>
<command>-v, --version Displays version information.</command>
<command>-d, --driver <Audiodriver> Use the selected audio driver (auto, jack, pulseaudio, ...)</command>
<command>-p, --playlist <File> Load a playlist (*.h2playlist) at startup</command>
<command>-s, --song <File> Load a song (*.h2song) at startup</command>
<command>-k, --kit <DrumkitName> Load a drumkit at startup</command>
<command>-i, --install <File> Install a drumkit (*.h2drumkit)</command>
<command>-V, --verbose <Level> Level, if present, may be None, Error, Warning, Info, Debug</command>
<command>-L, --log-file <Path> Alternative log file path</command>
<command>-T, --log-timestamps Add timestamps to all log messages</command>
<command>-P, --data <Path> Use an alternate system data path</command>
<command> --config <Path> Use an alternate config file</command>
<command> --layout <Layout> UI layout ('tabbed' or 'single')</command>
<command>-O, --osc-port <int> Custom port for OSC connections</command>
<command>-n, --nosplash Hide splash screen</command>
</screen>
<note>
<para>
Which audio drivers are supported depends on both your platform and its installed packages. Your local help message will display all available options.
</para>
</note>
</para>
</sect1>
</chapter>
<chapter id="chpt.preferences" xreflabel="Preferences">
<title>Preferences</title>
<para>Using this window most of the configuration options and customization can be altered. The Preferences Dialog can be accessed via the <parameter>Options</parameter> element in the <link linkend="chpt.main_menu">Main Menu</link>.</para>
<sect1 id="chpt.preferences.general_tab">
<title>General</title>
<figure id="fig.preferences.general_tab">
<title>The General Tab</title>
<mediaobject>
<imageobject>
<imagedata fileref="generated_en/PreferencesGeneral_V3.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Language</emphasis>:
chooses one of the translations Hydrogen is available in.
<note>
<para>
For this setting to take effect you have to restart Hydrogen.
</para>
</note>
<tip>
<para>
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 <link linkend="sect.main_menu.info">About</link> dialog in the Info option of the Main menu for information of how to contact the Hydrogen dev team.
</para>
</tip>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Reopen last used song</emphasis>:
determines whether Hydrogen will open the last used song during startup or an empty song instead.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Reopen last used playlist</emphasis>:
determines whether the last used <link linkend="chpt.playlist_editor">Playlist</link> will be loaded during startup or none at all.
<tip>
<para>
This can come in handy when you are using Hydrogen live.
</para>
</tip>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Use relative paths for playlist</emphasis>:
specifies whether the paths stored in a <link linkend="chpt.file_types.h2playlist">.h2playlist</link> file will be absolute or relative to the <filename role="directory">playlist</filename> folder in the Hydrogen data
directory (usually <filename role="directory">$HOME/.hydrogen/data/</filename>).
<tip>
<para>
Using relative paths might be handy when using your playlist on different computers or user profiles.
</para>
</tip>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Hide keyboard input cursor</emphasis>:
hides the keyboard cursor until you press a key on you keyboard (see <xref linkend="chpt.keyboard_and_mouse" />). By enabling this feature you can switch to the look and feel of the interaction with the <link linkend="chpt.pattern_editor">Pattern Editor</link> and <link linkend="chpt.song_editor">Song Editor</link> prior to Hydrogen v1.1.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Use LASH</emphasis>:
enables <abbrev>LASH</abbrev> (<abbrev>LASH</abbrev> Audio Session Handler) support within Hydrogen. This allows you to recover a particular song associated with a session.
<tip>
<para>
You may consider using the more advanced <link linkend="chpt.overview.session_management.nsm">NSM</link> support of Hydrogen which gives you many additional features, like restoring all <abbrev>JACK</abbrev> connections or creating a per-session configuration.
</para>
</tip>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Beat counter drift compensation in 1/10 ms</emphasis>:
allows you to compensate for system latency. The provided number will be added to each consecutive triggering of the <link linkend="sect.main_toolbar.tap_tempo_beat_counter.beat_counter">Beat Counter</link>. The allowed range is from <option>-200</option> to <option>200</option>.
<tip>
<para>
This is quite handy if you are using different sound cards or external <abbrev>MIDI</abbrev> devices, like a keyboard or an e-drum, with mismatching clocks.
</para>
<para>
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.
</para>
</tip>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Beat counter start offset in ms</emphasis>:
sets the time between the
Beat Counter's last input stroke and when the song starts playing. Its allowed range is from <option>-500</option> to <option>500</option>.
<note>
<para>
The Beat Counter has to be set to <emphasis role="bold">Set <abbrev>BPM</abbrev> and play</emphasis> -
<inlinemediaobject>
<textobject>
<phrase>
Blue button containing a "P".
</phrase>
</textobject>
<imageobject>
<imagedata fileref="generated_en/btn_bc_set_play_on.png" format="PNG" />
</imageobject>
</inlinemediaobject>
should be displayed in the bottom right corner - for this setting to take effect.
</para>
</note>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Maximum number of bars</emphasis>:
sets the maximum number of supported bars/patterns for a single song. Its allowed range is from <option>1</option> to <option>800</option>.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Maximum number of layers</emphasis>:
sets the maximum number of <link linkend="def.layer">layers</link> for a single instrument. Its allowed range is from <option>16</option> to <option>8192</option>.
<note>
<para>
For this setting to take effect you have to restart Hydrogen.
</para>
</note>
</para>
</listitem>
<listitem id="chpt.preferences.general_tab.autosaves">
<para>
<emphasis role="bold">Numbers of autosaves per hour</emphasis>:
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>
<para>
These autosave files will be hidden and contain an additional suffix "autosave". E.g. if your current song is called <filename>example.h2song</filename> the backup will be stored in <filename>.example.autosave.h2song</filename> within the same directory. But you do not need to be careful when chosing a song name. Hydrogen will take care of finding a filename for the backup not existing yet.
</para>
</note>
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Path to the Rubberband command-line utility</emphasis>:
sets the absolute path to the <command>rubberband</command> command line interface (CLI) Hydrogen will use for stretching samples in the <link linkend="chpt.sample_editor.pitch">Sample Editor</link>.
<note>
<para>
This option is only available if your version of Hydrogen does <emphasis>not</emphasis> 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.
</para>
</note>
<tip>
<para>
If you are using Ubuntu, you can install Rubber Band from the Software Center
via the package <option>rubberband-cli</option>. For other Linux distros please check your package manager and for other platforms
please check <ulink url="http://breakfastquay.com/rubberband/">the Rubber Band site
</ulink>.
</para>
</tip>
<tip>
<para>
If Rubber Band is installed and configured correctly, you will see an extra button
<inlinemediaobject>
<textobject>
<phrase>
Grey vertical button containing the characters "R", "U", and "B"
in adjacent lines.
</phrase>
</textobject>
<imageobject>
<imagedata fileref="generated_en/playerControlRubberbandButton.png" format="PNG" />
</imageobject>
</inlinemediaobject>
button in the <link linkend="sect.main_toolbar.bpm_control_and_metronome">Main Toolbar</link>. You can use this behavior to verify your configuration.
</para>
</tip>
</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="chpt.preferences.audio_tab">
<title>Audio System</title>
<figure id="fig.preferences.audio_tab">
<title>The Audio System Tab</title>
<mediaobject>
<imageobject>
<imagedata fileref="generated_en/PreferencesAudioSystem_V3.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">Audio System</emphasis>: let's you choose the audio driver used by Hydrogen to connect to your computer's sound card.
</para>
<para>
Available options:
</para>
<itemizedlist>
<listitem>
<para><option>Auto</option>: Hydrogen will try a
number of different drivers in a predetermined, OS-dependent order, choose the
first working one, and display the result.
<tip>
<para>
This option is recommended for beginners.
</para>
</tip>
</para>
</listitem>
<listitem id="sect.preferences.jack">
<para><option>JACK</option>: The <abbrev>JACK</abbrev> driver is a
professional audio server which permits very low lag and exchanges
with other audio software. The <abbrev>JACK</abbrev>
server will start automatically if not already running.
</para>
</listitem>
<listitem>
<para><option>ALSA</option>: The widely adopted
Linux standard audio driver.</para>
</listitem>
<listitem>
<para><option>OSS</option>: The <abbrev>OSS</abbrev> audio driver
uses <filename>/dev/dsp</filename> and it's based on the <abbrev>OSS</abbrev> interface which is supported
by the vast majority of sound cards available for Linux; this said,
the use of this audio driver blocks <filename>/dev/dsp</filename> until Hydrogen is
closed i.e. unusable by any other software. Use it as last
resort.
</para>
</listitem>
<listitem>
<para><option>PortAudio</option>: An open-source
multi platform audio driver interface layer.</para>
</listitem>
<listitem>
<para><option>CoreAudio</option>: A driver for MacOS.</para>
</listitem>
<listitem>
<para><option>PulseAudio</option>: A driver for the cross platform
PulseAudio sound server.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
<emphasis role="bold">Host API</emphasis> (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.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Device</emphasis>:
specifies the particular sound card the audio driver will use.
</para>
<note>
<para>
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.
</para>
</note>
</listitem>
<listitem>
<para>
<emphasis role="bold">Buffer size</emphasis>:
specifies the size of the batch of time Hydrogen will
process in one run. Supported values are from
<option>100</option> to <option>5000</option>, although
this can vary depending on audio system and sound
device.
</para>
<para>
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.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Sample rate</emphasis>:
specifies the number of data points the audio signal will contain within one second.
<note>
<para>
If you are using the <abbrev>JACK</abbrev> audio driver, the sample rate can not be altered from within Hydrogen and the audio driver
configuration should happen before starting the <abbrev>JACK</abbrev> server.
</para>
</note>
</para>
</listitem>
<listitem id="sect.preferences.jack.track_output">
<para><emphasis role="bold">Track output</emphasis>: determines which audio settings will be applied to the outgoing
audio of the per-instrument <abbrev>JACK</abbrev> output ports.</para>
<para><option>Post-Fader</option>:</para>
<itemizedlist>
<listitem><para>note <link linkend="chpt.pattern_editor.note_properties.velocity">velocity</link> and <link linkend="chpt.pattern_editor.note_properties.pan">pan</link></para></listitem>
<listitem><para><link linkend="chpt.instrument_editor.layers.controls.layer_gain">layer gain</link></para></listitem>
<listitem><para>component <link linkend="chpt.instrument_editor.layers.controls.component_gain">gain</link> and <link linkend="chpt.mixer.component_strips.fader_and_lcd">volume</link></para></listitem>
<listitem><para>instrument <link
linkend="chpt.instrument_editor.gain_and_mute_group">gain</link>, <link
linkend="chpt.instrument_editor.general.sustain">sustain</link>,
<link linkend="chpt.mixer.channel_strips.pan">pan</link>, and
<link
linkend="chpt.mixer.channel_strips.fader_and_lcd">volume</link></para></listitem>
<listitem>
<para>
<link linkend="sect.song_editor.automation_path">automation
path</link> and <link
linkend="chpt.mixer.master_fader_strip">velocity humanization</link>
</para>
</listitem>
</itemizedlist>
<para><option>Pre-Fader</option>:</para>
<itemizedlist>
<listitem><para>note <link linkend="chpt.pattern_editor.note_properties.velocity">velocity</link> and <link linkend="chpt.pattern_editor.note_properties.pan">pan</link></para></listitem>
<listitem><para><link linkend="chpt.instrument_editor.layers.controls.layer_gain">layer gain</link></para></listitem>
<listitem>
<para>instrument <link
linkend="chpt.instrument_editor.general.sustain">sustain</link>
</para>
</listitem>
<listitem>
<para>
<link linkend="sect.song_editor.automation_path">automation
path</link> and <link
linkend="chpt.mixer.master_fader_strip">velocity humanization</link>
</para>
</listitem>
</itemizedlist>
<note>
<para>
This option is only available if the <abbrev>JACK</abbrev> audio driver was selected and it will only take effect if the <emphasis role="bold">Connect to default <abbrev>JACK</abbrev> output ports</emphasis> option is checked.
</para>
</note>
</listitem>
<listitem>
<para><emphasis role="bold">Connect to default <abbrev>JACK</abbrev> output
ports</emphasis>: connects the main stereo <abbrev>JACK</abbrev> output ports of the <link linkend="chpt.mixer.master_fader_strip">Master Fader Strip</link> to
the default <abbrev>JACK</abbrev> input ports of your system
(<emphasis>system:playback_1</emphasis> and
<emphasis>system:playback_2</emphasis>). This will be done every time Hydrogen
starts up or the <abbrev>JACK</abbrev> audio driver is restarted.</para>
<note>
<para>
This option is only available if the <abbrev>JACK</abbrev> audio driver was selected.
</para>
</note>
</listitem>
<listitem id="sect.preferences.jack.per_instrument_outs">
<para><emphasis role="bold">Create per-instrument
<abbrev>JACK</abbrev> output ports</emphasis>: in addition to the main stereo output
Hydrogen will register <abbrev>JACK</abbrev> output ports for every single
instrument.
</para>
<tip>
<para>
This can be useful if you want to add effects to a
single instrument with jack-rack for example.
</para>
</tip>
<note>
<para>
This option is only available if the <abbrev>JACK</abbrev> audio driver was selected.
</para>
</note>
<warning>
<para>
There are no <abbrev>JACK</abbrev> output ports for the <link linkend="sect.main_toolbar.bpm_control_and_metronome">Metronome</link> and the <link linkend="chpt.song_editor.playbackTrack">Playback Track</link>. Their audio is only available via the main stereo output ports of Hydrogen.
</para>
</warning>
</listitem>
<listitem>
<para>
<emphasis role="bold">Enable <link
linkend="sect.main_toolbar.jack_control"><abbrev>JACK</abbrev>