1MIDI2ABC(1) General Commands Manual MIDI2ABC(1)
2
3
4
6 midi2abc - program to convert MIDI format files to abc notation
7
9 midi2abc -f infile [-xa] [-ga] [-a acbeats] [-m time signature] [-ppu
10 parts per unit] [-aul denominator of unit length] [-gu] [-b bars] [-Q
11 tempo] [-u pulses] [-k key] [-c channel] [-obpl] [-bpl bars] [-bps
12 bars] [-o filename] [-s] [-sr units] [-sum] [-nb] [-nt] [-splitvoices]
13 [-midigram] [-mftext] [-mftextpulses] [-nogr] [-title string] [-origin
14 string]
15
16
17
18
20 midi2abc takes a MIDI format file and converts it to something as close
21 as possible to abc text format. The user then has to add text fields
22 not present in the MIDI header and possibly tidy up the abc note out‐
23 put.
24
25 The output of midi2abc is printed to the screen. To save it to a file,
26 use the redirection operator, (e.g. midi2abc -f file.mid > file.abc) or
27 specify the output file using the -o option.
28
29 Use only one or none of the options -u -gu, -b and -Q. Midi2abc nor‐
30 mally converts the MIDI time units into quantum units normally corre‐
31 sponding to the abc 1/16th note or 1/32nd note. If none of these is
32 present, the program will use the PPQN information in the MIDI header
33 to compute the suitable conversion factor. For most MIDI files on the
34 web, it is recommended to rely on the MIDI header information and not
35 use any of the options other than the formatting options.
36
37 The program will extract the time signature information from the MIDI
38 file if it is present. Otherwise it will assume 4/4 or you could spec‐
39 ify it with -m. option.
40
41 If the tune has an anacrusis, you can use either the -ga or -xa option
42 to estimate the its length. Alternatively, you can specify its value
43 using the -a option. The anacrusis is specified in half unit lengths,
44 where the unit length is defined by the L: field. For example if L:
45 1/8, then a quarter note would be indicated by the value 4, (4 1/16
46 units).
47
48 OPTIONS
49 -a acbeats
50 where acbeats specifies the anacrusis in half unit lengths.
51
52 -xa extract the anacrusis from file by finding the first strong note
53
54 -ga guess the anacrusis by minimizing the number of ties across bars
55
56 -m time signature
57 time signature
58
59 -b bars
60 number of bars wanted in output
61
62 -Q tempo
63 tempo in quarter-notes per minute
64
65 -u pulses
66 Allows you to specify directly the number of midi pulses per abc
67 time unit.
68
69 -ppu parts per abc unit length
70 Normally, the smallest note unit that midi2abc can extract is
71 half the L: unit length.This is called the quantum unit. Thus
72 for L: 1/8, midi2abc can extract 1/16 notes but not 1/32 notes.
73 You can change this by specifying -ppu 4 for example. The number
74 of parts should be a power of 2.
75
76 -aul denominator of abc unit length
77 Normally midi2abc chooses a unit length of 1/8 or 1/16 depending
78 upon the time signature. For time signatures smaller than 3/4
79 the L: 1/16 is used and for larger time signatures L: 1/8 is
80 used. You can specify the unit length to be used using this pa‐
81 rameter. Thus -aul 32 will cause midi2abc to use a unit length
82 of 1/32 nd note.
83
84 -gu Tells midi2abc to estimate the number of midi pulses per abc
85 time unit from the note duration or spacing in the MIDI file.
86
87 -gk Tells midi2abc to guess the key signature by minimizing the num‐
88 ber of accidentals even if the key signature is already speci‐
89 fied in the MIDI file. By default the key signature is the one
90 specified in the MIDI file. If it is not specified, then the
91 program guesses the key signature by minimizing accidentals.
92
93 -k key key signature: -6 to 6 sharps.
94
95 -c channel
96 select only this midi channel.
97
98 -f infile
99 input file in midi format
100
101 -o output file
102 specifies the output abc file name.
103
104 -s do not discard very short notes.
105
106 -sr quantum units
107 do not notate a short rest smaller than the specified size after
108 a note. If the size (in quantum units) is zero, nothing is done.
109 For larger values, the rest is absorbed into the preceding note.
110 In other words, the preceding note is lengthened to include that
111 rest.
112
113 -sum print a short summary of the input midi file.
114
115 -nb do not look for broken rhythms
116
117 -nt do not look for triplets
118
119 -obpl Print only one bar per line instead of 4. For complex music this
120 improves the readability and avoids some problems with some abc
121 to postscript converters. This option is deprecated.
122
123 -nogr (No note grouping.) Inserts a space between all notes. It makes
124 a less pretty postscript file but it is easier to edit.
125
126 -bpl nbars
127 Print nbars of music on every line followed by a backslash.
128
129 -bps nbars
130 When nbars have been printed (including those lines joined by a
131 backslash continuation) go to a new line (with no backslash).
132
133 -splitvoices
134 This parameter handles polyphonic chords by splitting an entire
135 voice into multiple voices. (A polyphonic chord is a chord com‐
136 posed of notes that do not start or end at the same time.) Nor‐
137 mally, midi2abc joins the longer notes to the notes in the fol‐
138 lowing chord using ties. Here is an example: [Bd-]d [Bd-]d|.
139 This should be separated into two voices ideally Bz Bz and d2
140 d2. However, the separation is not unique. Bz d2 and d2 Bz are
141 also ok.
142
143 -midigram
144 When this option appears, all other options are ignored and no
145 abc file is produced. Instead a list of all notes in the MIDI
146 file are printed in a fixed format. Each line represents a pair
147 of MIDI note on/off event. The line contains the on/off time of
148 the note, its track number, channel number, midi pitch and midi
149 velocity. The last record indicates the duration of the MIDI
150 file in MIDI pulse units. The output is designed to go into a
151 graphical user interface which will produce a graphical repre‐
152 sentation (piano roll).
153
154 -mftext
155 When this option appears, all other options are ignored and no
156 abc file is produced. Instead a list of all the MIDI commands
157 are printed. The output is designed to go into a graphical user
158 interface provided by runabc.tcl.
159
160 -mftextpulses
161 Same as -mftext except the time units is in midi pulses.
162
163 -title string
164 Replaces the default title field following T: with the given
165 string.
166
167 -origin string
168 Adds an O: field with the given string.
169
170
171
172
173 FEATURES
174 * The key is chosen so as to minimize the number of accidentals.
175 Alternatively, the user can specify the key numerically (a posi‐
176 tive number is the number of sharps, a negative number is minus
177 the number of flats).
178
179 * Note length can be set by specifying the total number of bars or the
180 tempo of the piece. Alternatively the note length can be read from the
181 file. However, by default it is deduced in a heuristic manner from the
182 inter-note distances. This means that you do not have to use the MIDI
183 clock as a metronome when playing in a tune from a keyboard.
184
185 * Barlines are automatically inserted. The user specifies the number of
186 measures in the anacrusis before the first barline and the time signa‐
187 ture.
188
189 * The program can guess how the length of the anacrusis, either by
190 looking for the first strong note or minimizing the number of notes
191 split by a tie across a barline.
192
193 * Where a note extends beyond a bar break, it is split into two tied
194 notes.
195
196 * The output has 4 bars per line.
197
198 * Enough accidental signs are put in the music to ensure that no pitch
199 errors occur if a barline is added or deleted.
200
201 * The program attempts to group notes sensibly in each bar.
202
203 * Triplets and broken rhythm (a>b) are supported.
204
205 * Chords are identified.
206
207 * Text information from the original MIDI file is included as comments.
208
209 * The -c option can be used to select only 1 MIDI channel. Events on
210 other channels are ignored.
211
212 LIMITATIONS
213 midi2abc does not ...
214
215 * Supply tune title, composer or any other field apart from X: , K:,
216 Q:, M: and L: - these must be added by hand afterwards, though they may
217 have been included in the text of the MIDI file.
218
219 * Support duplets, quadruplets, other esoteric features.
220
221 * Support mid-tune key or time signature changes.
222
223 * Deduce repeats. The output is just the notes in the input file.
224
225 * Recover an abc tune as supplied to abc2midi. However, if you want to
226 do this, "midi2abc -xa -f file.mid" comes close.
227
229 abc2ps(1), abc2midi(1), abc2abc(1)
230
232 James Allwright <J.R.Allwright@westminster.ac.uk>
233
235 Seymour Shlien <fy733@ncf.ca>
236
238 This man page describes midi2abc version 2.91 from March 09 2008.
239
241 Copyright 1999 James Allwright
242
243 midi2abc does not work correctly if lyrics are embedded in the same
244 track as the notes. If you are producing the MIDI file using abc2midi,
245 use the -STFW option to ensure that the lyrics are put in a separate
246 track.
247
248 midi2abc is supplied "as is" without any warranty. It is free software
249 and can be used, copied, modified and distributed without fee under the
250 terms of the GNU General Public License.
251
252
253
254
255 1 January 2017 MIDI2ABC(1)