1ABC2MIDI(1)                 General Commands Manual                ABC2MIDI(1)
2
3
4

NAME

6       abc2midi - converts abc file to MIDI file(s)
7

SYNOPSIS

9       abc2midi  infile  [refnum]  [-c]  [-v]  [-ver]  [-t]  [-n  limit] [-RS]
10       [-quiet] [-Q tempo] [-NFNP] [-OCC] [-o outfile]
11

DESCRIPTION

13        The default action is to write a MIDI file for each abc tune
14        with the filename <stem>N.mid, where <stem> is the filestem
15        of the abc file and N is the tune reference number. If the -o
16        option is used, only one file is written. This is the tune
17        specified by the reference number or, if no reference number
18        is given, the first tune in the file.
19

OPTIONS

21       refnum process the tune with reference number refnum
22
23       -c     selects checking only
24
25       -v     selects verbose option
26
27       -ver   prints version number and exits
28
29       -t     selects filenames derived from tune titles
30
31       -RS    use 3:1 instead of 2:1 for broken rhythms
32
33       -quiet Suppresses some commong warnings.
34
35       -n  X  limits the length of the file name stem to X characters
36
37       -Q  tempo
38              sets the default tempo in quarter notes per minute if it was not
39              specified in the abc header.
40
41       -NFNP  Ignore any dynamic indications !f! !ff! etc.
42
43       -OCC   Accept old chord convention (eg +D2G2+ instead of [DG]2).
44
45       -o outfile
46              write output to outfile
47

FEATURES

49       *  Broken  rythms  (>,  <), chords, n-tuples, slurring, ties, staccatto
50       notes, repeats, in-tune tempo/length/time  signature  changes  are  all
51       supported.
52
53       *  R:hornpipe or r:hornpipe is recognized and note timings are adjusted
54       to give a broken rhythm (ab is converted to a>b).
55
56       * Most errors in the abc input will generate a suitable  error  message
57       in the output and the converter keeps going.
58
59       *  Comments  and  text  fields  in the abc source are converted to text
60       events in the MIDI output
61
62       * If guitar chords are present, they are used to generate an accompani‐
63       ment in the MIDI output.
64
65       *  If  there  are  mis-matched  repeat  signs  in  the abc, the program
66       attempts to fix them. However, it will not attempt this if a multi-part
67       tune description has been used or if multiple voices are in use.
68
69       *  Karaoke MIDI files can be generated by using the w: field to include
70       lyrics.
71
72       * Nonnumeric voice id's, eg. V: soprano, as proposed for  the  new  abc
73       standard is accepted.
74
75       *  Invisible  rests  specified  by x are treated the same way as normal
76       rests (z).
77
78       * Decorations may be indicated using  either  the  deprecated  notation
79       (eg. !fermata!) or the standard version 2.0 notation (eg. +fermata+).
80

LIMITATIONS

82       * No field is inherited from above the X: field of the tune.
83
84
85

ABC SYNTAX EXTENSIONS

