I want to write some SIMD code to speed up the interpolated resampling (up to 86% of run time when resample_gauss used). I'm using the timidity windrv with my MIDI keyboard and there is noticeable latency, which I think can be reduced with vectorized code.
To do this, I will only change resample.c, by changing the resample functions to the form:
resample(out_buffer, in_buffer, t0, dt, sampleCount), which will compute out_buffer = in_buffer out_buffer = in_buffer …
I will use SSE2 intrinsics for interpolation.
Will you accept such a patch? Can someone check in my change?
You can just make a patch and upload it to some place in internet. Maybe a blog.
Of course, if you want your patch be applied here officially I guess there will be a discussion because for example I want to use timidity in some portable devices that does not support SSE2. There must be the two algorithm to choose instead only the yours.
Anyway I don't know what you get a lot of latency. You just can try some buffer settings to reduce the latency and without getting clicks. I get a good sound quality without latency but I don't use it to produce instead I generate later the wave files using timidity -Ow
You can check a better synth software like linuxsampler (of course only for linux). Or you can make your own patch and apply it to yourself. It is the freedom of free software.
I'm interested in your patch so if you make it paste here.
We are in year 2012 and I still use timidity, lol. The developing stopped from later 2004. So I guess there are no people developing this.