void ClearAudioStream(Song.AudioInstrument audio) { editor.currentSongAudio.Clear(audio); editor.currentSong.SetAudioLocation(audio, string.Empty); setAudioTextLabels(); }
void ClearAudioStream(Song.AudioInstrument audio) { editor.currentSong.GetSampleData(audio).Dispose(); editor.currentSong.SetBassAudioStream(audio, null); setAudioTextLabels(); }
void clearAudioStream(Song.AudioInstrument audio) { editor.currentSong.GetSampleData(audio).Free(); editor.currentSong.SetBassAudioStream(audio, 0); setAudioTextLabels(); }
public bool LoadAudio(string filepath, Song.AudioInstrument audio) { int audioStreamArrayPos = (int)audio; if (filepath == string.Empty) { return(false); } filepath = filepath.Replace('\\', '/'); // Check for valid extension if (!Utility.validateExtension(filepath, Globals.validAudioExtensions)) { throw new System.Exception("Invalid file extension"); } if (!File.Exists(filepath)) { Debug.LogError("Unable to locate audio file: " + filepath); return(false); } #if TIMING_DEBUG float time = Time.realtimeSinceStartup; #endif ++audioLoads; try { // Load sample data from waveform. This creates a thread on it's own. if (audioSampleData[audioStreamArrayPos] != null) { audioSampleData[audioStreamArrayPos].Dispose(); } audioSampleData[audioStreamArrayPos] = new SampleData(filepath); // Load Audio Streams if (bassAudioStreams[audioStreamArrayPos] != null) { bassAudioStreams[audioStreamArrayPos].Dispose(); } bassAudioStreams[audioStreamArrayPos] = AudioManager.LoadTempoStream(filepath); } catch (Exception e) { Logger.LogException(e, "Could not open audio"); return(false); } finally { --audioLoads; } #if TIMING_DEBUG Debug.Log("Audio load time: " + (Time.realtimeSinceStartup - time)); #endif Debug.Log("Finished loading audio"); return(true); }
public void SetBassAudioStream(Song.AudioInstrument audio, TempoStream stream) { int arrayPos = (int)audio; if (bassAudioStreams[arrayPos] != null) { bassAudioStreams[arrayPos].Dispose(); } bassAudioStreams[arrayPos] = stream; }
public void PlayingMovement() { float speed = Globals.gameSettings.hyperspeed; Vector3 pos = transform.position; float deltaTime = Time.deltaTime; float positionOffset = initPos.y; { float timeBeforeMovement = ChartEditor.WorldYPositionToTime(pos.y - positionOffset); float timeAfterMovement = timeBeforeMovement + deltaTime * Globals.gameSettings.gameSpeed; // Make sure we're staying in sync with the audio { SongAudioManager songAudioManager = editor.currentSongAudio; AudioStream stream = null; for (int i = 0; i < EnumX <Song.AudioInstrument> .Count; ++i) { Song.AudioInstrument audio = (Song.AudioInstrument)i; if (AudioManager.StreamIsValid(songAudioManager.GetAudioStream(audio))) { stream = songAudioManager.GetAudioStream(audio); break; } } if (AudioManager.StreamIsValid(stream) && stream.IsPlaying()) { float audioTimePosition = stream.CurrentPositionInSeconds() - editor.services.totalSongAudioOffset; float desyncAmount = audioTimePosition - timeAfterMovement; if (Mathf.Abs(desyncAmount) > DESYNCLENIENCE) { timeAfterMovement += desyncAmount; } } } float maxChangeInTimeAllowed = Application.targetFrameRate > 0 ? 2.0f / Application.targetFrameRate : 1.0f / 120.0f; float totalChangeInTime = timeAfterMovement - timeBeforeMovement; float newTimePosition = ChartEditor.TimeToWorldYPosition(timeBeforeMovement + totalChangeInTime); pos.y = newTimePosition + positionOffset; } selfTransform.position = pos; explicitChartPos = null; lastUpdatedRealTime = Time.time; }
static void AudioLoadFromChart(Song song, Song.AudioInstrument streamAudio, string line, string audioDirectory) { string audioFilepath = Regex.Matches(line, QUOTESEARCH)[0].ToString().Trim('"'); // Check if it's already the full path. If not, make it relative to the chart file. if (!File.Exists(audioFilepath)) { audioFilepath = audioDirectory + "\\" + audioFilepath; } if (File.Exists(audioFilepath) && Utility.validateExtension(audioFilepath, Globals.validAudioExtensions)) { song.SetAudioLocation(streamAudio, Path.GetFullPath(audioFilepath)); } }
static void AudioLoadFromChart(Song song, Song.AudioInstrument streamAudio, string line, string audioDirectory) { string audioFilepath = ChartIOHelper.MetaData.ParseAsString(line); // Check if it's already the full path. If not, make it relative to the chart file. if (!File.Exists(audioFilepath)) { audioFilepath = audioDirectory + "\\" + audioFilepath; } if (File.Exists(audioFilepath) && Utility.validateExtension(audioFilepath, Globals.validAudioExtensions)) { song.SetAudioLocation(streamAudio, Path.GetFullPath(audioFilepath)); } }
static string GetCHOggFilename(Song.AudioInstrument audio) { const string audioFormat = ".ogg"; string newAudioName = string.Empty; if (audioInstrumentToCHNameMap.TryGetValue(audio, out newAudioName)) { newAudioName += audioFormat; } else { Debug.LogErrorFormat("Audio instrument {0} not set up in ch name dict. Skipping.", audio.ToString()); } return(newAudioName); }
void LoadAndSetStream(Song.AudioInstrument audioInstrument) { try { string filepath = GetAudioFile(); if (editor.currentSongAudio.LoadAudio(filepath, audioInstrument)) { // Record the filepath editor.currentSong.SetAudioLocation(audioInstrument, filepath); StartCoroutine(SetAudio()); } } catch { Debug.LogError("Could not open audio"); } }
void LoadAudioStream(Song.AudioInstrument audioInstrument) { try { string filepath = GetAudioFile(); if (editor.currentSongAudio.LoadAudio(filepath, audioInstrument)) { // Record the filepath editor.currentSong.SetAudioLocation(audioInstrument, filepath); StartCoroutine(SetAudio()); } } catch (Exception e) { Logger.LogException(e, "Could not open audio"); } }
public void Clear(Song.AudioInstrument audio) { { var stream = GetAudioStream(audio); if (stream != null) { stream.Dispose(); } bassAudioStreams[(int)audio] = null; } { var sampleData = GetSampleData(audio); if (sampleData != null) { sampleData.Dispose(); } audioSampleData[(int)audio] = null; } }
public TempoStream GetAudioStream(Song.AudioInstrument audio) { return(bassAudioStreams[(int)audio]); }
public SampleData GetSampleData(Song.AudioInstrument audio) { return(audioSampleData[(int)audio]); }
public bool GetAudioIsLoaded(Song.AudioInstrument audio) { TempoStream stream = GetAudioStream(audio); return(AudioManager.StreamIsValid(stream)); }