FMOD Output Frequenz Ermitteln

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

FMOD Output Frequenz Ermitteln

Beitrag von Lukaso »

Hallo,

ist es mit FMOD möglich die Frequenz zu ermitteln, die an den Ausgang gegeben wird?

Danke :allright:

MFG Lukaso
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

???
Diese muss doch bei FSOUND_Init() mit übergeben werden, daher ist die doch in jedem Fall sowieso bekannt ?
!UD2
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

Ne, dass suche ich nicht!
Ich möchte z.b. in eine Schleife die Frquenzen des Ausgangs auslesen, die ändert sich ja bei jedem Ton. Mist, schwer zu erklären. Ich erklär mal für was ich es möchte:

Ich habe mir gedacht, ich frage die Aktuelle Frequenz jede milisekunde ab, diese gebe ich mittels Beep_(frequenz, 1) wieder. So könnte ich Theoretisch Musik ausm Internen Speaker abspielen. <)

MFG Lukaso
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

HrHr, du bist gerissen :mrgreen:. Könnte ich endlich wieder mit meinem P1er musik hören :). Aber ich glaube, sowas ist leider nicht möglich. Glaub, den Systemspeaker würde sowas überfordern :(.
Bild
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

MVXA hat geschrieben:HrHr, du bist gerissen :mrgreen:. Könnte ich endlich wieder mit meinem P1er musik hören :). Aber ich glaube, sowas ist leider nicht möglich. Glaub, den Systemspeaker würde sowas überfordern :(.
:lol:

Ne, denke das überfordert ihn nicht:

Code: Alles auswählen

Repeat
  Beep_(Random(16000), 1)
ForEver
MFG Lukaso :allright:
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Wenn das nicht funktioniert kaufst du mir n neuen PC mit nem Pentium 1 Prozessor und 32 MB ram o_O. Mhhh, das klingt geil ^^. Errinert mich an Civilisation 1, wenn eine Einheit zerstört wurde :lol: :allright:. Vielleicht sollte man mal so ein classicer neu auflegen. Dann noch mit TCP/UDP MP modus :allright:.
Zuletzt geändert von MVXA am 09.04.2005 17:03, insgesamt 1-mal geändert.
Bild
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

Naja, die Quali ist nicht so besonderst und ob dein P1 es schafft die Frequenzen auszulesen, ohne zu ruckeln weiß ich nicht :roll:

MFG Lukaso
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

1. Wie willst du mehrere Stimmen gleichzeitig abspielen?
2. Beep hält den ganzen Prozess an!

:)
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

So geht das nicht.
Es gibt keine "Frequenz zu einem Zeitpunkt".
Eine Frequenz ist ja eine "Signaländerung pro Zeit", deswegen kann man nur Frequenzen von Signalverläufen bestimmen.
Dabei lässt sich jedes Signal als eine Zusammenmischung von vielen Sinustönen aller Frequenzen betrachten. Dabei ist die Fast Fourier Transformation (FFT) dafür zuständig, ein Zeit-Wert-Signal in eine Frequenz-Wert-Darstellung (='Spektrum') zu transformieren, man kann dann also für ein festes Zeitfenster die Laustärken der verschiedenen Frequenzen in diesem Zeitfenster sehen.
fmod kann das per FSOUND_DSP_GetSpectrum(), welche jeweils 1024 Samples auswertet, normalerweise also etwa 40 mal pro Sekunde geupdated wird und ein Array mit den Lautstärken der Frequenzen zurückliefert. Suche danach mal in den Foren, da gibt es einige Beispiele.
!UD2
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

MVXA hat geschrieben:Aber ich glaube, sowas ist leider nicht möglich. Glaub, den Systemspeaker würde sowas überfordern :(.
Nur mal zur Info: Vor rund 10 Jahren hat ein damaliger Bekannter
von mir einen WAV-Player für den Speaker programmiert, und das
lief fein.
Die Qualität war nicht sonderlich und die Lautstärke etwas leise,
aber man konnte die Musik erkennen und hören.

War damals aber noch unter DOS mit direkter Speaker-Programmierung,
486er oder kleiner Pentium.

Bei Beep_() sehe ich schonmal das Problem das die kleinstmögliche
Zeitangabe 1ms beträgt, d.h. es kann nur mit maximal 1000Hz
laufen. Eher weniger, da zwischen den Beeps eben auch noch
Arbeit verrichtet werden muß, wobei das abspielen eines Streams/Buffers
aber nicht viel braucht.

Genaue Infos dazu habe ich nicht, ich kann nur sagen das es
möglich ist - wahrscheinlich aber besser mit direkter Speaker-
Programmierung... und ähm... evtl. mit RealTime-Priorität in
einem Multitasking-OS.

Das Nächste, was der damalige Bekannte gebastelt hatte, war
übrigens einen richtigen Lautsprecher inkl. Lautstärkeregler
(und wahrscheinlich Verstärker?) an die Speaker-Leitungen
zu basteln. Beepen 20mal lauter als der interne Speaker... :D
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten