工作>Arduinoで木更津高専の校歌
はじめに
Arduinoにmozziライブラリを用いて, 木更津高専の校歌「風のランナー」を再現してみました. 9番ピンから音声が出力されます.
![木更津高専](images/arduino_schoolsong/nitkc.jpg)
ソースコード
#include <MozziGuts.h> #include <Oscil.h> #include <mozzi_midi.h> #include <tables/saw2048_int8.h> Oscil <SAW2048_NUM_CELLS, AUDIO_RATE> aSaw(SAW2048_DATA); #include <EventDelay.h> EventDelay kTriggerDelay; #define CONTROL_RATE 64 int seqStep; #define musicSpeed 250 //MIDIノート番号との対応 #define A3 57 #define As3 58 #define B3 59 #define C3 60 #define Cs3 61 #define D3 62 #define Ds3 63 #define E3 64 #define F3 65 #define Fs3 66 #define G3 67 #define Gs3 68 #define A4 69 #define As4 70 #define B4 71 #define C4 72 #define Cs4 73 #define D4 74 #define Ds4 75 //float stepValue[100] = {C3, D3, E3, F3, E3, D3, C3, 0, E3, F3, G3, A4, G3, F3, E3, 0, C3, 0, C3, 0, C3, 0, C3, 0, C3, D3, E3, F3, E3, D3, C3, 0, 0, 0, 0, 0}; //カエルの歌 int stepValue[112] = {G3, G3, Gs3, Gs3, G3, G3, F3, Ds3, Ds3, Ds3, Ds3, Ds3, 0, 0, As3, As3, C3, C3, C3, C3, 0, 0, C3, D3, Ds3, Ds3, Ds3, 0, Ds3, Gs3, Gs3, G3, F3, F3, F3, F3, F3, F3, F3, F3, 0, 0, 0, 0, 0, 0, 0, 0 , G3, G3, Gs3, Gs3, G3, G3, Gs3, As4, As4, As4, Ds3, 0, Ds3, 0, Ds3, 0, C4, C4, As4, As4, Gs3, Gs3, As4, As4,As4, As4,As4, As4, As4, As4, As4, As4, G3, G3, Gs3, Gs3, G3, G3, F3, F3, Ds3, Ds3, F3, G3, G3, G3, As3, As3, C3, C3, C3, C3, D3, 0, D3, 0, Ds3, Ds3, Ds3, Ds3, Ds3, Ds3, Ds3, Ds3, }; //校歌 void setup() { startMozzi(CONTROL_RATE); kTriggerDelay.start(musicSpeed); } void updateControl() { if (kTriggerDelay.ready()) { seqStep += 1; if (seqStep >= 16 * 7) //16*n小説 { seqStep = 0; } kTriggerDelay.start(musicSpeed); } aSaw.setFreq(mtof(stepValue[seqStep])); } int updateAudio() { return aSaw.next(); } void loop() { audioHook(); }