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); }