make the machine sing a pitch according to given notes. The note format is very easy to learn and directly related to the Numbered Musical Notation (MMN).
Depend on pywin32 (http://sourceforge.net/projects/pywin32/)
- Format of input file:
- If a "#" at the beginning of a line, that line is commented and will not be processed. So you can add the name of the song or the lyric
- If a "@" at the beginning of a line, that line is a command line.
- Empty lines will be omitted.
- Main part is many notes (whose format will be explained latter) separated by blanks
- Format for command:
- Command name is "@xxxx", and separated from its content by a space
- "@tune" (no quote mark) means which tune the following part are: Only "ABCDEFG" and "abcdefg" are supported. The capital words "X" means X major and the lowercase word "x" means X minor. Example: "@tune A" Default: C major
- "@bpm" (no quote mark) means the speed of the following part: It should be an integer which means how many beats per second. Example: "@bpm 120" Default: 120
- "@rhythm" (no quote mark) means what time the the following part is: It is two integers connected by a splash. The integer before the splash means how many beats per bar. The integer after the splash means which note is considered as a beat. Example: "@rhythm 4/4" Default: 4/4
- Format of notes (referenced Numbered Musical Notation(MMN)):
- Each note is separated by a blank (space, enter)
- Tune marks: 2.1, Number 1,2,3,4,5,6,7 represent do,re,mi,fa,sol,la,xi, the same to MMN 2.2, Each dot(".") BEFORE a number means an octave HIGHER, as a dot over a number in MMN 2.3, Each dot(".") AFTER a number means an octave LOWER, as a dot under a number in MMN 2.4, Dots can not appear on both sides of a number
- Speed marks: 3.1, Marks("-", "", ",") just appear on the right side of a number as in MMN 3.2, Mark "-" means to ADD a quarter note length to it, as the short line AFTER a note in MMN 3.3, Mark "" means to HALVE a note, as the line UNDER a number in MMN 3.4, Mark "," means to add a half of the existing length, as the "." note after the number in MMN