I am working on 3D sound with ParamEQ FX. 3D sound works, but I am having difficulty getting FX to work with this. Since I am using the fmod4java api I’m not sure how much use posting my code here will be, but I have a couple of questions.
I am initilaising FMOD with mixrate 44100, maxsoftwarechannels 32, and flag ENABLESYSTEMCHANNELFX. I am loading a sample with the HW3D and ENABLEFX flags. I have set the buffer size to 200. I am using DirectSound.
I am not sure whether I should be enable fx on the SYSTEMCHANNEL or just on a free channel. I am getting problems on the fx enable call.
Do I need to use DSP units here? I have looked at the documentation and tutorial but I am still confused as to what they are.
- jhewer asked 11 years ago
Thanks for getting back to me. I have read the tutorial, and after following your tips, I’m still having some difficulties. Like I mentioned before I’m using the fmod4java api so posting my code probably isn’t much use, but what I’m now doing is:
initilaising FMOD with mixrate 44100, maxsoftwarechannels 32, and flag USEDEFAULTMIDISYNTH
loading a sample with FSOUND_FREE and Modes HW3D & ENABLEFX (should i be ANDing these flags or adding them?)
i let fmod find me a free channel
i use PlaySoundEx to play my loaded sample on this channel, initially paused and with a DSPUnit DrySFXUnit of priority USER+100. if i don’t use a DSPUnit it doesn’t make a difference anyway
i call the fx enable function on the channel handle returned by PlaySoundEx with the PARAMEQ fx mode flag
i then unpause this
My code fails at stage 4, at the fx enable call. since i’m using a java api, i’m not sure how much use the exception error message is, but anyway it is ’14 – An invalid parameter was passed to this function’
I really need to get this working asap so if you have any ideas that would be great.
Thanks for all you help,
i’m still having problems
i’ve read the dx8fx tutorial and have done the same except using parameq rather than echo and using the fmod4java api (which shouldn’t make a difference?)
fmodEx isn’t really an option since i am only using fmod to create a cool demonstration of my final year project at uni which is fingertip tracking using a webcam, and i don’t really have time to start over again with fmodEx and use JNI in Java.
1) in the dx8fx tutorial it creates two enable echo handles, is there any particular reason for this?
2) when i load my sample, do i need to AND, OR or add the HW3D and ENABLEFX flags?
NB – i have tried HW2D like you suggested but the fx enable call still raises an exception.
3) you asked whether my sample is too small, well its a 6 minute mono mp3, so i dont think this is too short, but are there any other restrictions on file type which might explain why i cant enable parameq fx on my channel with this sample loaded, but paused, on?
my directx and sound card drivers are fully up to date, and there shouldn’t be any problems since i have recently formatted my pc and done a clean install.
thanks so much for your help,
still no luck
i have tried opening the mp3 as a stream instead, i then invoke playex on it passing a free channel, my drysfxunit and start it paused. error raised on the FX enable function again.
any more ideas?
thanks again for your help,
i made a stripped down version of my program and have managed to get FX enabled (i haven’t tried changing the FX yet tho), however i’m still having problems in my actual program, so there must be some other stuff i’m doing whihc is causing problems. the only other stuff i’m doing really is to do with three d sound – could this be causing problems, or does three d sound work exacly the same with streams as it does with samples?
thanks again for all your help,
ignore my last post, i think its all working now 😀 thanks for all your help
do i need a seperate FX handle for each of the seperate frequency bands i want to set gains for, so that the seperate gains are applied on top of each other rather than just one at a time? if not, how would i do this?
thanks ever so much again,
Please login first to submit.