有人用过小猪微店系统源码吗?

> 怎么连接midi键盘
怎么连接midi键盘
hg7723 & &
发布时间: & &
浏览:2 & &
回复:19 & &
悬赏:0.0希赛币
怎样连接midi键盘大家好&&我已经做好了一个软件&“小小莫扎特五线谱助记软件”
详细说明大家可以到&看
现在的问题是,我想能接上&midi&键盘也可以用,现在是用鼠标去点屏幕上的琴键的,怎样才可以接上midi键盘后用midi键盘代替软件中的琴键呢?
我的软件中使用了&midi&api&函数
先谢谢各位大侠了!!!!
友情Up~~~~~~~hgb & &
14:30:29 & &
& & (0)(0)引用SOShgch089 & &
14:30:29 & &
& & (0)(0)引用MIDI键盘与电脑的接口是USB或1394,需要编写这两个驱动。另外还有一个MIDI接口,貌似是接声卡的。hgcliu & &
14:30:29 & &
& & (1)(0)引用真漂亮,帮顶一下。hgcliu & &
14:30:29 & &
& & (1)(0)引用先用电脑的键盘试一下吧。你这个是用鼠标操作的,不是很方便。可以设计成用电脑按键来发声,那样电脑键盘就真成了电子琴了。我前几年玩过的。hgb & &
14:30:29 & &
& & (0)(0)引用引用:  先用电脑的键盘试一下吧。你这个是用鼠标操作的,不是很方便。可以设计成用电脑按键来发声,那样电脑键盘就真成了电子琴了。我前几年玩过的。
我这个软件不是用来弹琴的电子琴,所以用鼠标也可以,没有必要用电脑键盘,但是我想用midi键盘,这样就更能起到学习五线谱的作用。现在常用的midi线是&&一头为midi接口接电子琴,另一头为usb接电脑。&&驱动应该不需要我写吧?hgcicxuefly & &
14:30:29 & &
& & (0)(0)引用帮顶hgcicxuefly & &
14:30:29 & &
& & (0)(0)引用SOShgclsj & &
14:30:29 & &
& & (0)(0)引用SOShgb & &
14:30:29 & &
& & (0)(0)引用我又来看看~~~~~~~
^_^hgb1983 & &
14:30:29 & &
& & (0)(0)引用SOShgb1983 & &
14:30:29 & &
& & (0)(0)引用有没有人能告诉我?怎样连接?hgcliu & &
14:30:29 & &
& & (0)(0)引用不懂,不过,我想,是不是可以先找些相应的API或是控件,与midi进行通信或是进行接收midi数据,然后根据收到的MIDI数据进行解码或是翻译呢hgcliu & &
14:30:29 & &
& & (0)(0)引用需要驱动,然后MIDI键盘的上发的指令是3字节一组,自己解释。hgcexceed & &
14:30:29 & &
& & (0)(0)引用可惜作了很多限制,虽说是试用,还是学得很不爽。hgb & &
14:30:29 & &
& & (0)(0)引用不用自己编,WINDOWS自带解释的~
俺不会编程,只会做音乐呵呵~hgb & &
14:30:29 & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&用通用单片机制作MIDI键盘
用通用单片机制作MIDI键盘
作者:徐斌
&&& MIDI是电子乐器的语言,随着MIDI的诞生,数字化电子乐器已经越来越多,MIDI的应用也越来越普遍,在电子乐队演奏,电子音乐制作等各个领域,发挥着越来越大的作用。随着计算机技术的发展,声卡已经成为普通计算机的标准设备,通过声卡的MIDI接口,可以连接各种各样的MIDI设备。连上专供输入的MIDI键盘,再配上相应的软件,计算机就可以完成电子琴的功能,甚至可以进行电子音乐的制作。由于
MIDI自身的特点,它形成的音乐易于进行后期制作,越来越为广大音乐工作者所喜爱,而MIDI键盘作为输入最有效的工具,也越来越普及。
有些计算机音序软件支持用电脑键盘模拟琴键,可通过计算机键盘将音符输入计算机,有爱好者就用电脑键盘的控制芯片改装玩具电子琴,将其并接在计算机键盘上,称之为电脑琴,但这种控制芯片本身并不是为演奏音乐开发的,单音演奏还可以,在多个按键压下时会出错。本文将介绍如何用通用单片机实现MIDI键盘功能,并改装各种电子琴,与计算机连接,从而实现通过MIDI接口,把电脑变成真正的,可支持复音的电子琴。
&一、MIDI信号及声卡的MIDI接口
是一种异步串行通讯协议,其传输速率为31.25
K baud (每秒31250位),每个字节包括10
位,1个起始位,8个数据位,1个停止位,每个音符的开(或关)命令有3个字节,经计算,不到1mS即可传输一个音符的开关命令。MIDI的数据流是单向的,不进行应答,设备发送音乐信息时,不管接收设备的状态,而接收设备收到的信息,经校验正确的则执行,错误的就忽略――这样规定是由音乐本身的特点决定的,可以丢掉音符,但不能搞错节拍,实时性最优先。从物理层面上看,MIDI信号是电流传输的,5mA代表逻辑“0”,0mA代表逻辑“1”。MIDI设备连接时,必须将输出与另一设备的输入连接。
典型的多个MIDI设备连接方式
  计算机声卡的MIDI/GAME接口是15针的D型连接器,其中与MIDI相关的有:
