买琴买鼓,就找魔菇!

 找回密码
 注册
搜索
查看: 1756|回复: 2

DIY MIDI 脚踏器(guitar rig)

[复制链接]
发表于 2014-3-26 14:43:25 | 显示全部楼层 |阅读模式
吉他中国微信公众号
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口和矩阵键盘扩展更多的按键。

成品实况图:


以上代码和电路图均通过本人亲测并且做成实物,欢迎新手和大神来交流学习和指导,索取相关学习材料。另;一下代产品将会陆续增加如:增益,噪声门和哇音踏板等功能,敬请期待。联系QQ:271090822






发表于 2014-4-9 21:30:59 | 显示全部楼层
吉他中国抖音
我操,真正的技术宅!!!!
跟您问一句,line6 的Fbv MK踏板能用在guitar rig上吗,我看上边有个USB口,那口干嘛的啊?
 楼主| 发表于 2014-4-25 16:34:13 | 显示全部楼层

回复 2楼 284264258 的帖子

GC视频号
亲 我也不知道 我没用过啊~不过 能发送MIDI协议信号的 效果器 都通用在guitar rig 上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|吉他中国官方

GMT+8, 2025-2-23 02:11

Powered by Discuz!

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表