My thoughts on Slackware, life and everything

Tag: daw (Page 2 of 3)

Audacity 3.1.3 for Slackware (don’t forget to install all the new dependencies!)

Two years ago I added version 2.4.1 of the Audacity multi-track audio recorder to my ‘Digital Audio Workstation’ (DAW) software collection in celebration of its 20th birthday. A lot happened in between then and now.

Not just new releases of Audacity,  but also a couple of forks of the code happened. Which gave us projects like Audacium, as well as  Tenacity, which was superseded again by Saucedacity.
The reason for these forks was the addition of telemetry (i.e. background-sending of application performance data to the developers) to the Audacity source code after the project was acquired by the Muse Group who are responsible for developing MuseScore among others. The same telemetry functionality was already present in MuseScore.
Note that in both Audacity and MuseScore you have to manually and explicitly enable telemetry! It is disabled by default.

In the past years I have provided a couple of 2.x and 3.x releases of Audacity as packages for Slackware, but stopped with updates last year when the developers switched to a ‘software manager’ to build their internal dependencies: conan. On SlackBuilds.org you can find an ancient 0.x release of it based on Python2, but the program has evolved since, uses Python3 now and it requires a truckload of other Python packages to work. Killing a fly with an elephant, and what was wrong with cmake?

But then my friend ppr:kut of the Slackware team asked me if I could rebuild my Audacity package because its wxWidgets-based user interface was using GTK+2 and that does not work well with HiDPI displays. The wxWidgets graphical toolkit can use GTK+3 as well, and could I please switch from GTK+2 to GTK+3 in Audacity.
I decided to look into his request and recompile my audacity-3.0.2 package, found out that it was not trivial to switch the GUI to GTK+3 widgets, kept looking and before you know it, down the rabbit-hole I went.

When I emerged from the rabbit-hole it was with a series of new and updated packages. I had decided not to use conan, which meant I had to provide all of Audacity’s dependencies myself (which conan would have added to the audacity binaries, just like autotools and cmake did for the older releases).
I noticed that I had to build a newer wxGTK3 for Audacity, and that led to a cascade of package updates and additions before eventually everything compiled and ran again. Apart from Audacity, some of the other graphical audio programs that needed a rebuild or upgrade are: Cecilia, Mixxx, and MuseScore.

This is today’s ChangeLog entry for my repository. A lot less new packages now than in the case where I would have caved in and gone with conan:

+--------------------------+
Wed Sep 21 20:17:50 UTC 2022
audacity: updated to 3.1.3 (Slackware 15.0 and -current).
  Note the hugely changed dependency list! Most of the previously internal
  dependencies are now provided as external packages, some are new in my repo.
  Depends on: jack2, ladspa_sdk, libsbsms, lilv, lv2, portaudio, portmidi,
  portsmf, serd, sord, soundtouch, soxr, sratom, suil, twolame, vamp-plugin-sdk
  and wxGTK3.
cecilia5: rebuilt against wxpython 4.2.0 (Slackware 15.0 and -current).
  Depends on python-numpy, python-pyo, wxpython.
daw_base: added boca, freac, libsbsms, portsmf, python-attrdict, smooth,
  soundfont-unison, speex, twolame and uriparser to the DAW template.
erlang-otp: rebuilt against newer wxGTK3 (Slackware 15.0 and -current).
  Depends on wxGTK3.
libsbsms: added v2.3.0 - a library for high quality time and pitch scale
  modification. Package for Slackware 15.0 and -current.
lv2: updated to 1.18.10 (Slackware 15.0 and -current).
  New dependency: sord.
mixxx: update to 2.3.3 was needed to compile against PortMidi 2.x.
  Depends on chromaprint, faad2, hidapi, libmodplug, libmp4v2, lilv, lv2,
  portmidi, portaudio, protobuf, rubberband, vamp-plugin-sdk.
  Package for Slackware 15.0 and -current.
musescore: rebuilt against PortMidi 2.0.3 (Slackware 15.0 and -current).
  Depends on jack2, portaudio, portmidi.
portaudio: updated to 190700_20210406 (Slackware 15.0 and -current).
  Depends on jack2.
