class Channel2

Defined in:

cryboy/audio/channel2.cr

Constant Summary

RANGE = 65302..65305
WAVE_DUTY = [[0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 1, 1], [0, 1, 1, 1, 1, 1, 1, 0]]

Instance Method Summary

Instance methods inherited from class VolumeEnvelopeChannel

init_volume_envelope : Nil init_volume_envelope, read_NRx2 : UInt8 read_NRx2, volume_step : Nil volume_step, write_NRx2(value : UInt8) : Nil write_NRx2

Instance methods inherited from class SoundChannel

===(value) ===, [](index : Int) : UInt8 [], []=(index : Int, value : UInt8) : Nil []=, enabled : Bool enabled, enabled=(enabled : Bool) enabled=, frequency_timer : UInt32 frequency_timer, get_amplitude : Float32 get_amplitude, length_counter : Int32 length_counter, length_counter=(length_counter : Int32) length_counter=, length_step : Nil length_step, schedule_reload(frequency_timer : UInt32) : Nil schedule_reload, step : Nil step, step_wave_generation : Nil step_wave_generation

Constructor methods inherited from class SoundChannel

new(gb : Motherboard) new

Instance Method Detail

def ===(value) : Bool #
Description copied from class SoundChannel

Used so that channels can be matched with case..when statements


[View source]
def [](index : Int) : UInt8 #

[View source]
def []=(index : Int, value : UInt8) : Nil #

[View source]
def frequency_timer : UInt32 #
Description copied from class SoundChannel

Calculate the frequency timer


[View source]
def get_amplitude : Float32 #

[View source]
def schedule_reload(frequency_timer : UInt32) : Nil #

[View source]
def step_wave_generation : Nil #
Description copied from class SoundChannel

Called when @period reaches 0


[View source]