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. | |
Public Attributes | |
const char * | m_pBeginningOfSample |
Beginning of sample data. | |
const char * | m_pEndOfSample |
End of the sample data. | |
const char * | m_pCurrent |
Current sample being processed. | |
const char * | m_pEchoSample |
Sample processed for echo effect. | |
uintptr_t | m_uSampleSize |
Sample Size in bytes. | |
uint_t | m_uID |
Channel ID - 0 to cTrackMaxCount. | |
uint_t | m_uBitsPerSample |
8 or 16 bits | |
uint_t | m_uLoopBeginning |
Loop start position in bytes. | |
uint_t | m_uLoopSize |
Loop size in bytes. | |
uint_t | m_uCurrentInstrumentID |
Current Instrument ID. | |
uint_t | m_uPreviousInstrumentID |
Previous Instrument ID. | |
uint_t | m_uSampleID |
Current Sample ID. | |
uint_t | m_uAmigaFineTune |
Samples per second adjustment. | |
eNote | m_eNote |
Musical note number. | |
int32_t | m_iPreviousNote |
Previous note number. | |
uint_t | m_uTimePeriod |
Current time period. | |
uint_t | m_uPreviousTimePeriod |
Previous time period. | |
uint32_t | m_uVolume |
Channel vol (0 to 64) | |
int32_t | m_iPan |
Channel pan (0 to 64) | |
uint_t | m_uEffectCommand |
See eEffect. | |
uint_t | m_uEffectArgument |
Argument of command. | |
uint_t | m_uVolumeCommand |
Volume Command. | |
int32_t | m_Arpeggios [cArpeggioMaxCount] |
Array of Arpeggio points. | |
uint_t | m_uArpeggioIndex |
Index to the active arpeggio in the above table. | |
int32_t | m_iVibratoOffset |
Base vibrato value. | |
int32_t | m_iVibratoDepth |
Range of the vibrato. | |
int32_t | m_iCurrentVibration |
Current vibrato value. | |
int32_t | m_iSlide |
Adjust value for time period, used for slideUp and slideDown commands. | |
int32_t | m_iPitchGoal |
Portamento goal value. | |
int32_t | m_iPitchRate |
Speed of Portamento. | |
int32_t | m_iVolumeRate |
uint_t | m_PreviousArguments [16] |
Arguments for effect commands, Indexed by eEffect. | |
uint_t | m_uCurrentVolumeEnvelopeIndex |
Current index for volume envelopes. | |
uint_t | m_uNextVolumeEnvelopeIndex |
Next index for volume envelopes. | |
uint_t | m_uCurrentVolumePosition |
Current time mark used for interpolation of volume envelopes. | |
uint_t | m_uCurrentVolumeFromEnvelope |
Volume from interpolated volume (0-64) | |
uint_t | m_uCurrentPanEnvelopeIndex |
Current index for pan envelopes. | |
uint_t | m_uNextPanEnvelopeIndex |
Next index for pan envelopes. | |
uint_t | m_uCurrentPanPosition |
Current time mark used for interpolation of pan envelopes. | |
uint_t | m_uCurrentPanFromEnvelope |
Pan from interpolated pan. | |
uint32_t | m_uVolumeFade |
Volume fade speed (0-32767) | |
int32_t | m_iAccumulatorFraction |
Accumulator fraction from last pass, 24.8 fixed point. | |
int32_t | m_iLastWordLeft |
int32_t | m_iCurrentLastWordLeft |
int32_t | m_iLastWordRight |
int32_t | m_iCurrentLastWordRight |
uint_t | m_uCurrentLevelLeft |
uint_t | m_uCurrentLevelRight |
uint8_t | m_bLevelDirectionLeft |
uint8_t | m_bLevelDirectionRight |
uint8_t | m_bRemoverWorking |
uint8_t | m_bKeyOn |
uint32_t | m_uPreviousVolumeLeft |
uint32_t | m_uPreviousVolumeRight |
int32_t | m_iPreviousOffset |
uint_t | m_uEffectPartitionIndex |
uint_t | m_uEffectRowIndex |
uint8_t | m_bEffectActive |
If TRUE, an audio effect is active. | |
uint8_t | m_bStereo |
If TRUE, channel is controlling a stereo sample. | |
uint8_t | m_eLoopType |
See eLoopType. | |
uint8_t | m_bPingPongReverse |
If TRUE, ping pong is in reverse direction. | |
int32_t | m_iPreviousValue1Left |
int32_t | m_iPreviousValue2Left |
int32_t | m_iPreviousValue1Right |
int32_t | m_iPreviousValue2Right |
int32_t | m_iPreviousValue3Left |
int32_t | m_iPreviousValue4Left |
int32_t | m_iPreviousValue3Right |
int32_t | m_iPreviousValue4Right |
uint_t | m_uTickRemoveSize |
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_bEffectActive |
If TRUE, an audio effect is active.
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_bStereo |
If TRUE, channel is controlling a stereo sample.
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_iVibratoOffset |
Base vibrato value.
int32_t Burger::Sequencer::Channel_t::m_iVolumeRate |
const char* Burger::Sequencer::Channel_t::m_pBeginningOfSample |
Beginning of sample data.
const char* Burger::Sequencer::Channel_t::m_pCurrent |
Current sample being processed.
const char* Burger::Sequencer::Channel_t::m_pEchoSample |
Sample processed for echo effect.
const char* Burger::Sequencer::Channel_t::m_pEndOfSample |
End of the sample data.
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)