MIDI信号的解码及实时音符显示

时间:2023-05-01 09:10:50 计算机论文 我要投稿
  • 相关推荐

MIDI信号的解码及实时音符显示

摘要:介绍了MIDI数据的格式,讨论了一种使用AT89C51系列单片机完成MIDI信号的实时解码,从中提高音符数据,并随时利用专用LED驱动芯片将音符显示出来的设计方案。该方案经实际产品应用,证明合理可靠。

    关键词:MIDI 串行接口 LED显示

MIDI是音乐设备数字接口的简答,是各种电子音乐设备之间数据传输的标准接口,广泛应用于各种电子乐器上,目前较高档的电子琴子均带有MIDI接口。笔者在开发用于音乐教学的产品“音乐电教板”的过程中,遇到了有关MIDI信号解码的问题,产品要求能够接受电子琴传送来的MIDI信号,并将相应的音符显示出来。经过对MIDI协议的研究,用AT89C51单片机和128段LED显示控制芯片BC7281构成的系统完成了设计要求。

1 MIDI信号简介及与单片机的接口

MIDI信号的传输采用异步串行方式,其速率为31.5kbps,数据格式为8个数据位、1个起始位和1个停止位。因此,完全可以采用MCS51单片机内部的硬件UART串口完成MIDI信号的接收和发送(本设计中只用到其接收部分),在硬件方面只需采取适当的电路进行电平转换即可。

MIDI接口采用标准的5芯DIN连接器,如图1。传送电缆使用屏蔽层的双绞线电缆,因为信号的传输利用的是电流信号而不是电压信号,所以其抗干扰能力比较强,尽管其速率高达31.5kbps,传输距离仍可以达到15m,比常见的RS-232接口的传送距离要远。一般的MIDI接收电路如图2,本文采用与之相同的电路。

其中RX接单片机的串口RX端,电路中的光耦既起到隔离的作用,又有电平转换的作用,因为速率较高,必须选用开关速度较高的型号,这里使用的是6N136。D1是保护二极管。

MIDI中共有16个通道(channel),一般称之为通道1至通道16,每个通道相当于乐曲中的个声部,使用者可以为每个通道指定一种音色。音色可以是MIDI规范中规定的128种音色中的任何一种,每一个通道只能有一种音色。也就是说,在一个标准的MIDI系统中,最多相当于可以有16种乐器同时演奏。

按照MIDI协议的规定,传送的数据可以分为两类:状态字节和数据字节。所谓状态字节实际就是命令字,表明其后所跟数据的种类,状态字节总是大于等于80H,而数据字节总是小于80H,因此,可以很容易地区分状态字节和数据字节。在状态字节中,用数据的低4位表示通道号,高4位表示不同的命令。比如,设定音色为ChH指令,其中n是通道号。

在各种MIDI的指令中,与本机有关的只有两种:8nH和9nH(n为通道号),两种指令的基本格式一样,一般由3个字节组成,格式是:

8n(9n) aa bb

其中,aa是音符数据,表明所演奏的音符,其范围为0~7fH,这样共有128个音符,足以覆盖整个音域;bb是速度数据,表明击键的速度,又称力度数据,其范围也是0~7fH。

    第一个字节是状态字节(指令),其具体含义说明如下:

8nH——“音符关”指令,在多数MIDM设备中,该指令中的速度数据bb被忽略。

9nH——“音符开”指令,如果速

[1] [2] [3] 

【MIDI信号的解码及实时音符显示】相关文章:

NCEP FNL全球分析资料的解码及其图形显示04-28

MIDI音乐04-29

GPS数据实时通讯中数据解码问题的算法研究04-27

加密自动气象站实时监控与查询显示系统05-01

地形模型实时多分辨率显示算法的研究04-28

铁路信号基础知识第二讲信号显示制度的基本概念04-30

高分辨不稳定能量的实时计算显示及应用05-02

三维地形生成及实时显示技术研究进展04-30

海底天然地电信号采集的实时级联分样技术05-02

解决信号四改三显示车站闭环发码电路问题04-28