22 #ifndef AGOS_DRIVERS_ACCOLADE_CMS_H 23 #define AGOS_DRIVERS_ACCOLADE_CMS_H 25 #include "audio/mididrv.h" 27 #include "audio/cms.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];
53 void close()
override;
54 bool isOpen()
const override;
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(* TimerProc)(void *refCon)
Definition: timer.h:42
uint32 getBaseTempo() override
Definition: mididrv.h:309
void send(uint32 b) override
Definition: mididrv.h:537
virtual void send(uint32 b)=0