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