Renoise, Linux and Pulseaudio

Hi all (in particular, the devs),

First post, I know, however I have been a long-time user of Renoise and for the first time I’ve felt the need to vent.

I’d like to use this post as an opportunity to beg for Pulseaudio output from Renoise.

Cons:

  • No, it won’t be “pro audio” quality
  • No, it won’t have the lowest latency
  • No, <insert 100 other pro-audio related reasons>

Pros:

  • All of the cons above are negated if I need them to be with some work
  • It would let me bang out an idea without having to temporarily destroy my desktop setup in order to run jackd and all that comes with it
  • Not having to try and Google and getting 2-4 year old documentation on how to best get your desktop working nicely with jackd and pulse
  • I can have other audio in my desktop environment work at the same time as Renoise if you can do it

A lot of guides still refer to things like “remove pulseaudio from your system and just use ALSA”. This is impossible these days, gnome-shell in particular.

Also, I don’t want to have to try and cobble my whole desktop audio to run through jackd, all the time. Yeah, sure, it’s an option, but not practical or needed for the other things you need day-to-day.

If I ran Windows, none of this would be an issue, so why can’t you make Renoise more accessible for Linux in general?

I know you guys work very hard on Renoise, but unless there’s a massive technical reason on why you can’t allow Renoise to output to pulse, I see no reason why it can’t be an option.

I’d really appreciate it (and I think many others) if you made pulse output a choice under Linux.

Apologies if I sound angry, but I love Renoise and I simply don’t want to have to screw around so much to just run it on a modern Linux DE.

Cheers.

  • Pezz

+10 for pulseaudio support.

Same!

Hi Pezz,

Frankly I’d rather not see Renoise take the pulseaudio route just for compatibility with the gnome-shell when workarounds are available.

You don’t need to remove pulse audio or use jackd, just stop pulse temporarily, or better configure it to output to dmix and use Renoise with the alsa output:
https://wiki.archlinux.org/index.php/PulseAudio#ALSA.2Fdmix_without_grabbing_hardware_device

Audio on Linux is generally a mess, it take some fiddling to get decent results. Alsa + Jack support in Renoise is already quite sweet…

I remember from back in the day I used Linux there are definitely ways to have Renoise work with Pulse, via Jack. It’s just really difficult in some distros while it’s pre-set in others. In those days though, I must say, I used the linux installs purely for music making. Not much youtubing involved, although, I also managed to record samples in Renoise directly from youtube :). I think that was either AVLinux or KXStudio.

edit
especially AVLinux is a great joy to work with; ultra stable, simple minimalistic, you can boot it from usb (my pc had no functioning HD at the time)

It certainly wouldn’t hurt to have it as an option in renoise… though pulseaudio is mostly just a needless reinvention of jack :confused:

Hi gimmeapill,

I’m an Arch user and have seen that in the Wiki before.

Those instructions are out-of-date. For one, gnome-settings-daemon is now dependent on pulseaudio-alsa, so while you can force remove it with a pacman -Rdd, it’s gonna cause problems. Also, even with the dmix config, Renoise still takes the ALSA device exclusively.

Cheers.

UbuntuStudio has a workaround to this problem. It substitutes QjackCtl binary with a script, which runs the real binary together with the pasuspender command to temporarily mute PulseAudio while you’re composing music. You can use pasuspender with a regular jackd or Renoise as well, just run renoise like this:

pasuspender -- /path/to/rns_2_8_1_reg_x86_64/renoise  

Hi Pezz,

Ok, yeah better not force remove anything.
I’m not on Gnome right now, but since their autumn release is a few days away, I’ll give it a try rather soonish and report back if any success (I guess the dependencies will probably change a bit again).
Did you try it the other way with pulse -> jack -> alsa device as explained below?
http://trac.jackaudio.org/wiki/WalkThrough/User/PulseOnJack

That works, like other guides I’ve followed before. It is one of the clearer ones I’ve seen, so thanks heaps for the link.

This setup is not great, a bit choppy and can use a lot of CPU if a few things decide to use audio (Flash in the browser etc).

