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 15 years ago
[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 😕
Ah, before I forget… some sort of dynamic limiter/compressor would rock. A good use would be setting it up on your background music channel(s), and then hooking the input up to the channels used by voice playback… then, when people talk, the music would be compressed and get quieter so you can always hear voices without them being unnecessarily loud. A few games do this and it’s an excellent effect, very good on the ears. Dunno how difficult that would be though ^_^
I think it might be easier on you if you change the way your DSP plugins work (the built in ones at least), by having each DSP plugin or group of plugins in a seperate dll (fmod_reverb.dll, fmod_flange.dll, etc) so that people who don’t want DSP effects get a smaller FMod.dll, and those who do can pick and choose which ones to include. That would probably make it easier on people distributing custom DSP plugins, because they could just give out an fmod_.dll and a coder can just do something like LoadDSPPlugin(“fmod_whatever.dll”) instead of having to set up their own callbacks.
[quote="brett":3gbs0sb2][quote="Paranoid_Android":3gbs0sb2]I know in the current version of FMOD getting the length of a mod file is impossible without an incredible ammount of computation and such. Will FMOD 4 be able to calculate the length of a mod file in a reletively short ammount of time?[/quote:3gbs0sb2]
just re-reading some of these older posts, it looks like exact mod length calculation has been included when i originally said it wouldnt :D[/quote:3gbs0sb2]
You said we wouldn’t get sound shaders, either. 😀
If I ask for realtime physical modeling of instrument contours for tone generation, and you say no, does that mean we’ll get it later, too? 😀
- Janus answered 13 years ago
Awesome, DSP and file format plugins will own. It would be pretty cool to have a whole collection of DSP and file format plugins for use with FMod.
BTW, have you considered removing some format support from the main library and moving it into plugins for FMod4? For example, formats like WMA/ASF? That would cut down on the size of the actual library, and since WMA/ASF have issues with FMod that means few people use them anyway…
That would be great:
1 : Full MP4 and AAC support! at least AACv2
2 : Winamp Input PlugIn support
3 : Encoding output support, e.g. to serve network streaming capabilities
4 : Optimized Pitch and TimeStreching routines!
5 : ALL samples also in C# 😉 e.g. the goods once are still missing, e.g. dsp_dev or dsppluginviewer !!!
KarlKox already ask about this in this thread
will it be possible to read some samples ahead (the samples that aren’t yet played….) or do i have to put read ahead code into a stream_callback ?
it would be nice for visualizing. or gap detection…
I just though about portability of opening CD audio discs.
Wouldn’t it be much better to have something like “CD:01” to open 1st CD drive instead of opening drive letters? AFAIK there are no drive letters on platforms other than Win32/Win64.
Apologies if someone has already raised this but do you plan on modifying the names of items to load in the event library (eg, EventSystem::load())?
If not is it possible to change these to const char * parameters in a future release as it makes it annoying to use with std::string. I consistently have to use const_cast<> to pass strings from our configuration system.
- deighvyd answered 12 years ago
[quote="brett":fzxwhvm6]- “SoundShaders” are now on the feature list, a new technology we are developing that we hope might become a standard. Think ‘pixel shaders for sound'[/quote:fzxwhvm6]
I would love to be involved in the development process for this, I’ve done a bit of work on a similar idea in the past and would at least really like to see how you’re doing it.
[quote="brett":34hn8060]• Advanced loop point system
Loop points are replaced with an advanced multipoint logic system. You can make a sound loop between certain points for x number of times, then jump to another set of points and do the same, etc.
Key-off and sustain are included in this system.
These will most likely be handled by sound shaders. [/quote:34hn8060]
This reminds me, one thing I have been dreaming about, is the ability to split a longer looping sound into smaller segments (grains?), and play them back in a random order. This would greatly help in making loop sounds (like car engines) less repetitive without having to use longer samples that waste memory.
Alternately, if I have a longer looping ambient sound (like rain), the same trick would help, if the 20-second rain sample was split into, say, 1-second segments played back and stitched together in random order.
Will this advanced loop point system make it possible, or should something like this be implemented separately?
I know there’s been a feature lock down here, but I remember some talk
in the forums requesting loop counting (i.e. instead of having just “play once”
and “play infinite”, having a “play ‘n’ times” as well)
Are there plans to add this in? I think it would be a handy feature.
OK, maybe this is a stupid idea.
OK, maybe this isn’t even possible.
Is it possible to just pass a .cda file to FSOUND_Stream_Open
to let a CD track play?
FMOD could internally check if the drive the .cda is located is a CDDrive.
This way loading local stream files and CD tracks can be more unified.
Please login first to submit.