“Scala is a powerful software tool for experimentation with musical tunings, such as just intonation scales, equal and historical temperaments, microtonal and macrotonal scales and non-Western scales. It supports scale creation, editing, comparison, analysis, storage, tuning of electronic instruments, MIDI file generation and tuning conversion all integrated into a single application with a wide variety of mathematical routines and scale creation methods. Scala is ideal for the exploration of tunings and becoming familiar with the concepts involved. In addition, a very large library of scales is available for Scala and can be used for analysis or music creation.”
source: https://www.huygens-fokker.org/scala/
The reason for this article as the title suggests is to provide the instructions to get Scala working on modern Linux systems. The current 64 bit Linux version of Scala uses libraries that are no longer available on more recent Linux distributions, so for people using a more recent flavour of Linux, Scala doesn’t work out of the box. However it can work with a few system tweaks and it can work quite well at that, but getting it to work is tricky if one isn’t aware of the steps involved.
This article will explain those steps; how to get Scala, how to set it up with the necessary system tweaks to get it working… and finally how to configure it for sound.
The system being used for this demonstration is Mint 20.2 with Cinammon as the desktop environment and Pipewire as its audio server. This can work on any Debian based system, however if Pipewire is not installed it will require PulseAudio. Part 1 deals solely with installation up to the point of getting Scala to load.
At the time of this tutorial, Scala is at version 2.46d and is available for download at the Huygens Fokker website. For 64 bit systems the file to download would be Scala 2.46d for 64-bit GNU/Linux on PC/Intel
The instructions on the website for download recommend to install aconnectgui and playmidi but they are very old school software and not needed. For this demonstration we will be using qjackctl and timidity as their replacement. It is also recommended to install libgnat-4.9 which cannot be done as there are dependency breaks. There is a workaround which we’ll get to in a bit.
The following software is required by Scala; to get them, from a terminal run the following command…
Code: Select all
sudo apt install gnat gnuplot qjackctl timidity timidity-daemon fluid-soundfont-gm
I’ve created a folder ~/opt for local software. When the file scala-22-pc-linux.tar.bz2 is unzipped in that location the full folder path will be ~/opt/scala-22-pc64-linux
If we open a terminal and navigate to the location
Code: Select all
cd ~/opt/scala-22-pc64-linux
Code: Select all
./scala
Fortunately the unpacked archive contains the needed library libgtkada.so.2.24.4. The solution as spelled out in the INSTALL text file is to copy libgtkada.so.2.24.4 into the /usr/local/lib folder.
From the ~/opt/scala-22-pc64-linux location run the following command:
Code: Select all
sudo cp libgtkada.so.2.24.4 /usr/local/lib
Code: Select all
sudo ldconfig
Code: Select all
./scala
The files needed to remedy this are available in the package libgnat-4.9_4.9.2–1_amd64.deb and is available for download here:
However trying to install this package as one would install a standard deb file will not work.

The workaround solution is to extract the needed files and place them in /usr/local/lib and then tell the system where to look for the needed libraries.
Typically I work in the folder ~/src
From that location
Code: Select all
mkdir libgnat
cd libgnat
Code: Select all
wget http://ftp.debian.org/debian/pool/main/g/gnat-4.9/libgnat-4.9_4.9.2-1_amd64.deb
Code: Select all
dpkg-deb -R libgnat-4.9_4.9.2–1_amd64.deb tmp
rm -R tmp/DEBIAN/
mkdir tmp/usr/lib/libgnat4.9
mv tmp/usr/lib/x86_64-linux-gnu/* tmp/usr/lib/libgnat4.9
rm -R tmp/usr/lib/x86_64-linux-gnu/
Code: Select all
sudo cp -R tmp/usr/* /usr/local/
It should look like this…

The next step is to update the file /etc/ld.so.conf
I typically use nano to modify system files…
Code: Select all
sudo nano /etc/ld.so.conf
The file will look something like this…

Ctrl+S (to save) and then Ctrl+X (to exit)
After that run the command
Code: Select all
sudo ldconfig

Scala version 2.46d for 64 bit Linux
*It is also possible to extract the libgnat-4.9_4.9.2–1_amd64.deb package using an archive manager and place the files libgnarl-4.9.so.1 and libgnat-4.9.so.1 in /usr/local/lib/ directly as we did with libgtkada.so.2.24.4 and then running sudo ldconfig
This will achieve the same results without the need to update the file /etc/ld.so.conf