summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-11-23 17:03:18 -0500
committerFreya Murphy <freya@freyacat.org>2025-11-23 17:03:18 -0500
commit7bb56cba8848cde6ba68501e9efa1ac26274658b (patch)
tree15d233f648e5cd1acb41be8e59a90c73fdc38c17
parentaudio: refactor everything (diff)
downloadDungeonCrawl-audio.tar.gz
DungeonCrawl-audio.tar.bz2
DungeonCrawl-audio.zip
audio: fix triangle waveaudio
-rw-r--r--audio/src/channel.rs5
1 files 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 } => {