DIY MIDI 脚踏器(guitar rig)
DIY MIDI脚踏控制器 笔记 最近无聊DIY 了一个MIDI控制器,可以用来控制支持MIDI协议的软件效果器,如guitar rig。MIDI控制器和键盘一样可以控制guitar rig,但是键盘无法在后台对guitar rig 进行控制。而midi协议的控制器不受影响 ,不管软件是在前台运行还是后台运行都可以接受到MIDI信号的控制。先说调试过程中遇到的问题:guitar rig 软件必须在正确连接asio声卡的情况下才会接受MIDI信号,所以调试过程中必须保证你的声卡正常连接。
以下是一个简单的测试电路和测试程序以供大家学习和参考。
硬件:AT89S52单片机,usb转MIDI线,单片机学习开发板,74HC04,300欧电阻2个。
软件程序:
#include<reg52.h>#define uchar unsigned char
#define uint unsigned int
sbit anj0=P2^0;
void delay1ms(uint i)
{
uchar j;
while(i--)
{
for(j=0;j<115;j++)
//1ms基准延时程序
{
;
}
}
}
void init()
{
TMOD=0x21; //T/C1工作于8位自动装入状态//
TL1=0xff;// T/C1常数,确定波特率//
TH1=0xff;
//波特率为 31.25k
SCON=0x50; //设串口工作于方式1,//
PCON=0x80; //相当于SMOD=1;//
TR1=1;
//T/C1开始计数//
}
void send(uchar cc,uchar kk,uchar vv)
{
TR1=1; //开计数器//
SBUF=cc; //写入寄存器//
while(TI==0); //等待发送结束//
TI=0; //清发送标志//
SBUF=kk;
while(TI==0);
TI=0;
SBUF=vv;
while(TI==0);
TI=0;
TR1=0;
}
void main()
{
init();//初始化
anj0=1;//按键1给高电平
while(1)
{
if(anj0==0)//判断按键1按下
{
delay1ms(15);
if(anj0==0)//再次判断按键1是否按下
{
while(!anj0);//等待按键释放
send(0xb0,0x07,127);//给串口发 cc,kk,vv
}
}
}
}
硬件测试电路图:
硬件电路中只做了一个按键作为调试使用,还可以通过其他IO口和矩阵键盘扩展更多的按键。http://b137.photo.store.qq.com/psb?/5bcc1b6b-33f0-4f4e-b0c2-e2a357e06a16/YoYdHyn9k4WmB26ZNYmopZyRqEE41sKFum5.*TxfHJs!/b/dKiqrlHlJQAA&bo=0ARmAgAAAAABAJc!&t=5&su=0137129969&rf=2-9
成品实况图:
http://b129.photo.store.qq.com/psb?/5bcc1b6b-33f0-4f4e-b0c2-e2a357e06a16/SIdzt3QuiZRskCX3WnLEFg42Lfp.VzUyM1fPpytjc6U!/b/dLYE6kwsJQAA&bo=vwLrAQAAAAABAHA!&t=5&su=0244985601&rf=2-9
以上代码和电路图均通过本人亲测并且做成实物,欢迎新手和大神来交流学习和指导,索取相关学习材料。另;一下代产品将会陆续增加如:增益,噪声门和哇音踏板等功能,敬请期待。联系QQ:271090822
我操,真正的技术宅!!!!
跟您问一句,line6 的Fbv MK踏板能用在guitar rig上吗,我看上边有个USB口,那口干嘛的啊?
回复 2楼 284264258 的帖子
亲 我也不知道 我没用过啊~不过 能发送MIDI协议信号的 效果器 都通用在guitar rig 上
页:
[1]