+5V&&&&&&& &&&&&& +5 VDC
GND&&&&&& &&&& &&&& 地
MIDITXD&&&&&&&&&&&& MIDI 输出&&&&
MIDIRXD&&&&&&&&&&&& MIDI 输入&&&
2&声卡上的
MIDI/GAME接口
单片机如何产生MIDI信号
本节介绍如何用目前在国内处于最主流地位的51系列单片机产生MIDI信号。实际上,这包含了两层意思 :1.如何产生符合 MIDI协议的串行数据。2.接口电路。
绝大多数51系列单片机都有串行通讯控制器(UART),配合合适的晶振,正确地设置UART的工作参数,就能够自动产生所需的串行数据。使用定时/计数器1(T/C1)作为波特率发生器。将串行口设置为方式1工作状态(10位异步收发,波特率由定时器控制),使用6MHz晶振,T/C1设为自动装入8位计数器状态(TMOD置为2xH),SMOD=1,TH=FFH,此时正好发生31.25K的串行通讯数据,适用于MIDI协议。
串口及定时/计数器初始化如下:(C语言例程,下同)
 { TMOD=0x21;    //T/C1工作于8位自动装入状态//
&&&&&& & &&TL1=0 TH1=0& // T/C1常数,确定波特率//
&&&&&& &&&& SCON=0x50 ;&&&& &&//设串口工作于方式1,//
&&&&&PCON=0x80 ;&&&&& && //相当于SMOD=1;//
&&&&&&&TR1=1;&&&&&&&&&&& //T/C1开始计数//
MIDI协议中,每一次音符操作,命令包含3个字节,连续发送,依次为 “命令+通道号”,“音符”,“力度”。命令的第一个字节的最高位为1,通道为0-16,第二字节最高为位0,音符号为0-127,第三字节最高位为0,力度0-127。
发送一个音符命令:(参数 cc,kk,vv分别为“命令+通道号”,“音符号”,“力度”)
send(uchar cc,kk,vv)
TR1=1;&&&&& //开计数器//
&SBUF=&&& //写入寄存器//
&while(TI==0); //等待发送结束//
&TI=0;&&&&&&& //清发送标志//
&   SBUF=
&while(TI==0);
&   TI=0;
&   SBUF=
&while(TI==0);
MIDI命令简表
数据kk含义及说明
数据vv含义及说明
对应的MIDI音符0-127
关闭音符的速度值
通道号 &&&&
对应的MIDI音符0-127
压下琴键的速度值(力度)
对应的MIDI音符0-127
对应音符的触后压力值
控制器号0-77
& 77-7F为通道模式信息
音色号 0-127
无该字节数据
&该通道全部键盘的触后压力
无该字节数据
&弯音轮低位数据
弯音轮高位数据
系统普通信息、实时信息、及高级信息代码
前面已经介绍过,MIDI信号是单向的数据流,输出设备不管接收设备的状态,只是连续发出命令,
因此,MIDI键盘作为发送设备,只需输出,对于51单片机,其TXD即可作为MIDI信号的输出口,若不用转发别的MIDI设备信号,RXD实际上就没必要使用了。用51单片机的TXD脚,与声卡的MIDI-IN脚(15脚)相连,就可以很好的产生所需的MIDI信号,驱动声卡。这种连接方式并不是 MIDI协议中规定的标准的驱动方式,在MIDI协议中,采用了隔离传输的方式,两个设备不是共地的,本文介绍的电路,由于要从MIDI接口取电,必然形成共地的连接方式,这样,直接用单片机的高电平输出
5mA电流,低电平电流接近0,就能工作,但由于不是隔离传输,传输距离不能太长。&
三、控制板电路&&&&&&&&&&&&& &&&&&&&&
电路原理图如3所示。采用51系列单片机最小系统的标准电路,声卡
MIDI接口的1,4脚为供电输出,分别为
GND ; 15脚为MIDI-IN,接单片机串行输出脚 TXD。单片机的P0,P2口用来扫描键盘,可提供8x8的键盘扫描能力。绝大多数的电子琴的键数小于64,这样的安排够用了。其他剩余的各脚,可用作工作参数预置,用来设置键值初值及所占MIDI通道号等。单片机采用89c51或其他兼容单片机,包括89s51,89f51,等。上拉电阻排选10kΩ,
MIDI接口插头是15针的D型连接器,一般都标出了其引脚标号,按标号连接即可。给出的原理图及印制版图,都是完整的,可直接使用。
&图3 &单片机MIDI控制器电路图
4& 控制部分印制板图&&
采用89c51或兼容单片机
四、用玩具琴键盘改装MIDI键盘
要分辨数十个按键的状态,最简单经济的方式就是采用矩阵式扫描键盘,其电路原理图如图5所示
图5&键盘的电路原理图
键盘以扫描方式工作,具体过程:
先由P0口发出段选通,每次选通一段,相应段选线被置为低电平,读P2口,被压下的键因与段选线接通,相应的端口输入为低电平,这样就完成了一段键盘(8个键)的状态读入过程,做8次循环,每次P0口的段扫移位一次,就完成了64个键的状态读入。由于乐器演奏时经常会有多个键同时压下的状态,若不加处理,
则可能出现几个段选通过按键短接在一起的情况,从而互相干扰导致逻辑不清,因此,在每个按键上串接二极管,用来阻隔无效的段选信号(高电平),使其不起作用,
这样就可完全分辨出每个键的状态,
而不会产生混乱。
乐器键盘的扫描与响应方式也有自己的特点,在扫描到键盘值后,与前一次的键盘状态比较,如不变,则不响应,有变化,则判断是被压下还是抬起,发出相应的MIDI命令,并纪录新的状态。
扫描8X8键盘的程序如下,程序中的key_number[i]是全局数组,
用来存贮按键状态,addition是全局变量,是设定该键盘第一个按键对应的MIDI音符的键值,全局数组和全局变量要在主程序中定义,程序中调用了前面给出的send(cc,kk,vv)函数:
&&&& &void scan_key()
&&&& &{ uchar i,j,k,r,mmm,&&
k=0&&&&&&&&&&&& // k值为段选输出初值,第一位为0
&&&&& &for (i=0;i&8;i++)
&& &&&&&&&P0=k;& &&&&&&&&&&&//输出段选值
&& &&&&&&&&k=(k&&1)+1;&&& &&& //段选标志左移,末位补1,为下一循环准备
&&& &&&&&&mmm=0x01;&&&&&&& //
设按键查询指针初值
&& &&&&&&&&r=P2; &&&&&&&&&&&&//
&&& &&&&&P0=0&&&&&&&&&&&& //关闭段选输出
&&&&&& &&& xu=r^key_number[i];&&&&
&&& //查询键值是否改变,xu
为1的位为产生变化的按键
&&&&&& &&& key_number[i]=r;&&&&&&&
//新的键值存入数组
(j=0;j&8;j++)&&&&&&&&&& //作8次循环,
判断具体产生变化的键
if((xu&mmm)!=0)&&&&&& &&&&//用指针选择被测的键
&&&& &{& if ((r&mmm)!=0)&& //判断最终情况,以确定是被压下还是释放
&&&&&& &&&&
&&{send(0x80+chnal,i*8+j+addition,40);}& //关闭声音,键值=i*8+j+addition
&&&else{send(0x90+chnal,i*8+j+addition,127);}& //开始发声
&&&&&& &&&&&& &}
mmm=mmm&&1;&&&&&&&&&&& //指针左移,
判断下个键
MIDI协议中规定,全部的音符共128个,中央C音符对应的键值为60,为适合不同键数的键盘,必须为扫描到的键值加上相应的初值,使得第一个键正是所需的音符,程序中的变量addition
就是这个初值。
主程序的工作过程是上电复位后初始化,随后循环调用键盘扫描程序,在本人提供的程序中还加进了诸如移调,通道号设置,初始值设定等功能,全部用单片机剩余的I/O口对地短路来设定,以适合各种不同的键盘,详见程序文件。将程序用C51编译软件编译成执行代码,烧录至51单片机芯片,和外围器件一起装到印制板上,就制成了MIDI键盘控制板。
本人利用上述控制板,分别用玩具琴和低档电子琴的键盘,改装了多个MIDI键盘,均获成功,受到好评,现一一介绍:
1.钢片琴:老式的阻容震荡式电子琴,等效电路如图6,它是用按键选通不同阻值的电阻,
改变振荡器的频率来产生音符的,当两键同时压下,将导致电阻并联,参数混乱,还有的采用串联电阻网络,多键压下时,只有与振荡电路最近的一个电阻有效,
而其他的被短路,
因此都不能支持复音,只能单键演奏,不能直接改成扫描式键盘,须作较大改动。
改装时,去除所有的振荡电阻,将钢片电极剪为数段,每8个键为一段,每段接一位段扫,从左至右对应单片机P0口,从低到高。每段按键都由8个键组成,经二极管(1n4148)按顺序将每段相应的按键连在一起,接入一路位扫(P2),最后一段不足8个可空着,共8路,最终电路参考图7。
钢片琴改装示意
改装后的玩具琴键盘电路图
,P0与P2接在控制板相应的连线上
2.扫描式电子琴:这类电子琴已经做好了键盘的电路板,多数的琴线路与图7类似,只是键数不等,断开原来的电路,按照图7
将P0,P2连接到控制板上即可。
注意有些型号的电子琴扫描电路的工作逻辑不一样,为充分利用其线路板,可通过修改扫描程序来实现硬件最少的改变,这需要能充分分析原琴的电路,并弄懂键盘扫描原理,有编程能力的人做,否则,须对原板的线路按照图7
电路改装,用本人的程序来实现。有能力编程的读者,对原程序稍加修改,把键值换算正确,就可以适合各种扫描式键盘,直接与控制板连上,而不需要对键盘硬件做改动。这些琴大致有两种情况:
一种情况是每段的按键少于8个,这种情况下,在换算键值时,按照具体情况,把算式中的常数改一下即可;
键值=段号x常数+键号+addition
另一种是二极管的方向相反,
这种情况下,扫描方式可不变,
但按键的排列会产生变化,连接控制板的段选和位选接线对调,把计算键值的算式改变,同样可不用改动键盘硬件。
键值=键号x常数+段号+addition
上两个算式中的“段号”“键号”分别是扫描程序中规定的变量i
改装好的MIDI键盘,直接插到计算机声卡的
MIDI/GAME接口即可,安装好支持MIDI键盘输入的音序软件,你的电脑就变成了一台集演奏,制作于一身的MIDI音乐制作设备了。使用模拟电子琴软件,就是一台电子琴,而且可以直接利用电脑的强大功能进行录音,重放,或生成MIDI格式文件,
这是普通电子琴做不到的功能。如果使用音乐制作软件,
还可以进行后期制作,在不同的MIDI通道中用不同的音色演奏,编辑合成后可达到小型乐队的效果。
在这里,列出一些MIDI软件及其官方网站,可去下载软件的演示版,利用搜索引擎也可以找到其他的下载站点,它们都是本人试用过的,支持
MIDI 键盘的音序软件。
MidiRunner&&& 英文软件,模拟电子琴
http://web.tiscali.it/midirunner/midirunner.htm
HappyEO&&&&&
国产软件,模拟电子琴,有自动伴奏风格组,界面漂亮
&&&&&&&&&&&&&
Cakewalk& &&&音乐编辑制作软件,功能强大
自动伴奏,功能强大
还有其他一些电子琴模拟软件,从互联网上可以查到,
只要支持MIDI口输入,都可以使用。软件安装没有特别要求,需注意的是,电脑声卡的驱动程序要装好,软件使用时,
要设置允许外部MIDI设备输入,输入口选择为
“MPU401”,
输出口要选择能让声卡演奏MIDI的选项,因声卡不同,名称各异,如果在使用软波表时有延迟,可选择频率合成输出。
在本文中给出了MIDI命令简表,表中所列的控制器(cc=B+通道号,kk,vv),音色切换和弯音轮命令,也是MIDI中也很常用的命令,其中有开关量,
也有模拟量,有兴趣的读者,
可以利用芯片的剩余接口,扩展测量能力,给你的MIDI键盘增加更多的功能。
本文给出的程序,没有MIDI转发功能,所以只能发出在本键盘上演奏的MIDI命令,有兴趣的读者可以自编程序,加入转发部分,就可以把几个键盘串接在一起,利用不同的MIDI通道
共用一台电脑演奏。给本控制器单独提供5V电源后,还可以接入其他的MIDI设备,比如具有MIDI输入口的电子琴或合成器,变成双键盘,使其发挥更大的效能。
配合本文电路的单片机源程序和已编译的16进制代码文件,随本刊光盘提供,也可到d-originality.51.net
网站的资料区免费下载,如果有烧写51系列芯片的设备,就可以自行编程。MIDI键盘一定需要支持ASIO的声卡吗-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
MIDI键盘一定需要支持ASIO的声卡吗
来源:互联网 发表时间: 23:31:10 责任编辑:鲁晓倩字体:
为了帮助网友解决“MIDI键盘一定需要支持ASIO的声卡吗”相关的问题,中国学网通过互联网对“MIDI键盘一定需要支持ASIO的声卡吗”相关的解决方案进行了整理,用户详细问题包括:即使键盘写的即插即用,也需要声卡支持ASIO吗?如果声卡不支持呢?,具体解决方案如下:解决方案1:
IDI键盘不需要ASIO驱动,99%都是即插即用免驱的。ASIO驱动是指声卡驱动。如果声卡不支持ASIO也没关系,仅仅是用键盘演奏软音源时会有点延迟感。那么用键盘演奏软音源时会获得更快的响应速度,键盘照样正常使用。如果声卡支持ASIO
提问者评价
解决方案2:
声卡不支持可以用ASIO4ALL
解决方案3:
ASIO主要是针对声卡的低延迟而言的,如果能忍受键盘按下后大约半秒以上才能出声音那么你也可以不考虑ASIO。----------------------------------------------------------------------------------------------------------学习MIDI音乐制作、专业录音缩混,推荐 ★ 电脑音乐书店 ★ (百度搜索即可找到)。----------------------------------------------------------------------------------------------------------
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号midi线接法是什么?来自:
日分享至 :
下一篇:上一篇:其它类似问题相关文章相关帖子--midi线接法是什么?

我要回帖

更多关于 小猪微店系统如何对接 的文章

 

随机推荐