public RiffChunkListWave(string aId, UInt32 aSize, ByteArray aByteArray, RiffChunkList aParent)
            : base(chunkTypeDictionary, bodyTypeDictionary, aId, aSize, aByteArray, aParent)
        {
            type = TYPE;

            cue_Chunk = ( RiffChunkCue_ )GetChunk(RiffChunkCue_.ID);
            dataChunk = ( RiffChunkData )GetChunk(RiffChunkData.ID);
            fmt_Chunk = ( RiffChunkFmt_ )GetChunk(RiffChunkFmt_.ID);
            smplChunk = ( RiffChunkSmpl )GetChunk(RiffChunkSmpl.ID);
        }
        public void AddSampleLoop(int aStart, int aEnd)
        {
            if (smplChunk == null)
            {
                List <SampleLoop> lSampleLoopList = new List <SampleLoop>();

                lSampleLoopList.Add(new SampleLoop(0, 0, ( UInt32 )aStart, ( UInt32 )aEnd, 0, 0));

                RiffChunkSmpl lChunkSmpl = new RiffChunkSmpl(0, 0, 0, 60, 0, 0, 0, 1, 0, lSampleLoopList);
                AddChunk(lChunkSmpl);
                smplChunk = lChunkSmpl;
            }
            else
            {
                List <SampleLoop> lSmplLoopList = smplChunk.sampleLoopList;

                lSmplLoopList.Add(new SampleLoop(0, 0, ( UInt32 )aStart, ( UInt32 )aEnd, 0, 0));

                OverrideChunk(new RiffChunkSmpl(smplChunk, lSmplLoopList));
            }
        }
        public RiffChunkSmpl(RiffChunkSmpl aSmplChunk, List <SampleLoop> aSampleLoopList)
            : base(ID, ( UInt32 )(4 * 9 + 24 * aSampleLoopList.Count), null, null)
        {
            manufacturer      = aSmplChunk.manufacturer;
            product           = aSmplChunk.product;
            samplePeriod      = aSmplChunk.samplePeriod;
            midiUnityNote     = aSmplChunk.midiUnityNote;
            midiPitchFraction = aSmplChunk.midiPitchFraction;
            smpteFormat       = aSmplChunk.smpteFormat;
            smpteOffset       = aSmplChunk.smpteOffset;
            sampleLoops       = ( UInt32 )aSampleLoopList.Count;
            samplerData       = aSmplChunk.samplerData;
            sampleLoopList    = aSampleLoopList;

            informationList.Add("Manufacturer:" + manufacturer);
            informationList.Add("Product:" + product);
            informationList.Add("Sample Period:" + samplePeriod);
            informationList.Add("Midi Unity Note:" + midiUnityNote);
            informationList.Add("Midi Pitch Fraction:" + midiPitchFraction);
            informationList.Add("SMPTE Format:" + smpteFormat);
            informationList.Add("SMPTE Offset:" + smpteOffset);
            informationList.Add("Sample Loops:" + sampleLoops);
            informationList.Add("Sampler Data:" + samplerData);
        }