From 3e3261eccc1367580cc377e0a011dfe631ab0d0e Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Wed, 9 Aug 2023 19:19:02 +0700 Subject: [PATCH] finally add stereo support for midis --- .../chomens_bot/plugins/MusicPlayerPlugin.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/MusicPlayerPlugin.java b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/MusicPlayerPlugin.java index 95d5e043..fd0a2b07 100644 --- a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/MusicPlayerPlugin.java +++ b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/MusicPlayerPlugin.java @@ -297,12 +297,20 @@ public class MusicPlayerPlugin extends Bot.Listener { // final double floatingPitch = 0.5 * (Math.pow(2, ((key + (pitch / 10)) / 12))); // totallynotskidded from opennbs - int blockPosition = 0; + float blockPosition = 0; if (currentSong.nbs) { final int s = (note.stereo + note.panning) / 2; // Stereo values to X coordinates, calc'd from the average of both note and layer pan. - if (s > 100) blockPosition = (s - 100) / -100; - if (s < 100) blockPosition = ((s - 100) * -1) / 100; + if (s > 100) blockPosition = (float) (s - 100) / -100; + else if (s < 100) blockPosition = (float) ((s - 100) * -1) / 100; + } else { + // i wrote this part + + // this uses the average of the pitch and the volume to calcuate the stereo + final float average = (note.pitch + note.volume) / 2; + + if (average > 5) blockPosition = (average - 5) / -5; + else if (average < 3) blockPosition = ((average - 5) * -1) / 5; } bot.core.run(