Hello Mihail Zenkov, Question to others on the list: Anyone have an application using a new_fluid_*_audio_driver2() call?
On Wed, 2006-11-22 at 02:57 +0200, Mihail Zenkov wrote: > But it have big overhead: many buffers, many purposeless copy of memory. > Yes you are right and I wanted to axe it myself. Not sure what the original author, Peter Hanappe, had in mind when he added that. I would guess it is to allow applications using FluidSynth to get their fingers on the audio data and do other processing before it goes out to the device. I suppose the other option is to make it to where if the new_fluid_*_audio_driver2 functions are used they could do the extra copy and if the regular new_fluid_*_audio_driver calls are used then the more efficient single conversion could be done. Therefore backwards compatibility would be preserved and the normal case would be more efficient. > > - I removed the roundf calls since they seem to require a special > > -std=c99 compiler switch, which makes me doubt it works in Windows. > > Without roundf() 0.5f (or 0.9f) = 0. > We can do dithering without roundf(): > - d = rand() / (float)RAND_MAX - 0.5f; > +d = rand() / (float)RAND_MAX * 2.0f - 1.0f; > but it have worse THD. Not sure I quite understand your argument there (I'm OK at math, but not great :) I'm ready to take your word for it, but.. >From what I can see: The random table contains values between -0.5 and 0.5 (well actually its the difference between a new random value and the previous, which seems weird to me, since the numbers are supposed to be random anyways). These are then added to the floating point sample values of the audio. roundf() would round the value to the nearest integer away from 0, whereas an integer assignment would just truncate it. Adding 0.5 and then truncating the fractional result would be the same as rounding though, correct? (Except it wouldn't be always away from 0, but instead to the lower integer). Anyways, if we can find a solution that works across Windows/Linux and Mac OSX I'd be happy :) > It not very complicate. Just set gain very low (0.0001) and set maximum > loudness in amp and mixer ;) > Will give that a try! > > I did discover another bug in the process. There seems to be a rather > > explosive audio problem with some instruments played at very high notes. > > I suspect a filter issue (there were several similar issues in the > > past). Not sure at this point how to fix it though. > > I try reproduce this tomorrow. Can you describe way to reproduce this > (sound font - better link to download, instrument, other settings)? > Yeah, I'll throw together some example. Its not related to your patch though. If you wanted to check it out though, I'd be happy to provide an example case. Best regards, Josh _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/fluid-dev