Linux Audio Performance Troubles

Greetingz Noiselings.

I just downloaded an installed the latest Demo-Version of Renoise to my 1.5GHz, 768MB RAM, Ubuntu 9.10 Karmic Koala Laptop with an USB-Connected external Soundcard “Tascam US-122” and loaded some of the Demo-Songs - result: Beautiful Sound in the beginning, but turning into Crackle of Death (nearly all songs) & CPU-Overload (some songs) as soon as some more Tracks & FX running.

I ran it with JACK and without JACK, without JACK my machine could play slightly more but started crackling a few patterns later.

Result: i wonder if this high CPU-Usage is normal for Renoise, or if my machine is missin’ some config (it runs well with Ardour as long as i don’t use more than about 20 FX simultaneously, it can run seq24 through Fluidsynth and record the result in Ardour for example, but that’s close to maximum CPU-usage).

For example “Demo Song - Hunz - Soon Soon” - has anybody that running without crackle on a machine comparable to mine?

And if yes - what am i missing? Is there some built-in Noise in the Demo-Version-FX or so?

I just recently got into tracking via milkytracker and am totally hooked, so i’m really interested in buying renoise (milkytracker is great, but it’s missing the track FX), but first i need to find out if it can run efficiently on my machine or not.

Yes, i read the FAQs over here: http://tutorials.renoise.com/wiki/Linux_FAQ .

So - anyone with renoise Experience on a comparable machine who can tell me if this Demo can run the Demo songs CLEAN?

Update 1: OK. Just loaded one of my milkytracker-generated .xm-Files and it runs clean with a CPU-Usage of 2%. Still wondering if the crackle-noise comes from some Demo-Version-FX-Limitation or my bad machine-setup.

The demo-version only lacks WAV export and Render to sample option on Linux. Even the Jack Transport is not crippled. So let’s try to get this version on the road at a reasonable pace.

You mention some system specs, but not your CPU vendor (Intel or AMD?) and cpu type (single core, multicore or HT?).
Also 768MB ram is on the low end these days, but that is only an observation.
If you use Jack, you can play around with the buffering. The soundcard drivers, which version are they and are they from the original vendor or do you use optimized drivers from a public Linux library? Do you use soundcarddrivers designed for your soundcard at all? (if you use Ubuntu in native form there is a chance you are using compatible drivers, they usually don’t get the best out of your gear)

Last:you mention it is a laptop, are there specific BIOS settings that you can tweak to turn off CPU energy saving and similar energy saving options?
Applications like Renoise need CPU power at full speed and not levelling for background tasks.

Hi vV,

thanks for having a look into my problem :

The Laptop is an Fujitsu-Siemens “Amilo Pro 2035” running on an Intel(R) Celeron(R) M processor at 1.50GHz.

Snippet of Output of lshw (let me know if you want to see more):

description: Notebook  
 product: AMILO PRO V2035  
 vendor: FUJITSU SIEMENS  
 version: 20  
 serial: YBAP046234  
 width: 32 bits  
 capabilities: smbios-2.34 dmi-2.3 smp-1.4 smp  
 configuration: boot=no-bootable-media chassis=notebook cpus=1 uuid=000DEE58-7D5E-1110-87A1-96C00B2DFDF3  
 *-core  
 description: Motherboard  
 product: AMILO PRO V2035  
 vendor: FUJITSU SIEMENS  
 physical id: 0  
 version: 0.4A  
 serial: 9N7865437  
 *-firmware  
 description: BIOS  
 vendor: FUJITSU SIEMENS  
 physical id: 0  
 version: 1.0B-2313-8A20 (12/15/2005)  
 size: 114KiB  
 capacity: 448KiB  
 capabilities: pci pcmcia pnp upgrade shadowing escd cdboot bootselect edd int5printscreen int9keyboard int10video acpi usb agp smartbattery biosbootspecification netboot  
 *-cpu  
 description: CPU  
 product: Intel(R) Celeron(R) M processor 1.50GHz  
 vendor: Intel Corp.  
 physical id: 4  
 bus info: cpu@0  
 version: 6.13.8  
 slot: Socket 478  
 size: 1500MHz  
 capacity: 1500MHz  
 width: 32 bits  
 clock: 100MHz  
 capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss tm pbe up bts  
 *-cache:0  
 description: L1 cache  
 physical id: 5  
 slot: L1 Cache  
 size: 32KiB  
 capacity: 32KiB  
 capabilities: synchronous internal write-back data  
 *-cache:1  
 description: L2 cache  
 physical id: 6  
 slot: L2 Cache  
 size: 1MiB  
 capacity: 1MiB  
 capabilities: burst internal write-back data  
 *-memory  
 description: System Memory  
 physical id: 15  
 slot: System board or motherboard  
 size: 768MiB  
 *-bank:0  
 description: DIMM DRAM Synchronous 400 MHz (2.5 ns)  
 physical id: 0  
 slot: S1  
 size: 256MiB  
 width: 64 bits  
 clock: 400MHz (2.5ns)  
 *-bank:1  
 description: DIMM DRAM Synchronous 400 MHz (2.5 ns)  
 physical id: 1  
 slot: S2  
 size: 512MiB  
 width: 64 bits  
 clock: 400MHz (2.5ns)  

