Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Burger::Sequencer::Channel_t Struct Reference

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 charm_pBeginningOfSample
 Beginning of sample data.
 
const charm_pEndOfSample
 End of the sample data.
 
const charm_pCurrent
 Current sample being processed.
 
const charm_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
 

Member Function Documentation

◆ FillBuffers()

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

Parameters
pLeftPointer to the left channel buffer
pRightPointer to the right channel buffer
uCountNumber of samples in each buffer
iLeftValue to add to every other entry in the left buffer
iRightValue to add to every other entry in the right buffer

◆ Init()

void BURGER_API Burger::Sequencer::Channel_t::Init ( uint_t uID)

Initialize a channel.


Set a channel to defaults

Parameters
uIDDefault ID to assign the channel

◆ ParseSlideVolume()

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

Parameters
uArgumentParse slide argument to process

◆ Purge()

void BURGER_API Burger::Sequencer::Channel_t::Purge ( void )

Purge a channel from playback.


Mark a channel as "completed" to stop playback

◆ Tickloop()

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

Parameters
pLeftPointer to the left channel buffer
pRightPointer to the right channel buffer
uCountNumber of samples in each buffer

◆ VolumeCommand()

void BURGER_API Burger::Sequencer::Channel_t::VolumeCommand ( uint_t uCall)

Execute a volume command.


Process any volume commands from the current command

Parameters
uCallSub command

Member Data Documentation

◆ m_Arpeggios

int32_t Burger::Sequencer::Channel_t::m_Arpeggios[cArpeggioMaxCount]

Array of Arpeggio points.

◆ m_bEffectActive

uint8_t Burger::Sequencer::Channel_t::m_bEffectActive

If TRUE, an audio effect is active.

◆ m_bKeyOn

uint8_t Burger::Sequencer::Channel_t::m_bKeyOn

◆ m_bLevelDirectionLeft

uint8_t Burger::Sequencer::Channel_t::m_bLevelDirectionLeft

◆ m_bLevelDirectionRight

uint8_t Burger::Sequencer::Channel_t::m_bLevelDirectionRight

◆ m_bPingPongReverse

uint8_t Burger::Sequencer::Channel_t::m_bPingPongReverse

If TRUE, ping pong is in reverse direction.

◆ m_bRemoverWorking

uint8_t Burger::Sequencer::Channel_t::m_bRemoverWorking

◆ m_bStereo

uint8_t Burger::Sequencer::Channel_t::m_bStereo

If TRUE, channel is controlling a stereo sample.

◆ m_eLoopType

uint8_t Burger::Sequencer::Channel_t::m_eLoopType

See eLoopType.

◆ m_eNote

eNote Burger::Sequencer::Channel_t::m_eNote

Musical note number.

◆ m_iAccumulatorFraction

int32_t Burger::Sequencer::Channel_t::m_iAccumulatorFraction

Accumulator fraction from last pass, 24.8 fixed point.

◆ m_iCurrentLastWordLeft

int32_t Burger::Sequencer::Channel_t::m_iCurrentLastWordLeft

◆ m_iCurrentLastWordRight

int32_t Burger::Sequencer::Channel_t::m_iCurrentLastWordRight

◆ m_iCurrentVibration

int32_t Burger::Sequencer::Channel_t::m_iCurrentVibration

Current vibrato value.

◆ m_iLastWordLeft

int32_t Burger::Sequencer::Channel_t::m_iLastWordLeft

◆ m_iLastWordRight

int32_t Burger::Sequencer::Channel_t::m_iLastWordRight

◆ m_iPan

int32_t Burger::Sequencer::Channel_t::m_iPan

Channel pan (0 to 64)

◆ m_iPitchGoal

int32_t Burger::Sequencer::Channel_t::m_iPitchGoal

Portamento goal value.

◆ m_iPitchRate

int32_t Burger::Sequencer::Channel_t::m_iPitchRate

Speed of Portamento.

◆ m_iPreviousNote

int32_t Burger::Sequencer::Channel_t::m_iPreviousNote

Previous note number.

◆ m_iPreviousOffset

int32_t Burger::Sequencer::Channel_t::m_iPreviousOffset

◆ m_iPreviousValue1Left

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue1Left

◆ m_iPreviousValue1Right

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue1Right

◆ m_iPreviousValue2Left

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue2Left

◆ m_iPreviousValue2Right

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue2Right

◆ m_iPreviousValue3Left

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue3Left

◆ m_iPreviousValue3Right

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue3Right

◆ m_iPreviousValue4Left

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue4Left

◆ m_iPreviousValue4Right

int32_t Burger::Sequencer::Channel_t::m_iPreviousValue4Right

◆ m_iSlide

int32_t Burger::Sequencer::Channel_t::m_iSlide

Adjust value for time period, used for slideUp and slideDown commands.

◆ m_iVibratoDepth

int32_t Burger::Sequencer::Channel_t::m_iVibratoDepth

Range of the vibrato.

◆ m_iVibratoOffset

int32_t Burger::Sequencer::Channel_t::m_iVibratoOffset

Base vibrato value.

◆ m_iVolumeRate

int32_t Burger::Sequencer::Channel_t::m_iVolumeRate

◆ m_pBeginningOfSample