My Laptop (unlike my dedicated DAW box that runs jack all the time with an M-Audio card) has the bog standard hda-intel, so I understand its limitations.

I guess I can spend a while and try and tweak some jack parameters, but everything else seems to play nicely with Pulse on my system normally, jack is just a bit too intensive.

I just want to be able to fire up Renoise on my laptop and just have it work without the hassle. These days I’ve been using Milkytracker to test out off-the-cuff ideas. It uses SDL for output and SDL just deals the Pulse side of things. I guess SDL might be another possible output option for Renoise if it’s easier than Pulse to implement.

Thanks for the reply mate.

  • Edit: grammar derp.

First -100 for pulse support in Renoise - gawd what an awefull idea that is! Pulse is explicitly NOT intended for music creation. Sure, you could tinker around with renoise-only config playing directly to pulse. but why…

Second - Renoise has Alsa direct support, and pulse based systems are typically configured to use a plugin to route alsa output through pulse (and back to alsa of course, since alsa is really the underlying system)

Third - there are (somewhat twisted) ways to get pulse to play nice with Jack - KXStudio does a nice job of setting this all up and keeping it somewhat hidden from the user.

I would give more details but my systems all have pulse eradicated. My primary audio machine uses Jack with Ardour as system mixer, with system sounds piped into a channel on the ardour mixing board, and my other machines use alsa and dmix. Pulse gave me nothign but headaches any time I had even the most minor audio thing going.

Heh, i have a good old SB live, and everything can use the sound card at once :D :D :D

(why don’t they make ALL sound cards with that feature???)

Hello, new Renoise user here (and a long time Linux audio user/developer)

I can imagine your frustrations with audio on Linux, we’ve all been screaming at some point. Thankfully the problem isn’t really a lack of functionality, just the changing landscape combined with a huge quantity of poor and outdated docs, inaccurate information, and GUIs and wrappers hiding what’s going on.

Renoise supports the two audio APIs we need; Jack for clock-sync’d usage with other Jack applications, and ALSA for everything else. I don’t think development time needs to be spent on direct support for more audio systems, because to the best of my knowledge these two cover all our needs.

Now, I’m not a Pulseaudio user, but you can use ALSA to achieve some pretty advanced routing of audio streams, and feeding into Pulse should be almost no different

I’ll admit, in the short time I’ve been using Renoise I’ve found it limiting that it only accesses ALSA ‘kernel’ (ie. physical hardware) devices, whereas I’d prefer to have the option to use a named ALSA device. It seems like a fairly arbitary/deliberate limitation and my request to the developers would be to lift this.

