public void TestDualChannelWave() { float[] dualChannelSamples = CreateSineWave(2); string dualChannelFile = DataManagement.PathForDataFile("Test", "dualChannel.wav"); string secondDualChannel = DataManagement.PathForDataFile("Test", "dualChannel2.wav"); Assert.IsTrue(WaveEncoding.SaveFile( filepath: dualChannelFile, channels: 2, sampleRate: 44100, samples: dualChannelSamples, overwrite: true)); dualChannelSamples = null; Assert.IsTrue(File.Exists(dualChannelFile)); Assert.IsTrue(WaveEncoding.LoadFile( filepath: dualChannelFile, channels: out int channels, samples: out dualChannelSamples)); Assert.IsTrue(channels == 2); Assert.IsTrue(dualChannelSamples != null); Assert.IsTrue(WaveEncoding.SaveFile( filepath: secondDualChannel, channels: 2, sampleRate: 44100, samples: dualChannelSamples, overwrite: true)); }
public void TestSingleChannelWave() { float[] singleChannelSamples = CreateSineWave(1); string singleChannelFile = DataManagement.PathForDataFile("Test", "singleChannel.wav"); string secondSingleChannel = DataManagement.PathForDataFile("Test", "singleChannel2.wav"); Assert.IsTrue(WaveEncoding.SaveFile( filepath: singleChannelFile, channels: 1, sampleRate: 44100, samples: singleChannelSamples, overwrite: true)); singleChannelSamples = null; Assert.IsTrue(File.Exists(singleChannelFile)); Assert.IsTrue(WaveEncoding.LoadFile( filepath: singleChannelFile, channels: out int channels, samples: out singleChannelSamples)); Assert.IsTrue(channels == 1); Assert.IsTrue(singleChannelSamples != null); Assert.IsTrue(WaveEncoding.SaveFile( filepath: secondSingleChannel, channels: 1, sampleRate: 44100, samples: singleChannelSamples, overwrite: true)); }
public void TestPhaseVocoding() { //string baseFile = "Boston_HitchARide"; string baseFile = "000000"; WaveEncoding.LoadBGCSimple( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}.wav"), simpleAudioClip: out SimpleAudioClip song); song = song.Window(10f).Cache(); //First, write unmodified WaveEncoding.SaveFile( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}_Unmodified.wav"), channels: song.Channels, sampleRate: (int)song.SamplingRate, samples: song.Samples, overwrite: true); //Next, Slow it down 5% { SimpleAudioClip slowed_05 = song.PhaseVocode(0.95f).Cache(); //Next, write it slowed 5% WaveEncoding.SaveFile( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}_Slowed_05.wav"), channels: slowed_05.Channels, sampleRate: (int)slowed_05.SamplingRate, samples: slowed_05.Samples, overwrite: true); } //Next, Slow it down 25% { SimpleAudioClip slowed_25 = song.PhaseVocode(0.75f).Cache(); //Next, write it slowed 5% WaveEncoding.SaveFile( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}_Slowed_25.wav"), channels: slowed_25.Channels, sampleRate: (int)slowed_25.SamplingRate, samples: slowed_25.Samples, overwrite: true); } //Next, Slow it down 50% { SimpleAudioClip slowed_50 = song.PhaseVocode(0.5f).Cache(); //Next, write it slowed 5% WaveEncoding.SaveFile( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}_Slowed_50.wav"), channels: slowed_50.Channels, sampleRate: (int)slowed_50.SamplingRate, samples: slowed_50.Samples, overwrite: true); } }
public void TestCarlileShuffler() { string baseFile = "000000"; WaveEncoding.LoadBGCSimple( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}.wav"), simpleAudioClip: out SimpleAudioClip song); Debug.Log($"Pre RMS: {Mathf.Sqrt(song.Samples.Sum(x => x * x) / song.Samples.Length)} N:{song.Samples.Length}"); song = song.CarlileShuffle().Cache(); Debug.Log($"Post RMS: {Mathf.Sqrt(song.Samples.Sum(x => x * x) / song.Samples.Length)} N:{song.Samples.Length}"); //Write to File WaveEncoding.SaveFile( filepath: DataManagement.PathForDataFile("Test", $"{baseFile}_Carlile.wav"), channels: song.Channels, samples: song.Samples, overwrite: true); }