Download

YMZ294 Arduino Library
“YMZ294″ライブラリは、Arduinoからヤマハ音源IC(YMZ294)へのアクセスを簡易に行うために作られたライブラリです。

Download: YMZ294.zip

Hardware
Arduino UNOでしか動作確認していません。
Sample
Sample Circuit
ymz294 breadboard
ymz294 circuit
Fritzing File Download
Sample Code

#include <YMZ294.h>

// Output Pins
const byte WRCS_PIN = 8;
const byte A0_PIN = 9;
const byte RESET_PIN = 10;

YMZ294 ymz(WRCS_PIN, A0_PIN, RESET_PIN);

void setup() {
  DDRD = 0b11111111;
  pinMode(WRCS_PIN, OUTPUT);
  pinMode(A0_PIN, OUTPUT);
  pinMode(RESET_PIN, OUTPUT);
  
  ymz.Reset();
  ymz.SetMixer(0b111, 0b100);
  ymz.SetVolume(CH_A, 0b00001111);
  ymz.SetFreqBit(CH_A, 0);
  ymz.SetVolume(CH_B, 0b00001111);
  ymz.SetFreqBit(CH_B, 0);
  
  pipo();
  
  delay(300);
}

word Duration = 2;
void loop() {
  Duration = (analogRead(0) >> 6);
  
  static word state = 0b000000000001;
  static bool lr = true;

  state += (lr? 1: -1);
  if (state == 0x03ff || state == 1)
    lr = !lr;
  ymz.SetFreqBit(CH_A, state);
  ymz.SetFreqBit(CH_B, state);

  delay(Duration);
}

void pipo(){
  ymz.SetFrequency(CH_A, CalcFreqByMML(8, 'C'));
  ymz.SetFrequency(CH_B, CalcFreqByMML(8, 'C') - 1);
  delay(100);
  ymz.SetFrequency(CH_A, CalcFreqByMML(7, 'C'));
  ymz.SetFrequency(CH_B, CalcFreqByMML(7, 'C') - 1);
  delay(100);
  ymz.SetFreqBit(CH_A, 0);
  ymz.SetFreqBit(CH_B, 0);
}

Related Articles
Arduino+YMZ294でPSGデチューンしてうにょんうにょん
Arduino+YMZ294で12beatのリズムを刻む
Arduino+YMZ294を光センサ経由で操作
Arduino+YMZ294ライブラリの活用例(人任せ)
Reference Sites
AVRでファミコン風音源YMZ294を使う - AVR – Tokoro’s Tech-Note
音源LSI(YMZ294)
YMZ294で楽しむPSG音源

10 thoughts on “Download”

コメントを残す

音をいろいろいじくってる人のサイト