0
0

Excellent, all prior crashes/pops, and other issues seem to be completely resolved with this version ๐Ÿ˜€

Now, onto something else ๐Ÿ˜‰

When I call getLength on an internet stream (such as shoutcast stream), it returns 0x05ce13bc .

Is this a correct value to return, and can i test for this to know that there is theoretically no end to the stream? Or is it supposed to return 0xffffffff or something?

Cliff :)

  • You must to post comments
0
0

I’ve been having a problem with this beta. Some streams don’t play properly. It appears to happen on specific wav files, but the files themselves are fine.

I’ve emailed a 100% reproducable case to support@fmod.org. Afterward, I tracked the cause down to the wav file size. Seems there is some interaction with the file buffer size and the size of the wav file in the new streamer.

A 31,166 byte wav with a 32768 byte file buffer size messes up. Setting it to 32767 or 32769 fixes it, but moves the file size problem. I hope this gives you enough to track it down ๐Ÿ˜€ .

  • You must to post comments
0
0

[quote="Adion":1hzpe63f]It seems that with this version, I am missing about half a second at the start of a song when using readData.
Even when I add seekData(0) just after loading the song, readData keeps starting from some time after the start.[/quote:1hzpe63f]

I wonder if your problem is related to a buffer problem originating with the first beta build–and possibly earlier.

For example, in beta 14 I had to implement a channel and force FMOD to seek to an invalid pcm position before calling ReadData; otherwise the first ‘read’ was always contaminated with pcm data from recent positions.

What happens when you change the size of your ReadData operation? Are you always missing 0.5 seconds? And, are you really missing 0.5 seconds of data, or is it that your returned data include 0.5 secs of leading silence?

  • SD
  • You must to post comments
0
0

I’ve done some more testing:
I use following code to set up the buffer sizes:
[code:3d5oaa5u]fmod_system->setStreamBufferSize(16384, FMOD_TIMEUNIT_RAWBYTES, 32768, FMOD_TIMEUNIT_RAWBYTES);[/code:3d5oaa5u]
When I remove it, the time that I miss at the start increases.

I request data from fmod at 2048 bytes at a time, which is a lot smaller than the amount of time I’m missing at the beginning of the song.
When I reduce this value however, the time that I’m missing gets smaller, so when I set it to only read 32 bytes, I only seem to miss less than 100 ms.

There’s not always data missing. When I load the same song again after the first time, they are usually complete. It’s not only with the first song that I load in fmod however, when I load another song it usually also has some data missing.

It’s not silence, it’s really a part that has been skipped.

The loading of the song and the readData calls happen in a different thread, so at first I was thinking that the reading started too early or some other mistake at my side, but I checked everything, and the reading can definately only start after all initialization is complete.

  • You must to post comments
0
0

It seems that indeed most bugs are fixed now, but I still have been able to found one :)

When I start a stream using PlaySound, it always immediately starts the stream, even though I pass paused=True to the function.
Even checking the pausedstate using getPaused, it returns me that the stream is paused, however I can hear it play, and the position also advances.

When I call setPaused after that it pauses as expected.

I’m using visual basic, maybe that has something to do with it?

  • You must to post comments
0
0

[quote:1u53x0lt]Also, I’m having problems with Channel::SetPaused in VB, and from my investigation so far it seems to be because of the Boolean data type. From what I remember, VB’s Boolean is actually a signed short – is this the same as the Boolean that FMod uses? I didn’t notice this problem at first, because of the bug with the paused parameter being ignored in playSound, but when I manually pause a channel, I find that FMod Ex ignores me when I try and unpause it. [/quote:1u53x0lt]

I haven’t been able to reproduce this.

Edit: Just changed the Booleans to type Long in the latest release. Let me know if it still causes a problem

  • You must to post comments
0
0

[quote="Adion":vfw5o63m]It seems that indeed most bugs are fixed now, but I still have been able to found one :)

