NAME¶
jack-keyboard - A virtual keyboard for JACK MIDI
SYNOPSIS¶
jack-keyboard [
-C ] [
-G ] [
-K ] [
-T ] [
-V ] [
-a input port ] [
-k ] [
-r
rate ] [
-t ] [
-u ] [
-c
channel ] [
-b bank ] [
-p
program ] [
-l layout ]
OPTIONS¶
- -C
- Enable "keyboard cue" - two horizontal lines over
a part of keyboard; keys under the lower line are mapped to the lower row
of your PC keyboard; keys under the upper line are mapped to the upper
row.
- -G
- Disable GUI. It makes jack-keyboard look like it did
before version 2.0.
- -K
- Grab the keyboard. This makes jack-keyboard receive
keyboard events even when it does not have focus. In other words, you can
play while mousing in a different window.
Note: It's not reliable yet. It does not work when some other application
keeps the keyboard grabbed. It does not work with GNOME. Even when it
seems to work, some keyboard events may get lost.
- -T
- Toggle titlebar, on which channel/bank/program information
is shown. With -G option, it disables titlebar; otherwise it enables
it.
- -V
- Print version number to standard output and exit.
- -a input port
- Automatically connect to the named input port. Note that
this may cause problems with LASH.
- -k
- Allow connecting to other instances of jack-keyboard (see
PIANOLA MODE below). Without this option, jack-keyboard will refuse
to connect to any JACK client whose name starts in
"jack-keyboard"; this is to prevent loops. Note that it's
impossible to connect instance of jack-keyboard to itself, even
with this option set.
- -r rate
- Set rate limit to rate, in Kbaud. Limit defined by
the MIDI specification is 31.25. By default this parameter is zero, that
is, rate limiting is disabled.
- -t
- Send all MIDI messages with zero time offset, making them
play as soon as they reach the synth. This was the default behavior before
version 1.6.
- -u
- By default, jack-keyboard does not send program/bank
change messages after reconnecting, so the newly connected instrument
remains at previous settings. This option changes that behaviour.
- -c channel
- Set initial MIDI channel to channel; by default it's
1.
- -b bank
- Set initial MIDI bank to bank. With this option,
jack-keyboard will send the bank/program change once, when it
connects.
- -p program
- Set initial MIDI program to program. With this
option, jack-keyboard will send the bank/program change once, when
it connects.
- -l layout
- Specify the layout of computer keyboard being used. Valid
arguments are QWERTY, QWERTZ, AZERTY, and DVORAK. Default is QWERTY.
DESCRIPTION¶
jack-keyboard is a virtual MIDI keyboard - a program that allows you to
send JACK MIDI events (play ;-) using your PC keyboard. It's somewhat similar
to
vkeybd, except it uses JACK MIDI instead of ALSA, and the keyboard
mapping is much better - it uses the same layout as trackers (like Impulse
Tracker) did, so you have two and half octaves under your fingers.
KEY BINDINGS¶
Keyboard mapping is the same as in Impulse Tracker. This is your QWERTY
keyboard:
+----+----+ +----+----+----+ +----+----+
| 2 | 3 | | 5 | 6 | 7 | | 9 | 0 |
+----+----+----+----+----+----+----+----+----+----+
| Q | W | E | R | T | Y | U | I | O | P |
+----+----+----+----+----+----+----+----+----+----+
| S | D | | G | H | J |
+----+----+----+----+----+----+----+
| Z | X | C | V | B | N | M |
+----+----+----+----+----+----+----+
And this is MIDI mapping:
+----+----+ +----+----+----+ +----+----+
|C#5 |D#5 | |F#5 |G#5 |A#5 | |C#6 |D#6 |
+----+----+----+----+----+----+----+----+----+----+
| C5 | D5 | E5 | F5 | G5 | A5 | B5 | C6 | D6 | E6 |
+----+----+----+----+----+----+----+----+----+----+
|C#4 |D#4 | |F#4 |G#4 |A#4 |
+----+----+----+----+----+----+----+
| C4 | D4 | E4 | F4 | G4 | A4 | B4 |
+----+----+----+----+----+----+----+
Spacebar is a sustain key. Holding it when pressing or releasing key will make
that key sustained, i.e. Note Off MIDI event won't be sent after releasing the
key. To release (stop) all the sustained notes, press and release spacebar.
Holding Shift when pressing note will make it louder (it increases velocity).
Holding Ctrl will do the opposite. You can change the default velocity by
moving the Velocity slider. You can change the "high" and
"low" velocity values by moving the slider while holding Shift or
Ctrl keys.
Pressing "-" and "+" keys on numeric keypad changes the
octave your keyboard is mapped to. Pressing "*" and "/" on
numeric keypad changes MIDI program (instrument). Pressing Insert or Delete
keys will connect
jack-keyboard to the next/previous MIDI input port
(it will cycle between running instances of ghostess, for example). Home and
End keys change the MIDI channel. Page Up and Page Down keys switch the MIDI
bank.
Esc works as a panic key - when you press it, all sound stops.
SETTING CHANNEL/BANK/PROGRAM NUMBER DIRECTLY¶
To switch directly to a channel, bank or program, enter its number on the
numeric keypad (it won't be shown in any way) and press Home or End (to change
channel), Page Up or Page Down (to change bank) or "/" or
"*" (to change program). For example, to change to program number
123, type, on the numeric keypad, "123/", without quotes.
TITLEBAR¶
When
-G xor
-T is given, some informational messages in the title
bar appear. They are supposed to be self explanatory. If you see
"bank/program change not sent", it means that the bank/program
numbers as seen in the title bar were not sent. In other words, synth the
jack-keyboard is connected to may use different values. This happens at
startup and after switching between synths (using Insert/Delete keys). To send
bank/program change at startup, use
-b and
-p parameters. To
automatically send bank/program change after reconnect, use the
-u
option.
PIANOLA MODE¶
In addition to the MIDI output port,
jack-keyboard also opens MIDI input
(listening) port. MIDI events going into this port will be passed to the
output port unmodified, except for channel number, which will be set to the
one
jack-keyboard is configured to use. Note On and Note Off MIDI
events will cause visible effect (pressing and releasing) on keys, just like
if they were being pressed using keyboard or mouse.
jack-keyboard will never connect to it's own MIDI input port. It will
also refuse to connect to any other client whose name begins in
"jack-keyboard", unless the "-k" option is given. It is,
however, possible to connect these ports manually, using
jack_connect
or
qjackctl; this may create feedback loop.
SEE ALSO¶
jackd(1),
ghostess(1),
qjackctl(1)
BUGS¶
Key grabbing is unreliable.
Many PC keyboards have problems with polyphony. For example, with the one I'm
using right now, it's impossible to press "c", "v" and
"b" at the same time. It's a hardware problem, not the software one.
The spin widgets used to set channel/bank/program number don't take focus, so
the value cannot be entered into them in the usual way. It's because
jack-keyboard already uses numeric keys for different purposes. You can
still directly enter channel/bank/program in a way described above.