portmidi: updated to 2.0.3, now that the maintainer is active again.
  All programs that depend on portmidi need to be recompiled against this
  new release. The pmdefaults program is not packaged anymore, as per advice
  from the maintainer.
  Package for Slackware 15.0 and -current.
portsmf: added v234 - a library for reading and writing Standard MIDI Files.
  Package for Slackware 15.0 and -current.
python-attrdict: added v2.0.1 - a dict with attribute-style access.
  Package for Slackware 15.0 and -current.
python-pygame: updated to  2.1.2 (Slackware 15.0 and -current).
  Depends on portmidi.
python-pyo: rebuilt against PortMidi 2.0.3 (Slackware 15.0 and -current).
  Depends on portaudio, portmidi, liblo, and jack2.
serd: updated to 0.30.16 (Slackware 15.0 and -current).
sord: updated to 0.16.14 (Slackware 15.0 and -current).
  Depends on serd.
sratom: updated to 0.6.14 (Slackware 15.0 and -current).
  Depends on lv2, sord.
suil: updated to 0.10.18 (Slackware 15.0 and -current).
  Depends on lv2.
twolame: added v0.4.0 - an optimized MP2 encoder.
  Package for Slackware 15.0 and -current.
wxGTK3: updated to 3.2.1 (Slackware 15.0 and -current).
  Note that I switched the package from containing static to dynamic libraries.
  This was needed to compile audacity.
wxpython: updated to 4.2.0 (Slackware 15.0 and -current).
  Removed dependencies: wxGTK3, python-pathlib2. New dep: python-attrdict.

The Audacity interface looks a bit different indeed. Tell me how it works for you! It’s not just a version bump; I switched from all-internal libraries to a mass of external libraries (dependencies) and I have not done extensive checking of all its functionality. I just hope it is not painfully broken.

When you install this package, please take good note (see above) of all the new dependencies that you will also need to install from my repository, for instance using my main URL  http://www.slackware.com/~alien/slackbuilds/ (also available via rsync protocol: rsync://slackware.nl/mirrors/people/alien/slackbuilds/).

A “pro tip” for easy upgrade/installation:
If you use slackpkg together with the slackpkg+ extension, you can download an updated DAW template here: http://www.slackware.com/~alien/tools/templates/daw.template containing a full list of all my DAW packages. Copy this template file into “/etc/slackpkg/templates/” and use the command “slackpkg update; slackpkg install-template daw; slackpkg upgrade-all” to get all those new packages installed effortlessly, and obtain all the upgrades as well.

Have fun! Eric

Kernel 5.13 went into Slackware-current; new Live ISOs to celebrate

This week, the Linux 5.13 kernel finally landed in the core distro of Slackware-current after having lived in ‘./testing‘ for a while. Actually it’s the 5.13.2 kernel which had some 800 patches applied compared to 5.13.1.

And with that new 5.13.x kernel series, it looks like a Slackware 15 release is again closer on the horizon.

To celebrate the occasion, I have generated a new batch of ISOs for the Slackware Live Edition. At download.liveslak.org you will find ISO images for the variants based on the latest release of the liveslak scripts (in this case, version 1.3.9.5 of liveslak).
These Live ISOs boot Slackware -current “Thu Jul 15 22:37:59 UTC 2021” with the new 5.13.2 mainline kernel: SLACKWARE (32bit & 64bit), XFCE (32bit & 64bit), CINNAMON, MATE, DAW and LEAN.

The ‘bonus‘ section contains a batch of squashfs modules you can use with your liveslak (copy them into the ‘addons’ directory of your persistent USB drive) if you want to expand the functionality of the Live OS.
Among these you’ll find the binary nvidia driver (already contained in the CINNAMON, DAW and MATE ISOs by the way); the Broadcom STA wireless driver, Wine 6.12, multilib, the DAW package collection, and a set from my own repository (chromium, libreoffice, veracrypt, vlc etc).

Have fun! Eric

December updates and a Christmas goodie for cable geeks

The silent treatment?

