FSO.Files.HIT.FSC.ReadFile C# (CSharp) Method

ReadFile() private method

private ReadFile ( Stream stream ) : void
stream Stream
return void
        private void ReadFile(Stream stream)
        {
            var io = new StreamReader(stream);

            Notes = new List<FSCNote>();
            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]);
            QuanX = Convert.ToUInt16(Head[11]);
            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)
                {
                    Notes.Add(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]
                    });
                }
            }

            io.Close();
        }