Beispiel #1
0
        public void CreatingAudioDataWithPcm()
        {
            Pcm16Format pcm   = GenerateAudio.GeneratePcmSineWave(200, 2, 48000);
            var         audio = new AudioData(pcm);

            Assert.Same(pcm, audio.GetFormat <Pcm16Format>());
        }
Beispiel #2
0
        public void LoopingBoolOnlyLoopsAllFormats()
        {
            var audio = new AudioData(GenerateAudio.GeneratePcmSineWave(100, 1, 48000));

            audio.GetFormat <GcAdpcmFormat>();
            audio.SetLoop(true);
            var loopedAdpcm = audio.GetFormat <GcAdpcmFormat>();
            var loopedPcm   = audio.GetFormat <Pcm16Format>();

            Assert.True(loopedAdpcm.Looping);
            Assert.Equal(0, loopedAdpcm.LoopStart);
            Assert.Equal(100, loopedAdpcm.LoopEnd);
            Assert.True(loopedPcm.Looping);
            Assert.Equal(0, loopedPcm.LoopStart);
            Assert.Equal(100, loopedPcm.LoopEnd);

            audio.SetLoop(false);
            var unloopedAdpcm = audio.GetFormat <GcAdpcmFormat>();
            var unloopedPcm   = audio.GetFormat <Pcm16Format>();

            Assert.False(unloopedAdpcm.Looping);
            Assert.Equal(0, unloopedAdpcm.LoopStart);
            Assert.Equal(0, unloopedAdpcm.LoopEnd);
            Assert.False(unloopedPcm.Looping);
            Assert.Equal(0, unloopedPcm.LoopStart);
            Assert.Equal(0, unloopedPcm.LoopEnd);
        }
Beispiel #3
0
        public void CombineThrowsWhenElementIsNull()
        {
            var       audio = new AudioData(GenerateAudio.GeneratePcmSineWave(100, 1, 48000));
            Exception ex    = Record.Exception(() => AudioData.Combine(audio, null));

            Assert.IsType <ArgumentException>(ex);
        }
Beispiel #4
0
        public void GettingSecondFormatFromFirst()
        {
            Pcm16Format pcm   = GenerateAudio.GeneratePcmSineWave(200, 2, 48000);
            var         audio = new AudioData(pcm);
            var         adpcm = audio.GetFormat <GcAdpcmFormat>();

            Assert.Same(adpcm, audio.GetFormat <GcAdpcmFormat>());
        }
Beispiel #5
0
        public void CombineThrowsWhenAudioCantBeCombined()
        {
            var       audio  = new AudioData(GenerateAudio.GeneratePcmSineWave(100, 1, 48000));
            var       audio2 = new AudioData(GenerateAudio.GeneratePcmSineWave(200, 1, 48000));
            Exception ex     = Record.Exception(() => AudioData.Combine(audio, audio2));

            Assert.IsType <ArgumentException>(ex);
        }
Beispiel #6
0
        public void BrstmBuildAndParseEqualPcm16(int numChannels)
        {
            Pcm16Format audio  = GenerateAudio.GeneratePcmSineWave(BuildParseTestOptions.Samples, numChannels, BuildParseTestOptions.SampleRate);
            var         writer = new BrstmWriter {
                Configuration = { Codec = NwCodec.Pcm16Bit }
            };

            BuildParseTests.BuildParseCompareAudio(audio, writer, new BrstmReader());
        }
Beispiel #7
0
        public void GetAllFormats()
        {
            Pcm16Format pcm   = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            var         audio = new AudioData(pcm);

            Assert.Collection(audio.GetAllFormats(), x => Assert.True(x is Pcm16Format));

            audio.GetFormat <GcAdpcmFormat>();
            Assert.Collection(audio.GetAllFormats(), x => Assert.True(x is Pcm16Format), x => Assert.True(x is GcAdpcmFormat));
        }
Beispiel #8
0
        public void LoopsProperlyAfterEncoding(int sampleCount, bool looping, int loopStart, int loopEnd)
        {
            Pcm16Format pcm = GenerateAudio.GeneratePcmSineWave(sampleCount, 1, 48000)
                              .WithLoop(looping, loopStart, loopEnd);

            IAudioFormat adpcm = new GcAdpcmFormat().EncodeFromPcm16(pcm);

            Assert.Equal(looping, adpcm.Looping);
            Assert.Equal(loopStart, adpcm.LoopStart);
            Assert.Equal(loopEnd, adpcm.LoopEnd);
        }