Thankfully for now, help comes in the form of the ALSA ‘loopback’ device, which is a pseudo-hardware device that makes it easy to take audio from one app into another. You don’t get the total synchronisation that JACK offers, but you do get an audio stream.

  
$ modprobe snd-aloop  
$ cat /proc/asound/cards  
$ renoise  
<in the preferences configure renoise to output hw:loopback><br>
<br>```

<br>
<br>
Then in another terminal, connect Renoise output onto its new destination, eg.<br>
<br>

```<br><br>
$ alsaloop -c 2 -C hw:Loopback,1,0 -P default<br>
<br>```

<br>
<br>
You're basically taking Renoise audio and feeding it through the 'alsaloop' program and asking it to make the noise for you. So needless to say, don't expect real-time latency for playing live, unless you configure alsaloop and any onward destinations for this (which is do-able, though)</in>

I AGREE.

I agree, again =)

First - not a very compelling argument. I agree, Pulse isn’t designed for pro audio needs, as I stated in my original post. It is, however, very good at managing desktop audio. It’s 2013, not 4 years ago when Pulse had plenty of problems. It’s rather good from a user perspective.

Second - you’ve missed my point. Given the requirement of Pulse in modern desktop environments, owning the ALSA device is a PITA – “eradicating” Pulse on a normal desktop system is also unrealistic.

Third - we’re agreed there, anything to make it work is twisted, convoluted and requires intimate knowledge if a copy-pasta guide doesn’t suffice.

I just want to have my normal DE (gnome-shell) usable as per normal, but also run Renoise without having to cobble together obscure ALSA configurations or “this on top of that on top of that” just to cater for Renoise.

Pulseaudio is an integral part of many Linux desktops these days, and it’s not going away.

  • Pezz

This.

Original poster (pezz) runs Arch Linux. To me this is one step up from Gentoo, a very DIY distro where one can “do everything yourself” and he’s still having issues.

I run Ubuntu. I install it and go “tada!”

I’m not removing Pulse for Renoise. If anything Renoise will eventually get removed in favour of “whatever, I’ll just do some other hobby.”

I don’t really understand why Renoise aims to make a product for the smallest subset of a market. Here’s a closed source Linux version for all you Linux users! Except Pulse users, who make up most general purpose users…

This above is probably the best compromise. Pulse has an ALSA sink.

i’ve been running JACK as my system audio server since like 2009. i run pulse on top of it with module-jack-source/module-jack-sink.
haven’t had a problem with anything audio-related in years tbh. it’s the configuration i recommend to everybody.
it’s the best compromise i can find, too. apps that need tight hardware access get it via JACK, and apps that don’t just
go through pulse. alsa is set to route through pulse.

fwiw i’m running arch too. some info:

in /etc/pulse/default.pa i commented out all the ALSA modules and also commented out module-udev-detect.
replaced that stuff with

  
load-module module-jack-sink  
load-module module-jack-source  
  

i have a script for starting JACK which decides based on what audio devices are present which to use. can either use the builtin
hardware or one of a few external NI USB devices:

#!/bin/sh  
  
PARMS="-R -t 1000"  
  
case $1 in  
 96|96k|96000)  
 SAMPLERATE=96000;;  
  
 48|48k|48000|*)  
 SAMPLERATE=48000;;  
esac  
  
if grep Komplete /proc/asound/cards > /dev/null; then  
 KA6=`grep Komplete /proc/asound/cards | head -1 | awk '{ print $1 }'`  
 exec jackd $PARMS -d alsa -d hw:$KA6 -r $SAMPLERATE -n 3 -p 500  
elif grep Audio4 /proc/asound/cards > /dev/null; then  
 exec jackd $PARMS -d alsa -d audio4 -r $SAMPLERATE -n 3 -p 500  
else  
 exec jackd $PARMS -d alsa -d hw:PCH  
fi  

Long-time slackware user here (-very- DYI distro) …been using it since it started (early/mid 90’s) and have always been happy with it. I’ve used xubuntu for a while recently, very nice distro. Also tried out a few others before that, but i’ve always gone back to the good old slack. I really like how it’s a “skeleton” of an OS and i can do whatever the hell i want with it, build whatever kind of system i want, and so on. I’ve always preferred really bare-bones kind of UI anyway. Quite happy with xfce for a few years now.

I’ve never used pulseaudio, except just to try it out. For most of my computing “career” i’ve been using sound cards that have multi-process capability out of the box, like as mentioned above my good ol sb-live’s, so never had a need for pulseaudio, jack, esd, arts, or any other “sound server”. Though sometimes i run jack on my laptop when i want several programs using the shitty intel sound chip.

Well, i suppose it’s not very complicated to compile a linux version once they have written the code to be cross-platform. Only the audio API specific stuff can’t be very portable, but i presume that’s a rather small part of the code base.

I hear you my friend. I’ve never wanted to use Pulse Audio either, but I run Ubuntu like millions of others, and before that OSX for 10 years! Which worked.

All I’m saying is, first, let a hypothetical me decide if I like making music on Linux by making it easy to make music on Linux.

Next, let me decide if I like my hobby enough to configure my rig for “Pro Audio” - because when it comes to audio I’m so pro I use Linux and my built-in business class laptop speakers instead of, say, an industry supported operating system with sane support for external hardware.

Remove the “having fun” bottleneck for a market of non-sadists who primarily use Linux for non-audio reasons.

Thank you for your consideration.

:)

…so, what does the // represent? =)

(i hope it’s not to “comment out” all of your posts :lol: )