07.07.2009, 15:29
Moin Moin!
Ich habe eine Wav-Datei mit 96kHz Abtastrate, die ich einlesen und weiterverarbeiten möchte. Um den Speicherbedarf nicht vollends explodieren zu lassen, möchte ich die eingelesenen double-Werte in 16bit Integer (wie bei wav verwendet) umwandeln. Deswegen dachte ich mir, ich nehm einfach das Datenarray aus der Waveform, multipliziere das mit 32767 um die entsprechende Aussteuerung zu bekommen und mache dann einen TypeCast nach 16bit. So ähnlich habe ich das auch früher schon gemacht, wo alles wunderbar klappt.
Wenn ich das allerdings nun so mache, bleibt von meinem Verlauf nicht mehr viel über - siehe Screenshot. Zudem ist komischer Weise die Länge des Arrays vor und nach dem Cast unterschiedlich lang?!
Wo liegt mein Fehler?

Ich habe eine Wav-Datei mit 96kHz Abtastrate, die ich einlesen und weiterverarbeiten möchte. Um den Speicherbedarf nicht vollends explodieren zu lassen, möchte ich die eingelesenen double-Werte in 16bit Integer (wie bei wav verwendet) umwandeln. Deswegen dachte ich mir, ich nehm einfach das Datenarray aus der Waveform, multipliziere das mit 32767 um die entsprechende Aussteuerung zu bekommen und mache dann einen TypeCast nach 16bit. So ähnlich habe ich das auch früher schon gemacht, wo alles wunderbar klappt.
Wenn ich das allerdings nun so mache, bleibt von meinem Verlauf nicht mehr viel über - siehe Screenshot. Zudem ist komischer Weise die Länge des Arrays vor und nach dem Cast unterschiedlich lang?!

Wo liegt mein Fehler?
