Installing an audio production system based on Trisquel Mini

7 replies [Last post]
morneco
Offline
Joined: 06/12/2017

Since I think freedom is very important and I do not find an up to date audio GNU/Linux distro, I use Trisquel Mini as the basis for my audio production.
Maybe others are interested in this, therefore this little guide.

Install Trisquel Mini (because you have an old laptop with low RAM and/or want to have the most of the memory free for audio production), you can use Trisquel also.
Get all the updates:
code in a terminal
sudo apt-get update
sudo apt-get dist-upgrade

Reboot

Short list of proposed software:
To not install a package from the list simply delete it from the command above. Be sure to respect spaces if you do it otherwise the command will not work. These packages will require about 1 GB of free space.
zram-config: "compresses" automatically the RAM when it reaches saturation, especially useful on the less powerful system, basically allows to have in theory a little more RAM
preload: automatically create a cache for the most used programs, increasing the speed of their execution
indicator-cpufreq: allows to modify on the fly the frequency of your processor as well as its profi
gparted: it is very useful, do not miss to install it if you begin. It allows to resize its partitions in graphical interface. If your pc crashes you will need it.
htop: System monitor for terminal, very useful when the graphic world has planted (used, especially since a tty)
lm-sensors: A service that provides information about the temperature of the components (with the "sensors" command).
vlc : we do not present it anymore, it has proven itself on all the OS. Compatible with JACK.
audacious : It is a powerful player that is more compatible, useful for listening to something when one Jack launched: to give the inspiration for example
ardour : Digital Audio Workstation, Audio and MIDI sequencing, Recording, Mixing
tap-plugins: A plug-in pack in LADSPA format.
amb-plugins: Set of plug-in ambisonics.
so-synth-lv2: Small software synthesizer pack in LV2 format.
calf-plugins: a list of good quality plugins
pulseaudio-module-jack: needed to use PulseAudio with JACK
LMMS: DAW, Software sequencer semi-pro, more or less clone of FL-Studio, easy to take in hand. For electronic / dance music genres.
Qtractor: DAW, Advanced Audio / MIDI Sequencer.
Musescore: Free (ergonomic) score editor.
Yoshimi / Zynadd / Zynaddsubfx: A free software synthesizer.
musescore
drumkv1
soundconverter
ladspa: plugins
lv2: ladspa version 2 plugins
hydrogen: an advanced drum machine for GNU/Linux
guitarix
and more...

code in a terminal (adapt to your wishes)
sudo apt-get install zram-config preload indicator-cpufreq gparted lm-sensors vlc audacious audacity ardour tap-plugins amb-plugins so-synth-lv2 calf-plugins lv2fil swh-lv2 fil-plugins qtractor lmms musescore fluidsynth-dssi nekobee wsynth-dssi whysynth ghostess zynaddsubfx-dssi hexter zynadd zynaddsubfx yoshimi zynjacku x42-plugins zam-plugins slv2-jack vocproc abgate eq10q jalv fomp ir.lv2 avw.lv2 drumkv1 invada-studio-plugins-lv2 lv2vocoder mda-lv2 naspro-bridges samplv1 synthv1 ams autotalent blepvco blop bs2b-ladspa guitarix invada-studio-plugins-ladspa jackeq jamin ladspa-foo-plugins mcp-plugins omins rev-plugins rubberband-ladspa swh-plugins terminatorx vco-plugins wah-plugins pulseaudio-module-jack zita-at1 zita-bls1 zita-mu1 zita-rev1 hydrogen meterbridge jack-rack rakarrack vmpk pavucontrol aeolus caps foo-yc20 phasex qsynth petri-foo specimen parole baobab catfish soundconverter gsmartcontrol
jackd2-configuration: Enable realtime process priority? Select Yes.

System Configuration
You may want to consider the following often seen system optimizations:
Add yourself to the audio group.
sudo gpasswd -a user audio
Add yourself to the video group (not necessary, but I add myself)
sudo gpasswd -a user video

Add the threadirqs kernel parameter.
Open /etc/default/grub with your favorite editor as root. Look for the line that starts with GRUB_CMDLINE_LINUX_DEFAULT and add threadirqs to the list of options:
!!! In the latest grub file there are two lines that have to be edited before you can update your grub!!!
I also shorted the timeout to 2 seconds:
Example of my system:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs nomdmonddf nomdmonisw"
GRUB_CMDLINE_LINUX="nolapic"

Save the file, close it and update the grub configuration:
sudo update-grub

Installing a real-time/lowlatency kernel
Not necessary in Trisquel 7.0, there is a lowlatency kernel in use.

