HILFE!! Short-Werte ... Dringend!
Übersicht

![]() |
JPDBetreff: HILFE!! Short-Werte ... Dringend! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich hab vorher schon geschrieben, aber es versteht glaub keiner was ich möchte. Ich hab ne Audiodatei als RAW-File ... also ohne Header. Davon hab ich 2 Stück. Wenn ich jetzt beide zu ner Mono-Datei machen möchte, benötige ich die Hälfte der Gesamtamplitude. Das geht meiner Meinung nach doch mit Wert/2 ... . Es handelt sich um Short-Werte. Wenn ich mal 2 nehme, funktioniert das ganze perfekt ... nur Übersteuert. Teile ich durch 2 hab ich nur noch entweder 0 oder vollanschlag (32768) ... Mit 8-Bit also Byte funktioniert es mit dem durch 2 Teilen, nur bei 16-Bit leider nicht ... An was liegt das? Währe für jede Antwort dankbar 8) ... mfg JPD |
||
![]() |
JPDBetreff: Was ist falsch an der ganzen Sache? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Print "Test" Print " " filein = ReadFile("C:\test.raw") ;16-Bit Audio RAW fileout = WriteFile("C:\neu.raw") wert1 = ReadShort(filein) x = 10 Print "Teilen durch " + x wert1 = wert1 / x WriteShort(fileout, wert1) Print " " Print "Gespeichert als c:\neu.raw ..." wenn ich anstatt / x ... * x einsetze tuts .. halt total übersteuert ... ich kann mir das selber nicht mehr erklären ... |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
sollte nicht die amplitude des rechten sowie des linken lautsprechers nur auf ein byte verteilt sein? also zweimal readbyte()?
mfg olli |
||
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein ... das ist ne Mono-Datei mit 16 Bit ... also Sample an Sample mit 16 Bit ... wenn ich das ganze Multipliziere tuts ja ... nur wenn ich das ganze Dividiere spinnt das ganze total ... | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach aus x und wert1 floats und es wird gehen.
![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwie gehts mit dem auch net ... frag mich bitte nicht, warum das net geht ... bei 8 Bit gehts doch auch ...
Ich frag mich bloß, wenn ich doch 100 durch 10 Teil kommt 10 raus und nicht 44 oder so und wenn ich 3200 durch den 10 Teil 320 und mein Proggy schreibt was mit 32768 ... also irgendwas stimmt mit der Funktion beim Teilen nicht ... Code: [AUSKLAPPEN] summe# = ReadShort(filein) Teiler1# = 10 summe2# = Float(summe#)/Float(Teiler1#) ausgabe# = summe2# ;+ sonstiges ... :shock: WriteShort(dateiausgabe,ausgabe#) nun ja ... was ist da falsch??? 8) Noch was ... wenn ich das ganze 1:1 Übertrage, also ohne Teilen, kommen die Negativwerte mit. Wenn ich jetzt durch 2 Teile, spinnt auch einiges mit den Negativwerten ... mfg JPD |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] summe# = ReadShort(filein)
summe2# = summe#/2.0 ausgabe# = summe2# Debulog "Eingegangen: " +summe# Debulog summe# + " / 2 = "+ summe2# WriteShort(dateiausgabe,ausgabe#) was kommt heraus? |
||
between angels and insects |
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun ja ... der gleiche Mist ...
es ist nun so: wenn ich angebe, alle Werte über 0 sollen weggelassen werden passiert garnichts ... geb ich aber an: Code: [AUSKLAPPEN] if summe# > 32768 summe# = 0 dann nimmt er mir nur die positiven Teile !?!? Ich dachte bei 16-Bit würde man mit -32768 und + 32768 rechnen, oder rechnet man von 0 - 65536 ?? Ich glaube daran scheitert das ganze ... BlitzBasic ließt glaub mein Shorts irgendwie anderst ein, entweder schon mit dem Nullpunkt oder von 0-65536 ... irgendwas stimmt hier noch nicht ... |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann machs doch selber, 2x read byte, dann nur noch rechnen! | ||
between angels and insects |
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
2 mal Byte? Die 2 Byte ergeben doch den Short-Wert ...
kann es sein, dass wenn BlitzBasic nen negativen Shortwert teilt, eigentlich malnimmt ?? Also 3000 / 2 = 1500 und -3000 / 2 = -6000 .... oder so? Es ist so ... ich habe es hingebracht mit durch 2 Teilen, nur musste ich da wieder nach dem Teilen der negativwerte wieder ca. 64... hinzuaddieren ... was mir seltsam vorkommt ... Ich muss das noch irgendwie rauskriegen ... es kann doch nicht so schwer sein ![]() Mfg JPD |
||
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ahhhhhh!!! ![]() ![]() ![]() ![]() ![]() ![]() 0 = 65536 Ich spinn doch net!?!? -1 = 65535 ![]() ![]() ![]() ![]() Hä? what soll dat? |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
?
ich glaube, wir kennen dein prob nicht! schicke uns einfach deine Datei, und erkläre uns, wie es werden soll, danach schauen wir mal! |
||
between angels and insects |
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch jetzt schon ![]() ![]() ![]() Alle Werte über 0 werden von 0-32768 gespeichert Alle Werte unter 0 von 32769-65536 !!! So und wenn ich jetzt durch 2 teile ist es klar dass nur sche.... rauskommen kann ... klar? Also ... wenn jemand mit Audiofiles und 16-Bit arbeitet, kann so etwas zum Verhängnis werden ... Puh ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
*0.5 versucht? | ||
between angels and insects |
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun ja , es ist so wie ich es gedacht habe !! Das müsst ihr euch geben ...
Code: [AUSKLAPPEN] summe# = ReadShort(filein) Teiler1# = 3 If (summe# > 32768) And (summe# <65537) Then summe# = summe# - 65536 summe2# = Float(summe#)/10 ![]() Nun hab ich auch negativ-Werte! Und jetzt klappt es auch ... |
||
![]() |
JPD |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich muss nochmal was sagen ...
hat von euch schon mal jemand nen echten Sinusgenerator geschrieben? Welcher keine Oberwellen im Frequenzspektrum erzeugt? (5 Stunden arbeit) ... ne Amplitudenmodulation (2 Stunden arbeit) ... Laustärke von 16-Bit-Audiofiles halbieren (10 Stunden) ... OK, ich habs selber hingebracht ... trotzdem danke erstmal ![]() Mfg J.P.D |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group