Provided by: abcmidi_20051010-1_i386 bug

NAME

       abc2midi - converts abc file to MIDI file(s)

SYNOPSIS

       abc2midi  infile [refnum] [-c] [-v] [-ver] [-t] [-n limit] [-RS] [-NAR]
       [-Q tempo] [-NFNP] [-OCC] [-o outfile]

DESCRIPTION

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

OPTIONS

       refnum process the tune with reference number refnum

       -c     selects checking only

       -v     selects verbose option

       -ver   prints version number and exits

       -t     selects filenames derived from tune titles

       -RS    use 3:1 instead of 2:1 for broken rhythms

       -NAR   Suppresses the warning ’Assuming repeat’

       -n  X  limits the length of the file name stem to X characters

       -Q  tempo
              sets the default tempo in quarter notes per minute if it was not
              specified in the abc header.

       -NFNP  Ignore any dynamic indications !f! !ff! etc.

       -OCC   Accept old chord convention (eg +D2G2+ instead of [DG]2).

       -o outfile
              write output to outfile

FEATURES

       *  Broken  rythms  (>,  <), chords, n-tuples, slurring, ties, staccatto
       notes, repeats, in-tune tempo/length/time  signature  changes  are  all
       supported.

       *  R:hornpipe or r:hornpipe is recognized and note timings are adjusted
       to give a broken rhythm (ab is converted to a>b).

       * Most errors in the abc input will generate a suitable  error  message
       in the output and the converter keeps going.

       *  Comments  and  text  fields  in the abc source are converted to text
       events in the MIDI output

       *  If  guitar  chords  are  present,  they  are  used  to  generate  an
       accompaniment in the MIDI output.

       *  If  there  are  mis-matched  repeat  signs  in  the abc, the program
       attempts to fix them. However, it will not attempt this if a multi-part
       tune description has been used or if multiple voices are in use.

       *  Karaoke MIDI files can be generated by using the w: field to include
       lyrics.

       * Nonnumeric voice id’s, eg. V: soprano, as proposed for  the  new  abc
       standard is accepted.

       *  Invisible  rests  specified  by x are treated the same way as normal
       rests (z).

       * Decorations may be indicated using  either  the  deprecated  notation
       (eg. !fermata!) or the standard version 2.0 notation (eg. +fermata+).

LIMITATIONS

       * No field is inherited from above the X: field of the tune.