Add noatime to fstab.
Setting the noatime parameter in your /etc/fstab file reduces the amount of disk I/O (the inode access times are not updated each time a file is read) which could improve the overall performance of your system.

/dev/sdax / ext4 noatime,errors=remount-ro 0 1
Open /etc/fstab with your favorite editor as root and add ‘,noatime’ with no blanc space (important). Example of my system:
code:
#
# / was on /dev/sda1 during installation
UUID=3e08f8fd-30dc-495d-b22e-6e57d04c9243 / ext4 errors=remount-ro,noatime 0 1
# /home was on /dev/sda6 during installation
UUID=3902c1fd-d544-4102-bcb8-ecc142e3dab1 /home ext4 defaults,noatime 0 2
# /home/nick/Studio was on /dev/sdb5 during installation
UUID=eadd37bb-f475-426d-824c-a246e6f43302 /home/nick/Studio ext4 defaults,noatime 0 2
# swap was on /dev/sda5 during installation
UUID=b6ffb441-bd12-4dab-a533-2ee6c40f4bf8 none swap sw 0 0

Save the file and close it.

Decreasing swap frequency and increasing watches
By reducing the swap frequency “swappiness” number to 10, the system will wait much longer before trying to write to disk.
When working with lots of audio data, a lot of watches will need to be kept track of, so they will need to be increased. These two settings can be adjusted in /etc/sysctl.d/99-sysctl.conf.
Open /etc/sysctl.d/99-sysctl.conf (if not present, create it as root) with your favorite editor as root and add following lines ad the bottom:
vm.swappiness = 10
fs.inotify.max_user_watches = 524288

Save the file and close it.

Reboot.
If you want to reboot with the terminal type, make sure all other programs are closed:
sudo reboot now

Adding the KXStudio repositories:
I add the KXStusios repositories to get more updated versions of audio software. Integration of these PPAs without worries. But also note that adding third-party repositories can compromise the freedom of your system. That is why I only use these repositories to update software NOT to install new software.
You can find updated information about adding the repositories on the KXStudio site: http://kxstudio.linuxaudio.org/
I used the method described on following page: http://kxstudio.linuxaudio.org/Repositories

Then get all the updates again.
sudo apt-get update
sudo apt-get dist-upgrade

Reboot

There you have it, an audio production system based on Trisquel Mini.

Before starting any application using Jackd, you must start Jackd. I use QjackCtl. It’s best to open up QjackCtl, and change the settings in there.
A few webpages that can help you to set the right settings for your system:
http://kxstudio.linuxaudio.org/Documentation:Manual:jack_configuration
https://help.ubuntu.com/community/HowToJACKConfiguration
https://qjackctl.sourceforge.io/qjackctl-index.html (homepage of QjackCtl)

Have a nice time with your audio system!

SuperTramp83

I am a translator!

Offline
Joined: 10/31/2014

Nice! It's good practice to explain what less known settings mean and what they do and why.. I have no idea what threadirqs nomdmonddf nomdmonisw do..

Maybe add it as a wiki page in the doco section? Would you?

morneco
Offline
Joined: 06/12/2017

threadirqs:
Force threading of all interrupt handlers except those marked explicitly IRQF_NO_THREAD.

nomdmonddf nomdmonisw:
I don't know what those do. I found this link: http://ewen.mcneill.gen.nz/blog/entry/2015-06-14-ubuntu-lucid-to-trust-in-two-larger-steps/
Two new RAID-related options appeared in the kernel options with Ubuntu 14.04 -- nomdmonddf and nomdmonisw. They appear to be underdocumented, and basically only relate to Ubuntu.

Maybe add it as a wiki page in the doco section? Would you?
How do I do this?

SuperTramp83

I am a translator!

Offline
Joined: 10/31/2014

I see.

> How do I do this?

https://trisquel.info/en/wiki/documentation
Bottom left - add child page

morneco
Offline
Joined: 06/12/2017

> Bottom left - add child page
Thanks. I didn't scroll low enough.

I've just added the page to the wiki.

SuperTramp83

I am a translator!

Offline
Joined: 10/31/2014

well done :)

strypey
Offline
Joined: 05/14/2015

Just out of curiosity, can anyone confirm what the exact differences are between Trisquel 7 and Trisquel-Mini 7? Is it just swapping the GNOME desktop for the LXDE? Are there any other changes made to Mini? If not, then installing LXDE on a normal Trisquel 7 system would allow you to switch back and forth between your LXDE audio production system and a full Trisquel desktop (maybe with a separate user for each).

Better still you could pick an even more lightweight desktop than LXDE, one that isn't being discontinued in favour of its successor LXQT:
https://blog.lxde.org/2013/07/22/the-future-of-razor-and-lxde-qt/

