While working on a PPA to provide binaries for Sonic Pi, the users of the PPA binaries keep stumbling over jackd. How to make things easier for them?
Sonic Pi is an educational music tool that combines an electronic synthesizer with a programming language. It targets novice users and school children to teach coding through fun with music. The software's main install target is Raspbian where it comes pre-installed. And the code contains some built-in hacks, uh I mean, pragmatic solutions to get jackd up and running on the Raspberry Pi. But these hacks are RPi-specific and don't work well on other distributions.
Here's the situation:
- Sonic-Pi is a graphical IDE
- with a ruby-based server running in the background that controls the music
- to play the music, it's using scsynth (a part of Supercollider) as the synthesizer backend
- scsynth currently requires using jackd to play audio on Linux
- the ruby-based Sonic Pi server starts jackd (if it isn't already running) and then scsynth
Now here the troubles begin if you're on Ubuntu (and I guess on Debian, too):
- jackd's default config on Ubuntu doesn't seem to work for everybody, so on some systems, it just won't start and the user has to use qjackctl or dig into the logs and change the configuration files
- when jackd does start, it blocks PulseAudio, so any program using audio already running will stop working
- jackd prefers realtime scheduling, but Ubuntu isn't preconfigured to do this and requires changes to the user to do it
So all in all, it's a mess. This isn't the experience a novice user wants after installing Sonic Pi.
There are guides out there how to get jackd working with Ubuntu, but working through them is asking too much from a novice user or a teacher in a classroom who just want to get this software going.
So what I'm looking for is a way that will make sure that after installing Sonic Pi from the .deb, things with jackd work out of the box, trouble-free, no manual configuration required.
The wishlist is this:
- a configuration for jackd that "just works" out of the box
- for all non-privileged user accounts
- that doesn't block PulseAudio/ALSA on the same system
- on a default Ubuntu (and if possible on a default Debian and Raspbian, too)
- and the distribution's default audio mixer and volume control hotkeys keeps working
Does this even exist?
Is there a .deb for this (or can a .deb be made) that users can just install to have it configured that way?
scsynth
withpasuspender
? We may get rid of many issues by just this. – Takkat Dec 04 '15 at 11:17