Provided by: abcmidi_20070318-3_amd64 bug


       midi2abc - program to convert MIDI format files to abc notation


       midi2abc  -f  infile  [-xa]  [-ga]  [-a acbeats] [-m time signature] [-ppu parts per unit]
       [-aul denominator of unit length] [-gu] [-b bars] [-Q tempo]  [-u  pulses]  [-k  key]  [-c
       channel]  [-obpl]  [-bpl  bars]  [-bps  bars]  [-o filename] [-s] [-sr units] [-sum] [-nt]
       [-splitbars] [-splitvoices] [-midigram] [-mftext] [-nogr]


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

       The output of midi2abc is printed to the screen. To save it to a file, use the redirection
       operator,  (e.g.  midi2abc -f file.mid > or specify the output file using the -o

       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.

       The  program  will  extract  the  time  signature  infromation from the MIDI file if it is
       present. Otherwise it will assume 4/4 or you could specify it with -m. option.

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

       -a acbeats
              where acbeats specifies the anacrusis in half unit lengths.

       -xa    extract the anacrusis from file by finding the first strong note

       -ga    guess the anacrusis by minimizing the number of ties across bars

       -m time signature
              time signature

       -b bars
              number of bars wanted in output

       -Q tempo
              tempo in quarter-notes per minute

       -u pulses
              Allows you to specify directly the number of midi pulses per abc time unit.

       -ppu parts per abc unit length
              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.

       -aul denominator of abc unit length
              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

       -gu    Tells midi2abc to estimate the number of midi pulses per abc  time  unit  from  the
              note duration or spacing in the MIDI file.

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

       -k key key signature: -6 to 6 sharps.

       -c channel
              select only this midi channel.

       -f infile
              input file in midi format

       -o output file
              specifies the output abc file name.

       -s     do not discard very short notes.

       -sr quantum units
              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.

       -sum   print a short summary of the input midi file.

       -nt    do not look for triplets or broken rhythm

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

       -nogr  (No  note  grouping.)  Inserts  a  space  between all notes. It makes a less pretty
              postscript file but it is easier to edit.

       -bpl nbars
              Print nbars of music on every line followed by a backslash.

       -bps nbars
              When nbars  have  been  printed  (including  those  lines  joined  by  a  backslash
              continuation) go to a new line (with no backslash).

              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.

              This parameter like above handles polyphonic chords by splitting  an  entire  voice
              into multi voices.

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

              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.

       *  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).

       *  Note  length  can  be  set  by specifiying 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.

       * Barlines are automatically inserted. The user specifies the number of  measures  in  the
       anacrusis before the first barline and the time signature.

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

       * Where a note extends beyond a bar break, it is split into two tied notes.

       * The output has 4 bars per line.

       * Enough accidental signs are put in the music to ensure that no pitch errors occur  if  a
       barline is added or deleted.

       * The program attempts to group notes sensibly in each bar.

       * Triplets and broken rhythm (a>b) are supported.

       * Chords are identified.

       * Text information from the original MIDI file is included as comments.

       *  The  -c  option can be used to select only 1 MIDI channel. Events on other channels are

       midi2abc does not ...

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

       * Support duplets, quadruplets, other esoteric features.

       * Support mid-tune key or time signature changes.

       * Deduce repeats. The output is just the notes in the input file.

       * Recover an abc tune as supplied to abc2midi. However, if you want to do this,  "midi2abc
       -xa -f file.mid" comes close.


       abc2ps(1), abc2midi(1), abc2abc(1)


       James Allwright <>


       Seymour Shlien <>


       This man page describes midi2abc version 2.87 from July 09 2005.


       Copyright 1999 James Allwright

       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

                                           09 July 2005                               MIDI2ABC(1)