OnWorks favicon

jack-keyboard - Online in the Cloud

Run jack-keyboard in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command jack-keyboard that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



jack-keyboard - A virtual keyboard for JACK MIDI


jack-keyboard [ -C ] [ -G ] [ -K ] [ -T ] [ -V ] [ -a input port ] [ -k ] [ -r rate ] [ -t
] [ -u ] [ -c channel ] [ -b bank ] [ -p program ] [ -l layout ]


-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

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

-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,


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


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.


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.


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.


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.

Use jack-keyboard online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    SMPlayer is a free media player for
    Windows and Linux with built-in codecs
    that can also play YouTube videos. One
    of the most interesting features of
    Download SMPlayer
  • 2
    AAX to MP3
    AAX to MP3
    Usage: - Install the Audible Manager
    and open a file of your account. - Sign
    in into your audible account (in the
    application). Now the program can
    convert you...
    Download AAX to MP3
  • 3
    TestLink is a web based Test Management
    tool. The application provides Test
    specification, Test plans and execution,
    Reporting, Requirements specification
    and ...
    Download TestLink
  • 4
    XDXF - XML Dictionary Exchange Format
    XDXF - XML Dictionary Exchange Format
    XDXF is a project to unite all existing
    open dictionaries and provide both users
    and developers with universal XML-based
    format, convertible from and to other ...
    Download XDXF - XML Dictionary Exchange Format
  • 5
    Transmission Remote GUI
    Transmission Remote GUI
    Transmission Remote GUI is a feature
    rich cross platform front-end to
    remotely control a Transmission
    Bit-Torrent client daemon via its RPC
    protocol. Transmissi...
    Download Transmission Remote GUI
  • 6
    Open-source tool to access Amazon S3
    file storage. S3cmd is a free command
    line tool and client for uploading,
    retrieving and managing data in Amazon
    S3 and ot...
    Download s3cmd
  • More »

Linux commands