How do I submit a midi tune?

The original intention of midi2abc was to allow you to use a midi piano or a similar device as an input method which could generate simple abc representations of traditional tunes so that they could then be submitted to tradtunedb.

You must first get hold of a simple midi recording of the tune in question. It is important that midi2abc is able to find the melody within this recording, which should consist of only one instrument or 'voice' and should be played relatively simply, without chords and with a minimum of ornamentation. The recording can either be a single-track recording, or multi-track if you are able to determine the track that holds the melody. If the generated abc is to be at all accurate, the tune should be played strictly in rhythm. The file type of the recording should be '.mid' or '.midi' and the file should not be too large. You then need to click on 'select file' and enter the location of this file. After this, you will be asked for some information about the tune.

What tune information is required?

Midi track. If you have recorded to a single track midi file, it doesn't matter what you enter here because it will be implicitly recorded on track zero (no other tracks are present). Otherwise, choose the number of the track that contains the melody.

Lead in bar length. Some tunes start exactly on the first beat of the bar, in which case you should enter 'none'. Others may have a few lead-in notes before the first proper bar is reached. In such cases you should enter the length of this introductory bar, expressed as a fraction of a whole note duration. In other cases, the midi recording will start with a few measures of 'rest' in which case, although there is a lead-in, it is catered for in the recording. If, for example, you have an introductory bar consisting of a crochet with the rests before it not recorded, you would enter '1/4' for the introduction length. You can thus use this setting to shift the position of the bar line slightly forwards or backwards until it matches the tune.

Default note length It doesn't matter too much what you choose here. It affects the representation used by abc to describe a note duration. Typically you would use 1/8 for tunes with a preponderance of long notes (minims and crochets) and 1/16 for tunes with a preponderance of short notes (quavers and semiquavers).

Rhythm. Currently a set of rhythms is available which correspond in the main to Celtic or Scandinavian tune forms and are consistent with the rhythms supported by tradtunedb. Choose the rhythm which most closely describes your tune, and contact us if you feel that this list needs to be extended.

Key. Simply the home key of the tune. Although this information is usually in the midi file itself, it seems very often to be inaccurate.

Mode. Major or Minor. Other modes (e.g. Mixolydian) may be added later if there is sufficient demand.

If you are unhappy with the abc that is produced, you can keep altering the tune information and regenerating the abc until (hopefully) you are satisfied with it.

Are there any known issues or restrictions?

Some information that you would expect in a score simply does not exist in a recognisable form in a midi recording and so would have to be added later by editing the generated abc. This includes repeated sections, articulations and so on.

Chords will tend to confuse the translation, as will most grace notes. In most cases, where more than one note is recorded to sound together, the first note that is discovered will be used and the others ignored.

How accurate is the ABC that is generated?

midi2abc will only give you an approximation to the tune score and so it is almost certain that you will have to edit it a little by hand before submitting it to tradtunedb. Some aspects will never be recognised - in particular, repeated sections and articulation marks. However, the basic rhythm, the note pitches and durations and the bar lines should be detectable. Beyond that, the accuracy of the score will probably depend on the provenance of the midi. For example, computer-generated midi files tend to be very machine-like in their rhythms and thus will be relatively easily translated, but recordimgs of actual performances will be less rigid and so note durations may differ from what you expect because the system may have to guess which of two possible values is closest to what was intended.

Moreover, if you are making your own midi recording, you will get better results if you play legato. A midi recording's only concept of a rest is by an absence - a gap between successive notes. Consider midi recordings from a given score played on the violin and the mandolin. These will not sound very similar - one immediate difference is the lack of sustain from the mandolin so that as each note decays, there is a short period of silence before the next note starts. midi2abc must decide whether such a gap is caused by a note ending more quickly than intended or whether it represents a legitimate rest. This will mean that if you want to produce a score where rests are few and far between, you may have more success if you play the tune so that phrases of notes run into each other naturally. If you hold onto a note whilst starting to play the next one, midi2abc will clip the start of the second note so that it starts when the first one ends.