The Soundcard is Tascam US-122 Audio/Midi Interface and has been installed like this, as far as i remember (i’m not 100% sure if it is really running with the right driver, maybe the Ubuntu 9.10 upgrade somehow automagically took care of it and overwrote my settings, but i doubt that):

Alsa Tools: ftp://ftp.alsa-project.org/pub/tools/alsa-tools-1.0.13.tar.bz2  
Alsa Firmware: ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.13.tar.bz2   
  
 tar xjf alsa-firmware-1.0.13.tar.bz2  
 tar xjf alsa-tools-1.0.13.tar.bz2  
 cd alsa-firmware-1.0.13  
 ./configure --prefix=/usr  
 cd usx2yloader  
 sudo make install  
  
  
 cd alsa-tools-1.0.13  
 cd usx2yloader  
 ./configure --prefix=/usr  
 make  
 sudo make install  
  
 sudo rm -f /etc/hotplug/usb/tascam*  
  
sudo apt-get install fxload  
  
  
cd /etc/udev/rules.d  
sudo touch 55-tascam.rules  
sudo gedit 55-tascam.rules  
write this to 55-tascam.rules and save:  
BUS=="usb", ACTION=="add", SYSFS{idProduct}=="8006", SYSFS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us122fw.ihx'"  
BUS=="usb", ACTION=="add", SYSFS{idProduct}=="8007", SYSFS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"  

So - i guess the Tascam is running on the right driver - but how to verify 100%?

BIOS: Just checked. There aren’t even BIOS-Accessible Energy-Saving-Options (OldSchool!).

JACK-Config:
RT is off - not using RT-Kernel right now (had some troubles with that some time ago).
Played with qjacktctl-Buffering-Setting 2 & 3. 3 is slightly better - the latency goes up though - but i could live with that because i want to use renoise for tracking only, not for recording. Any Vocals would be recorded in Ardour. Maybe i should simply push up the buffering more. Gonna report back on that in 10 minutes.
…10 minutes later…
Mmmh. To stick with the example of the “DemoSong - Hunz - Soon Soon” (seems to be a heavy-load Track, so i can find out how far this machine can go).
With JACK to ALSA to Tascam : Crash-Protection due to CPU Overload after a few seconds.
Without JACK directly to ALSA to Tascam: Is playable but crackles. CPU 40-60%.

With JACK: Maybe JACK needs some different setting, it shouldn’t eat that much ressources normally.
Without JACK: I think 40-60% CPU and 30% Memory Usage should still result in clean playback.

Mmmh…

I had the exact same problem in Ubuntu… Strange thing was that Renoise ran much smoother in WINE.

The newer UBuntu’s from 8.10 are more bloated than the pre 8.x ubuntu editions. I still am running UStudio 7.10 simply for the fact that it only contains the bare minimum and i ain’t upgrading that soon even though 9.x is running steady now -> You have to tweak and remove a lot of stuff that you don’t need for audio production.
Ubuntu Desktop comes with too much overhead of unwanted stuff, i only tried that version once, will never do so again.

Unfortunately the 7.10 bare minimum comes with an environment that makes compilation of up-to-date Ardour-Versions impossible.

I don’t think that Ubuntu is bloating (i might be wrong), with Firefox and Renoise running i got a 90% idle CPU. My memory is quite low though - with 5-Tabs-Firefox and Idle-Renoise running “top” looks like this:

Mem: 701804k total, 671248k used, 30556k free, 70728k buffers  

Actually many things in Ubuntu are way faster now then they used to be - and as i said - i’m running Ardour daily, recording two Tracks simultaneously without problems and can use a lot of FX (depends on the FX, but to give an example on the Maximum of LADSPA-FX i can use without problems in Ardour: 4 x SC4 Stereo Compressor, 4 x CPlate2x2 Reverb, 1 x CPlate Versatile Reverb, 3 x TAP Chorus/Flanger, 2 x TAP De-Esser, 4 x Fast LookAhead Limiter, 8 x LS Filter, 1 x TAP Equalizer, 1 x C*Phaser I).

