MIDI介绍

MIDI的发展历史 八十年代初,电脑音乐迎来了第一个真正的繁荣时期,同时也迎来了一个难以解决的问题,那就是各种电子乐器之间的通讯问题:各生产厂家都按照自己的规格生产电子乐器,当您单独使用某一厂家的产品时,您还不会遇到什么问题,可是当您同时使用几家公司的设备构成一个电脑音乐系统的时候,麻烦就来了,您怎么能使一台美国E-MU的音源发出您在日本ROLAND键盘上弹奏的一个标准A呢? 为了解决电子乐器的通讯问题,1982年,国际乐器制造者协会的十几家厂商(其中主要是美国和日本的厂商)会聚一堂,各抒己见。会议通过了美国Sequential Circuits公 司的大卫.史密斯提出的“通用合成器接口”的方案,并改名为“音乐设备数字接口”,即“Musical Instrument Digital Interface”缩写为“MIDI”,公布于世。1983年,MIDI协议 1.0版正式制定出来。此后,所有的商业用电子乐器的背后都出现了几个五孔的MIDI插座,乐器之间不再存在“语言障碍”,它们同装上MIDI接口的电脑一起,构成了一个更加繁荣昌盛的电脑音乐大家庭。 MIDI是音乐设备数字接口(Musical Instrument Digital Interface)的英文简写。MIDI并不是一个实实在在的东西,而是一个国际通用的标准接口,是一种电子乐器之间以及电子乐器与电脑之间的进行交流的标准协议。通过它,各种MIDI设备都可以准确传送MIDI信息。它从80年代初问世至今,它经历了长时间的发展,我们可以从广义上将其为理解为电子音乐合成器,是电脑音乐的统称,包括协议、设备等等相关的所有技术。而我们平常所说的“MIDI”通常只是指一种电脑音乐的文件格式   VB程序中对MIDI的控制 1.midiOutOpen函数用来打开一个设备。 //声明: midiOutOpen( lphMidiOut: PHMIDIOUT; {用于返回设备句柄的指针; 之后再调用其他函数应该使用这个句柄} uDeviceID: UINT; {设备ID; 可以指定 MIDI_MAPPER = UINT(-1);} dwCallback: DWORD {回调函数地址或窗口句柄; 若不使用回调机制, 设为 nil} dwInstance: DWORD {给回调函数的实例数据; 不用于窗口} dwFlags: DWORD {打开选项} ): MMRESULT; {成功返回 0; 可能的错误值见下:} 参数lphMidiOut用来获取设备号,如果呼叫成功,则函式传回0,否则传回错误代码。如果参数设定正确,则常见的一种错误就是MIDI设备已被其他程式使用。 第二个参数uDeviceID是设备ID。要使用真实的MIDI设备,这个参数范围可以是从0到小於由midiOutGetNumDevs传回的数值。 您还可以使用MIDIMAPPER,它在MMSYSTEM.H中定义为-1,也就是当前默认设备。   2.midiOutClose函数用来关闭已经打开的设备,其参数hmo就是用midiOutOpen函数来获取的lphmo参数。 3.midiOutShortMsg函数用来播放特定的声音,midiout为设备号,第二个参数为要发出的声音。 使用格式: midiOutShortMsg(midiout, &H90 + ((tone) * &H100) + (volume * &H10000) + channel) tone是Integer型参数,代表音的高低,如中音C是60(261.6Hz), 相邻为半音 如60 和61,隔1为全音,如63和65,   volume为设备的音量值,普遍使用的是0-100之间的值。   channel为通道,默认使用0即可。所谓通道就是 MIDI音乐中的音层,就像电子琴的16个音层,有节奏通道,和弦通道,低音通道等等。最大可以支持16层,可以取其任意一个值即可。   midiOutShortMsg(midiout, &HC0 + ((tone) * &H100) + channel)可改变音乐乐器,比如钢琴、手风琴等等,这时tone为乐器编号,channel为要修改的通道号   人感受频率的能力与频率是对数关系而不是线性关系。也就是说,我们感受20Hz到40Hz的频率变化与感受40Hz到80Hz的频率变化是一样的。在音乐中,这种加倍的频率定义为八度音阶。因此,人耳可感觉到大约10个八度音阶的声音。钢琴的范围是从27.5 Hz到4186 Hz之间,略小于7个八度音阶。虽然正弦波代表了振动的大多数自然形式,但纯正弦波很少在现实生活中单独出现,而且,纯正弦波并不动听。大多数声音都很复杂.人们一度认为电子合成乐器仅仅需要将声音分解成谐波并且与多个正弦波重组即可。不过,事实证明现实世界中的声音并不是这么简单。代表现实世界中声音的波形都没有严格的周期。乐器之间谐波的相对强度是不同的,并且谐波也随着每个音符的演奏时间改变。特别是乐器演奏音符的开始位置-我们称作起奏(attack)-相当复杂,但这个位置又对我们感受音质至关重要。MIDI标准规定了128种不同音色. midi乐器编号 钢琴 0 Acoustic Grand Piano 大钢琴(声学钢琴) 1 Bright Acoustic Piano 明亮的钢琴 2 Electric Grand Piano 电钢琴 3 Honky-tonk Piano 酒吧钢琴 4 Rhodes Piano 柔和的电钢琴 5 Chorused Piano 加合唱效果的电钢琴 6 Harpsichord 羽管键琴(拨弦古钢琴) 7 Clavichord 科拉维科特琴(击弦古钢琴) 色彩打击乐器 8 Celesta 钢片琴 9 Glockenspiel 钟琴 10 Music box 八音盒 11 Vibraphone 颤音琴 12 Marimba 马林巴 13 Xylophone 木琴 14 Tubular Bells 管钟 15 Dulcimer 大扬琴 风琴 16 Hammond Organ 击杆风琴 17 Percussive Organ 打击式风琴 18 Rock Organ 摇滚风琴 19 Church Organ 教堂风琴 20 Reed Organ 簧管风琴 21 Accordian 手风琴 22 Harmonica 口琴 23 Tango Accordian 探戈手风琴 吉他 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 掌击Bass 1 37 Slap Bass 2 掌击Bass 2 38 Synth Bass 1 电子合成Bass 1 39 Synth Bass 2 电子合成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 弦乐合奏音色1 49 String Ensemble 2 弦乐合奏音色2 50 Synth Strings 1 合成弦乐合奏音色1 51 Synth Strings 2 合成弦乐合奏音色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 Synth Brass 1 合成铜管音色1 63 Synth Brass 2 合成铜管音色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 Bottle Blow [中文名称暂缺] 77 Shakuhachi 日本尺八 78 Whistle 口哨声 79 Ocarina 奥卡雷那 合成主音 80 Lead 1 (square) 合成主音1(方波) 81 Lead 2 (sawtooth) 合成主音2(锯齿波) 82 Lead 3 (caliope lead) 合成主音3 83 Lead 4 (chiff lead) 合成主音4 84 Lead 5 (charang) 合成主音5 85 Lead 6 (voice) 合成主音6(人声) 86 Lead 7 (fifths) 合成主音7(平行五度) 87 Lead 8 (bass+lead)合成主音8(贝司加主音) 合成音色 88 Pad 1 (new age) 合成音色1(新世纪) 89 Pad 2 (warm) 合成音色2 (温暖) 90 Pad 3 (polysynth) 合成音色3 91 Pad 4 (choir) 合成音色4 (合唱) 92 Pad 5 (bowed) 合成音色5 93 Pad 6 (metallic) 合成音色6 (金属声) 94 Pad 7 (halo) 合成音色7 (光环) 95 Pad 8 (sweep) 合成音色8 合成效果 96 FX 1 (rain) 合成效果 1 雨声 97 FX 2 (soundtrack) 合成效果 2 音轨 98 FX 3 (crystal) 合成效果 3 水晶 99 FX 4 (atmosphere) 合成效果 4 大气 100 FX 5 (brightness) 合成效果 5 明亮 101 FX 6 (goblins) 合成效果 6 鬼怪 102 FX 7 (echoes) 合成效果 7 回声 103 FX 8 (sci-fi) 合成效果 8 科幻 民间乐器 104 Sitar 西塔尔(印度) 105 Banjo 班卓琴(美洲) 106 Shamisen 三昧线(日本) 107 Koto 十三弦筝(日本) 108 Kalimba 卡林巴 109 Bagpipe 风笛 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 铜钹 Sound Effects 声音效果 120 Guitar Fret Noise 吉他换把杂音 121 Breath Noise 呼吸声 122 Seashore 海浪声 123 Bird Tweet 鸟鸣 124 Telephone Ring 电话铃 125 Helicopter 直升机 126 Applause 鼓掌声 127 Gunshot 枪声   MIDI各音的名称和频率 以a1 = 440Hz为标准,循环重复地使用七个基本音级名称,因此,在音列中便产生了许多同名的音,为了区分音名相同而音高不同的各音,将音列分成许多个"组"。 每组中包含7个基本音和5个半音,7个音表达七个基本音级名称,5个半音填充基本音之间,这也就是所谓的“十二平均律”。 各音乘以二就近似提升该声音一个十二音程,减半则降一个十二音程,每相邻的音之间音程距离相等,都是半音。 12 C 16.4 13 C# 17.3 14 D 18.4 15 D# 19.4 16 E 20.6 17 F 21.8 18 F# 23.1 19 G 24.5 20 G# 26.0 21 A 27.5 22 A# 29.1 23 B 30.9 36 C 65.4 37 C# 69.3 38 D 73.4 39 D# 77.8 40 E 82.4 41 F 87.3 42 F# 92.5 43 G 98.0 44 G# 103.8 45 A 110.0 46 A# 116.5 47 B 123.5 60 C 261.6 61 C# 277.2 62 D 293.7 63 D# 311.1 64 E 329.6 65 F 349.2 66 F# 370.0 67 G 392.0 68 G# 415.3 69 A 440.0 70 A# 466.2 71 B 493.9 84 C 1046.5 85 C# 1108.7 86 D 1174.7 87 D# 1244.5 88 E 1318.5 89 F 1396.9 90 F# 1480.0 91 G 1568.0 92 G# 1661.2 93 A 1760.0 94 A# 1864.7 95 B 1975.5 108 C 4186.0 109 C# 4434.9 110 D 4698.6 111 D# 4978.0 112 E 5274.0 113 F 5587.7 114 F# 5919.9 115 G 6271.9 116 G# 6644.9 117 A 7040.0 118 A# 7458.6 119 B 7902.1 na C 16744.0 na C# 17739.7 na D 18794.5 na D# 19912.1 na E 21096.2 na F 22350.6 na F# 23679.6 na G 25087.7 na G# 26579.5 na A 28160.0 na A# 29834.5 na B 31608.5 24 C 32.7 25 C# 34.6 26 D 36.7 27 D# 38.9 28 E 41.2 29 F 43.7 30 F# 46.2 31 G 49.0 32 G# 51.9 33 A 55.0 34 A# 58.3 35 B 61.7 48 C 130.8 49 C# 138.6 50 D 146.8 51 D# 155.6 52 E 164.8 53 F 174.6 54 F# 185.0 55 G 196.0 56 G# 207.7 57 A 220.0 58 A# 233.1 59 B 246.9 72 C 523.3 73 C# 554.4 74 D 587.3 75 D# 622.3 76 E 659.3 77 F 698.5 78 F# 740.0 79 G 784.0 80 G# 830.6 81 A 880.0 82 A# 932.3 83 B 987.8 96 C 2093.0 97 C# 2217.5 98 D 2349.3 99 D# 2489.0 100 E 2637.0 101 F 2793.8 102 F# 2960.0 103 G 3136.0 104 G# 3322.4 105 A 3520.0 106 A# 3729.3 107 B 3951.1 120 C 8372.0 121 C# 8869.8 122 D 9397.3 123 D# 9956.1 134 E 10548.1 125 F 11175.3 126 F# 11839.8 127 G 12543.9 na G# 13289.8 na A 14080.0 na A# 14917.2 na B 15804.3 na C 33488.1 na C# 35479.4 na D 37589.1 na D# 39824.3 na E 42192.3 na F 44701.2 na F# 47359.3 na G 50175.4 na G# 53159.0 na A 56320.0 na A# 59669.0 na B 63217.1 计算的公式: f = 频率 m = midi编号 f = 27.5 * 2((m - 21)/12) m = (12/ln(2)) * ln(f/27.5) + 21   简谱及钢琴各音的名称和频率这里         www.midi.org http://www.onlinedown.net/soft/9394.htm 老牌的MIDI工具软件,可编辑创作调试MIDI音乐 http://www.ai86.cn/book/windows_programming/22.htm 声音与音乐 http://www.ziyuan8.com/code/bc/ZY8_12151.html40个midi程序源码 http://www.ibiancheng.cn/Soft/vbcode/200712/21.html 一个用VB写的电子琴
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值