public void CreatingSeekTableFirstEntryIsZero() { short[] pcm = GenerateAudio.GenerateAscendingShorts(0, 50); var seekTable = new GcAdpcmSeekTable(pcm, 10); Assert.Equal(seekTable.SeekTable.Take(2), new short[] { 0, 0 }); }
public void CreatingSeekTableContentIsCorrect() { short[] expected = { 0, 0, 50, 49, 100, 99 }; short[] pcm = GenerateAudio.GenerateAscendingShorts(0, 101); var seekTable = new GcAdpcmSeekTable(pcm, 50); Assert.Equal(expected, seekTable.SeekTable); }
private GcAdpcmFormat GetAscendingAdpcm(int samplesPerEntry, int count, params int[] starts) { short[][] pcm = starts.Select(start => GenerateAudio.GenerateAscendingShorts(start, count)).ToArray(); Pcm16Format pcmFormat = Pcm16Format.GetBuilder(pcm, 48000).Build(); GcAdpcmFormat adpcm = new GcAdpcmFormat().EncodeFromPcm16(pcmFormat); for (int i = 0; i < adpcm.ChannelCount; i++) { adpcm.Channels[i] = adpcm.Channels[i] .GetCloneBuilder() .WithSamplesPerSeekTableEntry(samplesPerEntry) .Build(); } return(adpcm); }