The1736のページ


工作>Arduinoで木更津高専の校歌



はじめに

Arduinoにmozziライブラリを用いて, 木更津高専の校歌「風のランナー」を再現してみました. 9番ピンから音声が出力されます.

木更津高専

ソースコード

#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();
}
			

管理者

新着記事全体

人気記事全体