NathanShirley wrote:Thanks for all the info Stephen. Based on what you wrote I just found a tutorial for making a launcher (linked below in case it's ever helpful for anyone) which was much easier than I expected and works great. And yes, I'm using Cinnamon, but put XFCE on an old computer a while back.
... so thought JACK might help, but when I try to start it I get an error: "D-BUS: JACK server could not be started." At some point I did install a low latency kernel which I read should work with Mint (sudo apt install linux-lowlatency), but that might be where I went wrong. I later installed all the non-visual elements in UbuntuStudio, thinking something in there might help, but no change for JACK. At some point I also added pulseaudio-module-jack (sudo apt install pulseaudio-module-jack).
That video is a perfect tutorial for creating a menu item in Linux Mint Cinnamon. It was nice to post it so that it can be helpful to others.
The confusing D-BUS: JACK server could not be started issue has happened many times to me. After trying many suggested solutions (https://askubuntu.com/questions/224151/...g-qjackctl), some of which worked some of the time, I believe the issue was finally solved by explicitly selecting my external audio interface (in my case, a Mackie Onyx Producer 2-2) in QJackctl (Settings-->Advanced-->Output Device (and Input Device), as mentioned in the following webpage (this fix is something which I now do by habit):
http://dpod.kakelbont.ca/2015/08/16/fixing-qjackctl/
Regarding the lowlatency kernel, its installation and maintenance became for me somewhat a headache. The regular generic linux kernel installed by Linux Mint is now so good and optimized for very decent low latency when "Realtime" is enabled in JACK (QJackctl), that I ended up ditching the lowlatency kernel entirely, unless I ever feel like messing around under the hood of Linux again (I really admire and appreciate that the OS allows ordinary users to dig into the internals of a Linux system, to use a real command-line and terminal, etc.). Anyway, you might find that the lowlatency kernel is usually superfluous nowadays.
One optimization I personally feel is important (on my system, anyway) is to disable automatic frequency scaling, which is when the computer BIOS or linux kernel changes (usually lowers) the CPU frequency, and only raises it on-the-fly when more computational power is needed. These abrupt changes in the clock frequency of the CPU cores seem to often interfere with audio tasks; by disabling frequency scaling, the cores run at their maximum rated frequency all the time, causing them to be as responsive as possible to demanding tasks like recording or routing audio. My computer uses an Intel CPU, so to disable frequency-scaling at boot time, I added the Intel-CPU-specific kernel argument/parameter "intel_pstate=disable" to the kernel commandline in the GRUB bootloader configuration file (in my system, at /etc/default/grub). (you can check "edit GRUB configuration file" at Google or DuckDuckGo.com for more info). Here's what my GRUB config file currently looks like:
-- -- -- -- --
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
-- -- -- -- --
After disabling frequency scaling, audio tasks usually work much more smoothly, with fewer or no Xruns (pops), and smaller buffer sizes with higher sample rates, so disabling frequency-scaling might be well worth investigating/implementing on your system (unless it's a laptop computer and might be sensitive or prone to overheating). If you use an AMD or other CPU rather than Intel, the specific kernel argument/parameter to disable the frequency-scaling of that particular type of CPU will probably be different.
And here's what the /etc/security/limits.d/audio.conf file looks like on my system, if you'd like to see if yours is similar. (the text below may alternatively appear in /etc/security/limits.conf)
-- -- -- -- --
# Provided by the jackd package.
#
# Changes to this file will be preserved.
#
# If you want to enable/disable realtime permissions, run
#
# dpkg-reconfigure -p high jackd
@audio - rtprio 95
@audio - memlock unlimited
#@audio - nice -19
Have fun.
Last edited by Stephen_Doonan (31-08-2021 17:53)
--
Linux, Pianoteq Pro, Organteq