0
0

How can i play a sequence (mod/xm/etc) over multiple speakers?

I have a example using version 3.4 who does play on all speakers with only basic settings. Trying the same settings with v3.7.1 it would play only in stereo. How can i have FMUSIC_PlaySong play over all available speaker in version 3.7.1?

  • You must to post comments
0
0

Well, I think I theoretically solved this – you should replace samples of your module by samples loaded with FSOUND_HW3D | FSOUND_FORCEMONO flags in FSOUND_Sample_Load

But there is a problem – when I try to call FMUSIC_SetSample it somehow screws the sample up and it sounds really weird. I tried to solve this, but when I play the sample to be replaced, it sounds ok, and when I put it into mod using FMUSIC_SetSample, it seems that sample shortens a bit and sounds weird… Isn’t it a bug in FMOD?

  • You must to post comments
0
0

Well, I tried it without FSOUND_HW3D, and still sounds weird.

Following proc loads mod in my app, in mods, there are 8bit mono samples with no looping. If this proc is wrong, please tell me where, because I really don’t know what to do to make this work ๐Ÿ˜ฅ

Copied sample plays ok, but when I put in into module, it sounds bad…

[code:nvei3xzv]
procedure LoadMod(FileName:pchar);
var
i,count:integer;
oldSample,newSample:pointer;
module:pointer;
freq,vol,pan,freq2,vol2,pan2,pri,len,mode:integer;
oldLen1,oldLen2:cardinal;
oldPtr1,oldPtr2:pointer;
newLen1,newLen2:cardinal;
newPtr1,newPtr2:pointer;

begin
module:=FMUSIC_LoadSong(FileName);
Assert(module<>nil);

count:=FMUSIC_GetNumSamples(module);
for i:=0 to count-1 do begin
    oldSample:=FMUSIC_GetSample(module,i);

    len:=FSOUND_Sample_GetLength(oldSample);
    if len=0 then
        continue;

    FSOUND_Sample_GetDefaultsEx(oldSample,freq,vol,pan,pri,freq2,vol2,pan2);
    mode:=FSOUND_Sample_GetMode(oldSample);


    newSample:=FSOUND_Sample_Alloc(FSOUND_FREE,len,mode,freq,vol,pan,pri);

    FSOUND_Sample_Lock(newSample,0,len,newPtr1,newPtr2,newLen1,newLen2);
    FSOUND_Sample_Lock(oldSample,0,newLen1,oldPtr1,oldPtr2,oldLen1,oldLen2);

    Move(oldPtr1^,newPtr1^,newLen1);

    FSOUND_Sample_Unlock(oldSample,oldPtr1,oldPtr2,oldLen1,oldLen2);
    FSOUND_Sample_Unlock(newSample,newPtr1,newPtr2,newLen1,newLen2);

    FSOUND_Sample_SetDefaultsEx(newSample,freq,vol,pan,pri,freq2,vol2,pan2);
    FSOUND_Sample_GetLoopPoints(oldSample,freq,vol);
    FSOUND_Sample_SetLoopPoints(newSample,freq,vol);

    FMUSIC_SetSample(module,i,newSample);
end;

FMUSIC_SetRowCallback(module,CallBackProc,1);

end;
[/code:nvei3xzv]

  • You must to post comments
0
0

no, setting loop point using FSOUND_Sample_GetLoopPoints and FSOUND_Sample_SetLoopPoints also don’t work. It seems, that it is problem with sample frequencies, because sample is there, it has the given length and looping but is about three octaves lower than it should be… I used FSOUND_Sample_GetDefaults and FSOUND_Sample_SetDefaults but it seems, sample in the mod is unaffected by this… I really don’t know what’s wrong ๐Ÿ˜•

[code:2jas0jn8]
// module is loaded, file SAMPLE.WAV is the first sample of mod and it still doesn’t work
sample:=FMUSIC_GetSample(module,0);
FSOUND_Sample_GetDefaults(sample,freq,vol,pan,pri);
sample:=FSOUND_Sample_Load(FSOUND_FREE,’sample.wav’,FSOUND_LOOP_OFF or FSOUND_FORCEMONO,0,0);
FSOUND_Sample_SetDefaults(sample,freq,vol,pan,pri);
FMUSIC_SetSample(module,0,sample);
[/code:2jas0jn8]

  • You must to post comments
0
0

Any help pointing me in the right direction would be appreciated. :) I’m totally new to fmod and i have some troubles finding the information i need from the documentation…

  • You must to post comments
0
0

so, is there any solution for this?

  • You must to post comments
0
0

The ‘endless starway’ example from Caleb does play a sequence over both my front and back speakers using a version 3.4 dll. http://people.freenet.de/CalebsSite/ (there’s a executable in the package)

  • You must to post comments
0
0

Well, interesting idea. When will be fmod ex released? Or is there any possibility to get the beta version?

  • You must to post comments
0
0

I’m thinking it’s because of the way DirectMusic is initialized. DirectMusic Producer is able to play sequences over my front and back EAX (stereo) channel. WinAmp is also able to play sequences like this. FMOD however, only wants to play over my front channel.

If your saying FMOD doesn’t support this; it’s no wonder i couldn’t find a way to initialize FMOD this way. :(

  • You must to post comments
0
0

I have to say i’m disappointed :( I’ve asked a friend; he has got the same behavior from FMOD, so it’s certainly not my hardware setup. Could FMOD get this feature in the future?

  • You must to post comments
0
0

Yeah.. I guess I can’t use FMOD then :( Right now I can only play my 5.1 music in reason..

  • You must to post comments
0
0

No, we don’t use this command, the song in the example i’ve posted above hasn’t got such command either. I’ve changed the music file of Caleb’s example(using dll version 3.4) with a couple of other files, i’m sure don’t have this command, and it still plays happily over both the font AND back channel.

So, this behavior of v3.4 is actually a ‘bug’? ๐Ÿ˜€

  • You must to post comments
0
0

My amp has no decoder in it, it’s a simple multi channel amplifier (6 channels). ‘speaker settings’ in windows is set to ‘5.1 surround sound speakers’, ‘digital output only’ is not checked; so my soundcard is configured in a analog multi-line output mode.

soundblaster live soundcard
desktop theather 5.1 DTT2200 amplifier

  • You must to post comments
0
0

sooooo…

  • You must to post comments
Showing 13 results
Your Answer

Please first to submit.