private void ReadFile(Stream stream) { var io = new StreamReader(stream); Notes = new List <FSCNote>(); RandomJumpPoints = new List <int>(); VersionCode = io.ReadLine(); var line = io.ReadLine(); while (line.StartsWith("#")) { line = io.ReadLine(); } //Header string[] Head = line.Split('\t'); MasterVolume = Convert.ToUInt16(Head[1]); Priority = Convert.ToUInt16(Head[2]); Min = Convert.ToUInt16(Head[3]); Max = Convert.ToUInt16(Head[4]); Rows = Convert.ToUInt16(Head[5]); Columns = Convert.ToUInt16(Head[6]); Tempo = Convert.ToUInt16(Head[7]); BPB = Convert.ToUInt16(Head[8]); SelX = Convert.ToUInt16(Head[9]); SelY = Convert.ToUInt16(Head[10]); if (Head[11][0] != '-') { QuanX = Convert.ToUInt16(Head[11]); } if (Head[12][0] != '-') { QuanY = Convert.ToUInt16(Head[12]); } DiffX = Convert.ToUInt16(Head[13]); DiffY = Convert.ToUInt16(Head[14]); line = io.ReadLine(); while (line.StartsWith("#") || line.StartsWith("cells")) { line = io.ReadLine(); } while (!io.EndOfStream) //read notes { string line2 = io.ReadLine(); string[] Values = line2.Split('\t'); if (!line.StartsWith("#") && Values.Length == 20) { var note = new FSCNote() { Volume = Convert.ToUInt16(Values[1]), Rand = Values[2] != "0", LRPan = Convert.ToUInt16(Values[3]), FBPan = Convert.ToUInt16(Values[4]), Rand2 = Values[5] != "0", Fin = Convert.ToUInt16(Values[6]), FOut = Convert.ToUInt16(Values[7]), dly = Convert.ToUInt16(Values[8]), Rand3 = Values[9] != "0", Loop = Convert.ToUInt16(Values[10]), Loop2 = Values[11] != "0", Quant = Convert.ToUInt16(Values[12]), Prob = Convert.ToUInt16(Values[13]), pitchL = Convert.ToInt16(Values[14]), pitchR = Convert.ToInt16(Values[15]), Fast = Values[16] != "0", GroupID = Convert.ToUInt16(Values[17]), Stereo = Values[18] != "0", Filename = Values[19] }; if (note.Rand) { RandomJumpPoints.Add(Notes.Count); } Notes.Add(note); } } io.Close(); }