NAME
rumor - program for transcripting simple music played on (MIDI)
keyboard to Lilypond text notation.
SYNOPSIS
rumor [-lDfsv?V][-gN][-mP[/]Q][-tBPM][-w[BEAT]][-aNUM]
[-k NOTE] [--flat] [--grain=N] [--legato] [--meter=P[/]Q]
[--no-chords] [--tempo=BPM] [--wait[=BEAT]]
[--accidentals=NUM]
[--absolute-pitches] [--no-dots] [--explicit-durations]
[--full]
[--key=NOTE] [--lang={ne,en,en-short,de,no,sv,it,ca,es}]
[--strip]
[--sample-sheet] [--verbose] [--alsa[=[IC:IP,]OC:OP]]
[--kbd]
[--oss[=DEV]] [--script=FILE] [--help] [--usage]
[--version]
DESCRIPTION
This manual page explains the rumor program. It is a realtime
monophonic (with chords) MIDI keyboard to Lilypond converter. It
receives MIDI events, quantizes them according to its metronome on the
fly and outputs handwritten-like corresponding Lilypond notation.
Tempo, meter, key and other parameters can be set via command-line
options
OPTIONS
Default start-up values are --alsa=64:0,65:0 --tempo=100 --meter=44
--grain=16 --key=c.
-g,--grain=NUM
Set minimum time resolution to the NUMth note. Only powers of
two are valid, from 1 up to 128.
-l,--legato
Ignore any rests between notes. Every note terminates upon the
start of the next one.
-D,--no-dots
Do not use dotted notes (dotted rests are always disallowed).
-m,--meter=P[/]Q
Set time signature. Bar will have P beats of duration of the Qth
note. Metronome will sound every beat. (thus e.g. 4/4 and 8/8
will give the same output, only metronome behavior will change).
Q must be a power of two. Slash may be omited if P and Q are
both smaller than 10.
-t,--tempo=BPM
Metronome speed will be BPM beats per minute. Note that what is
considered a beat is determined by --meter.
-w,--wait=BEAT
Start metronome upon arrival of the first MIDI note, at the
beginning of bar (BEAT=1) unless overridden.
--flat Output only pitches as you play, no lengths. Metronome will not
be started.
--no-chords
Disables chords (groups of notes pressed and released
"simultaneously", with regard to quantization). Enabled by
default.
--explicit-durations
Output duration indication after every note, even if it remains
the same as preceedingly.
--absolute-pitches
Do not use Lilypond relative notation. Instead, all pitches have
their octave indicated by (possibly zero) tics or commas.
--lang=LANG
LANG can be one of ne (default: ces, c, cis, ...), en, en-short,
de, no, sv, it, ca, es. Languages match those used by Lilypond
(not necessarily the version you have installed, though). Note
that pitch names can be always overridden by rumor-pitches (see
section 5. Scripting).
-k,--key=KEY
Set base note of current scale, used to resolve enharmonic
ambiguities (i.e. fis vs. ges). Valid value for KEY is any pitch
having less than two accidentals, in current language (--lang;
this option must precede --key in order to have effect).
Run --sample-sheet Produce complete Lilypond file showing all
possible rhythm notations and chromatic scale in all possible
keys (see --key). It is influenced by --meter, --grain and also
user-defined notations (see --script).
-s,--strip
Strip leading and trailing rests from output. First and last
bars may thus be incomplete.
-f,--full
Output can be fed directly into Lilypond. It will be one--line
staff in violin clef and key signature as determined by
--accidentals.
-a,--accidentals=NUM
Set number of sharps or flats (if NUM is positive or negative,
respectively) for full Lilypond output. No effect without
--full.
--script=FILE
Run guile script FILE before beginning. See section 5.
Scripting.
--alsa=[[IC:IP,]OC:OP]
Use ALSA interface. If argument is specified, connect input to
client IC on port IP and output to OC:OP. By default, Rumor will
try to use 64:0,65:0. If connection fails, you can use aconnect
to do this manually.
If you specify only one pair C:P, it will be the output port.
This is useful with --kbd.
--oss[=DEV]
Use OSS interface. Device number 0 on /dev/sequencer will be
used, unless overridden by DEV.
--kbd Emulate MIDI keyboard using ordinary keyboard. An ordinary MIDI
interface (ALSA or OSS) is still needed for metronome and
echoing. Standard input must be a terminal. There is a usable
keyboard layout builtin; however, key bindings are configurable
via (rumor-kbd ...) (see section 5. Scripting).
-v,--verbose
Be verbose. This option may be used more times and every time
will increase verbosity level by 1. If it is greater than 3 and
Rumor was compiled with debuggins support, debugging and tracing
messages will be printed. If verbosity is zero (default), Rumor
will only report errors.
-?,--help
--usage
-V,--version
NOTES
Rumor’s only purpose is to help out with music transcriptions (even of
polyphonic music with separated voices); typical usage is to write
Lilypond file skeleton by hand and then paste Rumor output into it. It
does not want to be a full-blown quantization program; fancy features
like tuplets, polyphony and tempo tracking were ommited deliberately.
Rumor mimics handwritten Lilypond source:
(1) it uses relative notation and omits note length if it has not
changed (both can be switched off though).
(2) it writes rhythms intelligently, in relation to bar position (tied
single notes, over barlines if necessary)
(3) it resolves enharmonic ambiguities (e.g. gis/as) given the
--key=NOTE option (see section 4. Invocation)
(4) It is scriptable, with support for user-defined rhythm notations,
keyboard layout and pitch names (dutch and italian being built-in). See
section 5. Scripting.
(5) It supports chords (simlutaneous notes), using the <c e>8 syntax.
(6) It can talk to MIDI I/O via ALSA or OSS.
(7) It can emulate MIDI keyboard using ordinary (computer) keyboard,
key layout being scriptable.
BUGS
Should be rewritten in python. Otherwise no known bugs.
EXAMPLE
A minimalistic rumor session follows (play keyboard, then press ^-C).
vaclav@frigo:~/ujf/quant/rumor$ ./rumor -m68 -kb -g32
b’8 ~ b32 a g fis g16 e cis8 ~ cis16 g’ fis8 |
e d b4 ais8 r |
ais b32 a g fis g16 e’ g, fis32 e fis16 cis’ e, cis’ |
e, d32 cis d16 b’ ~ b ais ~ ais32 cis b ais b16 d ~ d cis ~|
cis32 e d cis d16 fis ~ fis e ~ e32 g fis e fis16 b ~ b ais |
b32 a gis fis gis16 b eis, fis ~ fis32 fis eis dis eis16 gis ais, b ~|
b32 b ais gis ais16 cis eis, fis d’8 cis
vaclav@frigo:~/ujf/quant/rumor$
-m68 (or equivalently, --meter=6/8) sets six-eights bar, -kb (--key=b)
indicates b-based scale, -g32 (--grain=32) sets resolution to 32nd
notes.
AUTHOR
Vaclav Smilauer
thanks to:
Graham Percival for many bug reports and suggestions
Nicolas Sceaux for several suggestions
SEE ALSO
The full documentation of rumor is maintained as info page. It is also
accessbile online at http://www.volny.cz/smilauer/rumor/rumor.html.
April 3, 2009 rumor(1)