abcMIDI : abc <-> MIDI conversion utilities midi2abc version 3.47 November 01 2020 abc2midi version 4.50 March 10 2021 abc2abc version 2.12 October 19 2020 yaps version 1.86 December 10 2020 abcmatch version 1.78 March 27 2021 midicopy version 1.37 October 10 2020 24th January 2002 Copyright James Allwright J.R.Allwright@westminster.ac.uk University of Westminster, London, UK November 2020 Seymour Shlien Ottawa, Canada fy733@ncf.ca This is free software. You may copy and re-distribute it under the terms of the GNU General Public License version 2 or later, which is available from the Free Software Foundation (and elsewhere). This package is to be found on the web at http://abc.sourceforge.net/abcMIDI/ (The latest versions for the time being is found on ifdo.ca/~seymour/runabc/top.html.) Note, if you have difficulty compiling the package because you do not have snprintf see the note in doc/CHANGES dated January 08 2005 (and also December 17 2004). These programs make use of the 'midifilelib' public domain MIDI file utilities, which was originally available from http://www.harmony-central.com/MIDI/midifilelib.tar.gz If you have the source distribution and intend to re-compile the code, read the file coding.txt. --------------------------------------------------------------------- midi2abc - program to convert MIDI format files to abc notation. This program 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. 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). * 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. * 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 many beats there should be in 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 ignored. What midi2abc does not do : * 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 meter 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. midi2abc usage : midi2abc -a -xa extract anacrusis from file (find first strong note) -ga guess anacrusis (minimize ties across bars) -gk guess key signature by minimizing accidentals -gu guess the number of midi pulses per note from note duration statistics in the MIDI file -m