When I start a stream using PlaySound, it always immediately starts the stream, even though I pass paused=True to the function.
Even checking the pausedstate using getPaused, it returns me that the stream is paused, however I can hear it play, and the position also advances.

When I call setPaused after that it pauses as expected.

I’m using visual basic, maybe that has something to do with it?[/quote:vfw5o63m]

I can confirm this in C++ too..I just thought it was a bug in my code, that I missed somewhere, however this happens for me too. (I use the NONBLOCKING FLAG, if that makes a difference)

Cliff :)

  • You must to post comments
0
0

The declarations for Sound::GetDefaults and Sound::SetDefaults are wrong in the VB header:
Public Declare Function FMOD_Sound_SetDefaults Lib “fmodex.dll” (ByVal Sound As Long, ByVal Frequency As Single, ByVal Volume As Single, ByVal Pan As Single, ByRef levels As Single, ByVal priority As Long) As FMOD_RESULT
Public Declare Function FMOD_Sound_GetDefaults Lib “fmodex.dll” (ByVal Sound As Long, ByRef Frequency As Single, ByRef Volume As Single, ByRef Pan As Single, ByRef levels As Single, ByRef priority As Long) As FMOD_RESULT

Levels is supposed to be a pointer to an array, and brett also said you can pass NULL to ignore it. ByRef as Single prevents passing NULL, and also allows you to pass only one Single value. I suggest changing it to As Any, so that you can pass NULL, and so that it’s clearer that it doesn’t just take one value.

  • You must to post comments
0
0

The generatetone example does not work in C or VB. VB displays an error message about an invalid handle (31, i think) and quits. C just doesn’t do anything.

Also, the usercreatedsound example in VB doesn’t seem to be working right – I get really glitchy audio and pops. It works properly in C, however.

  • You must to post comments
0
0

I just implemented FMod Ex in my engine and editor, and it works great – writing the script API for it was a lot easier than it was for FMod 3, and the code is a lot simpler and more powerful now.

On a side note, it’s apparently possible to crash FMod Ex by calling Sound::Release after releasing the System that a Sound is attached to. I’m not sure if anything can be done about this, but it worked without crashing in FMod 3, and I only noticed now that I had a logic error that could cause it to occur. It might be worth noting that somewhere in the docs, or adding a special assert or check to prevent it from causing a mysterious crash.

Also, I’m having problems with Channel::SetPaused in VB, and from my investigation so far it seems to be because of the Boolean data type. From what I remember, VB’s Boolean is actually a signed short – is this the same as the Boolean that FMod uses? I didn’t notice this problem at first, because of the bug with the paused parameter being ignored in playSound, but when I manually pause a channel, I find that FMod Ex ignores me when I try and unpause it. :)

[b:nzw54s44]Edit:[/b:nzw54s44] Also, the docs don’t mention what the difference is between setVolume and setVolumeAbsolute.

  • You must to post comments
0
0

An error in the Delphi-Version:
[code:3fif7ifa]function FMOD_Sound_GetOpenState (sound: FMOD_SOUND; var openstate: FMOD_OPENSTATE): FMOD_RESULT; stdcall;
[/code:3fif7ifa]must be[code:3fif7ifa]function FMOD_Sound_GetOpenState (sound: FMOD_SOUND; var openstate: FMOD_OPENSTATE; var percentbuffered: Cardinal; var starving: Boolean): FMOD_RESULT; stdcall;[/code:3fif7ifa]I also had to remove two functions with cdrom (getcdromdrivename or something like that) and one function with Geometry in its name, because the application couldn’t find that functions in the dll.

  • You must to post comments
0
0

FMod Ex fails to initialize in Virtual PC. Anything I can do about this? Both my game and all your examples fail to initialize with a couple semi-cryptic errors (32: invalid parameter, and 43: error initializing output device)

  • You must to post comments
0
0

It seems that with this version, I am missing about half a second at the start of a song when using readData.
Even when I add seekData(0) just after loading the song, readData keeps starting from some time after the start.

  • You must to post comments
Showing 12 results
Your Answer

Please first to submit.