Пример #1
0
        public void Write(BinaryWriter bw)
        {
            var msRgn = new MemoryStream();
            var bwRgn = new BinaryWriter(msRgn);

            bwRgn.Write("LIST".ToCharArray());
            bwRgn.Write(0xFFFFFFFF);
            bwRgn.Write("rgn ".ToCharArray());

            Header.Write(bwRgn);

            bwRgn.Write("wsmp".ToCharArray());
            bwRgn.Write((uint)(Marshal.SizeOf <CK_WSMP>() + Sampler.LoopCount * Marshal.SizeOf <WaveLoop>()));
            Sampler.Write(bwRgn);
            for (var i = 0; i < Sampler.LoopCount && i < Loops.Count; ++i)
            {
                Loops[i].Write(bwRgn);
            }

            WaveLink.Write(bwRgn);
            Articulations.Write(bwRgn);

            bwRgn.Seek(4, SeekOrigin.Begin);
            bwRgn.Write((uint)msRgn.Length - 8);
            bw.Write(msRgn.ToArray());
        }
Пример #2
0
        public void Write(BinaryWriter bw)
        {
            var msIns = new MemoryStream();
            var bwIns = new BinaryWriter(msIns);

            bwIns.Write("LIST".ToCharArray());
            bwIns.Write(0xFFFFFFFF);
            bwIns.Write("ins ".ToCharArray());

            Header.Write(bwIns);

            Regions.Write(bwIns);
            Articulations.Write(bwIns);
            Info.Write(bwIns);

            bwIns.Seek(4, SeekOrigin.Begin);
            bwIns.Write((uint)msIns.Length - 8);
            bw.Write(msIns.ToArray());
        }