|
Music Shieldのライブラリをインストールする |
|
Music Shieldのライブラリをインストールします。 |
|
|
 |
|
|
MusicPlayer.hの内容を変更します。 |
|
|
privateメンバーをpublicメンバーに移動します。
//for Midi Player
void midiWriteData(byte cmd, byte high, byte
low);
void midiNoteOn(byte channel, byte note, byte
rate);
void midiNoteOff(byte channel, byte note, byte
rate);
void midiSendByte(byte data); |
|
|
下記はMusic
Shieldを使用してMIDIを利用して楽器音を鳴らすためのサンプルスケッチです。 |
|
|
#include <SD.h>
#include <SPI.h>
#include <MusicPlayer.h>
void setup()
{
Serial.begin(115200);
midiInit();
int midi_bank=1;
setMIDIBank (midi_bank);
}
void PlaySample()
{
for (int note = 35; note <81; note++) {
player.midiNoteOn(9, note, 127); //
delay (500);
}
for (int i=0;i<127;i++) {
Serial.print ("Playing instrument: ");
Serial.println (i);
player.midiWriteData(0xC0, i, 0); // Select instrument
for (int note = 48; note <60; note++) {
player.midiNoteOn(0, note, 127); // Play
delay (100);
player.midiNoteOff(0, note, 127); // Stop playing
delay (100);
}
}
}
void loop()
{
PlaySample();
}
// Initializes MIDI
void midiInit(){
player.beginInMidiFmt();
player.midiWriteData(0xB0, 0x07, 120); // Set MIDI channel volume
}
// Sets MIDI bank to GM1 or GM2. Takes values 1
or 2
void setMIDIBank(byte bank) {
if (bank==1) player.midiWriteData(0xB0, 0,
0x00); // Select bank GM1
else player.midiWriteData(0xB0, 0, 0x78); //
Select bank GM2
} |
|
|
http://www.mu-tech.co.jp/Soft/midisample.zip |
|
|
|
|