22#ifndef AGOS_DRIVERS_ACCOLADE_CMS_H
23#define AGOS_DRIVERS_ACCOLADE_CMS_H
25#include "audio/mididrv.h"
37 static const byte REGISTER_BASE_AMPLITUDE = 0x00;
38 static const byte REGISTER_BASE_FREQUENCY = 0x08;
39 static const byte REGISTER_BASE_OCTAVE = 0x10;
40 static const byte REGISTER_FREQUENCY_ENABLE = 0x14;
41 static const byte REGISTER_RESET_SOUND_ENABLE = 0x1C;
44 static const byte CMS_NOTE_FREQUENCIES[12];
46 static const byte CMS_VOLUME_ADJUSTMENTS[128];
62 void send(uint32 b)
override;
70 void noteOff(uint8 channel, uint8 note);
71 void noteOn(uint8 channel, uint8 note, uint8 velocity);
72 void programChange(uint8 channel, uint8 instrument);
73 void controlChange(uint8 channel, uint8 controller, uint8 value);
78 byte determineFrequencyEnableRegisterValue();
79 void writeRegister(uint16 reg, uint8 value);
85 byte _instruments[16];
87 byte _activeNotes[12];
89 byte _octaveRegisterValues[6];
bool isOpen() const override
void send(uint32 b) override
uint32 getBaseTempo() override
void(* TimerProc)(void *refCon)
Definition: timer.h:42
Definition: mididrv.h:541
virtual void send(uint32 b)=0
Definition: mididrv.h:313