Beispiel #9
0
        public void AddSameFormats()
        {
            Pcm16Format pcm    = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            Pcm16Format pcm2   = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            var         audio  = new AudioData(pcm);
            var         audio2 = new AudioData(pcm2);

            AudioData combined    = AudioData.Combine(audio, audio2);
            var       pcmCombined = combined.GetFormat <Pcm16Format>();

            Assert.Same(pcm.Channels[0], pcmCombined.Channels[0]);
            Assert.Same(pcm2.Channels[0], pcmCombined.Channels[1]);
            Assert.Equal(2, pcmCombined.ChannelCount);
        }
Beispiel #10
0
        public void ListAvailableFormats()
        {
            var expected = new List <Type> {
                typeof(Pcm16Format)
            };
            Pcm16Format pcm   = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            var         audio = new AudioData(pcm);

            Assert.Equal(expected, audio.ListAvailableFormats());

            expected.Add(typeof(GcAdpcmFormat));
            audio.GetFormat <GcAdpcmFormat>();
            Assert.Equal(expected, audio.ListAvailableFormats());
        }
Beispiel #11
0
        public void AddDifferentFormats()
        {
            Pcm16Format   pcm    = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            GcAdpcmFormat adpcm  = GenerateAudio.GenerateAdpcmSineWave(100, 1, 48000);
            var           audio  = new AudioData(pcm);
            var           audio2 = new AudioData(adpcm);

            AudioData combined = AudioData.Combine(audio, audio2);

            Assert.Collection(combined.GetAllFormats(), x => Assert.True(x is Pcm16Format));
            var pcmCombined = combined.GetFormat <Pcm16Format>();

            Assert.Same(pcm.Channels[0], pcmCombined.Channels[0]);
            Assert.Equal(2, pcmCombined.ChannelCount);
        }
Beispiel #12
0
        public void AddSameFormatsAfterEncodingChoosesEncodedFormat()
        {
            Pcm16Format pcm    = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            Pcm16Format pcm2   = GenerateAudio.GeneratePcmSineWave(100, 1, 48000);
            var         audio  = new AudioData(pcm);
            var         audio2 = new AudioData(pcm2);

            var adpcm  = audio.GetFormat <GcAdpcmFormat>();
            var adpcm2 = audio2.GetFormat <GcAdpcmFormat>();

            AudioData combined = AudioData.Combine(audio, audio2);

            Assert.Collection(combined.GetAllFormats(), x => Assert.True(x is GcAdpcmFormat));
            var pcmCombined   = combined.GetFormat <Pcm16Format>();
            var adpcmCombined = combined.GetFormat <GcAdpcmFormat>();

            Assert.Same(adpcm.Channels[0].GetAdpcmAudio(), adpcmCombined.Channels[0].GetAdpcmAudio());
            Assert.Same(adpcm2.Channels[0].GetAdpcmAudio(), adpcmCombined.Channels[1].GetAdpcmAudio());
            Assert.NotSame(pcm.Channels[0], pcmCombined.Channels[0]);
            Assert.NotSame(pcm2.Channels[0], pcmCombined.Channels[1]);
            Assert.Equal(2, adpcmCombined.ChannelCount);
        }
Beispiel #13
0
        public void AddDifferentFormatsMultipleInputs()
        {
            Pcm16Format pcmFormat = GenerateAudio.GeneratePcmSineWave(100, 4, 48000);
            Pcm16Format pcm0      = pcmFormat.GetChannels(0);
            Pcm16Format pcm1      = pcmFormat.GetChannels(1, 2);
            Pcm16Format pcm2      = pcmFormat.GetChannels(3);
            var         audio0    = new AudioData(pcm0);
            var         audio1    = new AudioData(pcm1);
            var         audio2    = new AudioData(pcm2);

            audio0.GetFormat <GcAdpcmFormat>();
            audio2.GetFormat <GcAdpcmFormat>();

            AudioData combined = AudioData.Combine(audio0, audio1, audio2);

            Assert.Collection(combined.GetAllFormats(), x => Assert.True(x is Pcm16Format));
            var pcmCombined = combined.GetFormat <Pcm16Format>();

            Assert.Equal(4, pcmCombined.ChannelCount);
            Assert.Same(pcm0.Channels[0], pcmCombined.Channels[0]);
            Assert.Same(pcm1.Channels[0], pcmCombined.Channels[1]);
            Assert.Same(pcm1.Channels[1], pcmCombined.Channels[2]);
            Assert.Same(pcm2.Channels[0], pcmCombined.Channels[3]);
        }
Beispiel #14
0
        public void WavePcm16LoopedBuildAndParseEqual(int numChannels)
        {
            Pcm16Format audio = GenerateAudio.GeneratePcmSineWave(BuildParseTestOptions.Samples, numChannels, BuildParseTestOptions.SampleRate).WithLoop(true);

            BuildParseTests.BuildParseCompareAudio(audio, new WaveWriter(), new WaveReader());
        }