SIMD code for Timidity++

Developers
Yale Zhang
2011-05-13
2013-05-08
  • Yale Zhang
    Yale Zhang
    2011-05-13

    Fellow developers,

    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?

    Yale

     
  • Andrés
    Andrés
    2012-05-10

    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.

     
  • Andrés
    Andrés
    2012-05-10

    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.