FMod linke/rechte lautstärke!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

FMod linke/rechte lautstärke!

Beitrag 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!
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag 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!
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

ich meinte damit mehr oder weniger dass ich das in dB haben wollte!
Was ist db????
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

dB

Beitrag 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!
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag 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
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag 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.
!UD2
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag 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?
Antworten