|
Java byte array manipulation 2 bytes --> short * irgendwas --> 2 bytes
|
|
 03 Sep 2009, 15:58
|

busy office        
Punkte: 1655
seit: 30.06.2006
|
hi, ich kriege irgendwie seit Tagen keinen klaren Kopf bei dem ganzen Audiozeuch - folgendes: Ich habe eine WAV Datei, erzeuge einen audiostream und trenne die beiden Kanäle (Stereo file) in jeweils ein byte array. Soweit so gut funktioniert auch super. Nun will ich die einzelnen Bytes manipulieren, was ja auch kein Problem darstellt. Nur bekomme ich dabei ein Rauschen. Ein Sample besteht ja nun aus 4 Byte - 2 Byte für Links und 2 Byte für rechts. L L R R und ich will auf die 2 Byte des Linken kanals ein Gain (Lautstärke) multiplizieren und auf den rechten - was aber unterschiedliche Verstärkungsfaktoren sind. Mir wurde nun gesagt ich müsse die 2 Bytes aus dem Kanal in ein Short überführen, es manipulieren und wieder in die 2 Bytes packen. Nur funktioniert das nicht so richtig. Details auf der StackOverflow Seite
--------------------
Grüße sn3ek
|
|
|
Antworten
|
|
 03 Sep 2009, 19:38
|

busy office        
Punkte: 1655
seit: 30.06.2006
|
Zitat(stth @ 03 Sep 2009, 19:36) schlecht... letzeres ist die verstärkung... akt. wert in double, malnehmen, zurück nach int wenn float gain = 0.5f gegaehnt = (int)((float)gegaehnt * gaehn);  Also vllt kams ja falsch an: ich will lediglich die lautstärke der einzelnen kanäle manipulieren. Auf das gesamte ist das kein Problem, dafür gibts die Gain control in der API. Aber wie ich das auf die einzelnen kanäle abwälzen soll ist mir unklar...
|
|
|
|
|
 03 Sep 2009, 19:55
|

der vierkonsonantige         
Punkte: 3812
seit: 12.12.2003
|
Zitat(sn3ek @ 03 Sep 2009, 19:38) Aber wie ich das auf die einzelnen kanäle abwälzen soll ist mir unklar...  na linksgaehn und rechtsgaehn statt gaehn verwenden  mich verwirrt noch, dass du da keinen graden ton mehr rausbekommst €: grade nochmal nachgerechnet... meinen zahlen nach kommts binär richtig raus. frage ist, ob die vllt anders codieren, um es leichter rechnen zu können das würde die verfälschung/rauschen Dieser Beitrag wurde von stth: 03 Sep 2009, 20:02 bearbeitet
|
|
|
|
|
 04 Sep 2009, 00:52
|

busy office        
Punkte: 1655
seit: 30.06.2006
|
Zitat(stth @ 03 Sep 2009, 19:55) na linksgaehn und rechtsgaehn statt gaehn verwenden  mich verwirrt noch, dass du da keinen graden ton mehr rausbekommst €: grade nochmal nachgerechnet... meinen zahlen nach kommts binär richtig raus. frage ist, ob die vllt anders codieren, um es leichter rechnen zu können das würde die verfälschung/rauschen  Ich hab keine Ahnung, ich kann mir das rauschen auch nicht erklären.
|
|
|
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder:
|