I’m gonna try some Renoise-Production the next days and will report back on how fast i’ll start to hit limits, as i’m still used to Milkytracker i’m already very happy with a little Reverb on the Melody-Instruments, maybe a little on the Snare, then a little Compression, phasing and flanging on Beatloops, a bunch of FX for the Voice - Crrrrckzzz… Ooops :]

Actually i want to produce mostly instrumentals with Renoise and add voices later in Ardour… …but as soon as i start to play around more with Renoise that might change… …so… …i need a bigger, better, faster machine: “Why does it always have to end in this conclusion?”

But even this conclusion leaves some questions open:

  • Why is Renoise dying faster with Jack than without Jack on my system and how could that be solved?
  • Is there really a way to speed up my Ubuntu 9.10 except using a different Window-Manager than GDE?
  • Can i run the “Demo-Song - Hunz - Soon Soon” on my System without crackle?

Is it really only GDE or is there also something more intense running somewhere in the background?
Ardour doesn’t use the GPU card to render their GUI, Renoise has a complete internal controlled GUI.
Regarding Jack dying out:
Have you tried disabling pulse-audio? (if you are using Jack, you don’t need pulse audio, perhaps it even gets in Jack’s way)

Hi vV,

i just mercilessly removed pulseaudio (sudo apt-get purge pulseaudio gstreamer0.10-pulseaudio).

Rebooted.

Started JACK. Started Renoise. Loaded “Demo Song - Hunz - Soon Soon”. Started Playback. The CPU-Usage-Indicator in Renoise went up a little bit slower then before and the Track plays crackling, then the Overload-Protection comes in with its Message-Window and something strange happens: while the Overload-Protection-Message-Window is showing the sound keeps on playing in the background - NEARLY CLEAN. If i close that Message-Window it goes back to crackle and CPU-Indicator starts at 0 again, rising quite quickly and so on…

… disabled the Overload Prevention and this happened: Crackle and CPU rising to 100% and keeps playing crackly. So i turned the Overload Prevention back on…

…but now the strange behaviour mentioned above can’t be reproduced.

Gonna look for an RT-Kernel now.

Jonobo: If its just about getting played “Demo Song - Hunz - Soon Soon”. This song, as many in the Demo package, use tons of DSPs. A realtime kernel or other optimizations will only help to get less crackes on relatively low CPU usage. I think your computer simply is not fast enough for this. We can not provide songs which can be played back on any type of computer, performance wise, but also would like to show case Renoise a bit by allowing many tracks, DSP and so on. So most demo songs require an about up to date computer, excluding netbooks.

If you’re looking for a bunch of more “efficient”, low CPU demo songs, have a loop at the results of the Indamixx Renoise competition:
http://www.renoise.com/competitions/indamixx/

XRNS songs from the competition:
http://www.renoise.com/download/indamixx/Renoise_-_Efficient_Music_Compo.zip

To be honest: that was the answer i was looking for.

Now i simply know that some of the Demo-Songs need faster machines, and that it’s not a setup-fault on my machine.

That was the core of my question from the beginning on - so - a few thousand keyboard-hits later: Thank you all :]

As i said earlier:

Gonna load these Low-Ressource-Impact-Compo-Tracks into my brain now (update: they crackle, nearly all - even the “benchmark song” http://www.renoise.com/competitions/indamixx/CPUBenchmark21_v3.xrns ) and then finally start tracking happily away to see how far i can get…

…and then you might be honoured to provide the first program i bought in over 10 years - and that’s only because it seems to be the first one that i could be happy to pay for.

Track on!

Just wanted to report back on progress…

…can play the Effective-Music-Compo songs without crackle now after a little system-adaption.

Stopped some unnecessary services via ubuntu bum (boot up manager).
Installed a lightweight desktop environment called LXDE: http://lxde.org/ - really easy to install in Ubuntu 9.10:

sudo apt-get install lxde  
logout  
choose lxde instead of gnome and log back in  

Start JACK via qjackctl with Setup -> Periods/Buffers set to 3.

Start Renoise. Load Benchmark-Song from the Renoise Efficient Music Compo. Play happily without crackle. Same for all of the other Tracks from the Efficient Music Compo i tried. That seems to be enuff for my purposes - beautiful Tracking, RealLife-BPM (Milkytracker has some heritage-issues there), a bunch of FX - finally ready to go. So finally gonna do some renoise-training during the next week.