Hi there.
I know I have not been posting a lot the past few months. Sorry for that, really.
The last quarter is always a busy time at work and especially so during Corona; my mother fell ill; I sort of crashed when I ran out of energy; and it was a lot of work to clean up shop after my Plasma5 ‘ktown’ first got adopted as Slackware ‘vtown’ in testing and a bit later replaced the old KDE4 in the core distro. Lots of package recompilations and upgrades to work with the newer stuff in Slackware.

I also worked on (finally) migrating the old ‘bear’ server which was hosted in France, to a newer and more powerful server running in an Amsterdam Data Center. The new server ‘martin’ was mostly ready when I thought, let’s reboot ‘bear’ after applying the latest Slackware security fixes. And then it did not come back up… that was not a comfortable moment, since ‘bear’ not only hosts my own package and git repositories, but also The Slack Docs Wiki, the Slack Docs mailing lists, my own personal Wiki and some private family sites. I opened a support ticket and it turned out that the hard drive had crashed and all data on it were irrecoverable.
Luckily I had just finished making a set of backups and right before that fateful reboot, had discovered that my backup scripts omitted part of the server data… which I had also fixed just in time before  that crash.
It took some additional energy to get the services up and running on ‘martin’ again as soon as possible. I had made some new designs for the new server OS configuration and the new configs were un-tested… I hope not too many people noticed the partial down during the second half of November.
The new server runs fine now, has more disk space especially, so I can finally host the full history of Slackware releases and also the DAW and CINNAMON Live ISO images for which there was no room on ‘bear’.
Thanks again to those people who send me money un a regular basis so that I can pay the monthly rent of ‘martin’!

Despite that stress I have been enjoying myself still, just not in the spotlights. The semi-sudden switch in Slackware from KDE4 to Plasma5 and refreshing its XFCE Desktop had some consequences for my liveslak project. It took some time to work out a new optimal package set for the small XFCE image, and in particular the DAW Live image which is based on a bare Plasma5 Desktop needed attention to make it tick again.

So what’s new in Slackware DAW Live?

Remember: DAW = Digital Audio Workstation.
Read my original article documenting the research into a comprehensive collection of musician/producer oriented free and open source software, and a follow-up article on how to transform a Slackware system into a powerful Digital Audio Workstation.

Art work

I asked you in a previous post to come up with ideas for artwork to use in my Slackware Digital Audio Workstation. Thanks for those who contributed graphics and ideas – all of that creativity has been preserved here on the blog.
I decided to use the image to the left of this paragraph – a Slackware ‘S’ with headphones – as the icon to use for the “Slackware Live DAW” submenu. Contributed by Daedra and slightly colored by me.

I needed a second icon as well, to represent the ‘face’ of the Live user account, and for that I picked one of the contributions from Bob Funk: a Slackware ‘S’ with a TRS jack. You’ll see this one when you boot up the ISO and are asked to login at the SDDM graphical session chooser.

More art work was contributed by Sceptical-C, a friend of mine who doubles as a DJ, musician and producer. His black and white photography are the basis for several Plasma5 wallpapers and one of his photographs is also used as the background in the login and lock screens.

DAW_base package

I decided to move the configuration  of the DAW Live OS’ realtime capabilities out of the liveslak scripts and into a new Slackware package. This package called “daw_base” can be installed on any Slackware computer (preferably Slackware-current with PAM). It configures the OS in such a way that a user who is a member of the Slackware “audio” group is allowed to start applications with real-time scheduling priority. You’ll need that if you want to prevent sound drop-outs (also called XRUNs) during performing, recording and mixing. Some more tweaks are being made, they are documented in the package’s README.1st file. This package also contains the Plasma5 wallpapers which are created from the original Sceptical-C black-and-white artwork.
The package creates a new sub-menu in “Applications > Multimedia” called “Slackware DAW” and collects all my DAW related software in there. The submenus in “Multimedia” for the X42 and LSP plugins are moved into the “Slackware DAW” menu to keep it all closely together. This is very similar to what DAW Live also contains. Just the word “Live” is not present in the name of that menu installed by ‘daw_base‘.

The daw_base package also installs a template file for Slackware’s package manager ‘slackpkg‘. The template called “daw” contains a list of all DAW related software in my package repository and it allows for an easy installation and maintenance of that software collection.

New additions to the musician’s toolkit

