mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 22:47:40 +02:00
Integration of Jukebox Library (#451)
* add Jukebox library todo: - saving / loading of new format - inferrence of unknown data like past versions - move the temporary float casts to proper use of double - make sound related functions take double for timing - inform people that the Jukebox sound player was renamed to SoundByte lol * make sound, input scheduling, and super curve use double precision * successfully load charts * editor works again v1 riqs can be saved and loaded * first tempo and volume markers are unmovable fix loading of charts' easing values * use gsync / freesync * update Jukebox refs to SoundByte * game events use double part 1 Air Rally - Glee Club converted * don't load song if chart load fails * finish conversion of all minigames * remove editor waveform toggle * timeline now respects added song offset length clear cache files on app close prepped notes for dsp sync * update timeline length when offset changed * update to latest Jukebox * make error panel object in global game manager * improve conductor music scheduling * added error message box fix first game events sometimes not playing
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Starpelly;
|
||||
|
||||
@ -17,8 +17,8 @@ namespace HeavenStudio.Util
|
||||
public double scheduledTime;
|
||||
|
||||
public bool looping;
|
||||
public float loopEndBeat = -1;
|
||||
public float fadeTime;
|
||||
public double loopEndBeat = -1;
|
||||
public double fadeTime;
|
||||
int loopIndex = 0;
|
||||
|
||||
private AudioSource audioSource;
|
||||
@ -27,8 +27,8 @@ namespace HeavenStudio.Util
|
||||
|
||||
private double startTime;
|
||||
|
||||
public float beat;
|
||||
public float offset;
|
||||
public double beat;
|
||||
public double offset;
|
||||
public float scheduledPitch = 1f;
|
||||
|
||||
bool playInstant = false;
|
||||
@ -48,7 +48,7 @@ namespace HeavenStudio.Util
|
||||
audioSource.Play();
|
||||
playInstant = true;
|
||||
played = true;
|
||||
startTime = cnd.songPositionAsDouble;
|
||||
startTime = AudioSettings.dspTime;
|
||||
StartCoroutine(NotRelyOnBeatSound());
|
||||
}
|
||||
else
|
||||
@ -126,7 +126,7 @@ namespace HeavenStudio.Util
|
||||
}
|
||||
}
|
||||
|
||||
public void SetLoopParams(float endBeat, float fadeTime)
|
||||
public void SetLoopParams(double endBeat, double fadeTime)
|
||||
{
|
||||
loopEndBeat = endBeat;
|
||||
this.fadeTime = fadeTime;
|
||||
@ -158,6 +158,7 @@ namespace HeavenStudio.Util
|
||||
|
||||
#region Bend
|
||||
// All of these should only be used with rockers.
|
||||
// minenice: consider doing these in the audio thread so they can work per-sample?
|
||||
public void BendUp(float bendTime, float bendedPitch)
|
||||
{
|
||||
this.bendedPitch = bendedPitch;
|
||||
@ -201,20 +202,20 @@ namespace HeavenStudio.Util
|
||||
|
||||
#endregion
|
||||
|
||||
public void KillLoop(float fadeTime)
|
||||
public void KillLoop(double fadeTime)
|
||||
{
|
||||
StartCoroutine(FadeLoop(fadeTime));
|
||||
}
|
||||
|
||||
float loopFadeTimer = 0f;
|
||||
IEnumerator FadeLoop(float fadeTime)
|
||||
IEnumerator FadeLoop(double fadeTime)
|
||||
{
|
||||
float startingVol = audioSource.volume;
|
||||
|
||||
while (loopFadeTimer < fadeTime)
|
||||
{
|
||||
loopFadeTimer += Time.deltaTime;
|
||||
audioSource.volume = Mathf.Max((1f - (loopFadeTimer / fadeTime)) * startingVol, 0f);
|
||||
audioSource.volume = (float) Math.Max((1f - (loopFadeTimer / fadeTime)) * startingVol, 0.0);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user