Seite 1 von 1

FMod linke/rechte lautstärke!

Verfasst: 11.09.2007 11:58
von R4z0r1989
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!

Verfasst: 11.09.2007 12:25
von a14xerus

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

Verfasst: 11.09.2007 12:33
von R4z0r1989
hmm ich versuchs gleich mal aber glaub pan gibt mir nicht das was ich wollte...

ich meinte damit mehr oder weniger dass ich das in dB haben wollte!

also nicht die gerade benutzte einstellung sondern so ne art, wies in winamp heist: "beat visualizion"!

EDIT:

Habs mir schon gedacht...
gibts wohl ned!

Verfasst: 11.09.2007 14:51
von roherter
ich meinte damit mehr oder weniger dass ich das in dB haben wollte!
Was ist db????

dB

Verfasst: 11.09.2007 14:55
von R4z0r1989
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!

Verfasst: 11.09.2007 15:32
von Zaphod
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.

Verfasst: 11.09.2007 15:41
von R4z0r1989
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

Verfasst: 11.09.2007 15:56
von Froggerprogger
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.

Verfasst: 11.09.2007 16:10
von R4z0r1989
ja ne ich benutz fmodex!

und wie ichs mir gedacht hab is der befehl darin nicht enthalten!
und sowas ähnliches gibts ned oder heist er nur anders?