Monthly Archives: July 2020

Sonic-Pi: live-coding music software now on Slackware

Here is a new program for inclusion into my DAW package collection. It is Sonic-Pi, a ‘code-based music creation and performance tool’ as its web site states. My DAW collection already features Supercollider, which at its core is a powerful audio synthesis engine, but it also features a graphical user interface which you can use for live-coding music. Sonic-Pi has similar capabilities but it is more intuitively accessible (compare it to vi and notepad for instance).
Therefore Sonic-Pi would be better suited for introducing people to the concept of creating music through writing code, and letting that music evolve during a live performance by updating on-the-fly the code which represents the audio synthesis.

Sam Aaron is the creator of Sonic-Pi and uses it as a musical instrument in its own right with his band. He did a TEDx talk about programming as performance a couple of years ago:

He explains how Sonic-Pi was conceived as an educational tool. By making a free and open-source program like Sonic-Pi available to schools (and it runs on the Raspberry Pi – now you know where the program got its name from), you will gently introduce young kids to the art of computer programming while at the same time infusing them with a love for music – because they will be able to create the music they like in no time.

Sonic-Pi uses the synthesis engine of Supercollider, which means that that has to be installed as well. Both Sonic-Pi and Supercollider use JACK to route the audio and let it come out of your speakers.
The graphical user interface allows easy access to a large collection of example code snippets, sound samples and synthesizer definitions, so you will be listening to music in a few seconds after starting the program – after which you can begin modifying that code and hear live what your programming does to the generated music. The GUI also contains a nice visualization of the music you are generating.

The software is usually distributed as an ‘appimage’ which simply bundles everything you need into an archive. This is not really Slackware-like, so I wrote a SlackBuild script which brings some order into the directory structure, removing a lot of redundant megabytes and creating a proper package with a nice menu item.

The liveslak scripts have been updated as well so that the next Slackware DAW Live will include Sonic-Pi.
If you use slackpkg you can download an updated template here: http://www.slackware.com/~alien/tools/templates/daw.template and use “slackpkg install-template daw” to have easy access to the full list of packages.

Get Sonic-Pi from https://slackware.nl/people/alien/slackbuilds/sonic-pi/ or https://slackware.uk/people/alien/slackbuilds/sonic-pi/ . Mind the dependencies!

Have fun! Eric

Chromium 84 packages available for Slackware

chromium_iconIt took a bit longer than usual to come up with packages for the recently released Chromium 84. Google’s “Stable Channel” blog for Chrome announced the version 84.0.4147.89 just over a week ago, but as I was traveling at the time (without computer) new packages needed to wait.

And just when I uploaded these packages to the mirror server I discovered that Google already released an update yesterday: 84.0.4147.94. That will have to wait since again I am busy at the moment. Enjoy the first 84 release though!

Chromium 84 sees a lot of bugs fixed, of which 38 are security fixes. There’s also the usual UI and engine improvements but there’s really not much visible on the User Interface side. With one exception: the ‘spam’ notification popups which some web sites bothered you with are now hidden by default under a button in the URL bar. By clicking that button you can decide to show the blocked popups (or not). This feature was implemented earlier by Mozilla in their Firefox browser where it was highly valued by its users.
Under the hood, the most notable change is that Google has removed support for the insecure TLS 1.0 and TLS 1.1 ciphers. Web servers which still use these for their HTTPS content will be blocked by default and you’ll see an error.

Slackware packages for Chromium 84.0.4147.89 are in my package repository already. They are available as 64bit versions for both Slackware 14.2 and -current and a 32bit version only for Slackware-current.
There is no new 32bit package for Slackware 14.2 unfortunately, because I have been unsuccessful in my attempts to compile the package. Let’s hope future releases allow me to compile the 32bit package for 14.2 again…

Note that because of the changed status of the Widevine library (which is now automatically downloaded and kept updated by the browser), a separate “chromium-widevine-plugin” package containing the Widevine DRM library is no longer required. Widevine is a Content Decryption Module (CDM) used by companies like Netflix and Disney+ to stream video to your computer in a Chromium browser window.

Also note (to the purists among you): even though support for Widevine CDM plugin has been built into my chromium package, that package is still built from Open Source software only. If you do not want theWidevine DRM library to be downloaded at all, you will have to recompile the chromium package after setting “USE_CDM=0” in the chromium.SlackBuild script. This can not be disabled at run-time.

Chromium packages: https://slackware.nl/people/alien/slackbuilds/chromium/ (rsync://slackware.nl/mirrors/people/alien/slackbuilds/chromium/)

Enjoy! Eric