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
|
.TH MIDI2ABC 1 "1 January 2017"
.SH NAME
\fBmidi2abc\fP \- program to convert MIDI format files to abc notation
.SH SYNOPSIS
midi2abc \-f \fIinfile\fP [\-xa] [\-ga]
[\-a \fIacbeats\fP] [\-m \fItime signature\fP]
[\-ppu \fiparts per unit\fP] [\-aul \fidenominator of unit length\fP]
[\-gu] [\-b \fIbars\fP] [\-Q \fItempo\fP] [\-u \fipulses\fP]
[\-k \fIkey\fP] [\-c \fIchannel\fP] [\-obpl] [\-bpl \fibars\fP] [\-bps \fPbars\fP]
[\-o \fIfilename\fP] [\-s] [\-sr \fiunits\fP] [\-sum] [\-nb] [\-nt]
[\-splitbars] [\-splitvoices] [\-midigram] [\-mftext] [\-nogr] [\-title \fistring\fP]
[\-origin \fistring\fP]
.SH DESCRIPTION
\fImidi2abc\fP takes a MIDI format file and converts it to something as close
as possible to abc text format. The user then has to add text fields not
present in the MIDI header and possibly tidy up the abc note output.
.PP
The output of midi2abc is printed to the screen. To save it to a file, use
the redirection operator, (e.g. \fImidi2abc \-f file.mid > file.abc\fP) or
specify the output file using the \-o option.
.PP
Use only one or none of the options \-u \-gu, \-b and \-Q. Midi2abc normally
converts the MIDI time units into quantum units normally corresponding to the
abc 1/16th note or 1/32nd note. If none of these is present, the
program will use the PPQN information in the MIDI header to compute the suitable
conversion factor. For most MIDI files on the web, it is recommended to rely on
the MIDI header information and not use any of the options other than
the formatting options.
.PP
The program will extract the time signature information from the MIDI file
if it is present. Otherwise it will assume 4/4 or you could specify it with
\-m. option.
.PP
If the tune has an anacrusis, you can use either the \-ga or \-xa option to estimate the its length. Alternatively, you can specify its value using the \-a
option. The anacrusis is specified in half unit lengths, where the unit
length is defined by the L: field. For example if L: 1/8, then a
quarter note would be indicated by the value 4, (4 1/16 units).
.SS OPTIONS
.TP
.B -a \fIacbeats\fP
where acbeats specifies the anacrusis in half unit lengths.
.TP
.B -xa
extract the anacrusis from file by finding the first strong note
.TP
.B -ga
guess the anacrusis by minimizing the number of ties across bars
.TP
.B -m \fItime signature\fP
time signature
.TP
.B -b \fIbars\fP
number of bars wanted in output
.TP
.B -Q \fItempo\fP
tempo in quarter\-notes per minute
.TP
.B -u \fipulses\fP
Allows you to specify directly the number of midi pulses per
abc time unit.
.TP
.B -ppu \fiparts per abc unit length\fP
Normally, the smallest note unit that midi2abc can extract
is half the L: unit length.This is called the quantum unit.
Thus for L: 1/8, midi2abc can extract 1/16 notes but not 1/32 notes.
You can change this by specifying \-ppu 4 for example. The number of parts
should be a power of 2.
.TP
.B -aul \fidenominator of abc unit length\fP
Normally midi2abc chooses a unit length of 1/8 or 1/16
depending upon the time signature. For time signatures
smaller than 3/4 the L: 1/16 is used and for larger time
signatures L: 1/8 is used. You can specify the unit length
to be used using this parameter. Thus \-aul 32 will cause
midi2abc to use a unit length of 1/32 nd note.
.TP
.B -gu
Tells midi2abc to estimate the number of midi pulses per abc
time unit from the note duration or spacing in the MIDI file.
.TP
.B -gk
Tells midi2abc to guess the key signature by minimizing
the number of accidentals even if the key signature is
already specified in the MIDI file. By default the key
signature is the one specified in the MIDI file.
If it is not specified, then the program guesses the
key signature by minimizing accidentals.
.TP
.B -k \fIkey\fP
key signature: \-6 to 6 sharps.
.TP
.B -c \fIchannel\fP
select only this midi channel.
.TP
.B -f \fIinfile\fP
input file in midi format
.TP
.B -o \fIoutput file\fP
specifies the output abc file name.
.TP
.B -s
do not discard very short notes.
.TP
.B -sr \fIquantum units\fP
do not notate a short rest smaller than the specified size after a note. If the
size (in quantum units) is zero, nothing is done. For larger values, the rest
is absorbed into the preceding note. In other words, the preceding note
is lengthened to include that rest.
.TP
.B -sum
print a short summary of the input midi file.
.TP
.B -nb
do not look for broken rhythms
.TP
.B -nt
do not look for triplets
.TP
.B -obpl
Print only one bar per line instead of 4. For complex music this
improves the readability and avoids some problems with some abc
to postscript converters. This option is deprecated.
.TP
.B -nogr
(No note grouping.) Inserts a space between all notes. It makes
a less pretty postscript file but it is easier to edit.
.TP
.B -bpl \finbars\fP
Print nbars of music on every line followed by a backslash.
.TP
.B -bps \finbars\fP
When nbars have been printed (including those lines joined by
a backslash continuation) go to a new line (with no backslash).
.TP
.B -splitbars
This parameter changes the way midi2abc prints chords
composed of notes of unequal length (polyphonic chords).
Normally, midi2abc joins the longer notes to the notes in
the following chord using ties. A more readable output, can
be obtained if the measure is split into separate parts using
the '&' feature in abc notation. The algorithm for dividing
the notes in a polyphonic chord to separate voices (label_splits
in midi2abc.c) needs some improvement. I welcome any assistance.
.TP
.B -splitvoices
This parameter like above handles polyphonic chords by
splitting an entire voice into multi voices.
.TP
.B -midigram
When this option appears, all other options are ignored and
no abc file is produced. Instead a list of all notes in the
MIDI file are printed in a fixed format. Each line represents
a pair of MIDI note on/off event. The line contains the
on/off time of the note, its track number, channel number,
midi pitch and midi velocity. The last record indicates
the duration of the MIDI file in MIDI pulse units. The
output is designed to go into a graphical user interface
which will produce a graphical representation (piano roll).
.TP
.B -mftext
When this option appears, all other options are ignored and
no abc file is produced. Instead a list of all the MIDI
commands are printed. The output is designed to go into
a graphical user interface provided by runabc.tcl.
.TP
.B -title \fistring\fP
Replaces the default title field following T: with
the given string.
.TP
.B -origin \fistring\fP
Adds an O: field with the given string.
.SS FEATURES
* The key is chosen so as to minimize the number of accidentals.
Alternatively, the user can specify the key numerically (a positive number
is the number of sharps, a negative number is minus the number of flats).
.PP
* Note length can be set by specifying the total number of bars or the
tempo of the piece. Alternatively the note length can be read from the file.
However, by default it is deduced in a heuristic manner from the inter-note
distances. This means that you do not have to use the MIDI clock as a
metronome when playing in a tune from a keyboard.
.PP
* Barlines are automatically inserted. The user specifies the number of
measures in the anacrusis before the first barline and the time signature.
.PP
* The program can guess how the length of the anacrusis,
either by looking for the first strong note or minimizing the number of
notes split by a tie across a barline.
.PP
* Where a note extends beyond a bar break, it is split into two tied notes.
.PP
* The output has 4 bars per line.
.PP
* Enough accidental signs are put in the music to ensure that no pitch
errors occur if a barline is added or deleted.
.PP
* The program attempts to group notes sensibly in each bar.
.PP
* Triplets and broken rhythm (a>b) are supported.
.PP
* Chords are identified.
.PP
* Text information from the original MIDI file is included as comments.
.PP
* The \-c option can be used to select only 1 MIDI channel. Events on
other channels are ignored.
.SS LIMITATIONS
midi2abc does not ...
.PP
* Supply tune title, composer or any other field apart from X: , K:, Q:, M:
and L: - these must be added by hand afterwards, though they may have been
included in the text of the MIDI file.
.PP
* Support duplets, quadruplets, other esoteric features.
.PP
* Support mid-tune key or time signature changes.
.PP
* Deduce repeats. The output is just the notes in the input file.
.PP
* Recover an abc tune as supplied to abc2midi. However, if you want to
do this, "midi2abc \-xa \-f file.mid" comes close.
.SH "SEE ALSO"
abc2ps(1), abc2midi(1), abc2abc(1)
.SH AUTHOR
James Allwright <J.R.Allwright@westminster.ac.uk>
.SH SUPPORTED
Seymour Shlien <fy733@ncf.ca>
.SH VERSION
This man page describes midi2abc version 2.91 from March 09 2008.
.SH COPYRIGHT
Copyright 1999 James Allwright
.PP
midi2abc does not work correctly if lyrics are embedded in
the same track as the notes. If you are producing the MIDI
file using abc2midi, use the \-STFW option to ensure that the
lyrics are put in a separate track.
.PP
midi2abc is supplied "as is" without any warranty. It
is free software and can be used, copied, modified and
distributed without fee under the terms of the GNU General
Public License.
|