22 #ifndef FREESCAPE_DARK_OPL_MUSIC_H 23 #define FREESCAPE_DARK_OPL_MUSIC_H 25 #include "audio/fmopl.h" 26 #include "freescape/music.h" 43 void startMusic()
override;
44 void stopMusic()
override;
45 bool isPlaying()
const override;
54 const byte *orderList;
59 byte instrumentOffset;
73 byte arpeggioSequence[9];
74 byte arpeggioSequenceLen;
94 byte pulseWidthDirection;
109 ChannelState _channels[kChannelCount];
114 void loadNextPattern(
int channel);
115 void buildEffectArpeggio(
int channel);
116 void loadCurrentFrequency(
int channel);
117 void finalizeChannel(
int channel);
118 void processChannel(
int channel,
bool newBeat);
119 void parseCommands(
int channel);
120 void applyNote(
int channel, byte note);
121 void applyFrameEffects(
int channel);
122 bool applySpecialAttack(
int channel);
123 bool applyInstrumentVibrato(
int channel);
124 void applyEffectArpeggio(
int channel);
125 void applyTimedSlide(
int channel);
126 void programEnvelope(byte op, byte attack, byte decay, byte sustain, byte release);
127 void updatePulseWidth(
int channel,
bool advance);
128 void applyOperatorLevels(
int channel);
130 void setOPLInstrument(
int channel, byte instrumentOffset);
131 void noteOn(
int channel);
132 void noteOff(
int channel);
133 void writeFrequency(
int channel, uint16 fnum, byte block);
134 void setFrequency(
int channel, uint16 fnum, byte block);
135 void noteToFnumBlock(byte note, uint16 &fnum, byte &block)
const;
137 byte readPatternByte(
int channel);
138 byte clampNote(
int note)
const;
Definition: opl.music.h:38