Several packages needed a recompilation after the recent Slackware upgrades that are related to the new requirements for XFCE and Plasma5. I used that opportunity to upgrade software to their latest versions instead of recompiling – like Ardour, Mixxx, Jamulus, Guitarix for instance. But I also looked into some new stuff, mostly because people asked me about it. Here they are:

Zrythm.
An intuitive digital audio workstation all in itself. It’s under heavy development and nearing a 1.0.0 release. It supports LV2 plugins, offers a high level of automation, and looks really good. Perhaps an alternative for those who feel Ardour’s learning curve is too steep.

VCV Rack.
VCV Rack by the VCV project is a software emulation of the Eurorack Modular Synthesizer.
The project’s mission statement contains this line which resonated with me: “… the principle behind modular synthesizers is identical to the UNIX philosophy, where stable, minimal modules working together are preferred to a monolithic platform controlled by a single vendor (like portable synthesizer keyboards)“.

A short intermezzo first. My first experience with modular synths was as part of the audience when attending a concert by Pere Ubu, 1981 in De Effenaar in EIndhoven. Alan Ravenstine handled a huge contraption full of patch wires that produced all sorts of weird and interesting sounds. It’s what gave Pere Ubu their uniquely distinctive sound. I read later that he worked with EML modular synthesizers a lot but at the time I didn’t know. Damn impressive, but I decided that industrial sounds were more to my liking. This was during the early rise of Electronic Body Music, and that got me hooked for a while. If you can find the documentary “I dream of WIres” I recommend you watch it. The web site http://idreamofwires.org/ is dedicated to documenting the history of electronic music. An excerpt of a little more than 20 minutes is freely available, it contains an interview with Pere Ubu synth players Alan Ravenstine and Robert Wheeler.

Anyway – back in May 2019, a blog comment by ‘Hank’ already referenced VCV Rack with a question whether I would perhaps consider it for inclusion to my DAW software collection. At the time, my focus was on other things and a modular synthesizer is not the easiest instrument to work with, so I let that pass. But some recent youtube footage sparked my interest and here is the result – a Christmas present of sorts for you: packages for VCV Rack, and three free and open source plugins that expand the collection of available modules in Rack: vcvrack, vcvrack-audible-instruments, vcvrack-befaco and vcvrack-bogaudio.

Note that my VCV Rack package ‘vcvrack‘ contains the Fundamental plugin already. The software is quite useless without it so I decided to bundle it, just like the dev’s binary distribution. It is the only plugin which is automatically loaded by VCV Rack. If you install any other plugin, you need to execute one manual command to add the plugin to your user-directory: this will create a symbolic link to the ZIP file containing the modules and Rack will then automatically find and unzip this plugin and make it available to you.

$ ln -s /usr/share/vcvrack/Pluginname.zip ~/.Rack/plugins-v1/

All ZIP files in the VCV Rack system directory (/usr/share/vcvrack/) are module plugins – this is the format for distributing them.

Here is a Youtube tutorial series that you can use as an introduction to modular synthesis and VCV Rack in particular:

Enjoy! Eric

Warning about Python3 update in latest -current

Warning for people running Slackware-current and have 3rd party packages installed (who doesn’t) that depend on Python3. That includes you who are running KDE Plasma5!

The “Sun Oct 25 18:05:51 UTC 2020” update in Slackware-current comes with a bump in the Python3 version (to 3.9) which is incompatible with software which already has been compiled against an older version of Python3 (like 3.8).

I found 26 of my own packages on my laptop that depend on Python3 and they are all probably going to break when upgrading to the latest slackware-current. This includes Plasma5 ‘ktown’ packages but also several of my DAW packages.

I suggest that you wait with upgrading to the latest -current for a short while. Give Pat a chance to add Plasma5 to Slackware, because I am not going to recompile any ‘ktown’ package over this.
I will however look at my other packages (cecilia5, wxpython to name but a few) and recompile those against the newer Python. Watch this space for more news.

Liveslak new features, DAW Live, OBS Studio, logo contest

