MelCom: A Text-to-Midi Melody Compiler

 

MelCom Language: The Basics
Overview

Using MelCom

Download

The Language:
Starting Example
The Basics
Intermediate
Advanced
Examples

Contact

 

Following are the basic elements of the MelCom language:

1. The Header Line

The first line in the input text is a header line that indicates whether English or French note names are used in the rest of the file. For English note names (A, B, C, D, E, F, and G), the header line should be:

**n[A-B-C]

For French note names (Do, Re, Mi, Fa, Sol, La, and Ti or Si), the header line should be:

**n[D-R-M]

2. Notes

A note consists of a duration, a pitch, and possibly an accidental.

Duration
The durations of the notes are indicated by reciprocal numbers: 1 for whole-note, 2 for half-note, 4 for quarter-note, etc. The breve or double whole-note is a special case and is represented by the number zero.

Dots can be appended to the reciprocal number to add half of the duration. For example, 4. is a duration of a quarter-note plus an eighth-note, and 2.. is a duration of a half-note plus a quarter-note plus an eighth note.

Pitch
Pitches are represented through a scheme of upper-case and lower-case letters.
Using English note names, Middle C (C4) is represented using the single lower-case letter "c". Successive octaves are designated by letter repetition, thus C5 is represented by "cc", C6 by "ccc" and so on. The higher the octave, the more repeated letters.

For pitches below C4, upper-case letters are used: "C" designates C3, "CC" designates C2, and so on. Changes of octave occur between B and C. Thus the B below middle C is represented as "B"; the B below "CC" is represented as "BBB", and so on. The lower the octave, the greater the number of repeated letters.

Pitches of octave 2: CC DD EE FF GG AA BB
Pitches of octave 3: C D E F G A B
Pitches of octave 4: c d e f g a b
Pitches of octave 5: cc dd ee ff gg aa bb

If French note names are used, a similar scheme is employed, using the letters d, r, m, f, s, l, and t.

Pitches of octave 2: DD RR MM FF SS LL TT
Pitches of octave 3: D R M F S L T
Pitches of octave 4: d r m f s l t
Pitches of octave 5: dd rr mm ff ss ll tt

Rests
Rests are encoded using the colon (:).

Accidentals
Accidentals are encoded using the number sign (#) for sharps, the minus sign (-) for flats, the plus sign (+) for half-sharps, and the tilde (~) for half flats. Accidentals are encoded immediately following the pitch letter name.

Note Separation
Notes are separated from each other by one or more of any of the following characters:

  • Blank space
  • New line
  • Tab
  • Vertical line (|)
  • Circumflex accent (^)
  • Comma (,)
  • Equal sign (=)

The vertical line (|) separator may be used to indicate a bar line, although the program does not have the notion of meter in the current version.

3. Comments

A line starting with a single exclamation mark (!) is considered a comment, and is ignored musically.

4. Tempo Changes

The default tempo in MelCom is 120 quarter-notes per minute. The tempo can be changed at any point by inserting a line containing "*T" followed by the desired tempo between square brackets. For example, the line:

*T[90]

changes the tempo to 90 quarter-notes per minute from this point on.
 

5. Instrument Changes

The default instrument in MelCom is the acoustic grand piano. The instrument can be changed at any point by inserting a line containing "*I" followed by an instrument number between square brackets. For example, the line:

*I[40]

changes the instrument to violin from this point on.

Following is a list of the possible instruments and their corresponding numbers:

0 : Acoustic Grand Piano
1 : Bright Acoustic Piano
2 : Electric Grand Piano
3 : Honky-tonk Piano
4 : Electric Piano 1
5 : Electric Piano 2
6 : Harpsichord
7 : Clavi
8 : Celesta
9 : Glockenspiel
10 : Music Box
11 : Vibraphone
12 : Marimba
13 : Xylophone
14 : Tubular Bells
15 : Dulcimer
16 : Drawbar Organ
17 : Percussive Organ
18 : Rock Organ
19 : Church Organ
20 : Reed Organ
21 : Accordion
22 : Harmonica
23 : Tango Accordion
24 : Acoustic Guitar (nylon)
25 : Acoustic Guitar (steel)
26 : Electric Guitar (jazz)
27 : Electric Guitar (clean)
28 : Electric Guitar (muted)
29 : Overdriven Guitar
30 : Distortion Guitar
31 : Guitar harmonics
32 : Acoustic Bass
33 : Electric Bass (finger)
34 : Electric Bass (pick)
35 : Fretless Bass
36 : Slap Bass 1
37 : Slap Bass 2
38 : Synth Bass 1
39 : Synth Bass 2
40 : Violin
41 : Viola
42 : Cello
43 : Contrabass
44 : Tremolo Strings
45 : Pizzicato Strings
46 : Orchestral Harp
47 : Timpani
48 : String Ensemble 1
49 : String Ensemble 2
50 : SynthStrings 1
51 : SynthStrings 2
52 : Choir Aahs
53 : Voice Oohs
54 : Synth Voice
55 : Orchestra Hit
56 : Trumpet
57 : Trombone
58 : Tuba
59 : Muted Trumpet
60 : French Horn
61 : Brass Section
62 : SynthBrass 1
63 : SynthBrass 2
64 : Soprano Sax
65 : Alto Sax
66 : Tenor Sax
67 : Baritone Sax
68 : Oboe
69 : English Horn
70 : Bassoon
71 : Clarinet
72 : Piccolo
73 : Flute
74 : Recorder
75 : Pan Flute
76 : Blown Bottle
77 : Shakuhachi
78 : Whistle
79 : Ocarina
80 : Lead 1 (square)
81 : Lead 2 (sawtooth)
82 : Lead 3 (calliope)
83 : Lead 4 (chiff)
84 : Lead 5 (charang)
85 : Lead 6 (voice)
86 : Lead 7 (fifths)
87 : Lead 8 (bass + lead)
88 : Pad 1 (new age)
89 : Pad 2 (warm)
90 : Pad 3 (polysynth)
91 : Pad 4 (choir)
92 : Pad 5 (bowed)
93 : Pad 6 (metallic)
94 : Pad 7 (halo)
95 : Pad 8 (sweep)
96 : FX 1 (rain)
97 : FX 2 (soundtrack)
98 : FX 3 (crystal)
99 : FX 4 (atmosphere)
100 : FX 5 (brightness)
101 : FX 6 (goblins)
102 : FX 7 (echoes)
103 : FX 8 (sci-fi)
104 : Sitar
105 : Banjo
106 : Shamisen
107 : Koto
108 : Kalimba
109 : Bag pipe
110 : Fiddle
111 : Shanai
112 : Tinkle Bell
113 : Agogo
114 : Steel Drums
115 : Woodblock
116 : Taiko Drum
117 : Melodic Tom
118 : Synth Drum
119 : Reverse Cymbal
120 : Guitar Fret Noise
121 : Breath Noise
122 : Seashore
123 : Bird Tweet
124 : Telephone Ring
125 : Helicopter
126 : Applause
127 : Gunshot