前一段時間在csdn上问了许多问题,无人解答,高手都不愿意教我,真是郁闷。现在终于
有所收获,现将我个人收藏发布如下,希望各位高手能象我一样 :)
最近在做一个erricsson,nokia铃声的编辑程序,程序中主要麻烦的是发送和试听,试听我是先把文本格式转化成midi,再实现播放。现将其中我收集的铃声格式和midi格式发布如下:
ericsson:
有2种,早期的都是emelody,据我所知,现在只有i68i支持imelody,不过我不知道其余型号
的手机可不可以通过升级软件来支持imelody.
-------------------------------------------------------------------------------------------
eMelody Format
Description: This is a definition of the eMelody object. This object is used when a user-defined
melody is exchanged
Syntax: <emelody-object>
ieBEGIN:EMELODYle<CR><LF>
ieNAME:lE<name><CR><LF>
ilCOMPOSER:l> <composer><CR><LF>
ieVERSION:l> <version><CR><LF>
ivMELODY:lC<melody><CR><LF>
ivEND:EMELODYll
File extension: emy
Example filename mymelody.emy
Parameters:
<version>: i佛1.0l<
<name>: Alphanumeric string
<composer>: Alphanumeric string
<melody>: {<pause>|<tone>}
<pause>: i佛pl&#64530;
<tone>: {[<octave_prefix>]<basic_tone>}
<basic_short_tone>: i佛cl&#64530;|lbdli|lselr|ltfle|ltgle|l琀al攀|l搀bl&#4861;
<ess_short_tone>: i佛(b)dle|l_(b)el_|ln(b)glt|le(b)al攀|l搀(b)bl埽
<iss_short_tone>: i作#dl&#64764;|ls#elh|lt#gln|l:#al||l(#bll
<basic_long_tone>: i作Cl&#64530;|lbDli|llElg|loFl>|llGll|lbAl攀|l搀Bl)
<ess_long_tone>: i作(b)Dle|l_(b)Elt|le(b)Gll|ll(b)Al攀|l搀(bBll
<iss_long_tone>: i作#Dl&#64764;|ls#Elo|l_#Gle|l)#Al||l(#Bll
<basic_tone>: <basic_short_tone>|<ess_short_tone>|<iss_short_tone>|<basic_long_tone>
|<ess_long_tone>|<iss_long_tone>
<octave_high_prefix>: i作+l&#64530;
Maximum number of
tones:
40
Maximum numbers of
characters in melody:
120
Example: BEGIN:EMELODY
VERSION:1.0
NAME:Test melody 1
COMPOSER:John Smith
MELODY:
+f+a+fa(b)bdcC+GA+d+#c+dfg+daea+d+#c+e+f+e+fa(b)bdC+EA+
d+#c+dfgba+d+#C
END:EMELODY
-------------------------------------------------------------------------------------------
iMelody V1.2 Approved
1. Overview
The iMelody format is a minimal set of tones that can be used to transfer melodies between devices. The definition can
be extended by defining new formats for MIDI/WAV, DTMF, polyphonic etc. The FORMAT field is mandatory, as it is
used to specify the format of the following data.
In all cases, a letter designating a note, style, volume, etc will precede a number.
Example applications include ring tones, alarm tones and power-on melodies.
2. BNF Definition
<imelody -object>::=
"BEGIN:IMELODY"<cr><line- feed>
"VERSION:"<version><cr><line- feed>
"FORMAT:"<format><cr><line- feed>
["NAME:"<characters-not - lf><cr><line- feed>]
["COMPOSER:"<characters-not - lf><cr><line-feed>]
["BEAT:"<beat><cr><line-feed>]
["STYLE:"<style><cr><line- feed>]
["VOLUME:"<volume><cr><line-feed>]
"MELODY:"<melody><cr><line- feed>
"END:IMELODY"<cr><line-feed>
<version>::="1.2"
<format>::"CLASS1.0" | “ CLASS2.0”
<beat>::="25" | "26" | "27" | ... | "899" | "900"
<style>::= "S0" | "S1" | "S2"
<volume- modifier>::=”V+”|”V-“ (changes volume + or – from current volume)
<volume>::="V0" | "V1" | ... | "V15" |<volume- modifier>
<basic- note>::="c" | "d" | "e" | "f" | "g" | "a" | "b"
<ess-note >::="&d" | "&e" | "&g" | "&a" | "&b" (flat notes)
<iss-note >::="#c" | "#d" | "#f" | "#g" | "#a" (sharp notes)
<basic- ess-iss- note >::=<basic-note> | <ess- note> | <iss- note>
<octave-prefix>::=”*0” | "*1" | … | "*8" (A=55Hz) | (A=110Hz) | … | (A=14080 Hz)
<duration>::="0" | "1" | "2" | "3" | "4" | "5"
<duration- specifier>::="." | ":" | “;”
<rest>::="r"

解决方案 »

  1.   

    <led>::="ledoff" | "ledon"
    <vibe>::="vibeon" | "vibeoff"
    <backlight>::=”backon” | “backoff”
    <note>::=[<octave-prefix>]<basic-ess- iss-note><duration>[<duration-specifier ]
    <silence>::=<rest ><duration>[<duration-specifier]
    <repeat>::= “(“{<silence>|<note>|<led>|<vib>|volume>|<backlight>}+ “@”<repeat - count>[<volume- modifier>]”)”
    <repeat -count>::="0" | "1" | "2" | … (0 is repeat forever)
    <melody>::={<silence>|<note>|<led>|<vib>|<repeat>|<volume>|<backlight>}+
    <characters- not -lf >::= ‘Any character in the ASCII character-set except <line-feed>.’
    Note : no <repeat> block within <repeat> block!(The repeat blocks cannot be nested in this simple CLASS1.0 definition)
    Default octave-prefix is *4. I,e, A=880Hz
    The volume can optionally be adjusted up, or down, within a repeat block, by including a V+/V- character anywhere
    within the repeat block. i.e (#d1r3d2e2@3V+).
    The volume changes within a repeat loop continue after the loop is exited.
    The default character set is UTF-8.
    The file extension is imy. For example “ringring.imy”
    The field name (text before the colon) is not case sensitive.
    The field value (text after the colon) is case sensitive.
    iMelody V1.2 Approved
    A maximum length for the melody has not been defined. For interoperability, the length should be kept as short as
    possible. Receiving devices must be able to truncate iMelody messages longer than the device's allocated receiving
    buffer.
    The beat is a decimal representation of the tempo in beats per minute. i.e. a bpm of 63 gives a length of a &frac14; note as 0.95
    sec. The beat rate has been restricted to values between 25bpm and 900bpm, to place realistic requirements on the
    receiving device. A default value of 120 bpm should be used if a beat is not specified.
    Lines of text in the iMelody, SHOULD NOT be longer than 75 octets, excluding the line break. Long content lines
    SHOULD be split into a multiple line representations, using a line folding technique. That is, a long line can be split
    between any two characters, by inserting a CRLF immediately followed by a single linear white space character (i.e.,
    SPACE, US-ASCII decimal 32 or HTAB, US-ASCII decimal 9).
    Duration
    Value Duration
    0 Full-note
    1 1/2-note
    2 1/4-note
    3 1/8-note
    4 1/16- note
    5 1/32- note
    Duration Specifier
    Symbol Duration
    No special duration
    . Dotted note
    : Double dotted note
    ; 2/3 length
    Style
    Value Style Ratio of note to rest period
    S0 Natural Style (rest between notes), default 20:1
    S1 Continuous Style (no rest between notes) No rest
    S2 Staccato Style (shorter notes and longer rest period) 1:1
    Volume
    iMelody V1.2 Approved
    Value Volume
    V0 tone- off
    V1 level-1
    V2 level-2
    V3 level-3
    V4 level-4
    V5 level-5
    V6 level-6
    V7 level-7, default
    V8 level-8
    V9 level-9
    V10 level-10
    V11 level-11
    V12 level-12
    V13 level-13
    V14 level-14
    V15 level-15
    3. Example of a “CLASS1.0” iMelody object
    BEGIN:IMELODY
    VERSION:1.2
    FORMAT:CLASS1.0
    Required Header Info
    NAME:Melody1
    COMPOSER:Moz art
    Optional Header info
    BEAT:120
    STYLE:S1
    VOLUME:V7
    Optional iMelody modifiers
    MELODY:V7&b2#c3V- c2*4g3d3V+#d1r3d2e2:d1V+f2f3. Required iMelody
    END:IMELODY Required footer info
    Note that in the V1.0 of the iMelody specification, the example omitted the letter V in the VOLUME modifier and S in
    the STYLE. Implementations should be capable of receiving the volume with, and without the letter V.
    Implementations should transmit with the letter V. Similarly implementations should be capable of receiving the style
    with, and without the letter S, but always send with an S.
    -------------------------------------------------------------------------------------------
    nokia用的是rttttl格式
    Spezifikation des RTTTL-Formats
    An RTX file is a text file, containing the ringtone name, a control section and a section containing a comma
    separated sequence of ring tone commands. The RTX ringtone description format is designed to be
    backward compatible with RTTTL, but offers extensions in line with the Nokia Smart Messaging standard.
    White space must be ignored by any reader application.
    Example:
    Alert:B715:32C,32P,32D,32P,32E,32P,32F,32P,32G,32P
    This file describes a ringtone whose name is 'Alert'. The control section sets the beats per second at 715,
    and the note definitions describe a series of 5 notes and 5 pauses of length 1/32 of a full note.
    <RTX file> := <name> ":" [<control section>] ":" <tone-commands>
    <name> := <char>+ ; maximum name length 10 characters
    <control-section> := <control-pair> ["," <control-section>]
    <control-pair> := <control-name> ["="] <control-value>
    <control-name> := "o" | "d" | "b" | "s"
    ; Valid in control section: o=default scale, d=default duration, b=default beats per minute, s=style
    ; Valid in tone section: o, b, s
    <control-value> := <char>+ ; dependent on control-name
    ; if not specified, defaults are 4=duration, 6=scale, 63=beats-per-minute
    ; styles are S=Staccato, N=Natural, C=Continuous
    ; any unknown control-names must be ignored
    <tone-commands> := <tone-command> ["," <tone-commands>]
    <tone-command> :=<note> | <control-pair>
    <note> := [<duration>] <note> [<scale>] [<special-duration>] <delimiter>
    <duration> := "1" | "2" | "4" | "8" | "16" | "32" ; duration is divider of full note duration,
    eg. 4 represents a quarter note
    <note> := "P" | "C" | "C#" | "D" | "D#" | "E" | "F" | "F#" | "G" | "G#" | "A" | "A#" | "H"
    <scale> :="4" | "5" | "6" | "7"
    ; Note that octave 4: A=440Hz, 5: A=880Hz, 6: A=1.76 kHz, 7: A=3.52 kHz
    ; The lowest note on the Nokia 61xx is A4, the highest is B7
    <special-duration> := "." ; Dotted note
    ; End of specification
    -------------------------------------------------------------------------------------------
      

  2.   

    midi format:
    标准MIDI文件格式 
      标准的MIDI文件格式就像奇异的兽。总体看来,它是那样的让你无法抗拒。当然,你怎样看它无关紧要,可是用足够多的描述符描述一段音乐并使它能够重现,可不是很少的工作就可以完成的。然而,它虽然复杂,但是真正理解之后,MIDI文件格式的结构还是很直观明了的。在这里我必须放弃一些东西,因为毕竟我不是MIDI也不是MIDI文件专家!最近我为我的PC准备了一块Gravis 超音频音效卡,利用它听完几段MIDI文件(.mid)之后,想:“呵,我要是能够制作自己的MIDI(.mid)文件该多好啊!”嗯,经过烦人的几个小时之后,我发现,那些并不是没有价值的工作。但是,我是不会让一个冗长的文件格式就能够阻止的(此外,我告诉过我的妻子,计算机不是很难用的,而且我十分憎恨当一个伪君子)。那么,在这篇文章中如果发现什么错误,请让我知道,我会修改它的。同时,这份文档的范围并没有提供所有类型的MIDI命令和任何可能的文件配置!这篇基本指南将使读者能够(以中等的时间投资)制作出MIDI类型的文件。1.概述:一个MIDI文件基本上由两个部分组成,头块和轨道块。第二节讲述头块,第三节讲述轨道块。一个MIDI文件有一个头块用来描述文件的格式、许多的轨道块等内容。一个轨道可以想象为像一个大型多音轨录音机那样,你可以为某种声音、某种乐谱、某种乐器或者你需要的任何东西分配一个轨道。2.头块:头块出现在文件的开头,有三种方式来描述文件。头块看起来一直是这样的:
    4D 54 68 64 00 00 00 06 ff ff nn nn dd dd前4个字节等同于ASCII码MThd,接着MThd之后的4个字节是头的大小。它将一直是00 00 00 00 06,因为现行的头信息将一直是6字节。ff ff是文件的格式,有3种格式:
    0-单轨
    1-多规,同步
    2-多规,异步单轨,很显然就只有一个轨道。同步多轨意味着所有轨道都是垂直同步的,或者其他的措辞为他们都在同一时间开始,并且可以表现一首歌的不同部分。异步多轨没有必要同时开始,而且可以完全的不同步。nn nn 是MIDI文件中的轨道数。
    dd dd 是每个4分音符delta-time节奏数(这之后将做详细介绍)。3.轨道块:头块之后剩下的文件部分是轨道块。每一个轨道包含一个头,并且可以包含你所希望的许多MIDI命令。轨道头与文件头及其相似:4D 54 72 6B xx xx xx xx与头一致,前4个字节是ASCII吗,这个是MTrk,紧跟MTrk的4个字节给出了以字节为单位的轨道的长度(不包括轨道头)。在头之下是MIDI事件,这些事件同现行的可以被带有累加的MIDI合成器端口接受和发送的数据是相同的。一个MIDI 事件先于一个delta-time。一个delta-time是一个MIDI事件被执行后的节奏数,每个四分之一音符的节奏数先前已经定义在了文件的头块中。这个delta-time是一个可变长度的编码值。这种格式虽然混乱,可是允许根据需要利用多位表示较大的数值,这不会因为需求小的数值情况下以添零的方式浪费掉一些字节!数值被转换为7位的字节,并且除了最后一个字节以最高有效位是0外,各个字节最有意义的一位是1,。这就允许一个数值被一次一个字节地读取,你如果发现最高有效位是0,则这就是这个数值的最后一位(意义比较小)。依照MIDI说明,全部delta-time的长度最多超过4字节。delta-time 之后就是MIDI事件,每个MIDI事件(除了正在运行的事件外)带有一个最高有效位总是1的命令字节(值将>128)。大部分命令的列表在附录A中。每个命令都有不同的参数和长度,但是接下来的数据将是最高有效位为零(值将<128)。这里有个例外就是meta-event,最高有效位可以是1。然而,meta-events需要一个长的参数以区分。微小失误就可以导致混乱的是运行模式,这是现行MIDI命令所忽略的地方,并且最终发行的MIDI命令是假定的。这就意味这如果包含了命令,那么MIDI事件就是由delta-time与参数组成而转换的。4.综述:如果这份说明仅仅是使问题更加混乱,那么以下提供的例子可能有助于澄清问题!同时,两个公用程序和一个图解文件包含在这个文档里面:DEC.EXE——这个公共程序是将二进制文件(比如.MID)转换成以十进制表示的对应每个字节的有标记界限的文本文件。REC.EXE——这个公共程序是将有标记界限的十进制数文本文件对应的每一字节转换成二进制文件。MIDINOTE.PS——这是一个对应键盘和五线谱的音符数字附录页。
    附录A1.MIDI事件命令每个命令字节有两部分,左nybble(4位)包含现行的命令,右nybble包含将被执行的命令的通道号,这里有16各MIDI通道8个MIDI命令(命令nybble必须最高有效位是1的)。在下表中,X表示MIDI通道号。所有的音符即数据字节都<128(最高有效位是0)。十六进制 二进制 数据 描述8x      1000xxxx    nn vv        音符关闭 (释放键盘)
                                nn=音符号
                                vv=速度9x      1001xxxx    nn vv        音符打开 (按下键盘)
                                nn=音符号
                                vv=速度Ax      1010xxxx    nn vv        触摸键盘以后
                                nn=音符号
                                vv=速度Bx      1011xxxx    cc vv        调换控制
                                cc=控制号
                                vv=新值Cx      1100xxxx    pp            改变程序(片断)
                                pp=新的程序号Dx      1101xxxx    cc            在通道后接触
    cc=管道号Ex      1110xxxx    bb tt        改变互相咬和的齿轮 (2000H 表明缺省或没有改变)(什么意思搞不懂:)
                                bb=值的低7位(least sig) 
                                 tt=值的高7位 (most sig)
      

  3.   

    下表是没有通道的 meta-events列表 ,他们的格式是:FF xx nn dd所有的 meta-events 是以 FF 开头的命令 (xx),长度,或者含在数据的字节数(nn),现行的数据(dd)十六进制 二进制 数据 描述
    00      00000000    nn ssss      设定轨道的序号
                                nn=02 (两字节长度的序号)
                                ssss=序号01      00000001    nn tt ..      你需要的所有文本事件
                            nn=以字节为单位的文本长度
                                tt=文本字符02      00000010    nn tt ..      同文本的事件, 但是用于版权信息
                               nn tt=同文本事件03      00000011  nn tt ..      序列或者轨道名
                             nn tt=同文本事件04      00000100    nn tt ..      轨道乐器名
                                nn tt=同文本事件05      00000101    nn tt ..      歌词
                                nn tt=同文本事件06      00000110    nn tt ..      标签
                                nn tt=同文本事件07      00000111    nn tt ..      浮点音符
                               nn tt=同文本事件2F      00101111    00            这个事件一定在每个轨道的结尾出现51      01010001    03 tttttt    设定拍子
                                    tttttt=微秒/四分音符58      01011000    04 nn dd cc bb 拍子记号
                                    nn=拍子记号分子
                                    dd=拍子记号分母2=四分之一
                                    3=8分拍, 等等.
                                    cc=节拍器的节奏
                                    bb=对四分之一音符标注的第32号数字59    01011001    02 sf mi      音调符号
                                  sf=升调/降调(-7=7 降调, 0=基准C调,7=7 升调)
                                  mi=大调/小调(0=大调, 1=小调)7F      01111111    xx dd ..      音序器的详细信息
                                xx=被发送的字节数
                                dd=数据下表列出了控制整个系统的系统消息。这里没有MIDI通道数 (这些一般仅应用于MIDI键盘等.)十六进制      二进制  数据          描述F8      11111000                  同步所必须的计时器
    FA      11111010                  开始当前的队列
    FB      11111011                  从停止的地方继续一个队列
    FC      11111100                  停止一个队列下表列出的是与音符相对应的命令标记。
    八度音阶&brvbar;&brvbar;                    音符号
      #  &brvbar;&brvbar;
          &brvbar;&brvbar; C  &brvbar; C#  &brvbar; D  &brvbar; D#  &brvbar; E  &brvbar; F  &brvbar; F#  &brvbar; G  &brvbar; G#  &brvbar; A  &brvbar; A#  &brvbar; B
    -----------------------------------------------------------------------------
      0  &brvbar;&brvbar;  0 &brvbar;  1 &brvbar;  2 &brvbar;  3 &brvbar;  4 &brvbar;  5 &brvbar;  6 &brvbar;  7 &brvbar;  8 &brvbar;  9 &brvbar;  10 &brvbar; 11
      1  &brvbar;&brvbar;  12 &brvbar;  13 &brvbar;  14 &brvbar;  15 &brvbar;  16 &brvbar;  17 &brvbar;  18 &brvbar;  19 &brvbar;  20 &brvbar;  21 &brvbar;  22 &brvbar; 23
      2  &brvbar;&brvbar;  24 &brvbar;  25 &brvbar;  26 &brvbar;  27 &brvbar;  28 &brvbar;  29 &brvbar;  30 &brvbar;  31 &brvbar;  32 &brvbar;  33 &brvbar;  34 &brvbar; 35
      3  &brvbar;&brvbar;  36 &brvbar;  37 &brvbar;  38 &brvbar;  39 &brvbar;  40 &brvbar;  41 &brvbar;  42 &brvbar;  43 &brvbar;  44 &brvbar;  45 &brvbar;  46 &brvbar; 47
      4  &brvbar;&brvbar;  48 &brvbar;  49 &brvbar;  50 &brvbar;  51 &brvbar;  52 &brvbar;  53 &brvbar;  54 &brvbar;  55 &brvbar;  56 &brvbar;  57 &brvbar;  58 &brvbar; 59
      5  &brvbar;&brvbar;  60 &brvbar;  61 &brvbar;  62 &brvbar;  63 &brvbar;  64 &brvbar;  65 &brvbar;  66 &brvbar;  67 &brvbar;  68 &brvbar;  69 &brvbar;  70 &brvbar; 71
      6  &brvbar;&brvbar;  72 &brvbar;  73 &brvbar;  74 &brvbar;  75 &brvbar;  76 &brvbar;  77 &brvbar;  78 &brvbar;  79 &brvbar;  80 &brvbar;  81 &brvbar;  82 &brvbar; 83
      7  &brvbar;&brvbar;  84 &brvbar;  85 &brvbar;  86 &brvbar;  87 &brvbar;  88 &brvbar;  89 &brvbar;  90 &brvbar;  91 &brvbar;  92 &brvbar;  93 &brvbar;  94 &brvbar; 95
      8  &brvbar;&brvbar;  96 &brvbar;  97 &brvbar;  98 &brvbar;  99 &brvbar; 100 &brvbar; 101 &brvbar; 102 &brvbar; 103 &brvbar; 104 &brvbar; 105 &brvbar; 106 &brvbar; 107
      9  &brvbar;&brvbar; 108 &brvbar; 109 &brvbar; 110 &brvbar; 111 &brvbar; 112 &brvbar; 113 &brvbar; 114 &brvbar; 115 &brvbar; 116 &brvbar; 117 &brvbar; 118 &brvbar; 119
      10  &brvbar;&brvbar; 120 &brvbar; 121 &brvbar; 122 &brvbar; 123 &brvbar; 124 &brvbar; 125 &brvbar; 126 &brvbar; 127 &brvbar;参考资料:
    "MIDI Systems and Control" Francis Rumsey  1990 Focal Press
    "MIDI and Sound Book for the Atari ST" Bernd Enders and Wolfgang Klem 1989 M&T Publishing, Inc.
    MIDI file specs and general MIDI specs were also obtained by sending e-mail to [email protected] with the phrase GET MIDISPEC PACKAGE in the message.**** table 1 - general midi instrument patch map ****
    (groups sounds into sixteen families, w/8 instruments in each family)prog# instrument prog# instrument(1-8 piano) (9-16 chrom percussion)
    1 acoustic grand 9 celesta
    2 bright acoustic 10 glockenspiel
    3 electric grand 11 music box
    4 honky-tonk 12 vibraphone
    5 electric piano 1 13 marimba
    6 electric piano 2 14 xylophone
    7 harpsichord 15 tubular bells
    8 clav 16 dulcimer(17-24 organ) (25-32 guitar)
    17 drawbar organ 25 acoustic guitar(nylon)
    18 percussive organ 26 acoustic guitar(steel)
    19 rock organ 27 electric guitar(jazz)
    20 church organ 28 electric guitar(clean)
    21 reed organ 29 electric guitar(muted)
    22 accoridan 30 overdriven guitar
    23 harmonica 31 distortion guitar
    24 tango accordian 32 guitar harmonics(33-40 bass) (41-48 strings)
    33 acoustic bass 41 violin
    34 electric bass(finger) 42 viola
    35 electric bass(pick) 43 cello
    36 fretless bass 44 contrabass
    37 slap bass 1 45 tremolo strings
    38 slap bass 2 46 pizzicato strings
    39 synth bass 1 47 orchestral strings
    40 synth bass 2 48 timpani(49-56 ensemble) (57-64 brass)
    49 string ensemble 1 57 trumpet
    50 string ensemble 2 58 trombone
    51 synthstrings 1 59 tuba
    52 synthstrings 2 60 muted trumpet
    53 choir aahs 61 french horn
    54 voice oohs 62 brass section
    55 synth voice 63 synthbrass 1
    56 orchestra hit 64 synthbrass 2(65-72 reed) (73-80 pipe)
    65 soprano sax 73 piccolo
    66 alto sax 74 flute
    67 tenor sax 75 recorder
    68 baritone sax 76 pan flute
    69 oboe 77 blown bottle
    70 english horn 78 skakuhachi
    71 bassoon 79 whistle
    72 clarinet 80 ocarina(
      

  4.   

    .
    ================================================================我是anothervip
      

  5.   

    emelody 格式那一段有乱码,现更正:
    eMelody Format
    Description: This is a definition of the eMelody object. This object is used when a user-defined
    melody is exchanged
    Syntax: <emelody-object>
    ieBEGIN:EMELODYle<CR><LF>
    ieNAME:lE<name><CR><LF>
    ilCOMPOSER:l> <composer><CR><LF>
    ieVERSION:l> <version><CR><LF>
    ivMELODY:lC<melody><CR><LF>
    ivEND:EMELODYll
    File extension: emy
    Example filename mymelody.emy
    Parameters:
    <version>: "1.0"
    <name>: Alphanumeric string
    <composer>: Alphanumeric string
    <melody>: {<pause>|<tone>}
    <pause>: "p"
    <tone>: {[<octave_prefix>]<basic_tone>}
    <basic_short_tone>: "c"|"d"|"e"|"f"|"g"|"a"|"b"
    <ess_short_tone>: "(b)d"|"(b)e"|"(b)g"|"(b)a"|"(b)b"
    <iss_short_tone>: "#d"|"#e"|'"#g"|"#a"|"#b"
    <basic_long_tone>: "C"|"D"|"E"|"F"|"G"|"A"|"B"
    <ess_long_tone>: "(b)D"|"(b)E"|"(b)G"|"(b)A"|"(b)B"
    <iss_long_tone>: "#D"|"#E"|"#G"|"#A"|"#B"
    <basic_tone>: <basic_short_tone>|<ess_short_tone>|<iss_short_tone>|<basic_long_tone>
    |<ess_long_tone>|<iss_long_tone>
    <octave_high_prefix>: "+"
    Maximum number of
    tones:
    40
    Maximum numbers of
    characters in melody:
    120
    Example: BEGIN:EMELODY
    VERSION:1.0
    NAME:Test melody 1
    COMPOSER:John Smith
    MELODY:
    +f+a+fa(b)bdcC+GA+d+#c+dfg+daea+d+#c+e+f+e+fa(b)bdC+EA+
    d+#c+dfgba+d+#C
    END:EMELODY