I've used OpenBox as a way to scrape a bit more performance out of my poor little netbook when I try to make it run games. Maybe that could be an option for audio production?

Have you tried any of the desktops based on the Enlightenment window manager and the Enlightenment Foundation Libraries? I'm not aware of any 100% libre GNU-Linux distros that offer an Enlightenment flavour, which is a shame, because a properly integrated and tested version would have amazing bang-for-buck on legacy hardware (or any hardware).

BTW Have you ever tested Musix? It would be great to have a flagship libre music production distro that had the resources to stay up-to-date with new releases of its base distro and the apps it uses. I wonder what could be done to facilitate that?
https://musixdistro.wordpress.com/

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

Here is a superficial analysis of differences in packages between Trisquel 7 and Trisquel 7 Mini:
$ apt-cache depends trisquel trisquel-recommended | grep -e '^ Depends:' -e '^ Recommends:' | cut -d ' ' -f 4 | sort -u > Trisquel
$ apt-cache depends trisquel-mini trisquel-mini-recommended | grep -e '^ Depends:' -e '^ Recommends:' | cut -d ' ' -f 4 | sort -u > Trisquel-Mini
$ comm -3 Trisquel Trisquel-Mini
abiword
abrowser
aisleriot
alacarte
at-spi2-core
baobab
bluez
bluez-alsa
bluez-cups
bluez-gstreamer
bogofilter
brasero
brasero-cdrkit
cheese
colord
compton
deja-dup
electrum
espeak
espeak-data
evolution
evolution-indicator
evolution-plugins
file-roller
gedit
gigolo
gimp
gir1.2-soup-2.4
glchess
gnome-accessibility-themes
gnome-applets
gnome-bluetooth
gnome-control-center
gnome-dictionary
gnome-disk-utility
gnome-mahjongg
gnome-media
gnome-menus
gnome-mplayer
gnome-nettool
gnome-orca
gnome-panel
gnome-raw-thumbnailer
gnome-screensaver
gnome-screenshot
gnome-search-tool
gnome-session-canberra
gnome-settings-daemon
gnome-sudoku
gnome-system-log
gnome-system-monitor
gnome-system-tools
gnome-terminal
gnome-themes-standard
gnome-tweak-tool
gnome-user-guide
gnome-user-share
gnome-xcf-thumbnailer
gnomine
gstreamer0.10-alsa
gstreamer0.10-plugins-base-apps
gstreamer0.10-pulseaudio
gstreamer0.10-x
gthumb
gucharmap
ibus-gtk
ibus-m17n
ibus-table
icc-profiles-free
indicator-applet
indicator-applet-complete
indicator-bluetooth
indicator-printers
inputattach
libasound2-plugins
libatk-adaptor
libcanberra-pulse
libgail-3-0
libgail-common
libgl1-mesa-dri
libgl1-mesa-glx
libglib2.0-bin
libgnome2-perl
libgnomevfs2-extra
libgtk2-perl
libpam-ck-connector
libreoffice
libreoffice-calc
libreoffice-gnome
libreoffice-impress
libreoffice-style-galaxy
libreoffice-style-tango
libreoffice-writer
libsasl2-modules
libxp6
light-themes
lxde
metacity
midori
mousetweaks
mtpaint
nautilus
nautilus-open-terminal
nautilus-sendto
nautilus-share
oggconvert
onboard
ooo-thumbnailer
pitivi
policykit-desktop-privileges
pulseaudio-esound-compat
pulseaudio-module-bluetooth
pulseaudio-module-gconf
pulseaudio-module-x11
python-indicate
python-libproxy
python-mako
rarian-compat
rhythmbox-mozilla
rhythmbox-plugin-cdrecorder
rhythmbox-plugins
screen-resolution-extra
seahorse
speech-dispatcher
ssh-askpass-gnome
sylpheed
sylpheed-i18n
system-config-printer-gnome
system-config-printer-udev
totem
totem-mozilla
totem-plugins
trisquel-mini-data
trisquel-session
trisquel-sounds
ubuntu-mono
vim
vinagre
vino
xfburn
yelp

The first column lists dependencies or recommendations of the "trisquel" or "trisquel-recommended" meta-packages (defining the default edition of Trisquel 7). The second columns lists dependencies or recommendations of the "trisquel-mini" or "trisquel-mini-recommended" meta-packages (defining Trisquel 7 Mini). Again, the analysis is superficial: it may be that one of the listed packages is actually installed in both systems (but is a dependence of a dependence in one of the two systems), I am not certain all recommendations are part of the default systems (although I believe so), etc.