Public Member Functions | |
void | Init (uint_t uID) |
Initialize a channel. | |
void | Purge (void) |
Purge a channel from playback. | |
void | VolumeCommand (uint_t uCall) |
Execute a volume command. | |
void | ParseSlideVolume (uint_t uArgument) |
Get the volume slide token. | |
void | FillBuffers (int32_t *pLeft, int32_t *pRight, uintptr_t uCount, int32_t iLeft, int32_t iRight) |
Add constant value to output buffers. | |
void | Tickloop (int32_t *pLeft, int32_t *pRight, uintptr_t uCount) |
Remove a channel smoothly. | |
void BURGER_API Burger::Sequencer::Channel_t::FillBuffers | ( | int32_t * | pLeft, |
int32_t * | pRight, | ||
uintptr_t | uCount, | ||
int32_t | iLeft, | ||
int32_t | iRight ) |
Add constant value to output buffers.
Given a constant value, add it to every other entry to the data buffers
pLeft | Pointer to the left channel buffer |
pRight | Pointer to the right channel buffer |
uCount | Number of samples in each buffer |
iLeft | Value to add to every other entry in the left buffer |
iRight | Value to add to every other entry in the right buffer |
void BURGER_API Burger::Sequencer::Channel_t::Init | ( | uint_t | uID | ) |
Initialize a channel.
Set a channel to defaults
uID | Default ID to assign the channel |
void BURGER_API Burger::Sequencer::Channel_t::ParseSlideVolume | ( | uint_t | uArgument | ) |
Get the volume slide token.
Sets the volume change rate based on the slide volume argument
uArgument | Parse slide argument to process |
void BURGER_API Burger::Sequencer::Channel_t::Purge | ( | void | ) |
Purge a channel from playback.
Mark a channel as "completed" to stop playback
void BURGER_API Burger::Sequencer::Channel_t::Tickloop | ( | int32_t * | pLeft, |
int32_t * | pRight, | ||
uintptr_t | uCount ) |
Remove a channel smoothly.
Iterate over the left and right channels and fade out the sound using m_uTickRemoveSize as the period length
Process every other sample since left and right are interleaved
pLeft | Pointer to the left channel buffer |
pRight | Pointer to the right channel buffer |
uCount | Number of samples in each buffer |
void BURGER_API Burger::Sequencer::Channel_t::VolumeCommand | ( | uint_t | uCall | ) |
Execute a volume command.
Process any volume commands from the current command
uCall | Sub command |
int32_t Burger::Sequencer::Channel_t::m_Arpeggios[cArpeggioMaxCount] |
Array of Arpeggio points.
uint8_t Burger::Sequencer::Channel_t::m_bKeyOn |
uint8_t Burger::Sequencer::Channel_t::m_bLevelDirectionLeft |
uint8_t Burger::Sequencer::Channel_t::m_bLevelDirectionRight |
uint8_t Burger::Sequencer::Channel_t::m_bPingPongReverse |
If TRUE, ping pong is in reverse direction.
uint8_t Burger::Sequencer::Channel_t::m_bRemoverWorking |
uint8_t Burger::Sequencer::Channel_t::m_eLoopType |
See eLoopType.
eNote Burger::Sequencer::Channel_t::m_eNote |
Musical note number.
int32_t Burger::Sequencer::Channel_t::m_iAccumulatorFraction |
Accumulator fraction from last pass, 24.8 fixed point.
int32_t Burger::Sequencer::Channel_t::m_iCurrentLastWordLeft |
int32_t Burger::Sequencer::Channel_t::m_iCurrentLastWordRight |
int32_t Burger::Sequencer::Channel_t::m_iCurrentVibration |
Current vibrato value.
int32_t Burger::Sequencer::Channel_t::m_iLastWordLeft |
int32_t Burger::Sequencer::Channel_t::m_iLastWordRight |
int32_t Burger::Sequencer::Channel_t::m_iPan |
Channel pan (0 to 64)
int32_t Burger::Sequencer::Channel_t::m_iPitchGoal |
Portamento goal value.
int32_t Burger::Sequencer::Channel_t::m_iPitchRate |
Speed of Portamento.
int32_t Burger::Sequencer::Channel_t::m_iPreviousNote |
Previous note number.
int32_t Burger::Sequencer::Channel_t::m_iPreviousOffset |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue1Left |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue1Right |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue2Left |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue2Right |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue3Left |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue3Right |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue4Left |
int32_t Burger::Sequencer::Channel_t::m_iPreviousValue4Right |
int32_t Burger::Sequencer::Channel_t::m_iSlide |
Adjust value for time period, used for slideUp and slideDown commands.
int32_t Burger::Sequencer::Channel_t::m_iVibratoDepth |
Range of the vibrato.
int32_t Burger::Sequencer::Channel_t::m_iVolumeRate |
uint_t Burger::Sequencer::Channel_t::m_PreviousArguments[16] |
Arguments for effect commands, Indexed by eEffect.
uint_t Burger::Sequencer::Channel_t::m_uAmigaFineTune |
Samples per second adjustment.
uint_t Burger::Sequencer::Channel_t::m_uArpeggioIndex |
Index to the active arpeggio in the above table.
uint_t Burger::Sequencer::Channel_t::m_uBitsPerSample |
8 or 16 bits
uint_t Burger::Sequencer::Channel_t::m_uCurrentInstrumentID |
Current Instrument ID.
uint_t Burger::Sequencer::Channel_t::m_uCurrentLevelLeft |
uint_t Burger::Sequencer::Channel_t::m_uCurrentLevelRight |
uint_t Burger::Sequencer::Channel_t::m_uCurrentPanEnvelopeIndex |
Current index for pan envelopes.
uint_t Burger::Sequencer::Channel_t::m_uCurrentPanFromEnvelope |
Pan from interpolated pan.
uint_t Burger::Sequencer::Channel_t::m_uCurrentPanPosition |
Current time mark used for interpolation of pan envelopes.
uint_t Burger::Sequencer::Channel_t::m_uCurrentVolumeEnvelopeIndex |
Current index for volume envelopes.
uint_t Burger::Sequencer::Channel_t::m_uCurrentVolumeFromEnvelope |
Volume from interpolated volume (0-64)
uint_t Burger::Sequencer::Channel_t::m_uCurrentVolumePosition |
Current time mark used for interpolation of volume envelopes.
uint_t Burger::Sequencer::Channel_t::m_uEffectArgument |
Argument of command.
uint_t Burger::Sequencer::Channel_t::m_uEffectCommand |
See eEffect.
uint_t Burger::Sequencer::Channel_t::m_uEffectPartitionIndex |
uint_t Burger::Sequencer::Channel_t::m_uEffectRowIndex |
uint_t Burger::Sequencer::Channel_t::m_uID |
Channel ID - 0 to cTrackMaxCount.
uint_t Burger::Sequencer::Channel_t::m_uLoopBeginning |
Loop start position in bytes.
uint_t Burger::Sequencer::Channel_t::m_uLoopSize |
Loop size in bytes.
uint_t Burger::Sequencer::Channel_t::m_uNextPanEnvelopeIndex |
Next index for pan envelopes.
uint_t Burger::Sequencer::Channel_t::m_uNextVolumeEnvelopeIndex |
Next index for volume envelopes.
uint_t Burger::Sequencer::Channel_t::m_uPreviousInstrumentID |
Previous Instrument ID.
uint_t Burger::Sequencer::Channel_t::m_uPreviousTimePeriod |
Previous time period.
uint32_t Burger::Sequencer::Channel_t::m_uPreviousVolumeLeft |
uint32_t Burger::Sequencer::Channel_t::m_uPreviousVolumeRight |
uint_t Burger::Sequencer::Channel_t::m_uSampleID |
Current Sample ID.
uintptr_t Burger::Sequencer::Channel_t::m_uSampleSize |
Sample Size in bytes.
uint_t Burger::Sequencer::Channel_t::m_uTickRemoveSize |
uint_t Burger::Sequencer::Channel_t::m_uTimePeriod |
Current time period.
uint32_t Burger::Sequencer::Channel_t::m_uVolume |
Channel vol (0 to 64)
uint_t Burger::Sequencer::Channel_t::m_uVolumeCommand |
Volume Command.
uint32_t Burger::Sequencer::Channel_t::m_uVolumeFade |
Volume fade speed (0-32767)