22 #ifndef FREESCAPE_ECLIPSE_OPL_MUSIC_H 23 #define FREESCAPE_ECLIPSE_OPL_MUSIC_H 25 #include "audio/fmopl.h" 26 #include "freescape/music.h" 44 void startMusic()
override;
45 void stopMusic()
override;
46 bool isPlaying()
const override;
63 const byte *orderList;
66 uint16 patternDataOffset;
69 byte instrumentOffset;
82 byte arpeggioSequencePos;
83 byte arpeggioSequence[9];
84 byte arpeggioSequenceLen;
101 byte pulseWidthDirection;
120 ChannelState _channels[kChannelCount];
121 byte _arpeggioIntervals[8];
126 void loadNextPattern(
int channel);
127 void buildEffectArpeggio(
int channel);
128 void loadCurrentFrequency(
int channel);
129 void finalizeChannel(
int channel);
130 void processChannel(
int channel,
bool newBeat);
131 void parseCommands(
int channel);
132 void applyNote(
int channel, byte note);
133 void applyFrameEffects(
int channel);
134 bool applyInstrumentVibrato(
int channel);
135 void applyEffectArpeggio(
int channel);
136 void applyTimedSlide(
int channel);
137 void triggerADSR(
int channel, byte ad, byte sr);
138 void releaseADSR(
int channel);
139 void updateADSR(
int channel);
140 void updatePulseWidth(
int channel,
bool advance);
141 void applyOperatorLevels(
int channel);
143 void setOPLInstrument(
int channel, byte instrumentOffset);
144 void noteOn(
int channel);
145 void noteOff(
int channel);
146 void setFrequency(
int channel, uint16 fnum, byte block);
147 void writeFrequency(
int channel, uint16 fnum, byte block);
148 void noteToFnumBlock(byte note, uint16 &fnum, byte &block)
const;
150 byte readPatternByte(
int channel);
151 byte clampNote(byte note)
const;
Definition: opl.music.h:39