I wanted to update you about a couple of my projects that I was able to spend time on, now that I took some time off of work. I need to distance myself from my day job every so often to prevent a burn-out and this time I am dangerously close.
I baked bread for the first time in years and it was well-received in the family. The result was a tasty sourdough bread using the wild yeast culture that I am keeping healthy for many years now, even if I had not used it for making bread for a long time. Although a while ago I did share some of the sourdough culture with a friend who is also into baking bread. Even a tiny bit of “starter” can jumpstart your career of baking 🙂 It’s a tedious task to raise a healthy culture of wild yeast and suitable bacteria that create good bread.

But I would like to focus more on liveslak, on my Digital Audio Workstation spin, and some new software for which I created packages.

The liveslak project received some interesting new features.
Most importantly, the hard disk installer of the Slackware Live Edition – called “setup2hd” – was expanded. In the past, it used to allow only the installation of the Live OS to your hard drive. But I received requests to also make it possible for setup2hd to install regular Slackware like the official installer does. It sounded like a good idea, and starting with liveslak release 1.3.7 the “setup2hd” program will let you choose from more package SOURCES than just the Live OS. In addition to the Live OS, you can now choose to install regular Slackware from a NFS, HTTP, FTP or Samba server. In other words, Slackware’s network install feature was added.
Why is this different from the setup program on the official Slackware ISO? Well, the most obvious improvement is that you are working in a graphical desktop environment (the Live OS). You can run the setup2hd hard disk installation in an X terminal while you keep doing other stuff like reading online materials or watching a video to pass the time. Moreover, you can install stable Slackware 14.2 from the Live OS. That means MMC and NVMe drives are supported during installation (which is something the official Slackware 14.2 installer does not provide for).
And to top it off, I am now also adding “setup2hd” to the small XFCE ISOs. Word of caution: the XFCE ISOs do not contain a “huge” kernel which means if you want to install the stripped-down XFCE OS to your hard drive, you will have to do a manual “chroot” after installation completes and before you reboot, to edit /etc/lilo.conf and add a section for the “generic” kernel. and then run the “lilo” command to make it stick. Hopefully the “liloconfig” command will learn how to do that for you, sometime soon. You can always perform a Slackware network installation from the XFCE Live OS of course!

The second new feature is the ability of liveslak to configure a custom background image for Plasma5-based Live OS. The custom image is used when generating the Live ISO, as the background for the SDDM login greeter, your desktop wallpaper, and for the lock-screen backdrop.
What I still want to achieve is adding similar functionality to the XFCE and Gnome based Live variants. The snag is that the configuration needs to be scriptable, i.e. when the “live” user logs in everything must already be in place and pre-configured. For Plasma5 that was not trivial to work out, and I have zero Gnome and XFCE scripted desktop configuration knowledge. Suggestions and code snippets are welcome.

My Digital Audio Workstation project, called Slackware Live DAW, received some updates as well. The blog article I link to describes the generic process to tune and tweak Slackware for use as a real-time audio workstation, but I used that knowledge together with a whole lot of useful audio and music software to create a Slackware “spin-off” if you want – building on a lean Slackware package set plus the core of KDE Plasma5.
Since Slackware Live DAW  is based on liveslak, it profited from improvements in that area too. Most notably the DAW Live ISO now comes with a nice dark black & white themed background – which is better on the eyes if you work on your musical project in a room with low ambient light intensity.

Created with GIMP

The other improvement, or enhancement if you will, is that I have collected all the DAW specific programs in their own submenu “Applications > Multimedia > Slackware Live DAW” and removed them from the “Multimedia” menu. This lets you focus on the audio workstation purpose of this Live OS by having all your tools in one place.
And of course, the “setup2hd” program allows you to install the Live OS to your hard drive. One caveat though: the installation will be pristine, meaning you will get all the packages but not the “liveslak” customizations installed. What you won’t get is: the nice wallpaper, the “Slackware Live DAV” submenu, the real-time tweaks to the Operating System and the pre-configured JackQtl. On my TODO is to create a way (perhaps a package) to apply all of these customizations easily afterwards. For now, best is to run the Live OS directly from a persistent USB stick. If you have a bit of patience and at least 8 GB of RAM, you can load the whole Live OS into RAM when it boots up, and use the USB persistence to write your updates to the USB stick while you work, using the liveslak boot parameter “toram=os“. Loading into RAM will take a few minutes but then you have a lightning fast DAW OS that runs completely in memory.

