Code Erklärung gesucht

rd4eva

Erfahrenes Mitglied
Hallo miteinander,

ich bin gerade gezwungen einen vb6 code nach c# zu übersetzen.
Trotz nicht vorhandener vb6-Kenntnisse war das bisher auch kein Problem allerdings bin ich jetzt an einer Stelle angekommen die ich nicht recht verstehe.

Visual Basic:
Open WaveFileName For Binary As WaveFile
If BitsPerSample = 8 Then
            ReDim ybyte(NumChannels - 1, NumSamples - 1) As Byte
            Get WaveFile, , ybyte   ' read data in one go
            For i = 0 To NumSamples - 1
                For c = 0 To NumChannels - 1
                    Y(i, c) = (ybyte(c, i) - 128) / 128#  '8 Bits/sample is unsigned
                Next
            Next
        ElseIf BitsPerSample = 16 Then
            ReDim yshort(NumChannels - 1, NumSamples - 1) As Integer
            Get WaveFile, , yshort  ' read data in one go
            For i = 0 To NumSamples - 1
                For c = 0 To NumChannels - 1
                    Y(i, c) = (yshort(c, i)) / 32768#
                Next
            Next

Hauptsächlich geht es mal darum das ich nicht verstehe auf welche Art die Datei in das jeweilige Array gelesen wird ( Byte-weise, Zeilenweise...?).
Zum zweiten ist mir nicht ganz klar warum einmal (Wert-128)/128 und das andere mal Wert / 32768.0 gerechnet wird.

Vielleicht kann ja jemand etwas Licht ins Dunkel bringen oder mir einen Tipp verraten wie (womit) ich den Code compilieren könnte um die Ergebnise mit denen von meinem C# zu vergleichen.
 
8 bit = 1 byte
16 bit = ?
deshalb byte array und integer array einfach im nachfolgenden Code schauen wo die beiden array weiter verarbeitet werden und die frage ist gelöst.
mfg Amun-Re
 
Zurück