亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

手機鈴聲格式規范,midi格式規范

2019-11-18 20:09:11
字體:
來源:轉載
供稿:網友
前一段時間在csdn上問了許多問題,無人解答,高手都不愿意教我,真是郁悶。現在終于
有所收獲,現將我個人收藏發布如下,希望各位高手能象我一樣 :)
最近在做一個erriCSSon,nokia鈴聲的編輯程序,程序中主要麻煩的是發送和試聽,試聽我是先把文本格式轉化成midi,再實現播放?,F將其中我收集的鈴聲格式和midi格式發布如下:
ericsson:
有2種,早期的都是emelody,據我所知,現在只有i68i支持imelody,不過我不知道其余型號
的手機可不可以通過升級軟件來支持imelody.
-------------------------------------------------------------------------------------------
eMelody Object
.
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_<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
-------------------------------------------------------------------------------------------
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"


<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

midi format:
標準MIDI文件格式

標準的MIDI文件格式就像奇異的獸??傮w看來,它是那樣的讓你無法抗拒。當然,你怎樣看它無關緊要,可是用足夠多的描述符描述一段音樂并使它能夠重現,可不是很少的工作就可以完成的。然而,它雖然復雜,但是真正理解之后,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——這是一個對應鍵盤和五線譜的音符數字附錄頁。


附錄A

1.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)


下表是沒有通道的 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 a"o obtained by sending e-mail to LISTSERV@AUVM.AMERICAN.EDU 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 bel"
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

(81-88 synth lead) (89-96 synth pad)
81 lead 1 (square) 89 pad 1 (new age)
82 lead 2 (sawtooth) 90 pad 2 (warm)
83 lead 3 (calliope) 91 pad 3 (polysynth)
84 lead 4 (chiff) 92 pad 4 (choir)
85 lead 5 (charang) 93 pad 5 (bowed)
86 lead 6 (voice) 94 pad 6 (metallic)
87 lead 7 (fifths) 95 pad 7 (halo)
88 lead 8 (bass+lead) 96 pad 8 (sweep)

(97-104 synth effects) (105-112 ethnic)
97 fx 1 (rain) 105 sitar
98 fx 2 (soundtrack) 106 banjo
99 fx 3 (crystal) 107 shamisen
100 fx 4 (atmosphere) 108 koto
101 fx 5 (brightness) 109 kalimba
102 fx 6 (goblins) 110 bagpipe
103 fx 7 (echoes) 111 fiddle
104 fx 8 (sci-fi) 112 shanai

(113-120 percussive) (121-128 sound effects)
113 tinkle bell 121 guitar fret noise
114 agogo 122 breath noise
115 steel drums 123 seashore
116 woodblock 124 bird tweet
117 taiko drum 125 telephone ring
118 melodic tom 126 helicopter
119 synth drum 127 applause
120 reverse cymbal 128 gunshot


**** table 2 - general midi percussion key map ****
(assigns drum sounds to note numbers. midi channel 10 is for percussion)

midi drum sound midi drum sound
key key

35 acoustic bass drum 59 ride cymbal 2
36 bass drum 1 60 hi bongo
37 side stick 61 low bongo
38 acoustic snare 62 mute hi conga
39 hand clap 63 open hi conga
40 electric snare 64 low conga
41 low floor tom 65 high timbale
42 closed hi-hat 66 low timbale
43 high floor tom 67 high agogo
44 pedal hi-hat 68 low agogo
45 low tom 69 cabasa
46 open hi-hat 70 maracas
47 low-mid tom 71 short whistle
48 hi-mid tom 72 long whistle
49 crash cymbal 1 73 short guiro
50 high tom 74 long guiro
51 ride cymbal 1 75 claves
52 chinese cymbal 76 hi wood block
53 ride bell 77 low wood block
54 tambourine 78 mute cuica
55 splash cymbal 79 open cuica
56 cowbell 80 mute triangle
57 crash cymbal 2 81 open triangle
58 vibraslap


**** table 3 - general midi minimum sound module specs ****

voices:
a minimum of either 24 fully dynamically allocated voices
available simultaneously for both melodic and percussive sounds or 16
dynamically allocated voices for melody plus eight for percussion.

channe":
general midi mode supports all sixteen midi channe". each channel can
play a variable number of voices (polyphony). each channel can play a
different instrument (timbre). keybased percussion is always on
channel 10.

instruments:
a minimum of sixteen different timbres playing various instrument
sounds. a minimum of 128 preset for intruments (midi program numbers).

note on/note off:
octabe registration: middle c(c3) = midi key 60. all voices including
percussion respond to velocity.

controllers:
controller # description
1 modulation
7 main volume
10 pan
11 expression
64 sustain
121 reset all controllers
123 all notes off

registered description
parameter #
0 pitch bend sensitivity
1 fine tuning
2 coarse tuning