I created a short video to show the boot sequence, the wallpaper and the new submenu:

Now that I am writing about my DAW project, I also want to use the opportunity to ask you – my readers – to participate in a small contest. I am not good with graphical tools, but I would really like a couple of graphics:

  • a logo for Slackware DAW Live. Higher up on this page I used a generic “tux with headphones” image but I want something special for the project. A SVG file would be best but I will settle for a nice PNG.
  • a user icon for the live account. Currently all Slackware Live editions use the purple Slackware “S” icon , but I want an icon that reflects both Slackware and making music.

I welcome your submissions and will create an overview page with all of the graphics I receive. Ultimately I will select the ones I like most and use then in the liveslak project. So please do  not share copyrighted material.
I came up with the wallpaper image myself, and I asked a friend of mine, who is also a producer and a dee-jay, to supply some of his own black & white photography as wallpapers for Slackware Live DAW.

Some of the packages I created or updated lately

I usually update the blog when I have something to share about my high-profile packages like chromium, libreoffice, openjdk, vlc and the likes. But I add stuff to the repository from time to time that serves a specific purpose – either because someone I know requested a new package, or because I expand the list of available software for my DAW Live project. Here are a couple that I did not mention yet.

OBS Studio (formerly known as Open Broadcaster Software) is video recording and streaming software. It is sometimes referenced by people when they email me with requests to create a package for it. Working out the dependencies and packaging those is not trivial. I realized that I could use this myself (to create the above video of booting DAW Live), and have added it to my slackbuilds repository along with a dependency that was not in there yet: mbedtls. The other dependencies for OBS Studio were already in my repository: jack2, vlc  and x264.
I chose not to add “luajit” as yet another dependency. Luajit meant to add Lua scripting support, but OBS Studio already supports scripts via Python3. If anyone needs Lua as well, let me know. I also did not add the suggested “fdk-aac” encoder dependency for AAC audio since Slackware’s ffmpeg package also has an AAC encoder and OBS Studio will use that instead.
I realize that Patrick recently added Simple Screen Recorder (ssr) to Slackware-current but OBS Studio is more powerful and has a lot of features which make it particularly suited for people who stream their video recordings directly to sites like Twitch or Youtube.

Geonkick is “a synthesizer that can synthesize elements of percussion. The most basic examples are: kicks, snares, hit-hats, shakers, claps”. Unfa has a video up on Youtube in which he shows a bit of the interface and the percussion sounds you can create. I added this one to my DAW package list so you can use its functionality as a plugin in Ardour or as a standalone app.

 

QTractor? My DAW package list already contains Ardour and Audacity to use as your main application to record, mix and process music. They serve different purposes and audiences – Audacity is a multi-track recorder with nice post-processing capabilities, and for some people that is all they need when Ardour has a long learning curve.
Qtractor is yet another digital audio workstation tool. It is a multi-track sequencer for audio and MIDI, with a nice QT5 interface and extensive plugin support. I guess it is comparable to Ardour but less complex and therefore suited for somewhat less experienced musicians and producers.

And here is MuseE, another audio and MIDI multi-track sequencer with an interesting feature list and a QT5 interface. Similar to QTractor you can use MusE as a your DAW studio interface or use it to pre-process your MIDI tracks before importing them into Ardour, as shown in this video tutorial sequence by LibreMusicProduction.

It will be a matter of preference which of these programs you are going to use. They are all part of Slackware DAW Live so go ahead and try them out! The Slackware DAW Live ISO image can be found at https://martin.alienbase.nl/mirrors/slackware-live/pilot/ https://slackware.nl/slackware-live/latest/ and I recommend to copy it to a USB stick as a persistent Live OS, using the iso2usb.sh script.
If and when I manage to migrate slackware.nl to a bigger server I will be able to finally host it there along with the other liveslak stuff (Update 2020-Nov-15: I finally migrated to a new server and the old server died in the process, but not before I managed to save all important stuff).

Have fun! Eric

« Older posts Newer posts »

© 2024 Alien Pastures

Theme by Anders NorenUp ↑