From 7bb56cba8848cde6ba68501e9efa1ac26274658b Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sun, 23 Nov 2025 17:03:18 -0500 Subject: audio: fix triangle wave --- audio/src/channel.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/audio/src/channel.rs b/audio/src/channel.rs index fa0bbbd..64970f2 100644 --- a/audio/src/channel.rs +++ b/audio/src/channel.rs @@ -40,8 +40,9 @@ impl ChannelKind { } Self::Triangle => { let steps = 32; - let step = (phase * steps as f32).floor() as u32; - let value = (((step as f32 / (steps - 1) as f32) * 2.0) - 0.5) * 2.0; + let tphase = if phase < 0.5 { phase } else { 1.0 - phase }; + let step = (tphase * steps as f32).floor() as u32; + let value = ((step as f32 / (steps - 1) as f32) * 4.0) - 1.0; (value * i16::MAX as f32) as i16 } Self::Noise { mode, lsr } => { -- cgit v1.2.3-freya