ABC SYNTAX EXTENSIONS

       * There are some extensions to the abc syntax of the form

       %%MIDI channel n

       These  control  channel  and program selection, transposing and various
       other features of abc2midi.

       Each of these should appear on a  line  by  itself.  All  of  them  are
       allowed  within  the  abc tune body. By using these in combination with
       the part notation, one can, for example, play a part transposed or in a
       different key.

       The  idea  behind this syntax is that other programs will treat it as a
       comment and ignore it.

       %%MIDI channel n

       selects melody channel n (in the range 1-16).

       %%MIDI program [c] n

       selects program n (in the range 1-128) on channel c. If c is not given,
       the program is selected on the current melody channel. Most modern tone
       generators  follow  the  General  MIDI  standard  which   defines   the
       instrument type for each program number.

       %%MIDI beat a b c n

       controls  the way note velocities are selected. The first note in a bar
       has velocity a. Other "strong" notes have velocity b and all  the  rest
       have velocity c. a, b and c must be in the range 0-128. The parameter n
       determines which notes are "strong". If the time signature is x/y, then
       each  note  is  given  a position number k = 0, 1, 2 .. x-1 within each
       bar. Note that the units for n are not the unit note length. If k is  a
       multiple  of  n, then the note is "strong". The volume specifiers !ppp!
       to !fff! are equivalent to the following :

       !ppp! = %%MIDI beat 30 20 10 1
       !pp!  = %%MIDI beat 45 35 20 1
       !p!   = %%MIDI beat 60 50 35 1
       !mp!  = %%MIDI beat 75 65 50 1
       !mf!  = %%MIDI beat 90 80 65 1
       !f!   = %%MIDI beat 105 95 80 1
       !ff!  = %%MIDI beat 120 110 95 1
       !fff! = %%MIDI beat 127 125 110 1

       %%MIDI beatmod n

       Increments by n (or decrements if n is negative) the  velocities  a,  b
       and  c  described above. The instructions !crescendo(! and !crescendo)!
       are equivalent to inserting a %%MIDI beatmod 15 whereever  they  occur.
       (Alternatively  you  can use !<(! and !<)!.) Similarly the instructions
       !diminuendo(! and !diminuendo)! are equivalent to %%MIDI beatmod -15.

       %%MIDI deltaloudness n

       where n is a small positive  number.   By  default  the  crescendo  and
       diminuendo  instructions  modify  the  beat variables a, b, and c by 15
       velocity units. This instruction allows you  to  set  this  default  to
       value n.

       %%MIDI beatstring <string of f, m and p>

       This  provides  an  alternative  way of specifying where the strong and
       weak stresses fall  within  a  bar.  ’f’  means  velocity  a  (normally
       strong),  ’m’ means velocity b (medium velocity) and ’p’ means velocity
       c (soft velocity).  For example, if the  time  signature  is  7/8  with
       stresses  on the first, fourth and sixth notes in the bar, we could use
       the following

       %%MIDI beatstring fppmpmp

       %%MIDI transpose n

       transposes the output by the specified number of semitones.  n  may  be
       positive or negative.

       %%MIDI rtranspose n

       Relative  transpose  by the specified number of semitones. i.e.  %%MIDI
       transpose a followed by %%MIDI rtranspose b results in a  transposition
       of  a+b.  %%MIDI  transpose  b  will  result  in  a  transposition of b
       semitones, regardless of any previous transposition.

       %%MIDI c n

       specifies the MIDI pitch which corresponds to c.  The  default  is  60.
       This number should normally be a multiple of 12.

       %%MIDI grace a/b

       sets  the  fraction  of  the next note that grace notes will take up. a
       must be between 1 and b-1. The grace notes may  not  sound  natural  in
       this approach, since the length of the individual grace notes vary with
       the complexity of the grace and the length of  the  following  note.  A
       different  approach  (which  is now the default) assumes that the grace
       notes always have a fixed duration.  To  use  the  other  approach  you
       would specify,

       %%MIDI gracedivider b

       where b specifies how many parts to divide the unit length specified by
       the L: field command. For example if b = 4 and L:  =  1/8,  then  every
       grace  note  would be 1/(8*4) or a 32nd note. Time would be stolen from
       the note to which the grace notes are applied. If that note is not long
       enough  to  handle  the  grace then the grace notes would be assigned 0
       duration.

       %%MIDI chordname name n1 n2 n3 n4 n5 n6

       Defines how to play a guitar chord called "name". n1 is usually  0  and
       n2,  n3 to n6 give the pitches of the other notes in semitones relative
       to the root note. There may be fewer than 6 notes in the chord, but not
       more.If  "name"  is already defined, this command re-defines it. Unlike
       most other commands, chordname definitions stay in  effect  from  where
       they  are defined to the end of the abc file. The following illustrates
       how m, 7, m7 and maj7 could be set up if they were not already defined.

       %%MIDI chordname m 0 3 7
       %%MIDI chordname 7 0 4 7 10
       %%MIDI chordname m7 0 3 7 10
       %%MIDI chordname maj7 0 4 7 11

       %%MIDI gchord string

       sets  up how guitar chords are generated. The string is a sequence made
       of of z’s,  c’s   f’s  and  b’s  for  rests,  chords,  fundamental  and
       fundamental plus chord notes respectively.  This specifies how each bar
       is to be played.  An optional length is allowed to follow the z’s,  c’s
       f’s  and  b’s   e.g.  czf2zf3.  If the abc contains guitar chords, then
       abc2midi automatically adds chords and fundamentals after  encountering
       the  first guitar chord. It keeps using that chord until a new chord is
       specified in the abc. Whenever the M: field is encountered in the  abc,
       an appropriate default string is set :

       For 2/4 or 4/4 time default is equivalent to : %%MIDI gchord fzczfzcz

       For 3/4 time default is equivalent to : %%MIDI gchord fzczcz

       For 6/8 time default is equivalent to : %%MIDI gchord fzcfzc

       For 9/8 time default is equivalent to : %%MIDI gchord fzcfzcfzc

       The  gchord  command  has  been  extended  to  allow  you  to  play the
       individual notes comprising the guitar chord. This allows you  to  play
       broken  chords  or  arpeggios. The new codes g,h,i,j, G,H,I,J reference
       the individual notes starting from the lowest note of  the  chord  (not
       necessarily  the root in the case of inversions). For example for the C
       major chord, g refers to C, h refers to E and i  refers  to  G.  For  a
       gchord command such as,

       %%MIDI gchord ghih

       Abc2midi  will  arpeggiate  the C major guitar chord to CEGE. The upper
       case letters G,H,I, and J refer to  the  same  notes  except  they  are
       transposed down one octave. Note for the first inversion of the C major
       chord (indicated by "C/E"), E would be  the  lowest  note  so  g  would
       reference the note E.

       Like  other  gchord  codes,  you  may  append  a numeral indicating the
       duration of the note. The same rules apply as before.  You can use  any
       combination of the gchord codes, (fcbghijGHIJz).

       %%MIDI chordprog n

       Sets the MIDI instrument for the chords to be n.

       %%MIDI bassprog n

       Sets the MIDI instrument for the bass notes to be n.

       %%MIDI chordvol n

       Sets the volume (velocity) of the chord notes at n.

       %%MIDI bassvol n

       Sets  the  volume  (velocity)  of  the  bass  notes  at  n. There is no
       corresponding melodyvol command since there are 3 velocity  values  for
       melody, set using the beat command.

       %%MIDI gchordon

       Turns on guitar chords (they are turned on by default at the start of a
       tune).

       %%MIDI gchordoff

       Turns off guitar chords.

       %%MIDI droneon

       Turns on a continuous drone (used in bagpipe music) consisting  of  two
       notes.  By  default  the  notes are A, and A,, played on a bassoon at a
       velocity of 80. This can be configured  by  the  %%MIDI  drone  command
       described below.

       %%MIDI droneoff

       Turns off the continous drone.

       %%MIDI drone n1 n2 n3 n4 n5

       Sets  the  drone  parameters  where  n1  is the MIDI program, n2 and n3
       specify the MIDI pitches of the two notes in the chord, and n4  and  n5
       specify  the MIDI velocities of the two notes.  If you do not set these
       parameters they are by default 70 45 33 80 80. A value of zero or  less
       indicates that the setting of this parameter should be left as it is.

       %%MIDI drum string [drum programs] [drum velocities]

       This sets up a drum pattern. The string determines when there is a drum
       beat and the drum program values determine what each drum strike sounds
       like.

       e.g. %%MIDI drum d2zdd 35 38 38  100 50 50

       The  string  may  contain  ’d’  for a drum strike or ’z’ for a rest. By
       default a voice starts with no drum  pattern  and  ’%%MIDI  drumon’  is
       needed to enable the drumming. The drum pattern is repeated during each
       bar until ’%%MIDI drumoff’ is encountered. The %%MIDI drum command  may
       be  used within a tune to change the drum pattern.  This command places
       the drum sounds on channel 10 and assumes your tone generator  complies
       with  the  General  Midi  standard  - if it does not, then you may hear
       tones instead of drum sounds.

       In both the gchord and drum commands, the standard  note  length  of  a
       single  note  f,c,z  or  d  is not set by the L: command. Instead it is
       adjusted so that the entire gchord string or drum string  fits  exactly
       into  one  bar.  In other words the duration of each note is divided by
       the total duration of the string. This means  that,  for  example,  the
       drum  string  "dd"  is  equivalent  to  drum string "d4d4".  You cannot
       currently specify fractions directly (eg. C3/2) as done in the body  of
       the  music,  but  it  is still possible to express complex rhythms. For
       example, to indicate a rhythm such as (3ddd d/d/d/d,  you  would  write
       the string "d4d4d4d3d3d3d3".

       With  version  1.54 Dec 4 2004 of abc2midi, notes in chords (eg. [FAc])
       are not played in the same instant but offsetted and  shortened  by  10
       MIDI time units. Thus the first note in the chord (eg. F) is played for
       the full indicated time, the second note (eg. A) starts 10  MIDI  units
       later  and  is  shortened  by the same amount and the third note starts
       another 10 MIDI units later and is shortened by another 10 units.  This
       introduces  an  "expressivo"  option and avoids the heavy attack. (This
       does not apply to gchords or multivoiced chords.)  The  amount  of  the
       delay and shortening may be configured by the MIDI command

       %%MIDI chordattack n

       where n is a small number. If n is zero, then abc2midi should behave as
       in earlier versions. The delay n is in MIDI time units where there  are
       480  units in a quarter note beat. The program may not run correctly if
       n is too large and there are short chords.

       %%MIDI randomchordattack n

       Like above except  that  the  delay  is  a  random  variable  uniformly
       distributed between 0 and n-1.

COMPATIBILITY WITH DRAFT STANDARD 2.0

       The proposed standard introduces a new copyright field using the syntax

       %%abc-copyright (c) Copyright John Smith 2003

       Abc2midi now inserts this in the MIDI file in the form  of  a  metatext
       copyright  tag.  Changes  were  made  to the event_specific function in
       store.c to process the copyright information. It is  also  copied  into
       the Karaoke track (if it is created) as as @T field.

SEE ALSO

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

AUTHOR

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

SUPPORTED

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

VERSION

       This man page describes abc2midi version 1.73  August 13 2005.

COPYRIGHT

       Copyright 1999 James Allwright

       abc2midi  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.

       More  complete  documentation  may be found in abcguide.txt which comes
       with the abcMIDI distribution.

                                13 August 2005                     ABC2MIDI(1)

Powered by the Ubuntu Manpage Repository generator
Maintained by Dustin Kirkland