FMod linke/rechte lautstärke!
FMod linke/rechte lautstärke!
Ich such jetzt seit 3 Stunden einen befehl um die momentane lautstärke (jeweils links und rechts) rauszubekommen!
und hab ihn nicht gefunden...
wenn ihn zufällig von eich einer weiß dann bitte ich drum ihn mich wissen zu lassen...
danke im voraus!
und hab ihn nicht gefunden...
wenn ihn zufällig von eich einer weiß dann bitte ich drum ihn mich wissen zu lassen...
danke im voraus!
Code: Alles auswählen
FMOD_RESULT Channel::getVolume(
float * volume
); //lautstärke ür einen channel
FMOD_RESULT Channel::getPan(
float * pan
); // rechts / links
FMOD_RESULT Channel::getSpectrum(
float * spectrumarray,
int numvalues,
int channeloffset,
FMOD_DSP_FFT_WINDOW windowtype
); // auch sehr nützlich
dB
wenn ich mich jetzt ned ganz täusch dezibel!
Edit:
ich hatte doch rechte!
siehe: http://de.wikipedia.org/wiki/Dezibel
Edit2:
Aber tut ja nix zur sache ihr kennt es doch sicher aus winamp wo die momentanen dB vom linken und rechten sound, visuel dargestellt wird!
Edit:
ich hatte doch rechte!
siehe: http://de.wikipedia.org/wiki/Dezibel
Edit2:
Aber tut ja nix zur sache ihr kennt es doch sicher aus winamp wo die momentanen dB vom linken und rechten sound, visuel dargestellt wird!
Da die tatsächliche Lautstärke vom dran hängenden Equipment und dessen Einstellung abhängt, ist die tatsächliche Lautstärke nicht feststellbar, warum in dem Zusammenhang mit FMOD keiner den Begriff dB benutzt.
Daher das Missverständnis.
Es geht auf jeden Fall mit FMOD, ich habe mich damit aber noch nicht beschäftigt, kann da also keinen Tipp geben, außer sich mal genauer mit der FMOD Dokumentation zu befassen.
Daher das Missverständnis.
Es geht auf jeden Fall mit FMOD, ich habe mich damit aber noch nicht beschäftigt, kann da also keinen Tipp geben, außer sich mal genauer mit der FMOD Dokumentation zu befassen.
3stunden am stück ich kann "sound", "channel" und "system" nicht mehr lesen ^^
aber ich hab auch ne vermutung wie das klappen könnte,
aber ich wüsste nicht wie ichs mit GetWaveData schaffen könnte!
weil da gibet links und rechts aber keine lautstärke angabe!
Edit:
Mir is grad gekommen dass es das bei GetSpectrum auch ne links und rechts angabe gibt aber wie komm ich da auf die komplette lautstärke links/rechts
aber ich hab auch ne vermutung wie das klappen könnte,
aber ich wüsste nicht wie ichs mit GetWaveData schaffen könnte!
weil da gibet links und rechts aber keine lautstärke angabe!
Edit:
Mir is grad gekommen dass es das bei GetSpectrum auch ne links und rechts angabe gibt aber wie komm ich da auf die komplette lautstärke links/rechts
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Bei fmod 3.7 gibt es:
FSOUND_GetCurrentLevels : liefert die gegenwärtige "Lautstärke" auf dem angegebenen Channel als Wert zwischen 0 und 1. (muss ggf. noch in dB umgerechnet werden)
Noch genauer und vor allem in der Summe aller Channel macht man das besser über ein DSP-PlugIn (einfach eine Callback-Funktion), welches direkt vor die Summe in die Signalkette eingehängt wird. Immer wenn ein neuer Buffer zur Ausgabe an die Soundkarte geschickt wird, wird dann diese Callbackfunktion aufgerufen und kann diesen Buffer auslesen und die "Lautstärke" errechnen.
Wenn du die Lautstärke z.B. im Intervall [0.0, 1.0] hast, dann kannst du das auch in dB umrechnen.
1.0 entspricht 0 dB,
x entspricht 20*log10(x) dB, also bspw. 0.5 entspricht etwa -6dB
Dezibel ist einfach nur eine größenlose, logarithmisch gestauchte 'Pseudoeinheit', die sich in vielen Anwendungen besser zum Vergleich oder zur Anzeige eignet, als die zugrundeliegenden physikalischen Werte.
Z.B. entspricht eine Absenkung um 6 dB etwa einer Halbierung (z.B. des Schalldrucks), d.h. wenn man weiß, wie "laut" etwas bei 0dB ist, hat man eine gute Vorstellung davon, wie laut es bei -18dB sein wird. Das geht viel besser, als wenn man die zugrundeliegenden Schalldruckwerte miteinander vergleicht, insbesondere wegen der logarithmischen Stauchung.
Wie das ganze mit fmod 4 geht, weiß ich allerdings nicht, wird aber irgendwie ähnlich so gehen, auch das mit dem DSP-PlugIn.
FSOUND_GetCurrentLevels : liefert die gegenwärtige "Lautstärke" auf dem angegebenen Channel als Wert zwischen 0 und 1. (muss ggf. noch in dB umgerechnet werden)
Noch genauer und vor allem in der Summe aller Channel macht man das besser über ein DSP-PlugIn (einfach eine Callback-Funktion), welches direkt vor die Summe in die Signalkette eingehängt wird. Immer wenn ein neuer Buffer zur Ausgabe an die Soundkarte geschickt wird, wird dann diese Callbackfunktion aufgerufen und kann diesen Buffer auslesen und die "Lautstärke" errechnen.
Wenn du die Lautstärke z.B. im Intervall [0.0, 1.0] hast, dann kannst du das auch in dB umrechnen.
1.0 entspricht 0 dB,
x entspricht 20*log10(x) dB, also bspw. 0.5 entspricht etwa -6dB
Dezibel ist einfach nur eine größenlose, logarithmisch gestauchte 'Pseudoeinheit', die sich in vielen Anwendungen besser zum Vergleich oder zur Anzeige eignet, als die zugrundeliegenden physikalischen Werte.
Z.B. entspricht eine Absenkung um 6 dB etwa einer Halbierung (z.B. des Schalldrucks), d.h. wenn man weiß, wie "laut" etwas bei 0dB ist, hat man eine gute Vorstellung davon, wie laut es bei -18dB sein wird. Das geht viel besser, als wenn man die zugrundeliegenden Schalldruckwerte miteinander vergleicht, insbesondere wegen der logarithmischen Stauchung.
Wie das ganze mit fmod 4 geht, weiß ich allerdings nicht, wird aber irgendwie ähnlich so gehen, auch das mit dem DSP-PlugIn.
!UD2