EDN China > 技术文章 > 消费电子设计 > 便携设备 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

手持信息终端上MIDI播放的实现

来源:电子产品世界/东南大学电子工程系 国家专用集成电路系统工程技术研究中心 缪爱国 刘昊 严菊明?? 2005年09月24日 ?? 收藏0

????? 引言

??????? MIDI(乐器数字接口)是一种电子乐器之间以及电子乐器与电脑等设备之间的统一交流协议。该协议是一个二进制形式的音乐描述语言,每一个描述乐器演播动作的字都赋给一个特定的二进制代码,通过它指示乐器即MIDI设备做什么和怎样做,如演奏音符、加大音量、生成音响效果等。

????? 由于MIDI本身不是声音信号,而只是让声音设备产生声音的一系列的指令,所以MIDI文件本身非常小,特别适用于对存储容量有限制的手持设备,如手机和掌上电脑。本文将着重介绍如何在手持信息终端嵌入式系统平台上实现MIDI的播放。

????? MIDI的基本原理

????? MIDI文件主要由MIDI消息组成。MIDI消息又可分成通道消息和系统消息两大类,如图1所示。

MIDI消息的组成

图1? MID

I消息的组成

?????? 从上面的描述中,可以看到MIDI实际上只是一组数字信号,并不包括声音信号,它记录的是音乐在什么时间用什么音色发多长的音等等。MIDI音乐每个乐音是由三个要素组成的:音色、音高(音调)和音长。可以把各种乐器的音色先录下来,然后给每个音色编号,如钢琴编为00;再给音高编号,如C5编为49;然后是音符播放的时间的编码,如把8分音符编号为60。此时,数字串“00 49 60”就表示演奏的是钢琴的C5音,演奏时间为8分音符。MIDI在播放时,会根据MIDI文件纪录的乐曲信息向预先录制好的乐器(如钢琴)的波表发出指令,从波表中找出对应的声音信息,经过合成、加工后再回放出来,就形成了美妙的音乐。

?????? 手持信息终端软硬件平台

?????? 手持信息终端包括手机、个人数字助理(PDA)、掌上电脑(HPC)等等,它们可以实现多种功能,如PIM(电话簿、日程安排、备忘录、记事本、时钟)、计算器、录音、辞典、游戏和播放音乐等功能;也可以加入无线通信的功能,如电话、短信、无线Email等等;还可以通过数据线与PC相连,互通数据、进行备份和数据交换。

?????? 该手持信息终端平台采用的是业界流行的Motorola公司的MC68EZ328处理器;存储模块由4M字节的Flash闪存和2M字节的EDO DRAM组成;显示模块采用160×240的16级灰度的黑白屏,屏上合成有四线电阻式触摸屏。音频处理模块的作用是用来播放音乐,它由两部分构成:滤波电路和音频功率放大电路。该模块接受来自处理器内部输出的PWM脉冲信号和音频模块的开启关闭的控制信号。硬件平台的结构如图2所示。

手持信息终端的硬件平台结构

?????? 图2? 手持信息终端的硬件平台结构

?????? 该手持信息终端是以自主研发的多任务嵌入式操作系统AsixOS为基础,包括操作系统(Asix OS)、驱动程序包(Driver)、应用程序包(Application)、图形用户接口(AsixWIN)、图形库软件包(AsixGPC)、嵌入式数据库(AsixDB)、嵌入式文件系统(AsixFS)、网络协议软件包(Asixnet)等等。Asix模块原理框图如图3所示。

Asix模块原理框图

图3? Asix模块原理框图

?????? 由图可以看出,音频驱动模块是播放MIDI音乐的基础,它控制硬件设备的打开关闭等等操作;音频服务层是连接应用程序和底层驱动的枢纽,它包含了对底层操作的接口;应用程序是整个手持终端产品的具体功能的体现,MIDI播放器是其中一个用来测试MIDI播放的小应用程序,它是建立在音频服务模块和音频驱动模块基础之上的。

?????? MIDI播放的实现

?????? MIDI的播放需要软硬件协同工作,要播放MIDI文件,首先必须对MIDI文件进行解码:若是控制信息(如节拍、时间格式等等),则进行相应的控制;若遇到音符信息,则将相应的数据(音符代码、时间值)存储在音频缓冲区。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

手持? 信息终端? MIDI?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