Использование BinaryReader для чтения миди-файла. (.сеть) - PullRequest
1 голос
/ 12 апреля 2011

Как мне использовать BinaryReader для чтения миди-файла (спецификации для формата здесь )

Я использую vb.net, но я хочу видеть другой код (в основном только C #, я могу его преобразовать). Я работаю над большим проектом, и это похоже на скоростной удар.

Вот мой текущий код:

Private Function convertCharArrayToString(ByVal chars() As Char) As String
    Dim tReturn As String = ""
    For Each v As Char In chars
        tReturn &= v
    Next
    Return tReturn
End Function

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    midiStatus = "Reading..."
    Dim midiStream As New StreamReader(midiFile)
    Dim nBR As New BinaryReader(midiStream.BaseStream)
    midiStatus = "Validating Midi File..."
    Dim HeaderA As String = convertCharArrayToString(nBR.ReadChars(4))
    If Not HeaderA = "MThd" Then Return
    Dim HeaderB() As Byte = nBR.ReadBytes(4)
    'Get Track Type
    midiStatus = "Reading Header Data..."
    Dim TrackType1 As Integer = nBR.ReadInt16()
    Dim TrackType2 As Integer = nBR.ReadInt16()
    MsgBox(TrackType1 & TrackType2)

End Sub

Все работает до того момента, когда я начинаю читать фактические данные заголовка. Я абсолютно потерян, как продолжать. Любая помощь или примеры кода были бы хороши!

1 Ответ

1 голос
/ 12 апреля 2011

Напишите свою логику декодирования в классе, а не непосредственно в GUI.

Определите структуру для заголовка MIDI, затем используйте что-то вроде this , чтобы установить его.

...