Eli tuli vaan tässä mieleen, että miten tätä http://www.musicdsp.org/archive.php?classid=3
FMOD Ex esimerkkikoodeissa on custom DSP esimerkki, jossa tehdään yksinkertainen dsp joka vaan kertoo äänen amplitudin 0.2:lla.
Esimerkin soveltaminen omaan käyttöön on helppoa.
FMOD Ex systeemissä on myös valmiina vino pino efektejä, mm. EQ ja niistä on esimerkit FMOD SDK:n mukana.
DSPstä sen verran että DSP:hän itse asiassa on vaan funktio jossa on audio sisään buffer ja audio ulos buffer, ja audio ulos bufferin arvo on se mikä loppuviimein tulee torvesta ulos (tai menee toiselle DSP:lle jos niitä on ketjutettu).
Noh, tässä olisi seuraava EQ teko yritykseni. Eli eikös tuon pitäisi asettaa 1600hz pienemmälle?
...tosin minusta tuo ei toimi!
#include <fmod/fmod.h> #include <iostream> using namespace std; int main (int argc, char *argv[ ]) { FSOUND_SAMPLE * son; int kanava; long eqid; FSOUND_DSPUNIT*cdsp; cout << "Aluestetaan...\n" << endl; FSOUND_SetOutput ( FSOUND_OUTPUT_DSOUND ); FSOUND_SetBufferSize(200); FSOUND_SetDriver ( 0 ); FSOUND_SetMixer ( FSOUND_MIXER_AUTODETECT ); FSOUND_Init ( 44100, 32, FSOUND_INIT_GLOBALFOCUS ); cout << "Ladataan\n" << endl;; son = FSOUND_Sample_Load ( FSOUND_FREE, "kit.mp3", FSOUND_HW2D, 0, 0); kanava = FSOUND_PlaySoundEx ( FSOUND_FREE, son, NULL, false ); cdsp = FSOUND_DSP_Create(NULL, FSOUND_DSP_DEFAULTPRIORITY_USER+100, 0); FSOUND_DSP_SetActive(cdsp, true); FSOUND_SetPaused(FSOUND_SYSTEMCHANNEL, true); eqid = FSOUND_FX_Enable(FSOUND_SYSTEMCHANNEL, FSOUND_FX_PARAMEQ); FSOUND_FX_SetParamEQ(eqid, 1600, 0, -15); FSOUND_DSP_SetActive(cdsp, false); cout << "Soitetaan\n" << endl; system("PAUSE"); return 0; }
Noi DSP:t ei toimi kuin software voiceilla eli ota toi HW2D softamiksatuksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.