Looks great already!
Don’t know if that was already planned, but dsp callbacks should also retrieve the exact time of the first sample that is passed to the callback.
Especially for current stream dsp’s, it’s really hard to synchronize them visually because you don’t know when the sample you are currently being processing is to be played.
It might also be usefull when you want to reproduce the exact same effect (for music generation tools this is really important)
It would be really cool if all these dsp’s were already included with fmod, but make sure they can be used on each individual channel/stream, and also on the final mix output.
(Not the same way as the spectrum dsp in fmod 3)
In what modes the 4-channel sound will actually be available?
Traktor dj has a 4-channel mode that works with WDM drivers, and BPM Studio has a 4-channel mode that only works with ASIO drivers.
I assume 4-channel mode is just not possible with basic DirectSound?
I don’t know if this is possible, but being able to accurately synchronizing multiple sound cards would also be a great feature (so comparing the actual playing time of two songs on different sound cards).
For the equalizer dsp I have some cool code that works really great (has low-shelf, high-shelf, low-pass, high-pass, notch,) and works quite fast.
The Low and High shelf are as easy as specifying a frequency and a number in dB to increase or decrease the lower or higher frequencies.
If you need this code, you only have to say it.
- Adion asked 16 years ago
I noticed this line in fmod.h
[code:1dp6et8x]FMOD_OUTPUT_WAVWRITER /* All – Writes output to fmodout.wav */[/code:1dp6et8x]
Will this always write to a file called fmodout.wav or will we be able to specify the filename that it writes to?
There was also this small typo
[code:1dp6et8x]FMOD_CAPS_OUTPUT_FORMAT_PCMFLOAT = 0x00000040, /* Device can output to 32bit integer PCM */[/code:1dp6et8x]
That should read “32bit float”.
Question about FMOD_MODE. It states that FMOD_3D is the default and overrides FMOD_2D. FMOD_2D states that it overrides FMOD_3D. Then you have FMOD_NORMAL which is the default sound type that specifies FMOD_2D. Does 2D override 3D or 3D override 2D? They cannot override each other. And is 2D or 3D the default?
I just saw mention of [url=http://flac.sourceforge.net:2c719ivr]FLAC[/url:2c719ivr] (Free Lossless Audio Compression) on Slashdot in regards to [url=http://phish.com:2c719ivr]Phish[/url:2c719ivr] and their music download service [url=http://livephish.com:2c719ivr]livephish.com[/url:2c719ivr]. Phish are now using FLAC for their music download offerings. FLAC is also now part of Xiph. Since you already support Ogg Vorbis, will support of FLAC be an easy addition to the library? Or will it be automatic with updates to the Ogg libraries?
Yeah, it is indeed there at least from Win98.
Well it ain’t much work, so I think Brett will say, ok you coders than do it yourself.
And you know, a API that says, CD-Tracks have to be accessed like this on platform A, but like this on platform B is not really a clean API.
I think we need to code it ourselves, to support those .m3u files created
with WinAMP that contain entries like D:\Track01.cda
watching the feature list I saw the possibility to synchronise more than one Soundcards in one PC.
We are currently developing a prototype for a hardware streaming client that should support a so called ‘party mode’, i.e. synchronised play of WLAN connected clients. We are thinking about implementing adaptive mechanisms to guarantee synchronity. Thererfore we would need the possibility so speed up / slow play to keep clients synchronized. Is that possible with fmod4?
In the feature list “Sample accurate seeking by PCM value ” is suggested for synchronity of samples. But if I do (brute) force synchronity by seeking it could produce ‘click’ sounds over the speakers, or am I wrong?
How are MOD files supported in FMOD4 now? I’ve gathered from other posts that the samples in a MOD file are now called SubSounds, but what about Patterns, Orders, Rows, and (a concept I believe is missing from FMOD3) SubSongs? Can I still jump to a given Order, set the master volume or speed? Can we still setup Order, Row, and Zxx Callbacks? If so, how?
I hope these are unfinished features that aren’t being dropped from the feature set, since MOD files provide an extremely file efficient manner to deliver alot of music content. (Especially in my case with downloadable games.)
- DWalker answered 14 years ago
[quote="Adion":2ixfns6h]Well, I think it’s definately there longer than XP, may be that it was already there in win95, but I’m not sure of that.
Anyway, I don’t see why it wouldn’t be possible to support this in the same way, even though it isn’t there on all platforms.
Basically it doesn’t seem a lot more work than just looking up driveletter and tracknumber whenever the extension is .cda[/quote:2ixfns6h]
Agree, it is a window concept (not only xp) and i managed to successfully add .cda file support for my old player, it is a very easy task. (just retrieve the fill path)
1) Can add a “search” function like BPM has? It is as a “searcher” to find the exact place where to begin to play, this makes a continuous loop of some ms in the place where it is positioned. I proved making it with a Timer and also with “FSOUND_Stream_SetLoopPoints” but it is not very precise.
2) I can download a test version of Fmod4?
- LeoCombes answered 14 years ago
A few ideas:
Native COM bindings for use in VB (could probably be made in a couple hours of work in VC)
.NET bindings? (Dunno how hard it would be, I have VC# but I haven’t used it much… you’d definitely be gaining some ground there as most audio libs don’t work in .NET)
Some sort of dynamic audio filtering system (Where the user creates a ‘audio shader’ of sorts out of a set of predefined ‘instructions’, which are inserted into the actual processing loop in realtime… self-modifying code is neat.) Of course, that would be insanely difficult, but it’s something I’ve been wanting to develop for a long time.
Would it be possible to get internal resampling features for sound? I.e. if you’re using FMod for CD Ripping, you could have it resample to 22khz 8-bit stereo samples in realtime as it rips… It might be nice, albeit not very useful.
Kernel-based DSP filter… similar to how graphics programs allow you to create custom image filters by specifying a 2d filter kernel… perhaps a DSP plugin could be made that runs on a 1 dimensional filter kernel?
A ‘disk writer’ dsp unit, similar to how Winamp has a disk writer output plugin? Something to record sound output in realtime?
The ability to use custom EAX filters on EAX compatible cards, maybe? I’m not even sure how difficult that is in pure code, let alone a library, but hey.
The geometry engine sounds awesome, and I actually think it could be helpful for gameplay code too:
For example, if I want to model sound being blocked by walls and such, could I somehow query FMod’s geometry engine to see if a guard at point (x, y, z) can hear a footstep from a player at point (x2, y2, z2)?
Some ideas for the Linux port :
- [url=http://jackit.sourceforge.net:1s7vu7vr]Jack[/url:1s7vu7vr] Output support (Jack is the VST equivalent for unices),
- [url=http://www.ladspa.org:1s7vu7vr]LADPSA[/url:1s7vu7vr] plugins support (DMO equivalent),
- an fmod deamon ? (server side working like artsd or esd)
Other ideas :
- parametrable FFT size (get 512/1024/2048 or > for the fft unit)
- a prebuffer function,
- a basic resampler (from/to 8 to 48khz or > )
Have you looked at:
“Perceptual Audio Rendering of Complex Virtual Environments”
by Nicolas Tsingos, Emmanuel Gallo and George Drettakis?
The paper is available at:
http://www-sop.inria.fr/reves/personnel … index.html
along with some videos. Is this something you could add to FMOD Ex?
[quote="brett":38snisej]The new DSP engine is cool :)[/quote:38snisej]
Oh yeah? Well I think it’s [b:38snisej]lame[/b:38snisej].
Please don’t hurt me, brett. I was only kidding.
I’m interested. Does this override standard DSP effects, or is it just another link in the chain that syncs two DSPs?
If you want I can definitely build you some good solid COM bindings in time for the actual first release of FMod 4, as long as I can get my hands on the headers for calling it… .NET I might be able to do too.
As for the audio shader thing, I’m quite interested in trying to build such a thing for FMod 4. I’d do it for FMod 3, but I’m not sure if I could pull it off with the way the buffers and such work. I’ll probably mess around with using Lua scripts to manipulate audio buffers sometime in the next week… I’ll let you know how it turns out.
And no, I meant with EAX cards, I wasn’t aware you could use custom EAX filters with FMod… I must have missed it ^_^ I always thought you were limited to the built in filters. I know the kX drivers let you compile EAX filters using some sort of EAX assembly language, and I wasn’t sure if that was possible using standard creative drivers.
When I saw the FMOD Ex descriptions at this forum, I started dancing around because this is what I always needed (wished). And I’ll probably buy a licence in future.
Just a hint to rename/split “Sound Shaders” name to:
– “Audio Shaders” for vertex-like shaders (logic, packer, buffer)
– “Sample Shaders” for pixel-like shaders (single samples)
So people can write AS and SS, just like they write VS (vertex shader) and PS (pixel shader) with OpenGL or Direct3D.
[quote:1cyhylra]Data Driven system for Sound Designers
Data driven API This is an API for programmers. This API simply consists of very limited commands such as
All event behaviour is specified by an external tool, not the programmer. The tool is described in the next point.
Sound Designer Tool
This powerful yet easy to use and flexible sound designer tool allows sound events to be modeled and created by the sound designer. The capabilities would include such things as layering, effects, random behaviour, and stitching of sounds.
This allows for complex audio models (such as a car engine with multiple layers, sounds and effects) to be totally controlled by the author, then all the programmer has to do is call the previously defined set of simple commands, such as SendEvent and UpdateParameter. In the car model cast, the ‘parameter’ in UpdateParameter might just be ‘revs’ or ‘torque’ or some other English type value, rather than a value defined by a programmer.
Network tweaking tool
This allows a user to tweak the audio parameters in a game over the network while the game is running!
A sound designer now gets even more control over the outcome of the audio mix by being able to alter sound parameters such as volume / frequency / randomization etc while the game is running. This will save hours of time instead of the usual routine of testing, quitting, tweaking, recompiling, running. Even with that old method it can lead to mistakes which take several attempts to perfect. Using the network tweaking tool the sound designer can get it right first time.[/quote:1cyhylra]
We are currently developing a similar set of tools on top of fmod374 so this is of great interest. How far away do you think these tools are?
- bencrossman answered 13 years ago
thank you for your hint concerning speedup/slowdown of output. I partly succeeded to sync playing of 2 PCs over network. I implemented it by sending sync packets over UDP and doing a fast dynamic speedup/slowdown of the client but it still has a small asynchronity, although I also took the network delay into consideration (measured with QueryPerformanceCounters). It looks like I have to implement it with RTP. Have you thought about supporting synchronized play of 2 or more clients over network in the next version 😉
If not I will have to implement it by myself 😕
Please login first to submit.