arduino的MIDI library应用之发送MIDI信息(二)

#include<MIDI.h>

MIDI_CREATE_INSTANCE(HardwareSerial,Serial,HardwareMIDI);

byte SysExData[10];

void setup(){
//putyoursetupcodehere,torunonce:
HardwareMIDI.begin();
}

void loop(){

  HardwareMIDI.sendNoteOn(42,127,1); //音符开(音符,力度,通道)
  delay(1000);
  HardwareMIDI.sendNoteOff(42,127,1); //音符关(音符,力度,通道)
  delay(1000);
  HardwareMIDI.sendControlChange(20,100,1); //控制改变 (控制器号,数值,通道)
  delay(1000);
  HardwareMIDI.sendProgramChange(30,1); //程序改变 (程序号,通道)
  delay(1000);
  HardwareMIDI.sendPitchBend(8191,1);//弯音(弯音值,通道)最小值-8192 中间值0 最大值8191
  delay(1000);
  HardwareMIDI.sendAfterTouch(60,1);  //通道压力 俗称触后通道 (压力值,通道)  
  delay(1000);
  //大多数MIDI键盘的触后指的是触后通道,因为复音触后(0xA0,xx,xx)需要MIDI键盘每一个琴键都要安装压力传感器,
  //成本上考虑是不现实的
  
  //发送系统信息 MIDI规范中,系统信息以F0开头 以F7结束
  SysExData[0] = 0xF0;
  SysExData[1] = 0x04;
  SysExData[7] = 0x12;
  SysExData[9] = 0xF7;
  HardwareMIDI.sendSysEx(10, SysExData, true);
  delay(1000);
}
发布了24 篇原创文章 · 获赞 17 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/huanghaoAudio/article/details/85333426