aboutsummaryrefslogtreecommitdiff
path: root/audio/lsmi/man/lsmi-monterey.1
diff options
context:
space:
mode:
Diffstat (limited to 'audio/lsmi/man/lsmi-monterey.1')
-rw-r--r--audio/lsmi/man/lsmi-monterey.1172
1 files changed, 172 insertions, 0 deletions
diff --git a/audio/lsmi/man/lsmi-monterey.1 b/audio/lsmi/man/lsmi-monterey.1
new file mode 100644
index 0000000000000..67b365f0b5d70
--- /dev/null
+++ b/audio/lsmi/man/lsmi-monterey.1
@@ -0,0 +1,172 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH LSMI-MONTEREY 1 "May 15, 2012"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+
+lsmi-monterey \- Linux Pseudo MIDI Input -- Monterey
+.SH SYNOPSIS
+.B lsmi-monterey
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+
+Monterey is a userspace driver for Monterey
+International MK-9500 / K617W reversible keyboard.
+
+This device consists of a 104 QWERTY AT computer keyboard on one side and a
+37 key, velocity sensitive musical keyboard on the other. In addition to
+flipping the unit over, one must flip a switch on the right side in order to
+change the mode.
+
+The keyboard interface is standard, except that the musical side sends
+two-scancode packets for each piano key press and release ('make' codes
+only). The first scancode indicates the note, the second the velocity: 7
+being the lowest, 1 the highest, and 0 representing a release (or sometimes
+a very very light keypress). The musical side also has buttons for keys F1
+through F9, left and right arrow keys, and return--all generating 'make'
+codes only with no way to register release.
+
+This driver creates an ALSA Sequencer port and attempts to fill it with
+realtime MIDI data representing input from the musical side of the keyboard,
+while passing regular textual data through the uinput interface and on to
+Linux console or X Window System. There is no need to load a special
+application or even run X in order to generate MIDI events: simply flip the
+keyboard over and go nuts. The driver doesn't interfere at all with
+multiple/international layouts. You can even use it along
+side another (merged input) keyboard (ie. plugged into a laptop) and the
+driver should be able to sort everything out (provided that you refrain from
+typing on both keyboards simultaneously).
+
+.SH FUNCTION KEYS
+
+There's no reliable way to distinguish the function keys on the musical
+side from those on the QWERTY side in order to map them to channel,
+program change and so on. One solution is to interpret any function key
+(including arrows and return) pressed within two seconds of the 'quaver'
+key (F9) as a MIDI event.
+
+.TP
+.B Program Change
+The first four keys (I-IV) function as patch pages, each page able to
+address 32 patches. To change to program number 2 (GM Bright Acoustic
+Piano), first press QUAVER, then function key I, then press the second
+piano key from the left (the first black key).
+
+.TP
+.B Bank Change
+Keys V-VIII work similarly to program change, but alter current bank
+instead. Note that you won't see any effect until you change patches as
+well.
+
+.TP
+.B Channel Change and Octave Change
+The arrow keys are used to change channel or octave. To lower or raise
+the octave (from that of middle C) the octave, press QUAVER followed by
+the appropriate arrow key. QUAVER may be ommitted between subsequent
+arrow presses, if they occur within 2 seconds of each other. To change
+the channel, press QUAVER followed by 'R' (return), then an arrow key.
+
+All of these heuristics are timing critical and might fail to operate under
+heavy system loads. To ensure proper performance, use a high realtime
+priority, like 99 (and it wouldn't hurt to do the same for your keyboard
+controller's IRQ).
+
+.SH KNOWN ISSUES
+
+.TP
+.B Events
+For some reason the kernel event layer drops KEY events, mostly when
+switching between a piano key and its associated text key. I believe this
+is a due to a bug in the repeat state tracking code, exposed here because
+the keyboard generates only 'make' scancodes on the musical side. The
+driver works around this by tracking the MSC_SCAN events instead, but it's
+kind of a hack and requires massaging the events more than I'm comfortable
+with (might not work with PS2->USB adaptors, etc.)
+
+.TP
+.B Repeat Rate
+To prevent frustrating "stuck" repeats in X (the console doesn't appear to
+suffer from this problem) the driver converts all REPEAT events it passes
+to PRESSes.
+
+.TP
+.B LEDs
+The LEDs don't work. This little driver is the only example of a real
+uinput filter I've seen. I'm not sure the kernel developers anticipated
+the problem of managing the LEDs. Ideally it would be transparent. As it
+is, it would probably take a large amount of code to get the keyboard LEDs
+working again--which seems silly.
+
+.SH PREREQUISITES
+
+2.6 series kernel with evdev and uinput modules loaded.
+ALSA Sequencer drivers and library.
+
+An MK-9500 or K617W keyboard...
+
+.SH USAGE
+
+Distribution specific init scripts are not included. The drivers may be
+started from init, your .bashrc, by qjackctl, etc. In order to be run by a
+non-root user the drivers must have access to the device files in /dev/input.
+This may be accomplished by adding a group 'input', adding desired users to
+this group, and configuring udev to assign the appropriate ownership to files
+in /dev/input. It should be perfectly safe to run the drivers as root,
+however.
+
+For realtime scheduling (the \-R option), either use set_rlimits, or set the
+appropriate POSIX capabilities on the executable:
+.P
+/sbin/setcap cap_ipc_lock,cap_sys_nice=ep /usr/bin/lsmi-joystick
+.P
+The lsmi.SlackBuild script already includes RT scheduling support.
+
+.SH OPTIONS
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-d, \-\-device specialfile
+Event device to use (instead of event0).
+.TP
+.B \-v, \-\-verbose
+Be verbose (show note events).
+.TP
+.B \-p, \-\-port client:port
+Connect to ALSA Sequencer client on startup.
+.TP
+.B \-R, \-\-realtime rtprio
+Use realtime priority 'rtprio' (requires privs).
+.TP
+.B \-n, \-\-no-velocity
+Ignore velocity information from keyboard.
+.TP
+.B \-c, \-\-channel n
+Initial MIDI channel.
+.TP
+.B \-z, \-\-daemon
+Fork and don't print anything to stdout.
+.SH SEE ALSO
+.BR lsmi-joystick (1),
+.BR lsmi-keyhack (1),
+.BR lsmi-mouse (1).
+.br
+.SH AUTHOR
+lsmi was written by Jonathan Moore Liles.
+.PP
+This manual page was written by Ariel Errera <ariel@musix.org.ar>,
+for the Debian project (but may be used by others). It was then modified
+by B. Watson for the SlackBuilds.org project.