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.
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.
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.