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)