87       * There are some extensions to the abc syntax of the form
88
89       %%MIDI channel n
90
91       These  control  channel  and program selection, transposing and various
92       other features of abc2midi.
93
94       Each of these should appear on a  line  by  itself.  All  of  them  are
95       allowed  within  the  abc tune body. By using these in combination with
96       the part notation, one can, for example, play a part transposed or in a
97       different key.
98
99       The  idea  behind this syntax is that other programs will treat it as a
100       comment and ignore it.
101
102       %%MIDI channel n
103
104       selects melody channel n (in the range 1-16).
105
106       %%MIDI program [c] n
107
108       selects program n (in the range 1-128) on channel c. If c is not given,
109       the program is selected on the current melody channel. Most modern tone
110       generators follow the General MIDI standard which defines  the  instru‐
111       ment type for each program number.
112
113       %%MIDI beat a b c n
114
115       controls  the way note velocities are selected. The first note in a bar
116       has velocity a. Other "strong" notes have velocity b and all  the  rest
117       have velocity c. a, b and c must be in the range 0-128. The parameter n
118       determines which notes are "strong". If the time signature is x/y, then
119       each  note  is  given  a position number k = 0, 1, 2 .. x-1 within each
120       bar. Note that the units for n are not the unit note length. If k is  a
121       multiple  of  n, then the note is "strong". The volume specifiers !ppp!
122       to !fff! are equivalent to the following :
123
124       !ppp! = %%MIDI beat 30 20 10 1
125       !pp!  = %%MIDI beat 45 35 20 1
126       !p!   = %%MIDI beat 60 50 35 1
127       !mp!  = %%MIDI beat 75 65 50 1
128       !mf!  = %%MIDI beat 90 80 65 1
129       !f!   = %%MIDI beat 105 95 80 1
130       !ff!  = %%MIDI beat 120 110 95 1
131       !fff! = %%MIDI beat 127 125 110 1
132
133
134       %%MIDI beatmod n
135
136       Increments by n (or decrements if n is negative) the  velocities  a,  b
137       and  c  described above. The instructions !crescendo(! and !crescendo)!
138       are equivalent to inserting a %%MIDI beatmod 15 whereever  they  occur.
139       (Alternatively  you  can use !<(! and !<)!.) Similarly the instructions
140       !diminuendo(! and !diminuendo)! are equivalent to %%MIDI beatmod -15.
141
142
143       %%MIDI deltaloudness n
144
145       where n is a small positive  number.   By  default  the  crescendo  and
146       diminuendo  instructions  modify  the  beat variables a, b, and c by 15
147       velocity units. This instruction allows you  to  set  this  default  to
148       value n.
149
150
151       %%MIDI nobeataccents
152
153       For  instruments  such  as church organ that have no greatly emphasized
154       beat notes, using this will force use of the 'b' velocity  (see  %%MIDI
155       beat)  for every note irrespective of position in the bar.  This allows
156       dynamics (ff, f, etc) to be used in the normal way.
157
158       %%MIDI beataccents
159
160       Revert to emphasizing notes the the usual way. (default)
161
162
163       %%MIDI beatstring <string of f, m and p>
164
165       This provides an alternative way of specifying  where  the  strong  and
166       weak  stresses  fall  within  a  bar.  'f'  means  velocity a (normally
167       strong), 'm' means velocity b (medium velocity) and 'p' means  velocity
168       c  (soft  velocity).   For  example,  if the time signature is 7/8 with
169       stresses on the first, fourth and sixth notes in the bar, we could  use
170       the following
171
172       %%MIDI beatstring fppmpmp
173
174       %%MIDI transpose n
175
176       transposes  the  output  by the specified number of semitones. n may be
177       positive or negative.
178
179       %%MIDI rtranspose n
180
181       Relative transpose by the specified number of semitones.  i.e.   %%MIDI
182       transpose  a followed by %%MIDI rtranspose b results in a transposition
183       of a+b. %%MIDI transpose b will result in a transposition  of  b  semi‐
184       tones, regardless of any previous transposition.
185
186       %%MIDI c n
187
188       specifies  the  MIDI  pitch  which corresponds to c. The default is 60.
189       This number should normally be a multiple of 12.
190
191       %%MIDI grace a/b
192
193       sets the fraction of the next note that grace notes  will  take  up.  a
194       must  be  between  1  and b-1. The grace notes may not sound natural in
195       this approach, since the length of the individual grace notes vary with
196       the  complexity  of  the  grace and the length of the following note. A
197       different approach (which is now the default) assumes  that  the  grace
198       notes  always  have  a  fixed  duration.  To use the other approach you
199       would specify,
200
201       %%MIDI gracedivider b
202
203       where b specifies how many parts to divide the unit length specified by
204       the  L:  field  command.  For example if b = 4 and L: = 1/8, then every
205       grace note would be 1/(8*4) or a 32nd note. Time would be  stolen  from
206       the note to which the grace notes are applied. If that note is not long
207       enough to handle the grace then the grace notes  would  be  assigned  0
208       duration.
209
210
211
212
213       %%MIDI chordname name n1 n2 n3 n4 n5 n6
214
215       Defines  how  to play a guitar chord called "name". n1 is usually 0 and
216       n2, n3 to n6 give the pitches of the other notes in semitones  relative
217       to the root note. There may be fewer than 6 notes in the chord, but not
218       more.If "name" is already defined, this command re-defines  it.  Unlike
219       most  other  commands,  chordname definitions stay in effect from where
220       they are defined to the end of the abc file. The following  illustrates
221       how m, 7, m7 and maj7 could be set up if they were not already defined.
222
223       %%MIDI chordname m 0 3 7
224       %%MIDI chordname 7 0 4 7 10
225       %%MIDI chordname m7 0 3 7 10
226       %%MIDI chordname maj7 0 4 7 11
227
228       %%MIDI gchord string
229
230       sets  up how guitar chords are generated. The string is a sequence made
231       of of z's, c's  f's and b's for rests, chords, fundamental  and  funda‐
232       mental  plus  chord notes respectively.  This specifies how each bar is
233       to be played.  An optional length is allowed to follow the z's, c's f's
234       and  b's   e.g.  czf2zf3.   If  the  abc  contains  guitar chords, then
235       abc2midi automatically adds chords and fundamentals after  encountering
236       the  first guitar chord. It keeps using that chord until a new chord is
237       specified in the abc. Whenever the M: field is encountered in the  abc,
238       an appropriate default string is set :
239
240       For 2/4 or 4/4 time default is equivalent to : %%MIDI gchord fzczfzcz
241
242       For 3/4 time default is equivalent to : %%MIDI gchord fzczcz
243
244       For 6/8 time default is equivalent to : %%MIDI gchord fzcfzc
245
246       For 9/8 time default is equivalent to : %%MIDI gchord fzcfzcfzc
247
248       The  gchord command has been extended to allow you to play the individ‐
249       ual notes comprising the guitar chord. This allows you to  play  broken
250       chords or arpeggios. The new codes g,h,i,j, G,H,I,J reference the indi‐
251       vidual notes starting from the lowest note of the chord (not  necessar‐
252       ily  the  root  in the case of inversions). For example for the C major
253       chord, g refers to C, h refers to E and i refers to  G.  For  a  gchord
254       command such as,
255
256       %%MIDI gchord ghih
257
258       Abc2midi  will  arpeggiate  the C major guitar chord to CEGE. The upper
259       case letters G,H,I, and J refer to  the  same  notes  except  they  are
260       transposed down one octave. Note for the first inversion of the C major
261       chord (indicated by "C/E"), E would be the lowest note so g would  ref‐
262       erence the note E.
263
264       Like  other gchord codes, you may append a numeral indicating the dura‐
265       tion of the note. The same rules apply as before.  You can use any com‐
266       bination of the gchord codes, (fcbghijGHIJz).
267
268
269
270       %%MIDI chordprog n
271
272       Sets the MIDI instrument for the chords to be n.
273
274       %%MIDI bassprog n
275
276       Sets the MIDI instrument for the bass notes to be n.
277
278       %%MIDI chordvol n
279
280       Sets the volume (velocity) of the chord notes at n.
281
282       %%MIDI bassvol n
283
284       Sets  the  volume (velocity) of the bass notes at n. There is no corre‐
285       sponding melodyvol command  since  there  are  3  velocity  values  for
286       melody, set using the beat command.
287
288       %%MIDI gchordon
289
290       Turns on guitar chords (they are turned on by default at the start of a
291       tune).
292
293       %%MIDI gchordoff
294
295       Turns off guitar chords.
296
297       %%MIDI droneon
298
299       Turns on a continuous drone (used in bagpipe music) consisting  of  two
300       notes.  By  default  the  notes are A, and A,, played on a bassoon at a
301       velocity of 80. This can be configured  by  the  %%MIDI  drone  command
302       described below.
303
304       %%MIDI droneoff
305
306       Turns off the continous drone.
307
308       %%MIDI drone n1 n2 n3 n4 n5
309
310       Sets the drone parameters where n1 is the MIDI program, n2 and n3 spec‐
311       ify the MIDI pitches of the two notes in the chord, and n4 and n5 spec‐
312       ify  the  MIDI  velocities  of  the two notes.  If you do not set these
313       parameters they are by default 70 45 33 80 80. A value of zero or  less
314       indicates that the setting of this parameter should be left as it is.
315
316       %%MIDI drum string [drum programs] [drum velocities]
317
318       This sets up a drum pattern. The string determines when there is a drum
319       beat and the drum program values determine what each drum strike sounds
320       like.
321
322       e.g. %%MIDI drum d2zdd 35 38 38  100 50 50
323
324       The  string  may  contain  'd'  for a drum strike or 'z' for a rest. By
325       default a voice starts with no drum  pattern  and  '%%MIDI  drumon'  is
326       needed to enable the drumming. The drum pattern is repeated during each
327       bar until '%%MIDI drumoff' is encountered. The %%MIDI drum command  may
328       be  used within a tune to change the drum pattern.  This command places
329       the drum sounds on channel 10 and assumes your tone generator  complies
330       with  the  General  Midi  standard  - if it does not, then you may hear
331       tones instead of drum sounds.
332
333       In both the gchord and drum commands, the standard  note  length  of  a
334       single  note  f,c,z  or  d  is not set by the L: command. Instead it is
335       adjusted so that the entire gchord string or drum string  fits  exactly
336       into  one  bar.  In other words the duration of each note is divided by
337       the total duration of the string. This means  that,  for  example,  the
338       drum  string "dd" is equivalent to drum string "d4d4".  You cannot cur‐
339       rently specify fractions directly (eg. C3/2) as done in the body of the
340       music,  but  it is still possible to express complex rhythms. For exam‐
341       ple, to indicate a rhythm such as (3ddd d/d/d/d, you  would  write  the
342       string "d4d4d4d3d3d3d3".
343
344
345
346       With  version  1.54 Dec 4 2004 of abc2midi, notes in chords (eg. [FAc])
347       are not played in the same instant but offsetted and  shortened  by  10
348       MIDI time units. Thus the first note in the chord (eg. F) is played for
349       the full indicated time, the second note (eg. A) starts 10  MIDI  units
350       later  and  is  shortened  by the same amount and the third note starts
351       another 10 MIDI units later and is shortened by another 10 units.  This
352       introduces  an  "expressivo"  option and avoids the heavy attack. (This
353       does not apply to gchords or multivoiced chords.)  The  amount  of  the
354       delay and shortening may be configured by the MIDI command
355
356
357       %%MIDI chordattack n
358
359
360       where n is a small number. If n is zero, then abc2midi should behave as
361       in earlier versions. The delay n is in MIDI time units where there  are
362       480  units in a quarter note beat. The program may not run correctly if
363       n is too large and there are short chords.
364
365
366       %%MIDI randomchordattack n
367
368       Like above except that the delay is a random  variable  uniformly  dis‐
369       tributed between 0 and n-1.
370
371
372       %%MIDI trim x/y
373
374       where  x  and y are two numbers. This command controls the articulation
375       of notes and chords by placing silent  gaps  between  the  notes.   The
376       length of these gaps is determined by x/y and the unit length specified
377       by the L: command. These gaps are produced by shortening the  notes  by
378       the  same  amount.   If  the note is already shorter than the specified
379       gap, then the gap is set to half the length of the note.  The  fraction
380       x/y  indicates  a  note duration in the same manner as specified in the
381       abc file.  The actual duration is based on the unit length specified by
382       the L: field command. It is recommended that x/y be a fraction close to
383       zero. Note trimming is disabled inside slurs as specified by  parenthe‐
384       ses.  You  can turn off all note trimming by setting x to 0, eg 0/1. By
385       default, note trimming is turned off at the  beginning  of  a  tune  or
386       voice command.
387
388
389
390       %%MIDI drummap note midipitch
391
392       Please see abcguide.txt.
393
394
395

COMPATIBILITY WITH DRAFT STANDARD 2.0

397       The proposed standard introduces a new copyright field using the syntax
398
399
400       %%abc-copyright (c) Copyright John Smith 2003
401
402
403       Abc2midi  now  inserts  this in the MIDI file in the form of a metatext
404       copyright tag. Changes were made  to  the  event_specific  function  in
405       store.c  to  process  the copyright information. It is also copied into
406       the Karaoke track (if it is created) as as @T field.
407
408

SEE ALSO

410       abc2ps(1), midi2abc(1), yaps(1).
411

AUTHOR

413       James Allwright <J.R.Allwright@westminster.ac.uk>
414

SUPPORTED

416        by Seymour Shlien <seymour.shlien@crc.ca>
417

VERSION

419       This man page describes abc2midi version 1.85  June 25 2006.
420
422       Copyright 1999 James Allwright
423
424       abc2midi is supplied "as is" without any warranty. It is free  software
425       and can be used, copied, modified and distributed without fee under the
426       terms of the GNU General Public License.
427
428       More complete documentation may be found in  abcguide.txt  which  comes
429       with the abcMIDI distribution.
430
431
432
433                                 25 June 2006                      ABC2MIDI(1)
Impressum