Example #1
0
        public bool Create(int sampleRate, int bitsPerSample, List <PcmSamples1Channel> samples)
        {
            int subChunk2Size = samples[0].NumSamples * (bitsPerSample / 8) * samples.Count;
            int chunkSize     = subChunk2Size + 36;

            rcd = new RiffChunkDescriptor();
            rcd.Create(chunkSize);

            fsc = new FmtSubChunk();
            if (!fsc.Create((ushort)samples.Count, (uint)sampleRate, (ushort)bitsPerSample))
            {
                return(false);
            }

            dsc = new DataSubChunk();
            dsc.Create((uint)subChunk2Size, samples);

            return(true);
        }
Example #2
0
        public bool Read(BinaryReader br)
        {
            rcd = new RiffChunkDescriptor();
            if (!rcd.Read(br))
            {
                return(false);
            }

            fsc = new FmtSubChunk();
            if (!fsc.Read(br))
            {
                return(false);
            }

            dsc = new DataSubChunk();
            if (!dsc.Read(br, fsc.numChannels, fsc.bitsPerSample))
            {
                return(false);
            }
            return(true);
        }
        public bool Read(BinaryReader br)
        {
            rcd = new RiffChunkDescriptor();
            if (!rcd.Read(br)) {
                return false;
            }

            fsc = new FmtSubChunk();
            if (!fsc.Read(br)) {
                return false;
            }

            dsc = new DataSubChunk();
            if (!dsc.Read(br, fsc.numChannels, fsc.bitsPerSample)) {
                return false;
            }
            return true;
        }
        public bool Create(int sampleRate, int bitsPerSample, List<PcmSamples1Channel> samples)
        {
            int subChunk2Size = samples[0].NumSamples * (bitsPerSample / 8) * samples.Count;
            int chunkSize     = subChunk2Size + 36;

            rcd = new RiffChunkDescriptor();
            rcd.Create(chunkSize);

            fsc = new FmtSubChunk();
            if (!fsc.Create((ushort)samples.Count, (uint)sampleRate, (ushort)bitsPerSample)) {
                return false;
            }

            dsc = new DataSubChunk();
            dsc.Create((uint)subChunk2Size, samples);

            return true;
        }