传播OORsd敢达改机包下载什么的,这种贴不用删的...

小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
站长本职工作是电子工程师,业余爱好电脑音乐及键盘,是个十足技术宅,喜欢闷在家里搞电子技术以及玩音乐……这家伙确实很懒,暂时什么都没留下,不过慢慢会有东西的~
DIY TR808音序器与TB303同步测试
梁工的DIY新品预告篇!即将推出的仿制版TR808鼓机demo!演示很霸气!
与诸位分享一下我收集的MIDI与音频设备研发的国外网站,欢迎大家继续添加~
&&&&& 这些网站目前无需翻墙,以后不好说,看啥时候抽风吧。PS:有时候GFW发威,我也想去BUPT那里扔某人几个鸡蛋的说&&虽然我这里走路去BUPT只需要十分钟,但想想还是算了,我不想被查水表&&5555&&
http://www.midi.org/&&MIDI Manufacturers Association(MMA)的官方网站。MMA是什么?这个&&悄悄地说,您一定要知道MMA是什么,否则您就不好意思说自己是玩MIDI研发的了&&
/&&这个是一本书(Maximum MIDI)的主页,但看起来,这只是关于一本书的主页&&
http://www.fpga.synth.net/&&这是一个主要介绍用FPGA处理音频信号相关的主页。PS:他们做出了一个基于FPGA的FM合成器,虽然有些简陋~
/home.htm&&一个在win系统下调试MIDI设备的不二利器,可以直接以Hex形式查看MIDI端口的数据流。功能强大,显示直观,并且用起来相当方便。有一阵子这个网站被墙,有半年上不去。但现在是可以上的。
http://www.jososoft.dk/&& 此站站长是一位在雅马哈编曲键盘DIY领域很有成就的技术人员,他探索并原创了很多雅马哈键盘的DIY理论和方法(XG标准,雅马哈sty文件的数据结构,CASM信息的用法等等,他探索了很多东西),且他收藏的相关资料相当之充足。我的大部分XG相关文档都是从这里分享的。
/default.aspx&&创新公司的开发者论坛。我的创新sf2开发包内的文档和软件,就是从这里下载的。
/&& 一个主要开发音频软件和音频库的开发者主页。我之所以发现了他们,是因为他们设计了一套机制,通过将sf2音色库中的wav压缩成了flac,使得sf2体积得以缩小很多(把一个20多M的sf2压缩得只有8M)。他们提供了这套机制的dll库(bassmidi.dll)。除此之外,他们还有很多其他的音频相关的内容可以参考。
================
&&&&& 稍微吐槽一下。我本来想把这个东东发到百度贴吧和百度文库里的,但是百度抽风,文库说我&有可能侵权&不让公开(我有好多文档都是这个原因不能公开,申诉更费事),贴吧在我刚刚发了贴之后,就直接被系统删掉了,申诉成功之后还是没能显示。想做点儿好事,结果热脸蛋贴冷屁股,第一次在贴吧发帖就受到如此待遇,心冷啊&&放弃贴吧,不理度娘这个平时就傲娇,还时不时黑化,动不动暴走的小家伙了&&
同样,也是由本人首发于cndzq研发板,但由于图片太多,懒得转,所以直接链接过去了~
[原帖由本人首发于cndzq研发板] 三菱MITSUBISHI数字音频处理芯片型号之不完全收集
& & 以下这些型号仅仅列出了部分的三菱公司的数字音频处理芯片,但功能基本做到全面了。因为我自己有时DIY一些音频相关的东西,需要一些单一功能的小芯片,于是做了一些收集。强调一下:这些芯片我目前全部都没有使用过,只是做了型号收集。
& & 芯片的英文注解,是照抄其手册中的英文注解。而中文翻译是我根据英文,自行理解并写出,以方便英文不好的朋友。若有歧义,请以手册里的英文注解及内容为 准。各个芯片的手册请自行上网搜索并下载。在得知具体型号后,搜索其Datasheet并不困难,ic37或者alldatasheet都能搜得到。
& & 至于货源问题,请大家自行访问某宝网站搜索及查看。
& & 该资料由小天同学收集整理,首发于&中国电子琴在线论坛&。转载请注明。
==========================================================
M615XXFP&&- Tone and Volume Controller with 6ch Selector & && &&&带有六通道选择器的音调与音量控制器
M61500FP&&- Tone and Volume Control & && &&&音调和音量控制器
M61503FP&&- Tone and Volume Control & && &&&音调和音量控制器
M61504FP&&- Digital Sound Controller with Surround & && &&&带有环绕声的数字音频控制器
M61506FP&&- Peak Hold IC for 5-band Spectrum Analyzer Displays & && &&&带有峰值保持的五段频谱分析器
M61508FP&&- The Electric Volume of Build-in Non Fader Volume with Tone Control & && &&&带有音调控制且内置非淡出电子音量控制器(?)
M61509FP&&- Tone and Volume Control & && &&&音调和音量控制器
M61511FP&&- 6ch Electric Volume with 10 Input Selector & && &&&带有10路输入选择器的六声道电子音量控制器
M61515FP&&- Tone and Volume Control & && &&&音调和音量控制器
M61516FP&&- 7.1ch Electronic Volume with 10 Input Selector & && &&&带有10路输入选择器的7.1声道电子音量控制器
M61518FP&&- Audio Signal Processor with Rec Play Back Amplifier & && &&&带有录音与回放放大器的音频信号处理器
M62413FP&&- Electronic Sound Control with Electronic Volume for Multiple Sources & && &&&带有多路输入源切换器的电子音量与声音控制器
M62415& & - 2ch 4mode Preset Equalizer & && &&&双声道预置四模式均衡器
M62419FP&&- Sound Controller for Car Stereo & && &&&适用于车载播放器的音频控制器
M62420& & - Sound Controller for TV & && &&&适用于电视的音频控制器
M62421& & - Sound Controller & && &&&音频控制器
M62427FP&&- Sound Quality Sound Field Control Digital Sound Controller for Mini-Component Stereo & && &&&为小型立体声播放器设计的声音品质/声场控制器
M62428FP&&- Digital Sound Controller & && &&&数字音频控制器
M62429& & - Serial Data Control Dual Electronic Volume & && &&&使用串行数据总线的双电子音量控制器
M62430FP&&- Digital Sound Controller with SRS Surround & && &&&带有SRS环绕声的数字声音控制器
M62431FP&&- 7-Element Graphic Equalizer with Microcomputer Interface & && &&&带有微控制器接口的7段图形均衡器
M62433FP&&- Single Chip Analog Sound Processor & && &&&单芯片模拟音频处理器
M62434FP&&- Tone Volume and SRS by I2C Bus System & && &&&使用I2C总线的音调、音量和SRS的控制器
M62435FP&&- Electic Volume Control with Tone Controller for 4-Speaker Applications & && &&&适用于四路扬声器应用的电子音量控制器
M62436FP&&- SRS Focus, SRS 3D Stereo Sound Controller & && &&&SRS Focus,SRS 3D立体声音频控制器
M62438FP&&- Simplified SRS 3D Sound Processor & && &&&简单的SRS 3D音频处理器
M62440FP&&- Electric Volume Control with Tone Controller for 4-Speaker Applications & && &&&适用于四路扬声器应用的电子音量和音调控制器
M62443& & - Tone and Volume Controller with 4 Input Selector & && &&&带有四路输入选择器的音调和音量控制器
M62444FP&&- 4ch Electric volume with Trimmer & && &&&带有裁剪器(?)的四路电子音量控制器
M62445FP&&- Digital Sound Controller with Dynamic Bass Boost & && &&&带有动态低音提升功能的数字声音控制器
M62446FP&&- 6ch Electric Volume with Tone Control & && &&&六声道电子音量、音调控制器
M62447SP&&- 6ch Electric Volume & && &&&六声道电子音量控制器
M62455& & - Simplified SRS 3D Sound Processor & && &&&简单的SRS 3D环绕声处理器
M62456FP&&- Digital Sound Controller & && &&&数字声音控制器
M62457FP&&- Peak Hold IC for 5-band Spectrum Analayzer Displays & && &&&带有峰值保持的五段频谱分析器
M62458FP&&- SRS Headphone 3D Sound Processor & && &&&用于SRS耳机的3D声音处理器
M62459& & - SRS 3D Stereo + SRS 3D Mono 1 Chip & && &&&单芯片实现SRS 3D立体声+SRS 3D单声道
M62460FP&&- Super Single Chip Surround Processor with Dolby Pro Logic Decoder & && &&&带有Dolby Pro Logic解码器的超级单芯片环绕声处理器
M65575FP&&- Rhythm Phrase Player & && &&&旋律乐句发生器
M65821FP&&- CD Player Digital Signal Processor & && &&&用于CD播放器的数字信号处理器
M65824FP&&- Signal Processor for CD Player with Build-in DA & && &&&内建有DA的用于CD播放器的数字信号处理器
M65830& & - Digital Delay & && &&&数字延迟器
M65831& & - Digital Echo Digital Delay & && &&&数字回声/延迟器
M65840& & - Digital Key Controller for Karaokay & && &&&数字音调(Key,如C大调E小调等,非Tone)控制器
M65841SP&&- Digital Reverbe Digital Delay & && &&&数字混响/延迟器
M65844P& &- Digital Echo Digital Delay & && &&&数字回声/延迟器
M65845& & - Digital Echo with Microphone Mixing Circuit & && &&&带有话筒混音电路的数字回声器
M65847& & - Digital Key Contrller for Karaokay & && &&&数字音调(Key,如C大调E小调等,非Tone)控制器
M65849& & - Single Chip Surround Processor & && &&&单芯片环绕声处理器
M65850& & - Digital Echo Digital Delay & && &&&数字回声/延迟器
M65851FP&&- Single Chip Karaoke Processor & && &&&单芯片卡拉OK处理器
M65853FP&&- Digital Echo with Microphone Mixing Circuit & && &&&带有话筒混音电路的数字回声器
M65854FP&&- Digital Echo with Microphone Mixing Circuit & && &&&带有话筒混音电路的数字回声器
M65855FP&&- One Chip Digital Echo with Microphone Mixing Amplifier & && &&&带有话筒混音器及放大器的单芯片数字回声器
M65856SP&&- Digital Echo with Microphone Mixing Circuit & && &&&带有话筒混音电路的数字回声器
M65863FP&&- Dolby Digital Decoder & && &&&支持Dolby Digital的解码器
M66260FP&&- 8x4 Crosspoint Switch with Mixing Function & && &&&带有混合功能的8x4交叉开关整列
M66271FP&&- Operation Panel Controller & && &&&操作面板控制器
====================
& && &说点儿题外话。之前去过坛中搞维修的朋友家,第一次试玩了EL-900M,听到了她厚实沉稳而又细节清亮的声音,看到了她的电路。她的功放板上就使用了 很多的三菱芯片,协助调教其声音。所以在这里我把自己收集到的一些三菱音频IC型号和简单描述贴出来。以后大家DIY时也可以尝试着使用一下~比如说我就想在自己那块PSR-330混音板上使用这些IC~
转自MIDIFAN。但我没有验证过这样做的可行性。实际上我质疑这个电路,因为根据MIDI规范中的电气方面的规定,这种电路有可能是不灵验的甚至是危险的吧。有机会我亲测一下好啦,虽然我木有iPhone……5555……
这个帖子由我首发于cndzq研发板块中。因为原帖内有大量的图片和视频,转贴过来太麻烦,所以我就直接链接过去了。
&& 电鼓制作日记之五
这哥们自己DIY的电鼓~还有力度感应,强人~!
小天同学(站长昵称)今后的DIY想法和打算,以我现在的时间和能力,估计十年左右能全部搞定吧……
石机:这个还是要继续做下去,目前的机器性能上还有很多不完美之处。
模拟调音台:想为爱好者们提供一个高性价比的多路混音设备,不只是给音乐制作人来使用,普通人也可以。最后将其尝试着集成进功放机中。目的是为了使一套音响可以支持多路音频输入,比如一路PC,一路FM Tuner,一路LineIn,一路CD,可以很方便地切换,不需要来来回回地拔线接线。
数字调音台:这个是给音乐制作爱好者准备的,功能较多也较专业。只是目前个人能力有限,对数字信号处理相关技术掌握不深,暂无足够功力搞定。
无损音频播放器:这个很早就有构想,但功力不够且一直没时间做。用电脑听歌不方便,费电,而且总烧着硬盘也不好,所以就想弄一个嵌入式的无损音频文件播放器,支持sata硬盘(那会儿硬盘还很便宜&&),优盘,存储卡,支持ape,flac,mp3,wma,wav等常见音频格式,支持cue列表。打算做成台机,重点优化音质,不考虑手持化(外出噪音太大,没必要追求好音质)。
midi吉他:通过把普通木吉他mod一下(如今我也只能从成品吉他之上来mod),使其可以识别和发送演奏者演奏时的midi信息,包括音符和力度还有一些特效等,方便吉他声部的录入。
sf2硬音源:这个就更遥遥无期了。如果能把这个东东搞定,基本上就可以出山了~有些sf2音色库也蛮不错的,这也算是DIY电子琴当中最核心的一步,同时也能为掌握音源技术提供很大帮助。
MIDI播放器:手里有个网友DIY的XG音源,还有很多优秀的XG MIDI文件,可惜离了电脑就播不了。所以搞一个这样的播放器,可以输出MIDI文件中的事件,驱动外部的MIDI音源,相当于播放了MIDI文件。如果DIY音源顺利的话,也可以考虑把它们整合在一起。
把MIDI文件编码为wav,再还原回来:这是自己打算尝试的一个方法,不出产品。将midi事件调制为一系列wave,这样就可以用mp3格式来装载midi事件,提高一定的通用性。&大概有这几种构想。但小天同学现在没时间弄&&小天同学现如今和高数线数进行不懈斗争中,所以估计未来一年之内都不会有什么太大的DIY动作&&
现音09音制班电音笔试,看看你能得几分!【转自叉烧网】
现音09音制班电音/Dubstep试题
熬夜的童鞋们你们终于等到鸟...
题目都是咱们上课100%讲过的,我相信做音乐好的不一定考得好,但如果一题都不会,一是你没有上我的课,二是你对电音没半点兴趣。Dubstep 是近年欧美新兴的电音风格,相信还会有更大的发展,并与流行乐更好地融合,也希望大家可以把握未来。
吐一下槽:这个试卷的美工就PS了一天啊有木有!!~&
现音09音制班电音/Dubstep笔试答案
6月12日更新:虽然遇到WWDC和欧洲杯,不过还是转了上百条,大家都很关心,也有很多争议。不少人认为音乐水准与笔试无关,这点与我的观点一致,在第一页就说了,因此考题主要并不是操作(除了最后一题),而是基础与知识面,我不相信没有任何基础的音乐人能够调出好音色,没有这些基础(例如你不知道&振荡器&和&LFO&)你甚至无法与别人交流电子乐。
还有一些题目涉及知识面与历史,我相信我们无法单纯通过学习编曲本身来学习编曲,这是头痛医头的问题,学音乐与学编曲其实都是学人家的文化,音乐、历史、与技术是相互联系的整体,就像阿彬老师在 上讲的:英国的DJ都是现场制作,如果脱离现场、国内的DJ在家里用小鼠标永远点不出来那种感觉。国内的山寨产品永远跟别人的屁股是因为没有山寨到人家的创新文化,因此永远只能是山寨。
最后,看到朋友说 Skrillex 的音色不用调,用 Massive 就行,我也不能同意,这是&鱼&跟&渔&的关系,急功近利的想法&&我不想知道这些音色怎么调,我只想直接要这个音色。这跟我们经常骂的某些客户一样,一进门直接跟你说我要XX乐队的BASS音色、要XX歌曲的吉他音色...这些音色完全可能不适合你的歌曲。
说了这么废话,最后一句,我在课上讲了太多的段子、文化、历史、基础与原理,其实是希望大家更加开心、对电子乐更有兴趣。做音乐完全没有捷径,做音乐是一种态度。&&
1、19世纪。被誉为&合成器之父&的 Elisha Gray 在 1876 年发明了合成器的雏形,只能发出单音。
2、正弦波、三角波、方波、锯齿波。
3、正弦波。其他三种基本波形都可根据基本频率的正弦波及多个高次正弦波合成,反之,也可以通过滤波器重新得到正弦波,例如1000Hz的锯齿波,给它做1000Hz的高切,即得到1000Hz的正弦波。
4、锯齿波。课上我们通过两段振荡器发出锯齿波,来调制过类吉他失真音色(克隆Lady Gaga音色那节课上)。有人回答方波,方波细腻一点,可以做Lead Guitar,做 Powerchord 不够粗放。&
5、正弦波。很多人微博说电音跟王菲有什么关系?那请好好听听亚东老师和郭老师在十几年前给王菲编的曲子,做音乐切忌看不起主流与商业,欧美最成功的乐队(如 Linkin Park、Coldplay 等)与 Skrillex 都很商业的,赚很多钱。
6、MOOG。并于60年代末成功让 The Beatles、滚石乐队等大牌相继成为他们的用户,从而得到大规模普及。
7、加法合成器、减法合成器。
8、低频振荡器。Low Frequency Oscillator
9、振荡器。
10、A。D与R都可以适当留一些,&S&也不一定为零,底鼓/军鼓/开镲有时需要不短的音长。
11、旁链/侧链。之前主要用于混音,后来在电音中慢慢成为编曲技巧。
12、压缩器。
13、非洲。请见。50年代之前一直没传到欧洲是因为欧洲本土一直在战争。
14、英国。DubStep 起源于夜店与现场演出,因此伴随大量的即兴与小错误,如果想做好 DubStep,光在家调小鼠标是没有感觉的。
15、Skrillex。88年1月15日出生,正在成为欧美年轻人的新偶像。
16、LIVE。也是Skrillex主要使用的软件(之前本来在用 FL Studio,后因其不支持苹果系统而放弃 FL)
17、140左右。intro 部分通常拍速减半成70BPM,Main 部分通常是140。
18、效果/音效。按照编曲的基本单位来分,传统的音乐家使用音符编曲;90年代后很多新音乐人用LOOP来编曲(FL Studio 的前身就是&FruityLoop&);然后我们说DJ是使用歌曲进行编曲,DubStep 是一种很新的方式,使用效果/噪音进行编曲,里面的噪音包括&纯噪音&与&旋律性噪音&,即使是旋律性噪音,也没有太多旋律,例如BASS可能就两个音,更多是强调节奏感。
19、Radio DJ。&DJ&一词,最早出现于1935年,之前电台都是真人乐队演出,实时收音,美国人 Martin 首次在播音中使用了唱机,因此被誉为&Disc Jockey&(黑胶驾驭者),简称&DJ&。
20、牙买加。这个小国面积只有1万平方公里(中国是960万平方公里),人口约三百万,之前为印第安人领域,16世纪后成为西班牙殖民地,成为黑奴贩卖到美洲的中转地,大部分老弱病残的黑奴都在航海中挂了,活下来的都是最强者,牙买加后来对世界体育与音乐都有深远的影响。
21、Bob Marley。1945年生,出生时老爸60岁(白人)、老妈18岁(黑人)。10岁时父亲病逝,Bob 在贫民窟长大,为穷人写歌,独创&政治雷鬼&风格,36岁(1981年)癌症早逝,死后三年,最后一张专辑《Legend》出版,成为史上销量最高的雷鬼专辑(2500万张销量)。&
1、正确,包括方波、锯齿波、三角波都可以通过不同频率的正弦波合成得出。
2、正确,Dubstep 本身也在尝试各种变化,Skrillex 新单曲《Bangarang》即为110BPM
3、正确,Pro Tools 自带的 Expander 与 AutoPan 插件均带有 Side Chain 功能
4、错误,李宁曰:一切皆有可能。前两月看到有人,红歌Dubstep国内应该很快有人会尝试。&
1、LFO做的颤音是固定的、机械性的,Side Chain 做的颤音可以非常灵活,可以通过BUS推子调节湿度、通过改变调制轨(例如底鼓)的音符控制颤音的启动时间,而且调制轨可以完全静音,将琴键作为触发效果的控制器使用。
2、从噪音发生器发出一个噪音(小部分合成器没有噪音发生部分,无法调制鼓音色),然后ADSR的A为零、D/S/R适度调得短些。
3、(这部分我们上课只是直接演示,故意没有从文字方面说得太具体,看大家能不能在考试时描述出来~)
老式的 Dubstep 在结构方面通常分两段,一段Intro一段Main,两段之间通常以一个 Bass Drop(见下文)音色作为过度。有时光听 Intro 并不能马上反映出是 Dubstep,但 Main 部分就特征非常明显,是 Dubstep 的重点。
鼓的音符与音色在两段中特点不是太明显,Intro部分比较简单,经常速度减半(70BPM),Hihat 有一些后16,Main部分有点类似金属和摇滚,采用开镲打法。
Bass 的标志性音色通常有三个:
Bass Drop(上面说那个),一个Bass 长音,音调快速下降。
&Wobble Bass&,颤音Bass,这个Bass甚至可以做 Dubbing 放在两边(比较夸张的情况下BASS都不在中间,而且没有音符的旋律感),伴随很强的颤动感,这个颤动是通过做LFO,课上我们只做了音量的LFO,实际上还会伴随失真效果与滤波的LFO。
&类哇音&Bass,由于这个效果跟随每个音符进行ADSR的变化,因此不能直接加哇音效果器,需要使用滤波器包络,一般合成器软件都有(也有),
其他大部分&旋律性噪音&音色都或多或少有使用滤波器包络,除此之外还有大量的&纯噪音&或者&纯效果&,这部分每个明星DJ都有自己的特色音色。
好消息是现在市面上(尤其是今年)推出了大量的Dubstep音色盘与专门的,但我认为大家还是要从原理和基础上知道这些音色是怎么调出来的,这样你可以用每个合成器来调,而且调得跟别人不一样。
let me see see,能答上一半吧……&&转自&
打造终极音乐PC
在数字音频工作站,插件和虚拟乐器不断发展的同时,它们对计算机性能的要求也在不断提升。虚拟的音乐制作工具变得越来越精密,扩展的创造力也需要强力的性能支撑。你是否经常发现在你的音乐还没完成前,你的处理器就已经过载了?很多时候,当你在别人那看到那些巨型插件和软件乐器时,也希望能在自己的数字音频工作站上运行它们。要购买新的PC来制作音乐,又是很难抉择的事情。虽然你可以购买高度整合的Mac,但你也可以用更便宜的价格得到更快的PC。只要你知道该怎么做&
这里会给出解决这些问题的办法。当越来越多的专业用户在大型的工程上运用PC或多计算机的配置时,我们认为是时候告诉他们是怎么做的了(暂且不管你的预算是多少)。当你了解了连接计算机的方法后,与其它以计算机为基础的音乐人进行创造性的合作也就变成了可能。对于大多数情况来说,你只需要用一两根线进行简单的连接。我们联合了世界各地的音乐制作者,齐心协力想出了这些终极的指导。
特别感谢:Cyberpower UK,对我们的计算机进行特别的改造。
Future Music&打造终极&PC
我们采用了参与这个专题的专家意见,将构造机器预算设定在1000英镑以内。这些是我们得到的东西,当然也是符合预算的:&
Fractal Design R3机箱
Intel Core i7-2600K
Blu-ray Disc Writer(12K速度)
Windows 7 Professional 64位
16GB DDR31
Asus P8Z68-V Pro主板
Cooler Maser 500W电源
1TB SATA III HDD x2
ArcticFreezer 13 Cooler散热风扇
Nvidia GT 520 1GB 被动散热显卡
把上面的东西放在一起,功能到底有多强大呢?第一个测试很简单。打开&控制面板&里的&性能信息和工具(Performance Information and Tools)&,Windows会对你的系统进行评估。Windows体验指数(Windows Experience Index)会告诉你机器里关键部件的表现性能。数值从1.0到7.9(这是微软提供给你的)。我们的机器在处理器速度和RAM的得分很高,这也是我们最需要的地方。因为我们并没有高性能的图形处理卡,所以综合部分的得分会低一些,标准系统得分为5.9。然而,值得一提的是,当我们换成SSD(固态硬盘)后,得分为7.9。
在实际的应用中,计算机的性能和RAM使用情况对我们能否完成一首歌曲起到了决定性的作用。所以我们建立了一个巨型工程,使用非常高端,占用资源的乐器,来看看我们究竟能执行到什么程度。我们用机器作为服务器,将Vienna Ensemble Pro 5作为宿主,设置成32位模式,包含16轨合成器。这都是Arturia V里的合成器,包括3个Moog Modular V,两个CS-80V,两个极占资源的Jupiter 8-V和两个ARP 2600V。在这些之外,我们还增加了两个Native Instruments的Massive,也是一个很占资源的插件。当然,系统应对这16轨合成器是绰绰有余的。CPU表头上几乎没有什么晃动。
那么,是时候进入下一阶段了。我们打开5个VEP,每一个都包含16轨合成器&&同时有80个合成器在播放。因为32位的限制,我们不能再加载更多了。在这个过程里,CPU的使用量也只达到了45-50%。
是时候再测试一些更猛的了。这一次我们准备了64位的VEP,建立了包含Slate Drums的采样器,以及两个运行16-level钢琴,演奏很多音符,加有不停顿的延音踏板的Ivory采样库。在这之外,有六轨Vienna乐器,每一个都有不同的交响乐配置。结果,系统还是很稳定地运行着。所以我们加倍了之前的配置,这很可能造成计算机的崩溃。但是计算机还是很轻松地应付下来了。处理器的使用量是多少呢?仅仅65%。
这可能不是最科学的测试,但它的确是值得参考的信息。有了这个性能强大的机器,我们就可以在上面做很多有趣的事了。
十条建议:让你的系统更快更稳
录制,回放音频和使用采样乐器,这些都意味着你的硬盘在不停地进行大量的数据吞吐工作。这里有十个建议,让你能将机器的性能发挥到最大:
给你的数字音频工作站使用独立的音频磁盘。大多数的音频工作站都需要进入系统盘做一些工作,如果同时你的音频文件也需要使用系统盘,你可能会遇到&磁盘速度太慢&的提示,让你遭遇瓶颈。大量音频读写也会加速你磁盘的磨损,所以最好不要使用系统盘存储你的音频内容。
至少分配一个磁盘给你的采样库。如果你经常使用大量的采样或者会同时运行鼓,弦乐和钢琴的采样器,你最好把它们分离到多个磁盘里去。对于音频文件也是一样的,这样做能让你的磁盘运行得更加稳定和安全。
使用快速的磁盘驱动器。磁盘的转速至少要达到7200rpm,无论对于采样和音频磁盘都是。
磁盘的接口也是不同的。内部的SATA 3.0最大可以支持600MB/s的读写速度,而USB 2.0只支持47.6MB/s的读写速度。如果你的磁盘接口不是足够的快,这也会减慢你的磁盘速度。内部的SATA接口,外部的FireWire 800和eSATA是最理想的选择。
在管理采样上尽可能使用有逻辑性的文件结构。如果你从很多地方搜集采样,那么确定你有清晰的分类文件夹。这意味着你能很快找到想要的东西,对于计算机来说是一样的。
磁盘碎片(因为没有连续的存储空间来保存完整的单元)会让你的磁盘运行速度变慢,因为读取头会在来回找寻所有碎片上浪费时间。运行磁盘碎片整理程序来进行整理。它能帮助你分析和整理磁盘,如果有必要,你可以制定一个定期整理的计划。对Mac也是一样吗?OS X系统自身会做很好的检查,所以不必担心。
运行64位以得到更多的RAM。就算你有很快的磁盘和总线速度,如果没有足够RAM,提升效果也不会很明显。对所有的东西都做一些提升,就不会让你的硬盘过度地工作了。
选出那些过大的采样库进行整理。我知道这听起来有点麻烦,但是我们都会这么做。每个人都有自己喜欢的一些预置,我们常常只会用到一两种。想想看你整理后能节省的RAM和时间,这值得你花时间去做一个自己的缩减版本。
合并做过编辑的音频。如果你对音频轨道做了很多的编辑,最后就会留下无数的音频片段,特别是你编辑多轨的鼓组时。这很像磁盘的碎片,音频工作站会来来回回地读取这些文件,而且还要计算那些渐变处理。如果你喜欢对音轨进行编辑,那么记得合并它们。
备份。保证你对所有的磁盘进行了备份。如果你使用的是内部的磁盘,给自己再准备一块外部的SATA磁盘。它们会以USB 2.0或eSATA(如果有合适的接口)的方式进行连接。找到一款备份软件,定期使用它进行备份(专业标准是每天对音频磁盘进行备份,每周对采样磁盘进行备份)。然后,一旦有哪个磁盘出现问题,只要还原它就可以了。
用MIDI同步计算机&把计算机当做一个乐器,通过MIDI同步与其他音乐人合作
让我们以简单的MIDI来连接两台计算机。如果两台计算机都有标准的MIDI接口,你可以把一台的MIDI out用线接在另一台的MIDI in上,然后按照步骤2和3的方法进行设置。步骤1告诉你怎么通过网络将两台计算机连接在一起。我们的测试机器是一台运行Logic的Mac和一台运行Ableton Live的PC。我们使用出色的MIDIoverLan CP(跨平台软件)。下面是将Logic作为主工作站的设置方法。
步骤1:为了通过网络进行同步,在两台机器上都载入MIDIoverLAN。在Mac上激活MIDI out,选择目标计算机,点击Apply(应用)。在PC上,激活MIDI in,然后点击Apply。
步骤2:要在软件里进行同步,你需要打开Loigc,进入设置中的同步下的MIDI页面,勾选&Transmit MIDI Clock(传输MIDI时钟)&,选择&MolCP III Driver MolCP3Port 1&。再进入偏好设置中的MIDI页面,点击Sync(同步)的分页面,勾选MIDI时钟下的&Allow to Send Song Position Pointer While Playing(播放时允许发送乐曲位置指针)&。 在Live里,进入MIDI sync页面,在input里选择&MolCP3 Port 1&。勾选&Sync&按钮,类型选择&MIDI Clock&。
步骤3:在Live左上角选择&Ext&,然后在Logic里按下播放。两台机器就会同时开始播放了。打开两台机器上的节拍器,在Live里对MIDI时钟同步的延迟进行调整,直到听起来没问题为止。
用数字音频方式连接有闲置的数字I/O?那你可以将它们利用起来。
如果两台计算机都有兼容的I/O,很可能是使用RCA连接头或光纤的SPDIF,你可以用数字方式将它们连接起来。这里,我们用立体声光纤的SPDIF来操作。这样做的优势是,如果你想在计算机之间进行录音,你使用的是数字化的方式,所以不会存在音质的损失。如果你有ADAT连接头,那么你也可以从一台计算机发送多个轨道到另一台计算机,在一次操作中进行立体声或单独轨道的录制。
步骤1:将PC声卡上的SPDIF out和Mac声卡上的SPDIF in数字接口进行连接。在Live里,进入偏好设置里的Audio窗口,选择&Driver type&和&Audio Output Device&。这里我们选择的是MME/Direct X和Realtek Digital Output。
步骤2:我们使用RME ADI 648 MADI音频接口,我们在它的控制界面上打开输入同步功能。在HDSP设置里,我们让它Autosync(自动同步)它的时钟模式,我们偏好的同步参考系是MADI。在带有SPDIF的USB声卡上,你需要告诉它同步数字输入。
步骤3:让你的来源进入立体声轨道,确定你点亮了监听,接着在Live里点击播放。现在音频在Live里播放,但监听却是在Logic里。&
多计算机设置使用Vienna Ensemble Pro 5将你的老式计算机用来创建辅助的效果。
我们选择了Vienna Ensemble Pro 5来进行多计算机的设置。这涉及到使用一个千兆网卡来控制所有的音频和MIDI连接。VEP5工程的优势之一就是支持多平台。因为其它的计算机只是作为服务器,所以你只需要在你的主机器上使用一个音频接口 。这里我们将指导你怎么设置一个使用虚拟乐器的工程。
步骤1:在PC上运行两个VEP服务器,一个32位,一个64位。在Logic里,运行两个多音色的乐器轨道,点击&Connect&,让一个连接在32位服务器上,另一个连接到64位服务器上。再次点击&Connect&,它们就可以使用了。
步骤2:在Mac上,服务器的接口已经连接到了PC上的Vienna。32位的用来运行合成器,64位的负责所有的采样乐器。你可以看到32位的合成器已经分配到相关的MIDI轨道上了。
步骤3:你可以在Logic的相关轨道上进行编辑,在PC上的VEP里进行音色的编辑,处理和效果的添加。对于任何VST插件也是一样,渲染是在主要的工作站里进行的。当你在Mac上进行保存,所有的设置也都会被保存。最大可以支持在同一网络下运行五台计算机。&
Steve Aiello&&Synthogy的工程技术经理,Ivory采样钢琴的制造者。
磁盘的读写速度对采样乐器有什么影响,我们应该进行怎样的优化?
对于Ivory,复音的限制因素一直都是磁盘到CPU的数据吞吐能力。当然,像CPU速度,系统RAM,以及硬件和驱动等也是影响性能的因素。但磁盘的速度和数据流量的大小是至关重要的。太慢或太少就会发生崩溃。从另一个角度讲,数据流量的最大值决定了你能同时演奏的音符数和使用延音的能力。
那么是否应该选择SSD?
从很多方面看,这是不需要思考的问题。SSD能满足虚拟乐器巨大的即时数据吞吐量。SSD是最出色的一种增加数据流量的技术。所以对于我们,以及我们的用户,SSD是最好的选择。当然,它还有很多其它的优势。使用SSD作为系统盘意味着更快的系统启动速度和迅速开启应用程序的能力。
Adrien Courdavault&&Arturia的数字音频处理工程师,是闻名世界的TAE合成器以及硬件的制造者。
对于VST来说,哪种类型的处理器运行得最好?
有很多不同等级的计算核心,在不同的架构上,性能会受到影响或加强。举例来说,将Intel i5与Celeron同等频率的芯片进行比较,前者在多媒体应用上性能更好,因为它的内部架构更适合这方面的应用。比如,Arturia Spark就使用SSE技术进行了优化,让你能通过一个指令对多个数据元素进行处理。
我们应该怎么从多核上获得最大的好处?
两种方式。首先,购买最大的L3缓存。第二,你的主板需要有高性能的芯片级和通信总线。记住总线或RAM如果太慢,整体线路的速度也会减慢。
越多的RAM就越好吗?
当然越多越好,但是效果却不太一样。如果你使用完全合成的乐器,你不需要太多的内存。但如果你使用采样,你需要更多内存来载入采样乐器。所以,如果你会大量使用采样乐器,那么增加RAM对你是有帮助的。
Johannes Becher&&Vienna Symphonic Library的工作人员,是世界上最大的交响乐器采样库的制造者。
很多用户试图利用超频来增加性能?这是可行的吗?
超频是一个单独的问题。事实上,今天的Intel Core i7处理器在有必要的时候会自动这么做,所以不需要你去设置。使用Vienna Ensemble Pro,无论你载入多少的乐器,应该都不会达到限制。&
采样库越来越大,这成为一个很头痛的问题。你有什么建议吗?
最常见的做法就是将大的采样库划分到多个磁盘上。我们的用户经常将一个磁盘用来存储弦乐,其它的用来存储木管乐器,铜管乐器,打击乐等等。这不是必须的,但的确很有帮助。&
固态硬盘怎么样?
现在,对于巨大的采样库,你需要同样大的SSD,但是价格依然很昂贵。然而,像VIP 2这样的系统支持你调整采样预缓存大小,这样你既可以获得SSD磁盘的速度,也不用载入太大的采样到RAM里。这让你的载入时间变得更少,运行更加流畅。
虽然SSD已经越来越便宜了,不过是否购买以及购买什么样的SSD要根据你的经济能力和对空间大小的需求来决定。我们用的是64G的SSD来改造机器。尽管我们做了很多努力,但很快我们的空间就用完了。SSD在OS系统上运行很好,启动时间和应用程序的开启上都有巨大的变化。对比之下,使用普通硬盘的机器就慢很多了。64G看起来很多,但是对于音乐制作,我们建议最少使用128G的SSD。我们试着在上面运行了一些采样库,效果非常明显。载入时间也大大减少,复音数不再是一个问题。因为我们给计算机更换了高速的总线和16G的内存,我们从未遇到什么问题。当我们想要载入一些著名的采样库音色时,我们还是得到我们的普通硬盘上去读取。所以,如果SSD的价格下降,我们会考虑购买更大空间的。
转自叉烧网;来源:《Future Music》
专业人士的选择!我等爱好者还是老实点儿吧,荷包不鼓……&&转自&
AKAI APC40+APC20=Akai APC 80
DELAMAR的教程,将这两台史上最经典的live控制器完美合体成一款神机。视频中附送安全快速切割硬塑料大法
&& 电鼓制作日记之四
一直在关注着这哥们的DIY行动,现在看来基本上成功了~!
MIDI设备模块电路
这个是MIDI Transmitter,发送MIDI信息出去的。发送源是CPU的UART口(配置成31250baud/s),3.3V TTL或CMOS电平;输出端输出0-5mA电流信号,驱动MIDI Receiver光耦中的LED。左边的LED作为发送指示。
孟奇、汤楠(musiXboy)讲座——电子DIY大家玩:如何自制合成器、效果器和MIDI设备
原来他们俩也是DIY狂人啊……
牛人自制Arduino虚拟架子鼓 大秀疯狂创意
貌似这个就是传说中的arduino套件?
51单片机连接YM3812(OPL2)播放仙剑DOS版背景音乐
感受一下FM时代声卡的声音。这个YM3812在当年还是很轰动的,甚至被创新所使用着。
站长DIY之2.0音箱
差分对管,2SC732
功率管,2SA1301 / 2SC0
一周时间自己DIY了一个电子表~
一周时间自己DIY了一个电子表~拍照时间,中午12:11
站长DIY之四路调音台
站长一年多以前自己DIY了一个全模拟的四路调音台,这个是运放,TL084。图片暂时借用了在上上传的图片。
站长一年多以前自己DIY了一个全模拟的四路调音台,丑了点儿,哈哈~下面的塑料盒子是个XG音源,后面的音箱也是自己DIY的~图片暂时借用了在上上传的图片。
站长一年多以前自己DIY了一个全模拟的四路调音台,丑了点儿,哈哈~图片暂时借用了在上上传的图片。
读书笔记:MIDI Tick、Meta-event、变长数表示法、区分MIDI文件中单个字节的含义
站长自己原来研究MIDI协议时,写下的一些读书笔记来分享。
MIDI Tick与TPQN:
MIDI中常用的时间度量法是采用Midi Tick。Midi Tick是MIDI系统中最小的时间单位,MIDI系统的所有时间功能,如节拍的产生,都是基于Midi Tick的。MIDI系统中的设备,只需要对Tick计数,就可以获得曲子的时间信息。
TPQN是一个缩写,全称是&Ticks Per Quarter-Note&,即&每四分音符所具有的Tick数&。从字面就可以理解其含义。在一个MIDI文件的MThd chunk中,我们能找到这个参数。通常这个值可以取48-480(这个是准确值,原来那个帖子的60-480写错了,抱歉&&)之间。
每Tick的绝对时间长度是关联于曲子拍速(tempo)的。比如在一首4/4拍,tempo为60bpm的曲子中,一个四分音符为一拍,发音长度为1秒。我们将一个四分音符的音长规定为480 Ticks,则480 Ticks为1秒,单个Tick的时间长度就是(1/480)秒。如果MIDI文件中要播放一个四分音符,即一拍,只要在播放时对MIDI Tick计数,计满480个MIDITick后停下,就达到了目的。同理,八分音符就是240 Ticks,一个三连音中的每个连音就是160 Ticks。
具体的解释,请参考笔者曾经编辑的这个帖子:
/thread--1.html
Meta-event事件:
meta-event事件也 MIDI事件的一部分,但它并不会被发送出去。它只是代表了MIDI文件的一些特征,如速度、调号、拍号、版权信息、音轨名称等等。它的数据格式是:
FF xx nn dd dd dd dd &&
FF代表了此数据类型为meta-event;
xx代表了具体的meta-event事件类型,取值范围为00-7F;
nn代表了其后的meta-event数据长度,用可变长度数来表示;
dd dd dd则是具体的数据。
话说0xFF这个数据,既表示meta-event的标志,同时也是MIDI事件&系统复位&的指令码。如何区分这两个数据呢?我的理解是:系统复位事件属于系统实时信息,是不会出现在MIDI文件中的。所以在MIDI文件中的0xFF,都是meta-event的标志,不会是属于系统实时信息的&系统复位&事件;而meta-event事件是不会被音序器发送出去的,所以MIDI系统中接收到的0xFF,只可能是系统复位事件,不会是meta-event。
变长数表示法:
举一个可变长度数的例子:81 70,那么这个delta-time实际表示的数为0xF0。怎么来的?0x81的二进制为,后边还有数据;0x70的二进制为,后面没有数据了,这个变长数表示完毕。把下划线部分的数组合起来,就变成了:000 0,就是,0xF0。
再举个例子:E3 9A B4 70,这个可变长度数实际上表示的是0xC669A70。这串数是这么变化的:0xE3 = ,后面还有数据;0x9A = ,后面还有数据;0xB4 = ,后面还有数据;0x70 = ,后面没有数据了,这个变长数表示完毕。把下划线部分的数组合起来,就变成了:10 11 0000 = 0xC669A70.
找到规律了吗?这种表示法,将每个字节的最高位,作为一个标志位,标志该字节是否是整个可变长度数的最后一字节。如果最高位为1,则表明此字节不是最末尾的字节;如果最高位为0,表明此字节为最后一字节,即可变长度数表示完成。剩下的七位则是实际要表示的数的数位。所以在把可变长度数改为普通整数时,就顺序阅读可变长度数,并且判断当前字节的最高位,如果是1,说明下一个字节依然是这个可变长度数的下一部分;如果是0,就说明本字节已经是这个可变长度数的最后一字节了。然后只需要把每个字节的后七位取出来,按其所处各自字节的先后顺序,也顺序地拼在一起,就是它所代表的整数了。
如何区分MIDI文件中的某一个字节是做什么用的?
如果单独看MIDI文件中的某个字节,我们是看不出这个字节代表的含义的。所以在阅读MIDI文件时,最好是从Track Chunk头开始慢慢阅读,顺藤摸瓜,才能找到这个字节的具体含义。
MIDI文件读取的难度也正在此。因为一个MIDI文件中混杂着各种文件标志符(如有多少Track Chunk、MIDI Tick定义等等)、delta-time(而且还是以变长数表示法表示)、MIDI事件码(还包括可发送的事件和meta-event事件)、事件数据(而且不同事件的数据还不定长),等等等等。各种标志和事件数据码大小不一,长短不齐,十分混乱。
所以说单纯地考察MIDI文件中某个字节的数据,其作用是什么,这很难考察出来。比如一个小于0x80的数,它可能是一个delta-time数据结构的最后一字节,也可能是某个Note-On事件的数据部分,还可能是设置MIDI Tick的TPQN。如果仅仅凭借上下文,也很难猜出这个字节数据的作用,因为它的上下文也可能具有不同的含义,依然会造成歧义。
但实际上MIDI文件依然是有规律可循的。解析MIDI文件的线索就在于:MIDI文件中所记录的每种MIDI事件,或是每种MIDI文件标志符,其数据段长度都是规定好的,要么是协议中已经规定死的,要么是文件中具有指定其大小长度的标志。这是MIDI文件最重要的特点。知道了每个事件或者标志的长短,我们才能准确无误地从MIDI文件中提炼出内容。
一个MIDI文件中记录的内容,无非就是一些MIDI文件本身的标志符,和一些MIDI事件数据,还包括一些meta-event事件,还有delta-time结构,有时(或者说常常)具有省略MIDI事件指令码的缩略结构。
文件本身的标志符长度,通常是固定长度的(比如Header Chunk中的内容);MIDI事件和一部分meta-event都具有协议中规定的长度,如多数MIDI事件具有1-3个字节的长度,系统事件和一部分meta-event虽然长度不定,但这些事件中也都标明了各自的数据段长度;delta-time数据结构采用可变长度数,但因其只能存在于MIDI事件之前,或者说存在于两个事件之中,所以也能很容易地被读取,并且根据可变长度数的特征(最高位作为可变长度数结构是否结束的标志),我们也能知道可变长度数的结构何时结束;对于缩略结构,因其只能适用于MIDI事件之中,所以在读取完delta-time结构后,就可以判断下一字节是否大于0x80,如果大于,则是另一个MIDI事件,如果小于,表明这是一个数据段,其事件类型和指令码依然是上一个指令的类型,数据段大小也和上一指令类型相同。
根据不同事件或标志的不同长度,以及各个MIDI事件和标志符之间位置的关系,还有事件指令码与数据段的大小差异,等等诸多MIDI文件的特点,我们还是能够比较容易地将各个MIDI事件与标志符一一分开的。
所以,在解析一个MIDI文件时,我们要从文件头开始,找到各个Chunk后,以Chunk为单位,慢慢地往下解析。Header Chunk的解析相对容易,Track Chunk在解析时注意区分delta-time数据结构,MIDI事件结构,还有缩略结构。
在以后的介绍中,笔者会用流程图的方式来解释MIDI文件的解析方法。
读书笔记——MIDI文件结构简介
&&&&&& 站长自己原来研究MIDI协议时,写下的一些读书笔记,那会儿每天上下班在路上的一个多小时里,拎着一个上网本,在公交车上慢慢地敲字~时间宝贵,这一个多小时的时间也要充分利用~&&&&&& 但这些东东毕竟是我个人的理解,难免有错误出现。也欢迎各位大虾批评指正,我会把一些修改的内容通过附录添加到文章末尾。&&&&&& 阅读本文的话,读者需要有基础性的电脑和MIDI音乐相关知识:
& 基本的计算机相关知识,如十六进制数的表示法,十六进制与十进制、二进制之间的转换方法等;
& 基本的乐理知识,如音高、时长、节拍、曲调等;
& MIDI协议基础,如各种MIDI事件的类型和含义,事件状态字、数据长度等的知识;
& MIDI文件的编辑制作经验,如音序器(硬件或软件)基于音轨的操作思想和使用方式等。
参考资料的话,推荐读者去找一下《MIDI原理与开发应用》这本书,国防工业出版社出版,陈学煌、刘永志、潘晓利、马俊编著,红色封皮。同时读者还可以去网上搜索相关的资料,有几个帖子写得也不错。
下面是正文:
================
1.&&&&& MIDI文件结构简介
&&&&&&& MIDI文件是二进制文件,其内部主要记录了乐曲播放时,音序器应发送给音源的MIDI指令和每条指令发送的时间点。音序器读取这些时间信息和MIDI指令,通过在相应的时间发送相应的指令,以实现乐曲中音符的顺序播放和节拍信息。除了音序器需要发送的MIDI事件之外,MIDI文件内部也记录了一些辅助信息,如版权信息、音轨名、速度信息、拍号、调号等等,这些信息被称为Meta-event,只用于记录一些曲子的信息,通常并不发送给MIDI系统中的其他设备。
&&&&&&& MIDI文件的数据结构被称为&chunk&。每个chunk由最初4字节的&chunk类型&,紧接着4字节的&Chunk大小&,和最后长度可变的&Chunk Data&构成。&Chunk data&的数据长度由&Chunk大小&来规定,即&Chunk大小&只描述了chunk中数据段的长度,而不是整个chunk的长度。
&&&&&&& 构成MIDI文件的Chunk主要有两种类型:一种是Header Chunk(MThd),另一种是Track Chunk(MTrk)。
&&&&&&& Header Chunk位于整个MIDI文件的起始处,是必须存在的,其起始标记就是ASCII码形式的&MThd&字符串。Track Chunk的起始标记,依然是ASCII码形式的&MTrk&字符串,并且Track Chunk整块分布于MIDI文件之中的任何位置,数量也不定,从1块到若干块皆可。实际上一个MIDI文件就是由一个Header Chunk和若干Track Chunk组成。读者若使用一个十六进制编辑软件(如UltraEdit)打开并查看一个MID文件时,便能找到这两部分。
&&&&&&& MIDI文件可能容纳的chunks只有Header Chunk和Track Chunk,其它的非法数据结构将被忽略。在MIDI的Chunk文件结构中,自长度区以后的数据格式,是严格规定好的。
&&&&&&& 这里要探讨不同数量的MTrk chunk所构成的MIDI文件的类型。MIDI文件的类型通常分为三种,分别是MIDI 0格式文件、MIDI 1格式文件、MIDI 格式2文件。
&&&&&&& 它们的相同点是:无论哪一种格式的MIDI文件,都要具备一个MThd chunk,和至少一条MTrk chunk。不同点是:它们各自的MTrk chunk数量不同,并且各个 chunk之间的播放方式略有区别。很多入门级电子琴和具备播放简单和弦铃声的手机,只能播放MIDI 0格式文件;平时用音序器软件编辑MIDI时,又最好保存为MIDI 1格式文件。这种现象是有原因的。
&&&&&&& MIDI 0格式文件只有一个MTrk chunk。在这个 chunk中,包含了整个MIDI文件中的MIDI事件,包括meta-event、演奏信息、效果器信息等等。所以播放器只需要顺序读取并解析文件,并发送实际的MIDI事件即可。播放MIDI 0格式文件,对于入门级电子琴或者手机这种性能较弱、资源紧张的嵌入式系统来说,相对容易一些。音序器不需要考虑在不同MTrk之间来回跳跃取数,只需要像流媒体文件那样顺序读取并解析就行了。
&&&&&&& MIDI 1格式文件具有若干条MTrk chunk,并且chunk之间具有统一的时间信息,也就是说,各个chunk之间的播放是同步进行的。MIDI 1格式文件的第一条MTrk chunk是专用的,称为&Tempo Map&。它包括整个MIDI文件中所有的 meta-event。从第二条MTrk chunk开始,每一条MTrk chunk都记录着各自的演奏和效果器等信息。音序器在播放时,将使用统一的时间等信息,同步播放各个chunk。这就像cakewalk软件播放MIDI文件一样,在一个时间轴的滚动下(音轨区的那条标志播放位置的竖线),各个音轨同时播放。实际上cakewalk软件也仅支持MIDI 0和MIDI 1文件。
&&&&&&& MIDI 2格式文件也具有若干条MTrk chunk,但每个chunk具有独立的时间信息,也就是说各个chunk的播放并不是同步的,而是每个chunk都遵循自己的时间信息,chunk之间没有统一的时间联系,各自播放。这种文件目前笔者也未曾见过,所以笔者在此不再过多解释此格式的文件。
&&&&&&& 综上所述,在解读MIDI文件时,首先要找到各个块,也就是一个MThd chunk和若干MTrk chunk的ASCII字符串。这样用户或软件才能根据MThd和MTrk中所记录的信息,确定此MIDI文件的基本参数,并进行下一步更详细的解析。关于MThd和MTrk中详细的解析规则,笔者将在下文中具体解释。
&&&&&&& 以常用的音序器软件cakewalk为例,在cakewalk软件打开一个MIDI文件后,软件将读取MThd chunk内部的相关信息,从而确定此文件的类型、chunk数目、全局时钟设置等参数。然后软件将读取各个MTrk chunk,并将每个chunk内部包含的MIDI事件列在编辑区内对应的音轨部位。于是,在使用cakewalk打开一个MIDI文件后,用户就可以在编辑区内部看到若干条黄色的音轨,每个音轨内部含有该音轨所包含的MIDI事件,用户可以对不同音轨内的不同事件,甚至整条音轨,进行参数设置。
1)&&&&&& MThd chunk结构
&&&&&&& MThd chunk中保存了此MIDI的一些基本信息,如文件格式(MIDI 0、1、2格式)、此MIDI文件的音轨数(从1到多条)、时间类型(使用MIDI Tick或Frame来计时)。
&&&&&&& 当然,作为既定的标准,MThd Chunk一定是类似这样的数据结构(十六进制):
&&&&&&& 4D 54 68 64&&& \\ ①MThd的ASCII码,为Header Chunk的标志
&&&&&&& 00 00 00 06&&&& \\ ②MThd中数据部分的长度,以目前标准均为6字节
&&&&&&& hh hh&&&&&&&&&&&&&&& \\ ③MIDI文件类型
&&&&&&& ii ii&&&&&&&&&&&&&&&&&&&& \\ ④此MIDI文件的音轨数目
&&&&&&& jj jj&&&&&&&&&&&&&&&&&&&& \\ ⑤此MIDI文件的时间类型
&&&&&&& Header Chunk之中的数据结构定义是严格遵循这个标准的。目前的标准中并未规定Header Chunk有其他的数据定义(但以后也许会扩充)。所以说,在Header Chunk中,前八个字节(即①②的数据结构)是固定样式的,数据段的大小也是固定为6字节的。
&&&&&&& 下面对数据段中的具体数据结构作一个介绍:
&&&&&&& 数据③标志着该MIDI文件的格式。MIDI文件格式有三种,0、1、2格式,所以可以分别用、0002来表示。每种格式的具体含义请见上文。
&&&&&&& 数据④标志着该MIDI文件中所包含的音轨数目,也可以认为Track Chunk的数目。对于MIDI 0格式文件,此值仅为1,即只有一个Track Chunk;MIDI 1格式文件则可以有多个Track Chunk,而且Track Chunk数目为实际的音轨数目加一(因为第一个Track Chunk是Tempo Map,不记录实际的演奏信息)。MIDI 2格式文件因为笔者未曾遇见,所以不敢妄为解释。
&&&&&&& 数据⑤标志着该MIDI文件的时间类型。MIDI的时间类型通常有两种,一种是基于TPQN(Ticks Per Quarter-Note,每四分音符所具有的Midi Tick数)的时间度量法,另一种是基于SMPTE时间码的时间度量法。在这里,MIDI文件使用这个十六位数的最高位,标志这两种时间类型。也就是说,这个时间类型如果大于0x8000,则为SMPTE时间码度量法;如果小于0x8000,则为TPQN时间度量法。而此数的后十五位,则记录着具体的Midi Tick数量。
&&&&&&& SMPTE本来是用于视频中的协议,所以它的计量单位为&帧&,就是&frame&。视频中有&帧率&的概念,单位为&帧/秒(fps)&。不同的视频标准中有不同的帧率,比如25fps、30fps等等。如果MIDI系统中使用这种时间度量法,那么它所定义的就是,在每一帧中,所具有的Midi Tick数目。这种度量法在单纯的MIDI系统中比较少见,笔者概念也显模糊,故不细谈。
&&&&&&& 对于大多数只有音频的MIDI系统中,MIDI文件多采用TPQN时间度量法。TPQN是&Ticks Per Quarter-Note(每四分音符中所包含的Midi Tick数量)&的缩写,它的意思可以从字面来理解。这个数值可以是十进制的60-480之间,数值越大,MIDI系统的时间分辨率就越大,也就是说可以演奏时值越小的音符。通常这个数都采用120、240、480,因为这些数都能被2、3、4甚至6、8整除,方便于八分音符、十六分音符、三连音甚至更短音符的演奏,换算成十六进制,就是0x78、0xF0、0x1E0。当然注意,这些十六进制数的最高位都是0。
2)&&&&&& MTrk chunk结构
&&&&&&& Track Chunk内部则包含了一个MIDI文件中记录的实际的MIDI信息和一些辅助信息(如meta-event)。
&&&&&&& Track Chunk依然具有和Header Chunk类似的结构,就是&Chunk标志&+&数据段大小&+&数据&。所以它的结构如下所示(十六进制):
&&&&&&& 4D 54 72 6B&&&&&& // ①MTrk的ASCII码,为Track Chunk的标志
&&&&&&& pp pp pp pp&&&& // ②MTrk中数据部分的长度
&&&&&&& xx yy&&&&&&&&&&&&&&&&&& // ③Delta-time及MIDI事件
&&&&&&& xx yy&&&&&&&&&&&&&&&&&& // ③Delta-time及MIDI事件
&&&&&&& &&&&&&&&&&&&&&&&&&&&&&& // (省略)③Delta-time及MIDI事件
&&&&&&& 00 FF 2F00&&&&&&&& // ④meta-event事件,此Track结束
&&&&&&& 数据①依然是Chunk标志,只不过该标志被换成了ASCII码的MTrk,代表接下来的数据为Track Chunk的数据。
&&&&&&& 数据②依然是此Chunk中所包含数据的大小。当然这个数就不是如同Header Chunk中那样的常数了,而是要精确描述接下来Track Chunk数据段的大小了。
&&&&&&& 接下来就是Track Chunk中所包含的真正数据了,就是由许多类似③那样的数据堆积起来的大段数据。xx代表了Delta-time,yy代表了真正的MIDI事件。这些MIDI事件才是音序器在播放MIDI文件时需要实时处理和发送的数据。这种结构笔者将在下文中详细介绍。
&&&&&&& 数据④从严格意义上讲,也属于③的类型。最初的00代表delta-time,随后的FF2F 00为一段meta-event,代表了本Track结束。
3)&&&&&& Delta-Time及MIDI事件结构
&&&&&&& delta-time,实际上就是&Δt&。任何学习过数学和物理学的人,都能明白&Δt&的含义:它代表着时间差。
&&&&&&&& MIDI系统中的delta-time,表征着下一个事件距离上一个事件有多长时间,即两个事件之间的时间差。这个时间不是我们日常生活中的时分秒,而是MIDI Tick。音序器通过对自身产生的MIDI Tick进行计数,判断是否该处理下一个MIDI事件。如果Tick数到达delta-time,就处理下一个事件,然后继续判断下一个delta-time是否到达,周而复始。
&&&&&&& 为了能够表示足够长的时间,Delta-time使用可变长度数的格式,最长可以表示0x0fffffff。
&&&&&&& MIDI事件则包括实际需要发送出去的MIDI事件,和meta-event事件。对于实际需要发送的数据,音序器就直接将数据发送出去;如果是meta-event事件,音序器则修改自身的相关参数。
&&&&&&& 这里要注意MIDI文件的&状态字省略&特点。为了减少MIDI文件的体积,人们规定:如果同一Track Chunk中的下一条MIDI事件,和上一条事件,属于同一类型同一通道的事件(即状态字相同)时,下一条事件的状态字可以省略,而只需记录数据。音序器碰到这种情况时,应自动填充上一事件的状态字。
&&&&&&& 举个例子,MIDI文件中的事件,大多数都是&Note-On&和&Note-Off&事件,其中&Note-Off&事件也可以用&Note-On&+&力度为0&来表示。所以在MIDI文件中,这种缩略形式会用到很多。比如连续演奏几个音符时,MIDI文件就会使用这种缩略法来减少文件体积。比图在MIDI文件中,常常会看到这种序列(十六进制):
&&& 00 93 3C6B& // 音符0x3CNote-On,力度为0x6B
&&& 70 3C00&&&& // 实际发送的指令为隔0x70 Ticks之后,发送93 3C 00。
&&& 因为力度为0,也就相当于让某个音符停止发音。83 3C 6B和93 3C 00的效果是一样的。所以通过这种写法,MIDI文件可以省略掉一个字节的空间。
&&&&&&&& 总结起来,MIDI文件可以用以下的两张图来描述。通过这两张图,相信读者会对MIDI文件的数据结构建立一个直观的认识。本文的目的就在此。有关MIDI文件更细节的说明,请参考相关的MIDI文档和手册。相信在对MIDI文件有了一个基本认识之后,您再翻阅其他技术文档和手册时,就可以更加深刻地理解其含义了。
站长在关注

我要回帖

更多关于 sd改机 的文章

 

随机推荐