From a8fd8a74ec114fbde563bca62180a160c3cb8a88 Mon Sep 17 00:00:00 2001 From: Grant Shangreaux Date: Mon, 1 Nov 2021 20:00:34 -0500 Subject: Add: mouse control of frequency based on x coord mouse position --- klangfarb/main.gd | 8 ++++++++ klangfarbrs/src/lib.rs | 3 +++ 2 files changed, 11 insertions(+) diff --git a/klangfarb/main.gd b/klangfarb/main.gd index 9735c5f..cf3d8c1 100644 --- a/klangfarb/main.gd +++ b/klangfarb/main.gd @@ -48,3 +48,11 @@ func _ready() -> void: # prefill the stream's sample buffer (which feeds DAC) _check_waveform() _fill_buffer() + +func _input(event): + # Mouse in viewport coordinates. + if event is InputEventMouseButton: + print("Mouse Click/Unclick at: ", event.position) + elif event is InputEventMouseMotion: + freq = event.position.x + print("Mouse Motion at: ", event.position) diff --git a/klangfarbrs/src/lib.rs b/klangfarbrs/src/lib.rs index 059d59f..8fb773d 100644 --- a/klangfarbrs/src/lib.rs +++ b/klangfarbrs/src/lib.rs @@ -39,6 +39,7 @@ fn generate_sample(osc: &Osc) -> f32 { Waveform::Sine => { (TAU * phase).sin() }, + Waveform::Square => { if phase < 0.5 { -1.0 @@ -46,6 +47,7 @@ fn generate_sample(osc: &Osc) -> f32 { 1.0 } }, + Waveform::Triangle => { if phase < 0.5 { 4.0 * phase - 1.0 @@ -53,6 +55,7 @@ fn generate_sample(osc: &Osc) -> f32 { 4.0 * (1.0 - phase) - 1.0 } }, + Waveform::Sawtooth => { 2.0 * phase - 1.0 } -- cgit v1.2.3