additional channel messages:
channel pressure (aftertouch)
pitch bend

power-up defaults:
pitch bend amount = 0
pitch bend sensitivity = +-2 semitones
volume = 90
all other controllers = reset

(after electronic musician, 8/91 issue)
------------------------------ DEC.CPP ------------------------------------

/*  file  dec.cpp

by  Dustin Caldwell    (dustin@gse.utah.edu)

*/


#include <dos.h>
#include <stdio.h>
#include <stdlib.h>

void helpdoc();

main()
{
        FILE *fp;

        unsigned char ch, c;

        if((fp=fopen(_argv[1], "rb"))==NULL)            /* open file to read */
        {
                printf("cannot open file %s/n",_argv[1]);
                helpdoc();
                exit(-1);
        }

        c=0;
        ch=fgetc(fp);

        while(!feof(fp))                        /* loop for whole file */
        {
                printf("%u/t", ch);            /* print every byte's decimal equiv. */
                c++;
                if(c>8)                                /* print 8 numbers to a line */
                {
                        c=0;
                        printf("/n");
                }

                ch=fgetc(fp);
        }

        fclose(fp);                    /* close up */
}

void helpdoc()                  /* print help message */
{
        printf("/n  Binary File Decoder/n/n");

        printf("/n Syntax:  dec binary_file_name/n/n");

        printf("by Dustin Caldwell  (dustin@gse.utah.edu)/n/n");
        printf("This is a filter program that reads a binary file/n");
        printf("and prints the decimal equivalent of each byte/n");
        printf("tab-separated. This is mostly useful when piped /n");
        printf("into another file to be edited manually.  eg:/n/n");
        printf("c:/>dec sonata3.mid > son3.txt/n/n");
        printf("This will create a file called son3.txt which can/n");
        printf("be edited with any ascii editor. /n/n");
        printf("(rec.exe may a"o be useful, as it reencodes the /n");
        printf("ascii text file)./n/n");
        printf("Have Fun!!/n");
}

---------------------------- REC.CPP ----------------------------------

/*  File  rec.cpp
        by Dustin Caldwell  (dustin@gse.utah.edu)
*/

#include <dos.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

void helpdoc();

main()
{
        FILE *rfp, *wfp;

        unsigned char ch, c;
        char s[20];

        if((rfp=fopen(_argv[1], "r"))==NULL)                    /* open the read file */
        {
                printf("cannot open file %s /n",_argv[1]);
                helpdoc();
                exit(-1);
        }

        if((wfp=fopen(_argv[2], "wb"))==NULL)                  /* open the write file */
        {
                printf("cannot open file %s /n",_argv[1]);
                helpdoc();
                exit(-1);
        }

        c=0;

        ch=fgetc(rfp);

        while(!feof(rfp))                      /* loop for whole file */
        {

                if(isalnum(ch))                /* only 'see' valid ascii chars */
                {
                        c=0;
                        while(isdigit(ch))      /* only use decimal digits (0-9) */
                        {
                                s[c]=ch;        /* build a string containing the number */
                                c++;
                                ch=fgetc(rfp);
                        }
                        s[c]=NULL;                      /* must have NULL terminator */

                        fputc(atoi(s), wfp);/* write the binary equivalent to file */

                }

                ch=fgetc(rfp);                  /* loop until next number starts */


        }

        fclose(rfp);                    /* close up */
        fclose(wfp);
}


void helpdoc()          /* print help message */
{
        printf("/n  Text File Encoder/n/n");

        printf("/n Syntax:  rec text_file_name binary_file_name/n/n");

        printf("by Dustin Caldwell  (dustin@gse.utah.edu)/n/n");
        printf("This is a program that reads an ascii tab-/n");
        printf("delimited file and builds a binary file where/n");
        printf("each byte of the binary file is one of the decimal/n");
        printf("digits in the text file./n");
        printf(" eg:/n/n");
        printf("c:/>rec son3.txt son3.mid/n/n");
        printf("(This will create a file called son3.mid which is/n");
        printf("a valid binary file)/n/n");
        printf("(dec.exe may a"o be useful, as it decodes binary files)/n/n");
        printf("Have Fun!!/n");
}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久久亚洲| 国产精品视频资源| 精品国产91乱高清在线观看| 欧美激情一区二区三区成人| 97在线精品国自产拍中文| 欧洲亚洲在线视频| 高清在线视频日韩欧美| 姬川优奈aav一区二区| 亚洲日本aⅴ片在线观看香蕉| 色综合久久久888| 欧美成人自拍视频| 久久影视电视剧凤归四时歌| 欧美日韩亚洲视频| 亚洲二区在线播放视频| 国产一区二区av| 91免费高清视频| 国产精品444| 日本成人免费在线| 亚洲天堂av在线免费| 欧美巨猛xxxx猛交黑人97人| 亚洲少妇激情视频| 亚洲人成在线观看网站高清| 91精品在线看| 欧美成人激情图片网| 日本亚洲欧美成人| 亚洲女人被黑人巨大进入al| 日韩乱码在线视频| 亚洲区免费影片| 丁香五六月婷婷久久激情| 久久精品久久久久久| 国产精品7m视频| 欧美性猛交xxxx乱大交| 5278欧美一区二区三区| 亚洲成人激情图| 日本精品久久久久久久| 最近2019免费中文字幕视频三| 国产精品私拍pans大尺度在线| 97福利一区二区| 亚洲国产成人爱av在线播放| 久久视频在线视频| 国产精品视频网址| 久久久久久久久电影| 色琪琪综合男人的天堂aⅴ视频| 欧美激情第99页| 亚洲风情亚aⅴ在线发布| 性欧美亚洲xxxx乳在线观看| 久久精品视频在线观看| 日韩电影在线观看中文字幕| 国产丝袜高跟一区| 亚洲一级黄色片| 亚洲开心激情网| 亚洲激情视频网| 色播久久人人爽人人爽人人片视av| 一区二区三区四区在线观看视频| 国产精品96久久久久久又黄又硬| 欧美性xxxxx极品娇小| 91黑丝在线观看| 欧美成人激情在线| 欧美大片网站在线观看| 欧美性猛交xxxx免费看久久久| 91免费看片网站| 亚洲一区二区三区香蕉| 亚洲电影第1页| 欧美成人免费大片| 欧美怡春院一区二区三区| 成人性生交大片免费看小说| 成人乱色短篇合集| 亚洲www在线| 久久久久久久爱| 日韩精品亚洲视频| 热久久这里只有精品| 久久偷看各类女兵18女厕嘘嘘| 亚洲欧美制服另类日韩| 亚洲视频综合网| 欧美成人在线影院| 国产精品视频大全| 国产视频精品在线| 亚洲人成电影网| 日韩在线观看免费| 精品国产91久久久| 亚洲国产精品va在线看黑人| 亚洲精品国产成人| 国产精品一二区| 自拍偷拍亚洲欧美| 久久视频在线观看免费| 欧美黑人一级爽快片淫片高清| 97成人超碰免| 欧美日韩ab片| 久久久久久久久久久网站| 成人免费网视频| 久久av.com| 精品国产老师黑色丝袜高跟鞋| 午夜精品一区二区三区在线播放| 日韩在线免费高清视频| 久久久爽爽爽美女图片| 亚洲黄色片网站| 欧洲亚洲在线视频| 国产欧美 在线欧美| 日韩在线观看av| 国产精品久久久久久久久久久不卡| 26uuu另类亚洲欧美日本一| 岛国av一区二区在线在线观看| 91亚洲精品久久久久久久久久久久| 久久久久久伊人| 欧美黄色www| 黄色成人av网| 亚洲性线免费观看视频成熟| 国产免费亚洲高清| 黑人巨大精品欧美一区二区一视频| 中文字幕av一区二区| 亚洲网站视频福利| 欧美疯狂性受xxxxx另类| 96精品视频在线| 欧美日韩在线影院| 国产日韩欧美中文在线播放| 92国产精品视频| 日韩av免费一区| 欧洲亚洲在线视频| 最近更新的2019中文字幕| 色偷偷噜噜噜亚洲男人的天堂| 欧美日韩免费在线| 91久久夜色精品国产网站| 国内免费久久久久久久久久久| 日韩福利伦理影院免费| 欧美日韩亚洲精品内裤| 26uuu日韩精品一区二区| 色一区av在线| 精品久久久久久久久久| 伊人一区二区三区久久精品| 日韩精品有码在线观看| 国产精品美女av| xvideos成人免费中文版| 浅井舞香一区二区| 成人激情在线播放| 亚洲国产美女精品久久久久∴| 精品无人区太爽高潮在线播放| 亚洲第一二三四五区| 91精品国产91| 在线看日韩欧美| 岛国视频午夜一区免费在线观看| 奇门遁甲1982国语版免费观看高清| 欧美激情精品久久久久久黑人| 欧美麻豆久久久久久中文| 热久久免费视频精品| 成人久久久久爱| 国产精品v片在线观看不卡| 欧美亚洲成人免费| 亚洲午夜女主播在线直播| 91av福利视频| 美女少妇精品视频| 精品毛片三在线观看| 国产精品嫩草影院一区二区| 国产日韩欧美电影在线观看| 国产精品日日做人人爱| 51久久精品夜色国产麻豆| 日韩www在线| 成人xxxxx| 国产成人精品一区二区在线| 亚洲影院高清在线| 久久久www成人免费精品| 欧美在线视频观看免费网站| 岛国av一区二区在线在线观看| 国产精品久久久久久久久久三级| 午夜精品三级视频福利|