From 0b2b8992a57dd22a2995c96153490dde44d21e24 Mon Sep 17 00:00:00 2001 From: ivan tkachenko Date: Tue, 17 Jun 2025 16:14:48 +0300 Subject: [PATCH] add support for wav and ogg/vorbis audio files --- Assets/.gitattributes | 2 ++ MuzikaGromche/Plugin.cs | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Assets/.gitattributes b/Assets/.gitattributes index 6b9df02..58b97d0 100644 --- a/Assets/.gitattributes +++ b/Assets/.gitattributes @@ -1 +1,3 @@ *.mp3 filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text diff --git a/MuzikaGromche/Plugin.cs b/MuzikaGromche/Plugin.cs index 63d8e0f..ab9d1f1 100644 --- a/MuzikaGromche/Plugin.cs +++ b/MuzikaGromche/Plugin.cs @@ -109,8 +109,8 @@ namespace MuzikaGromche UnityWebRequest[] requests = new UnityWebRequest[Tracks.Length * 2]; for (int i = 0; i < Tracks.Length; i++) { Track track = Tracks[i]; - requests[i * 2] = UnityWebRequestMultimedia.GetAudioClip($"File://{text}{track.Name}Start.mp3", AudioType.MPEG); - requests[i * 2 + 1] = UnityWebRequestMultimedia.GetAudioClip($"File://{text}{track.Name}Loop.mp3", AudioType.MPEG); + requests[i * 2] = UnityWebRequestMultimedia.GetAudioClip($"File://{text}{track.FileNameStart}", track.AudioType); + requests[i * 2 + 1] = UnityWebRequestMultimedia.GetAudioClip($"File://{text}{track.FileNameLoop}", track.AudioType); requests[i * 2].SendWebRequest(); requests[i * 2 + 1].SendWebRequest(); } @@ -141,8 +141,22 @@ namespace MuzikaGromche // so the Loop track should start precisely on a beat. public float Bpm; + // MPEG is basically mp3, and it can produce gaps at the start. + // WAV is OK, but takes a lot of space. Try OGGVORBIS instead. + public AudioType AudioType = AudioType.MPEG; + public AudioClip LoadedStart; public AudioClip LoadedLoop; + + public string FileNameStart => $"{Name}Start.{ext}"; + public string FileNameLoop => $"{Name}Loop.{ext}"; + private string ext => AudioType switch + { + AudioType.MPEG => "mp3", + AudioType.WAV => "wav", + AudioType.OGGVORBIS => "ogg", + _ => "", + }; } [HarmonyPatch(typeof(JesterAI))]