const char* Burger::Sequencer::Channel_t::m_pBeginningOfSample

Beginning of sample data.

◆ m_pCurrent

const char* Burger::Sequencer::Channel_t::m_pCurrent

Current sample being processed.

◆ m_pEchoSample

const char* Burger::Sequencer::Channel_t::m_pEchoSample

Sample processed for echo effect.

◆ m_pEndOfSample

const char* Burger::Sequencer::Channel_t::m_pEndOfSample

End of the sample data.

◆ m_PreviousArguments

uint_t Burger::Sequencer::Channel_t::m_PreviousArguments[16]

Arguments for effect commands, Indexed by eEffect.

◆ m_uAmigaFineTune

uint_t Burger::Sequencer::Channel_t::m_uAmigaFineTune

Samples per second adjustment.

◆ m_uArpeggioIndex

uint_t Burger::Sequencer::Channel_t::m_uArpeggioIndex

Index to the active arpeggio in the above table.

◆ m_uBitsPerSample

uint_t Burger::Sequencer::Channel_t::m_uBitsPerSample

8 or 16 bits

◆ m_uCurrentInstrumentID

uint_t Burger::Sequencer::Channel_t::m_uCurrentInstrumentID

Current Instrument ID.

◆ m_uCurrentLevelLeft

uint_t Burger::Sequencer::Channel_t::m_uCurrentLevelLeft

◆ m_uCurrentLevelRight

uint_t Burger::Sequencer::Channel_t::m_uCurrentLevelRight

◆ m_uCurrentPanEnvelopeIndex

uint_t Burger::Sequencer::Channel_t::m_uCurrentPanEnvelopeIndex

Current index for pan envelopes.

◆ m_uCurrentPanFromEnvelope

uint_t Burger::Sequencer::Channel_t::m_uCurrentPanFromEnvelope

Pan from interpolated pan.

◆ m_uCurrentPanPosition

uint_t Burger::Sequencer::Channel_t::m_uCurrentPanPosition

Current time mark used for interpolation of pan envelopes.

◆ m_uCurrentVolumeEnvelopeIndex

uint_t Burger::Sequencer::Channel_t::m_uCurrentVolumeEnvelopeIndex

Current index for volume envelopes.

◆ m_uCurrentVolumeFromEnvelope

uint_t Burger::Sequencer::Channel_t::m_uCurrentVolumeFromEnvelope

Volume from interpolated volume (0-64)

◆ m_uCurrentVolumePosition

uint_t Burger::Sequencer::Channel_t::m_uCurrentVolumePosition

Current time mark used for interpolation of volume envelopes.

◆ m_uEffectArgument

uint_t Burger::Sequencer::Channel_t::m_uEffectArgument

Argument of command.

◆ m_uEffectCommand

uint_t Burger::Sequencer::Channel_t::m_uEffectCommand

See eEffect.

◆ m_uEffectPartitionIndex

uint_t Burger::Sequencer::Channel_t::m_uEffectPartitionIndex

◆ m_uEffectRowIndex

uint_t Burger::Sequencer::Channel_t::m_uEffectRowIndex

◆ m_uID

uint_t Burger::Sequencer::Channel_t::m_uID

Channel ID - 0 to cTrackMaxCount.

◆ m_uLoopBeginning

uint_t Burger::Sequencer::Channel_t::m_uLoopBeginning

Loop start position in bytes.

◆ m_uLoopSize

uint_t Burger::Sequencer::Channel_t::m_uLoopSize

Loop size in bytes.

◆ m_uNextPanEnvelopeIndex

uint_t Burger::Sequencer::Channel_t::m_uNextPanEnvelopeIndex

Next index for pan envelopes.

◆ m_uNextVolumeEnvelopeIndex

uint_t Burger::Sequencer::Channel_t::m_uNextVolumeEnvelopeIndex

Next index for volume envelopes.

◆ m_uPreviousInstrumentID

uint_t Burger::Sequencer::Channel_t::m_uPreviousInstrumentID

Previous Instrument ID.

◆ m_uPreviousTimePeriod

uint_t Burger::Sequencer::Channel_t::m_uPreviousTimePeriod

Previous time period.

◆ m_uPreviousVolumeLeft

uint32_t Burger::Sequencer::Channel_t::m_uPreviousVolumeLeft

◆ m_uPreviousVolumeRight

uint32_t Burger::Sequencer::Channel_t::m_uPreviousVolumeRight

◆ m_uSampleID

uint_t Burger::Sequencer::Channel_t::m_uSampleID

Current Sample ID.

◆ m_uSampleSize

uintptr_t Burger::Sequencer::Channel_t::m_uSampleSize

Sample Size in bytes.

◆ m_uTickRemoveSize

uint_t Burger::Sequencer::Channel_t::m_uTickRemoveSize

◆ m_uTimePeriod

uint_t Burger::Sequencer::Channel_t::m_uTimePeriod

Current time period.

◆ m_uVolume

uint32_t Burger::Sequencer::Channel_t::m_uVolume

Channel vol (0 to 64)

◆ m_uVolumeCommand

uint_t Burger::Sequencer::Channel_t::m_uVolumeCommand

Volume Command.

◆ m_uVolumeFade

uint32_t Burger::Sequencer::Channel_t::m_uVolumeFade

Volume fade speed (0-32767)