Seite 1 von 3
Frage an die FMod-Profis ;)...
Verfasst: 17.03.2008 17:27
von Ghosty1967
Ich habe ein sozusagen "frei programmierbares" Software-Steuerpult für Licheffekte geschrieben und hätte nun gerne einen Tipp, ob und wie man mit FMod die Sounddaten unter XP global abfragen kann.
Im einzelnen heißt das, das ich gerne egal welcher Player benutzt wird, die Audiodaten, die die Soundkarte empfängt verarbeiten möchte.
Ich hatte dieses Thema vor längerer Zeit schon einmal angeschnitten, aber dann wieder in die Schublade gesteckt. Da aber nun die Software (bis auf diesen Teil) fertig ist, wollte ich hier nochmal ansetzten.
Ich Entschuldige mich schon jetzt für nen evtl. Doppelpost !!!
Kann mir jemand helfend unter die Arme greifen?

Verfasst: 17.03.2008 18:23
von Fluid Byte
Für das Auslesen der Soundkarte braucht man FMOD?
Verfasst: 18.06.2008 07:45
von Ghosty1967
Sach ich doch, aber irgendwie komme ich nicht so richtig klar mit FMOD!
Ich bräuchte also jemanden, der mir mit der ganzen Sache rund um FMOD ein
wenig unter die Arme greifen kann !
Verfasst: 18.06.2008 08:06
von Deluxe0321
Hallo Ghosty1967,
es gibt ne ganze Menge Wege um zum Ziel zu kommen.
Ich denke mal das du deine Lightshow über ein FFT steuern willst:
http://www.purebasic.fr/english/viewtop ... hlight=fft
Falls du damit nicht klar kommst, kann ich noch mit einer Lösung mit der Bass.dll dienen.
Gruß Marvin
Verfasst: 18.06.2008 13:19
von Froggerprogger
Soweit ich weiß, kann FMOD wie auch die ganzen anderen Bibliotheken (bass.dll, etc.) nur die Sounddaten verarbeiten, die auch aus dem eigenen Programm heraus mit der jeweiligen Bibliothek abgespielt werden, nicht aber die irgendwelcher beliebigen anderen Programme. Dazu müsstest Du dann direkt in DirectX oder MCI oder ASIO oder wie das alles heißt mal suchen, wie du da an die Daten rankommst.
Verfasst: 18.06.2008 14:09
von Deluxe0321
@Froggerprogger
Mit deiner Annahme liegst du zumindest für die Bass.dll falsch. Es kann ohne
probleme der Input ausgewählt und davon aufgenommen werden.
Wie es mit FMOD steht kann ich nicht sagen, aber da der Funktionsumfang
um einiges größer ist, denke ich das es auch möglich sein sollte.
Verfasst: 18.06.2008 20:00
von Froggerprogger
@Deluxe:
Die Soundkarteneingänge können natürlich auch gelesen werden.
Aber kannst Du mithilfe der bass.dll die gegenwärtige Soundausgabe eines laufenden Winamp-Players und einer Internetflashanimation und des Mausklicks, etc. (also genau das, was beim User egal von welchem Programm ankommt) auslesen und weiterverarbeiten? Das ist ja das, was Ghosty will. Sein Programm läuft im Hintergrund, und egal, welchen Player, etc. der User nutzt, alles was er hört, soll in seinem Programm verarbeitet werden.
Verfasst: 19.06.2008 02:00
von Deluxe0321
Es ist schon spät, hoffe mal ich hab dich jetzt nicht falsch verstanden.
Möglich ist es! Kommt nur darauf an wie kompliziert man es sich machen will.
Man stelle den Input auf Wave um (via API, oder einfacher über eine Lib) und
schon kann es mit der Aufnahme los gehen. Mit Wave (bei mir "Was sie
hören") ist nunmal alles gemeint was aus den Boxen kommt.
Wenn eine moderne Soundkarte vorhanden ist, kann auch von 2 oder mehr
Inputs aufgenommen werden. Das ist aber ein anderes Thema.
Verfasst: 19.06.2008 07:08
von Ghosty1967
Danke für die Feeds... das hört sich doch alles schon einmal garnicht schlecht an....
Im Prinzip hat Deluxe0321 schon recht. Eigentlich würde es mir reichen,
wenn man den "Wave" Input abfragen könnte. Bei mir ist es auch so, das
alles, was der Rechner so an Sounds abspielt darüber in der Lautstärke
geregelt werden kann. Also wäre es ja egal, welches Proggi gerade was zu
kamellen hat.
Ich habe aber null Schimmer von der bass.dll oder von fmod. Ich bräuchte
also wirklich Hilfe, wo ich die z.B. herbekomme und falls nötig, was genau zu
tun ist, um diese zu nutzen und eventuell dein paar kleine Beispiele

Verfasst: 19.06.2008 09:04
von Froggerprogger
Dass das mit dem WAVE als input funktioniert wusste ich noch gar nicht. Ist ja cool. Zu fmod (bei bass.dll wird das aber ähnlich sein):
- Lade die api von fmod.org (fmod ex)
- kopiere die DLL in dein Programm-Verzeichnis oder Purebasic-Compiler-Verzeichnis
- schaue Dir mal dieses Include-File an, wenn Du nicht immer mit CallFunction arbeiten möchtest:
http://www.purebasic.fr/german/viewtopi ... light=fmod
- da ist auch ein Beispiel dabei, weitere fliegen hier im Forum rum
- in der fmod-api gibt es irgendwo ein Beispiel-source namens record oder so zum Aufnehmen und wiedergabe der Aufnahme
- auf dem Wiedergabekanal muss nun nur noch die FFT (ist bei fmod als Funktion mit dabei) angewandt werden.
- ggf. die Summenlautstärke auf Null ziehen, da ja sonst WAVE -> FMOD -> WAVE -> FMOD - Rückkopplung