diff options
Diffstat (limited to 'klangfarb/main.gd')
-rw-r--r-- | klangfarb/main.gd | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/klangfarb/main.gd b/klangfarb/main.gd index 568af36..82f8ce9 100644 --- a/klangfarb/main.gd +++ b/klangfarb/main.gd @@ -2,29 +2,21 @@ extends AudioStreamPlayer var playback: AudioStreamPlayback = null var SineWave = preload("res://SineWave.gdns") -var buffer = SineWave.new() -var duration = 3 -var samples = buffer.frames(440.0, 44100.0, duration) -var sample_count = samples.size() -var current_count = 0 +var wave = SineWave.new() +var freq = 440.0 func _fill_buffer() -> void: var to_fill = playback.get_frames_available() - - while to_fill > 0 && current_count != sample_count: - var sample_index = current_count - playback.push_frame(Vector2.ONE * samples[sample_index]) # Audio frames are stereo. - to_fill -= 1 - current_count += 1 + print(to_fill) + if to_fill > 0: + playback.push_buffer(wave.frames(freq, to_fill)) func _process(_delta): - if current_count < sample_count: - _fill_buffer() - else: - self.stop() + _fill_buffer() func _ready() -> void: - self.stream.mix_rate = 44100.0 + self.stream.mix_rate = freq * 256 + wave.set_sample_rate(freq * 256) playback = self.get_stream_playback() _fill_buffer() self.play() |