Пример #1
0
        private List <byte> MakeHeader_mucomDotNET_OPNB_ADPCMA(PCMFileManager fileManager)
        {
            List <byte> head = new List <byte>();
            int         ptr  = 0;

            head.Add((byte)'m');
            head.Add((byte)'d');
            head.Add((byte)'b');
            head.Add((byte)'a');

            int num = fileManager.GetCount();

            head.Add((byte)num);
            head.Add((byte)(num >> 8));

            for (int i = 0; i <= num; i++)
            {
                head.AddRange(fileManager.GetName(i));//instrument name 16byte
                head.Add(3);
                head.Add((byte)(fileManager.GetVolume(i)));
                head.Add((byte)(fileManager.GetVolume(i) >> 8));
                int    length = fileManager.GetLengthAddress(i);
                ushort stAdr  = (ushort)(ptr >> 8);
                ptr += length - 1;
                ushort edAdr = (ushort)(ptr >> 8);
                ptr++;
                head.Add((byte)(stAdr));
                head.Add((byte)(stAdr >> 8));
                head.Add((byte)(edAdr));
                head.Add((byte)(edAdr >> 8));
            }
            return(head);
        }
Пример #2
0
        private List <byte> MakeHeader_mucom88(PCMFileManager fileManager)
        {
            List <byte> head = new List <byte>();
            int         ptr  = 0;

            for (int i = 0; i < 32; i++)
            {
                head.AddRange(fileManager.GetName(i, 16));                  //instrument name 16byte
                head.AddRange(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); //dummy 10byte(limit/sample rate/volume etc.)
                head.Add((byte)(fileManager.GetVolume(i)));
                head.Add((byte)(fileManager.GetVolume(i) >> 8));
                int    length = fileManager.GetLengthAddress(i);
                ushort stAdr  = (ushort)(ptr >> 2);
                ptr += length - 1;
                ushort edAdr = (ushort)(ptr >> 2);
                ptr++;
                head.Add((byte)(stAdr));
                head.Add((byte)(stAdr >> 8));
                head.Add((byte)(edAdr));
                head.Add((byte)(edAdr >> 8));
            }
            return(head);
        }