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;
55 const byte *orderList;
58 uint16 patternDataOffset;
61 byte instrumentOffset;
74 byte arpeggioSequencePos;
75 byte arpeggioSequence[9];
76 byte arpeggioSequenceLen;
93 byte pulseWidthDirection;
108 ChannelState _channels[kChannelCount];
109 byte _arpeggioIntervals[8];
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 applyInstrumentVibrato(
int channel);
123 void applyEffectArpeggio(
int channel);
124 void applyTimedSlide(
int channel);
125 void programEnvelope(byte op, byte attack, byte decay, byte sustain, byte release);
126 void updatePulseWidth(
int channel,
bool advance);
127 void applyOperatorLevels(
int channel);
129 void setOPLInstrument(
int channel, byte instrumentOffset);
130 void noteOn(
int channel);
131 void noteOff(
int channel);
132 void setFrequency(
int channel, uint16 fnum, byte block);
133 void writeFrequency(
int channel, uint16 fnum, byte block);
134 void noteToFnumBlock(byte note, uint16 &fnum, byte &block)
const;
136 byte readPatternByte(
int channel);
137 byte clampNote(byte note)
const;
Definition: opl.music.h:39