-
-
Notifications
You must be signed in to change notification settings - Fork 927
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Questions about jackd #849
Comments
Some partial answers:
|
Thanks so far! Good to know that jackd is Linux-only, I can work with that and don't have to worry about how to test things outside Linux. But how does switching sound cards work on OS X and Windows when using Sonic Pi (e.g. sending sound to the HDMI output instead of the headphone output)? |
Currently SuperCollider binds to the default audio card, so to switch cards, you need to do it at the OS level first before booting Sonic Pi. Attempting to switch cards whilst Sonic Pi running can lead to bad behaviour including zombifying SuperCollider :-( |
About 5: There is a Jack API to manage the server including start/stop: http://www.jackaudio.org/api/group__ControlAPI.html (Noted for further research) |
@samaaron is jackd a requirement for Sonic Pi or would it be worth investigating if a jackless supercollider is possible? Would you accept that as a solution on Linux? |
jack is definitely not a requirement for Sonic Pi - but I believe it is a requirement for SuperCollider. If you're able to figure out how to get SuperCollider to work on Linux without jackd - that would be amazing. However, my understanding is that it's currently required. |
Supercollider has audio drivers. So it might be possible to add an ALSA or PulseAudio driver next to the existing jackd driver. Worth a shot. |
Yow, they already have a working jackless version: |
Hmm, this issue seems to be Ubuntu-Specific ... i'm using Arch Linux, and in my case, scsynth automatically starts JACK (jackd) on the default sound card or connects to JACK if it's already running ... As for your questions: 4.) In my case, when i run scysnth (without Sonic Pi), JACK is started automatically if it's not running already ... so, it shouldn't be necessary to run it from ruby ... 5.) see answer for 4.) ... it's possible to configure applications to start JACK if they need it ! 6.) The usual desktop Linux system isn't pre-configured for real-time audio ... just listening to music doesn't really demand this. So, these tweaks should reduce latency and the like ... there are even specific kernel branches for real-time processing. Nowadays, i think the default kernel supports SMP preemption. With Arch, this option is enabled by default ... 7.) It doesn't necessarily ... some applications don't have native JACK support, so they can't connect to the default sound card using ALSA if JACK is already hogging it. BUT, there's a plugin that simply re-routes any ALSA output to JACK (alsa-jack-plugin). Et voila, desktop sound is back ! As for the second part of the question, JACK is intended for pro-audio users and provides powerful anywhere-to-anywhere routing. A little too much for the average desktop user. For those, there's pulseaudio or plain alsa. PulseAudio is somewhat the standard for desktop applications. Anyhow i haven't used it in ages ;) 8.) You might want to check how other linux distributions like arch do this ... i haven't really configured anything manually, and scsynth just starts jack on demand ... |
After some research, here's what I found out so far.
All in all, I think that trying to get supercollider to run without jackd is the "easiest" route to make Sonic Pi easier to use for Linux users, including Raspbian. If that works, the next hurdle will be to convince Debian/Ubuntu/Raspbian to package a jackless version of supercollider as an alternative package. After that, we could finally add a "soundcard selector" to the Linux version of the Sonic Pi UI. This ticket is now closed. Thanks to everybody. |
Many thanks - tricky stuff! But PLEASE, until this is all fixed, save us from nightmares and endless confusion by noting this all in the docs for getting started with sonic-pi on Ubuntu. I'm running Ubuntu Trusty, and by following the instructions in #827 (comment) I've succeeded in getting sonic-pi to run, by running qjackctl and "play" first, but in the process screwed up all the rest of the audio on my system, so I can't continue to listen to Sam demo it in https://youtu.be/TK1mBqKvIyU Damn! And include an explaintion of how to get back to a nice working pulseaudio after trying sonic-pi out. It seems to work to just "Stop" from qjackctl, but there is enough voodoo involved that I'm scared now. |
@nealmcb great that you got it working. Please do consider sending a pull request to improve the docs based on your recent experience and knowledge. |
Thanks for the invite. This pull request should help: #1204 |
Hi,
"I don't know jack."
The main issue reported back by users of the Ubuntu PPA is problems with jackd. I'm not familiar with jackd myself, so this is a list of open questions in order to research the situation, possibly improve and maybe even patch Sonic Pi to allow switching sound cards on Linux (see #842).
sys
?If you can answer any of these, your input is most welcome. Thanks!
The text was updated successfully, but these errors were encountered: