Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Convolotr. not working when compiled w/o SSE2

Help
Tavo
2011-01-12
2013-05-28
  • Tavo
    Tavo
    2011-01-12

    I've compiled rakarrack 6.1 in an AthlonXP and I have found that the Convolotron filter doesn't change the sound at all, it is like if it wasn't there.
    I know how it should sound since I've tried rakarrack compiled with SSE2 in other machine.
    The distorsion and overdrive filters don't seem to work either.
    Is there way to fix it?
    Thanks in advance!

     
  • Transmogrifox
    Transmogrifox
    2011-01-16

    Probably is a way to fix it, but since I don't have an AthlonXP we will have to rely on you to give us clues.

    First question : Have you eliminated the obvious - for example, is Rakarrack active (master bypass switch lighted).
    What is the cpu usage when Convolotron is active on the AthlonXP?
    Do you get xruns when you change to a preset using Convolotron?

    What is the clock speed on your processor?
    Have you disabled cpu-freq scaling, or set governor to performance?

    Does it make a difference to compile it without SSE?  Have you tried a version from your package manager or other pre-built package?

    What version of jack?  What kernel?  What Linux distribution?

    There is very little I can deduce from what you have told me so more information is needed.

    My first guess (a stab in the dark) is the CPU is maxed out and maybe Rakarrack is just getting left behind.  Normally you would hear glitches or nothing at all, but maybe you have your sound card mixer settings so there is dry signal pass-through.

    There is no way internally Rakarrack can bypass an effect like that so I don't know if there is anything we could change to fix a problem which may be related to bigger systems upon which depend (jack, Linux kernel, gcc) unless we find we are using those systems incorrectly.

     
  • Tavo
    Tavo
    2011-01-22

    Well, I don't know why, but the convolotron effect is now working (or at least doing something), still I'm not sure it's working correctly, since it does sound different than what I hear using anoher machine that has the SSE2 build.

    I'm using Ubuntu 10.10, jackd version is 0.118.0 and the kernel is 2.6.35
    My cpu is a AthlonXP, a single core running at 2100 mhz, and doesn't have cpu-scaling enabled. I compiled it with SSE because it doesn't support SSE2, the one in the Ubuntu's repositories is compiled with SSE2 and doesn't run in this machine.

    What I find strange is that when using, for example, the "Hard Rock Amp" preset (that uses Convolotron) I have no xruns at all, and the cpu usage is always below 50%

    With the same preset and the SSE2 build running in an Intel Core Duo 1833mhz (that handles better than the Athlon any video/audio application I throw on it) I get plenty of xruns and CPU usage is near the 100%

     
  • Transmogrifox
    Transmogrifox
    2011-01-22

    Hmmm…  I will attempt to compile with only SSE and see what happens on my Intel P4 (is the closest I can try). 

    Here is my guess:
    A 2100 MHz CPU w/ single core and only SSE is probably not able to handle the processing requirements with Convolotron default settings. Rakarrack has a check in /proc/cpuinfo for bogomips when it starts.  Convolotron will start in Safe mode, and the Length parameter internally is forced to something really short so it doesn't crash you CPU.  When that happens, then it doesn't sound like anything because it's only processing the first 5 ms of the IR.  If you uncheck Safe on the Convolotron then adjust length to more than 70ms, it should sound correct, but be careful because you can easily crash your CPU with it.  A safer way is first:

    Go into the settings->preferences->audio tab and set convolotron and reverbtron downsample settings to less than 16000. Use "fastest" for down,  and "linear" for up.  This will help for sure on your Intel, and I am curious if it makes a difference on the Athlon.

     
  • Tavo
    Tavo
    2011-01-23

    Convolotron wasn't in safe mode, and length was already at 72, so I tried something different, I pushed the downsample settings to the max, restarted jack and rakarrak and then there was a huge amount of xruns, so it IS doing something.

    I'm starting to wonder what's the real sound of this filter, perhaps I was underestimating my old AthlonXP, which was doing just fine and the problem is in the other machine (and the SSE2 build, that uses more than 2x the CPU). I don't have it with me now, but when I can I'll try the SSE build there.

     
  • Transmogrifox
    Transmogrifox
    2011-01-23

    It's a strange thing because the convolotron code internally is one of the most simple - just multiply and add…millions of times per sample :/

    Is your other machine 64-bit?  Maybe there is something different about how floating point numbers are handled between the 32 and 64 that I don't know about…but that is unlikely.

    Convolotron convolves the input signal with a real recorded impulse response (we put amplifier cabinets in default presets because this is usually what a guitar player wants to use it for).  As long as the mix is all the way wet, it should sound very similar to playing through the cabinet selected (depending on your headphones or speakers) -- as long as downsample is above 22050 then the resampling will have a small effect on the sound.  Lower Downsample settings will make it sound darker.

    I have heard the Athlon processors do have hardware that is better optimized to visual and audio DSP applications…