Main menu:

Sponsoring

Please consider a small donation:

 

 

Or you can donate bitcoin:

 

Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank

Fame

FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.

Search

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 426 other subscribers

My Favourites

Online me

Slackware

Calendar

May 2019
M T W T F S S
« Apr    
 12345
6789101112
13141516171819
20212223242526
2728293031  

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

RSS Slackware64-current

RSS SBo

Meta

Explorations into the world of electronic music production

Apart from playing the recorder flute in primary school and keyboard with my father-in-law, I pretty much never had the chance to make music or even, to create new music. That did not bother me in the past, but when I married into a very musical and creative family I realized I was the only one without musical education or skill in playing an instrument. The family has (ir)regular jam sessions and sometimes arranges (mostly private but) quite high-quality classical music performances.

But, I had other hobbies, Slackware being one of them of course, and reading books while listening to my own music collection (which almost has no overlap with my wife’s by the way). And I was glad when I saw that my son has inherited my wife’s genes and has a knack for languages and music. He is exploring digital music making, has a keyboard or two and installed Ableton Live on his computer. I could never convince him that Slackware was the better alternative to Windows, all his friends are on Windows and what the group does is important for a teen. And furthermore, there’s a slew on tutorial and instruction video’s out there, all expecting you to use Ableton.

I looked at Ableton for its possibilities, and I had several discussions with one of my colleague/friends who is also a DJ/producer and uses Ableton a his primary driver. Seems to be a real nice program… but it costs hundreds of euros. So purchasing a license for Windows 10 and another one for Ableton, just to be able to converse with my son was not an option. I’ll introduce him to my friend and we’ll visit his studio to get inspiration. Then he can implement what he learnt, using tools he is familiar with.

During the past two years, I made some purchases just to have fun with creating sounds and rhythms, buying a couple of Pocket Operators from Teenage Engineering. I had one of these PO’s in my car, plugged into the car stereo and let my son create loops and sounds while on trips. Lots of fun and not too expensive. I also have an external USB soundcard,a FocusRite Scarlett 2i4. and a MIDI keyboard and bass guitar in the attic. But life’s too short and lots of stuff asks for attention – I never spent much productive time with my gear.

But these recent discussions about how to create digital music from scratch, and my wish toe be able to record the live performances of my in-laws, triggered a desire to have a better look at electronic music production and music recording, but then on Slackware Linux of course.

What would be needed for that? I would need software to create sounds (i.e. synthesizers), manipulate audio, create drum tracks, sequence the music, record and mix it. Also my USB sound card needs to be supported and I want my use midi keyboard to enter the notes that I play into the system. I obviously need low-latency real-time performance of my Digital Audio Workstation (DAW).

I guess that for many Linux musicians, the Debian-based AVLinux is a first choice when looking for pre-packaged, pre-configured Digital Audio Workstation (DAW) solutions and supporting software. But we Slackers already have Studioware – a Slackware expansion set which gives you a great toolkit with audio- and video manipulation software. My liveslak project even supports Studioware directly, and is able to create a Studioware Live ISO. You should try that out – it has a ton of software, not just for audio but also for video recording, manipulation and recording.

But… again… and that’s just me… I think that there’s no fun in using other people’s ready-made stuff. Here I am thinking again as the software packaging geek who wants to create possibilities for other people while not necessarily using those myself.

Anyway, I decided not to look too closely at what others had already done, and research a decent set of software products that I want to try out, and on Slackware-current too. Studioware is running on Slackware 14.2 and I tend to develop new stuff on our development platform.

And after a couple of weeks spent on reading, compiling, testing and scratching my head at my lack of knowledge, I came up with this list of software that I think is a nice start for venturing into DAW country. All of this is free and open source:

  • Music recording/mixing/manipulating:
    • ardour: the professional-grade Digital Audio Workstation (DAW).
  • Sound editing:
    • audacity: a graphical sound editor with a GTK3 based UI.
  • Synthesizers:
    • amsynth: an analog modelling synthesizer.
    • helm: a polyphonic synth with lots of modulation also works as a LV2 plugin.
    • zynaddsubfx: a software synthesizer and also a LV2 plugin.
  • Drum machine:
    • hydrogen: an advanced drum machine with Qt5 based GUI.
  • MIDI input:
    • vmpk: Virtual MIDI Piano Keyboard is a MIDI events generator and receiver which can be used to drive a MIDI synthesizer.
  • Audio manipulation plugins (not counting the standalone applications mentioned above that will also run as an Ardour plugin):
    • avldrums.lv2: a LV2 plugin wrapping the AVLinux Drumkits.
    • calf: Calf Studio Gear is a LV2/DSSI plugin collection but it also works as a standalone JACK-host.
    • eq10q: equalizer (and more) as LV2-plugins.
    • vamp-aubio-plugins: a small collection of audio feature extraction plugins.
  • System tools:
    • jack-audio-connection-kit (jack2): to provide low-latency real-time audio routing.
    • alsa-plugins-jack: part of alsa-plugins but not included in Slackware, allows audio to be routed to and from ALSA applications that are not JACK-aware.
    • qjackctl: a Qt5 application to control the JACK sound server.
  • Support libraries for implementing a DAW:
    • aubio: a system to extract annotations from audio signals.
    • ladspa_sdk:  SDK for sound plugins adhering to the Linux Audio Developer’s Simple Plugin API (LADSPA).
    • liblo: implementation of the Open Sound Control (OSC), a protocol for communication among multimedia devices.
    • lv2: the LV2 open standard for audio plugins.
    • rubberband: a library for audio time-stretching and pitch-shifting.
    • vamp-plugin-sdk: an audio processing plugin system (you still need to install actual plugins).
    • wxGTK3: GTK+3 implementation of the cross-platform wxWidgets API
  • Further dependencies for the above (not part of Slackware) that I had to create as packages to get it all working:
    • drumstick: MIDI libraries for Qt5. This is also part of my ‘ktown‘ Plasma5 desktop package set.
    • liblrdf: library to access LADSPA plugin metadata.
    • lilv: a library for using LV2 plugins in applications.
    • mxml: library to read and write XML and XML-like data files.
    • serd: RDF syntax library.
    • sord: library for storing RDF data in memory.
    • sratom: library for serialising LV2 atoms to and from RDF.
    • suil: library for loading and wrapping LV2 plugin UIs.
  • System libraries that I already had in my repositories and which you may already have installed:
    • qt5: the toolkit for creating graphical interfaces
    • libxkbcommon: support library for Qt5, handling keyboard descriptions.
    • OpenAL: support library for Qt5, implementing a 3D audio API.
    • SDL_sound: support library for Qt5 handling the decoding of various sound file formats.
Update 15-march-2019

Additions to the above set resulting from the discussion in the comments area below the main article:

  • Music notation:
  • Live Coding:
    • supercollider: a platform for audio synthesis and algorithmic composition
  • Plugins:
    • lsp-plugins: Linux Studio Plugins supporting LV2, LADSPA and Jack.
  • Support libraries:
    • portaudio: a cross platform audio I/O library.
    • portmidi: a platform independent library for MIDI I/O.
  • Front-ends:
    • qsynth: a Qt5 GUI Interface for FluidSynth.

Looking back, that is a big list! Actually when I started with my shortlist as mentioned above I did not anticipate that my ideas would require this many tools to support it. However I think that in order to do some serious audio production work on your computer, this is actually the minimum of applications that you require. There may be more, and I am very curious to hear from you if there is Open Source Software not on the above list, which you think is invaluable to your work as a musician or music producer and should be added here.

The ‘big boy’ in this collection, and the center of any DAW activities on Linux, is Ardour.

Ardour DAW

This is a complex program, but luckily the developers have an extensive manual online. And if you search on Youtube you will find a lot of videos on how to work in Ardour (most of them for older versions and most of them too obscure or too rambling to be educational). However, an Ardour channel on Youtube has just been created with the intention of releasing a new series of quality instruction videos, produced by Unfa who himself has a lot of nice videos on his own channel. Like I said, I have been scratching my head a lot lately, but my hair is still there and I will make progress and understand how to use this tool efficiently… eventually.
And I am glad to finally have Audacity in my repository, something I wanted/needed for quite a while.

All these packages are available in my regular repository, with one caveat (at least for now): I have built all of them for Slackware-current (both 32bit and 64bit). If you are running Slackware 14.2 then for now you need to have a good look at Studioware instead, or you can of course download the sources for my packages and compile them yourself.
The build order is roughly like this:

  • jack2
  • alsa-plugins-jack (depends on jack2)
  • lv2
  • vamp-plugin-sdk
  • aubio (depends on jack2, and additionally on ffmpeg on Slackware 14.2)
  • liblo
  • ladspa_sdk
  • liblrdf (depends on ladspa_sdk)
  • rubberband (depends on ladspa_sdk and vamp-plugin-sdk)
  • serd
  • sord (depends on serd)
  • sratom (depends on lv2 and sord)
  • lilv (depends on sratom)
  • suil (depends on lv2 and qt5)
  • ardour (depends on jack2 aubio lv2 vamp-plugin-sdk liblo liblrdf lilv rubberband and suil)
  • mxml
  • ntk
  • portmidi (depends on openjre)
  • portaudio (depends on jack2)
  • zynaddsubfx (depends on jack2 liblo mxml ntk and portaudio)
  • hydrogen (depends on jack2 ladspa_sdk liblo liblrdf rubberband and qt5)
  • wxGTK3
  • audacity (depends on jack2 ladspa_sdk lilv suil vamp-plugin-sdk and wxGTK3)
  • qjackctl (depends on jack2 and qt5)
  • calf (depends on jack2 and lv2, and for Slackware 14.2 additionally on fluidsynth)
  • avldrums.lv2 (depends on lv2)
  • helm (depends on jack2 and lv2)
  • amsynth (depends on jack2 ladspa_sdk and liblo)
  • eq10q (depends on lv2)
  • vamp-aubio-plugins (depends on aubio and vamp-plugin-sdk)
  • drumstick (depends on qt5)
  • vmpk (depends on drumstick)
  • musescore (depends on jack2 portaudio portmidi and qt5)
  • qsynth (depends on qt5)
  • lsp-plugins (depends on jack2 ladspa and lv2)
  • supercollider (depends on jack2 and qt5)

I hope to get some interesting feedback from you. I am also considering how all of this could be added to a function-focused liveslak variant, as small as possible so it may load completely into memory. Actually I would prefer to attempt such a Live ISO using a bare Plasma5, rather than XFCE or other light-weight desktop environments (everybody else is probably already using XFCE). The Plasma5 desktop framework is very powerful and fast, and it could benefit the user of a DAW if everything she plugs in just works.

Ideas? Enjoy! Eric

 

Comments

Comment from Paulo
Posted: March 9, 2019 at 15:17

Thank you very much 🙂 I will try all these packages in the Plasma5 partition. I run Audacity for record ideas (bass and guitar) and quick edits and for midi I run VMPK with QSynth controlling fluydsynth. I’m looking for a USB (piano)keyboard to have a real keyboard to play. Which bass do you have in your attic?

Comment from tim
Posted: March 9, 2019 at 15:39

Musescore is great for composing for any instrument, and it will play what you have written (using fluidsynth), and export to midi and other formats as well. I believe it also allows you to input via midi keyboard, but as I only have non-digital keyboards I haven’t tested that.

Comment from Mark Pettit
Posted: March 9, 2019 at 15:39

Very nice work. Being a late starter myself to the music world (started tenor saxophone at age 49 – 8 years back) I fully understand your points. I would add to the list of software needed the following : musescore (create/edit sheet music), and a difficult to find program called Audiveris, which is a Optical Music Recognizer – it converts scanned music into a format that musescore (or frescobaldi) can read.

Comment from dogma
Posted: March 9, 2019 at 15:47

One piece of software I highly recommend adding in is the Non software suite, at minimum non-session-manager. It can make restoring a complicated session much easier. An absolute life saver.

Comment from Jen
Posted: March 9, 2019 at 15:55

Maybe I’m kind of old school, but for what I do, audacity, csound, puredata, and LISP is enough. I use LISP to write csound using John Rahn’s LISP kernel. I’ve been learning puredata recently because I really do need to learn a language for real time synthesis. Turning off pulse is necessary, although it doesn’t interfere if jack is running. (I keep it from running all the time, anyway, although I haven’t bothered to uninstall it.)

I haven’t done much with jack, aside from video game streaming. It’s come a very, very long way from the early 2000’s. 🙂

Real time synthesis and audio production always needed a low latency kernel, although I don’t know if that’s as necessary anymore? I haven’t needed to compile a kernel in the last few years. I don’t think the default kernel for Slackware has low latency enabled, but it wouldn’t surprise me if it does.

If you’re looking for books, Dodge & Jerse’s Computer Music: Synthesis is good, if a bit dated, for the basics. I started with csound, moved to Common Music, and got tired of some of the things hard-coded into Common Music. I moved to Common LISP music, which I like a lot better, but they moved to 2.0, which changed everything. Rather than retool code, I moved back to Csound. I should probably learn supercollider in the future, too. (Supercollider and puredata or MAX/MSP are the languages people use for real time synthesis. MAX/MSP is extremely popular, but it’s also extremely expensive, and doesn’t run on Linux.) The one thing I like about John Rahn’s LISP kernel is that it’s designed to be run with the trial version of ACL. (Common LISP music does require ACL. I’ve never gotten it to build with just clisp.)

I haven’t done much with ardour or sequencing, because it’s generally not something I need. (It’s more of a DJ thing. Don’t get me wrong, I love a lot of electronic music, think Aphex Twin and NIN should be taught in music schools, but the music I write is different.)

If I’m not doing a lot of editing and just need to see a spectral analysis of something, I’ll use snd rather than audacity. (Mostly out of habit.)

If a lot of this feels low-resource and lightweight, it’s because all through grad school, I was working with shitty gear and computers I’d Frankensteined from garbage-picked parts. (I couldn’t afford better.) My dissertation/thesis pieces were written on a Core 2 Duo with a soundblaster. I’d have to let csound render all night, then edit during the day. My current computer was the first completely new computer I”d owned. It’s getting a bit long in the tooth. I have a Delta 1010LT, which is awesome, and I’m a bit sad that they discontinued it.

Feel free to hit me up anytime!

Comment from Jen
Posted: March 9, 2019 at 15:58

Oh right, if I’m doing analog music, I use lilypond and Frescobaldi. (along with timidty) lilypond is gorgeous.

Comment from chrisretusn
Posted: March 9, 2019 at 16:04

A very interesting read. I played the clarinet in junior and senior high school. After graduation I sort of let it go.

Comment from Antoine
Posted: March 9, 2019 at 17:35

I was also surprised not to see a mention of lilypond.

Comment from Deny Dias
Posted: March 9, 2019 at 17:55

Eric, I have nothing to add to your list but the happiness to see you jumping on this bandwagon.

Fun fact: while reading I thought “hum, Jen will like this.” Here she is. 😛

Comment from alienbob
Posted: March 9, 2019 at 18:15

I had not considered Lilypond or Musescore, because I was not concentrating on music notation. I quickly looked at both sets of requirements, and Musescore requires a bit more that I do not yet have.
What are the pros and cons of both? Lilypond is a dependency of Rosegarden, what about that then?

Comment from Jen
Posted: March 9, 2019 at 19:05

I use lilypond because it’s based upon engraving standards. Plus, it’s close to the syntax of LaTeX, which I was using for papers at the time. (You can embed lilypond within LaTeX, which is nice, if you’re doing academic writing.)

The downside to lilypond over something like Finale or Sibelius is that you don’t automatically hear what you’re doing, unless you’re using a program like Frescobaldi. In the beginning, before you get good at score reading, it can be helpful to hear what something sounds like. Finale is industry standard, but its output sucks.

I’ve never used Musecore, so I’m not sure what it’s like, or if it has any advantages over lilypond.

Here’s where I put in a plug for Kurt Stone’s book “Music Notation in the 20th Century,” if you’re interested in the ins and outs of music notation and standards. I studied with Arthur Jarvinen, and picked up the basics of music transcription from him, with tech pens and vellum. Like, if you look at any Elliott Carter score, it’s done by hand in that style–it’s essentially drafting, but music. It’s fun, but I’m not good or fast enough to write my scores by hand. Lilypond is the closest to that standard. I don’t write modernist music, but I do use some conventions of it, since they’re much easier to sight read. (Like beaming over rests, for instance.)

Comment from Aleksandar
Posted: March 9, 2019 at 22:17

Dear Alien, great text! Thank you very much!

Comment from Mark Pettit
Posted: March 9, 2019 at 22:18

Comparing Lilypond to Musescore is like comparing ‘vi’ to LibreOffice 🙂 Both brilliant for their respective audiences. Musescore handles mxml (the music scoring open standard), whereas Lilypond has its own format.

Comment from Lawrence
Posted: March 9, 2019 at 22:35

First, many thank-you’s for the slackbuilds and packages and liveslack–they have all been greatly useful to me over the last decade…(wow, has it
really been that long?) Ah well, my primary musical interests are choral, guitar, and piano. Notation is important to me because I view music as a language, and in learning a language, it helps to hear, speak, read and write it–the more “hooks” the better for understanding. You have listed an excellent selection to begin a DAW. If he’s going to notate, to be able to hear notation played back with midi soundfonts (yes, they are still arround), I would add Fluidsynth with the Qsynth frontend, and one of the large sfx2 soundfonts, say Unison (http://www.personalcopy.com/sfarkfonts1.htm), also perhaps a sound card that has hardware synthesizer to play it, say an Audigy or equivalent (e-bay may be your friend for this), and a notation program. The version musescore-2.1.0 is the latest slackbuild for 14.2. Just lately I’ve been fighting with CMake to get the correct qt5 libs for it to compile musescore- 3.3 –it might be time to go with current for that though. Musescore does have a midi keyboard note entry feature, and its onboard synthesizer and soundfonts take care of playback. Rosegarden while quite excellent and pretty, (BTW it uses lilypond for engraving), may require some tinkering.

Linux audio is a very interesting bandwagon to ride…I hope you enjoy the view.

Comment from Zwierz
Posted: March 9, 2019 at 23:16

This is an great job! Thank You Eric!

I haven’t figured it out yet how to use jack and pulseaudio (I use MATE Desktop on Slackware64-current – it requires pusle :/) or how to force jack to use second soundcard… but well that’s becouse I left sound in linux long time ago (I remember strugles after going from oss to alsa) and haven’t dig much into it. Wich I will have to do right now 😉 (But I welcome any tips on the subject!)

Comment from Mark Pettit
Posted: March 10, 2019 at 08:50

Oh – and while we’re (still) on the topic of music notation, the best source of actual scores is the wikifonia.zip archive. I just did a google search for it, and it’s pretty much the first link you get – I used “wikifonia zip” as the search term. Over 6500 leadsheets available. These are all in mxml format, and thus not actually usable by Lilypond – but Musescore (and others ?) handle it perfectly. There are converters, but it’s a bit hit+miss.

Comment from bigaure
Posted: March 10, 2019 at 14:25

Impro-Visor is a notation program that can automatically generate accompainment and improvise over it.

It’s written in Java and requires JRE.I

Comment from I. Khider
Posted: March 10, 2019 at 16:58

Hello Alien Bob.

You may wish to consider the following:

-Supercollider, a very powerful tool/instrument that can give any proprietary software a run for its money. Steep learning curve, but great sounds:

https://en.wikipedia.org/wiki/SuperCollider

One artist I interviewed made the following music from SC:
https://simoncrab.bandcamp.com/

Audacity
https://www.audacityteam.org/

Another artist I interviewed, Arovane, uses Audacity for his sound design work. He likes the algorithms to change the pitch of field sounds:

https://arovane.bandcamp.com/

If you want to get into Sound Design, there is Cecilia:
http://ajaxsoundstudio.com/software/cecilia/

Some very nice plugins that receive high praise on the Ardour IRC are Linux Studio Plugins:

http://lsp-plug.in/?page=home

Then there is the world of WINE, where you can install Reaper
https://www.reaper.fm/

Then we have the Harrison Mixbus:
https://harrisonconsoles.com/site/mixbus.html

and worlds of old, yet, still good software meant for earlier versions of Windows that are relagated to the audio production software graveyards, but still work on WINE. This is a huge topic…

Electronic music producer Kim Cascone documents his transition from the cult of Mac to Linux Audio Production: http://cdm.link/2009/08/linux-music-workflow-switching-from-mac-os-x-to-ubuntu-with-kim-cascone/

I could go on…

Comment from alienbob
Posted: March 10, 2019 at 17:47

Hi all,
It’s quite refreshing to see all this new knowledge pouring into the comments section. I guess there’s a whole field of interest (music theory, music architecture, algorithmic music creation and so on) that I had never even looked at before.
I myself come from the world of Applied Physics and ventured into IT and fell in love with Linux somewhat gradually, thanks to all the different night-time jobs during my study. But it is fascinating to see how musical artists and scholars (for lack of better words) are using Linux (and hopefully Slackware) as a tool of their own craft. The alpha and beta-oriented sciences and also hobby projects almost do not seem to have overlap… but reading your comments I will have to adjust that mind set.
It made me think of my wife, she studied music, and never liked math or physics, until one lesson the teacher explained how scales can be mathematically described and how chords get to sound nice because of wavelength matches. She then felt sorry for not having had more interest in Math while in secondary school

Anyway, thanks already for all the new pieces of software that have been mentioned so far. Perhaps some of it is a bridge too far for me at this point, but I can at least say confidently that there’s a lot to be learnt yet.

In any case QSynth, the LSP plugins and either Musescore or Lilypond are on my shortlist now. Fluidsynth is already part of Slackware-current.
And supercollider is one heck of a fascinating project. Khider, you mention Simon Crab in your post, and I have listened a lot to Bourbonese Qualk when I was younger. Good music for when you need to study and tune out your fellow flatmates.

Pingback from Links 10/3/2019: GNU and GNOME Releases | Techrights
Posted: March 10, 2019 at 18:46

[…] Explorations into the world of electronic music production […]

Comment from I. Khider
Posted: March 10, 2019 at 19:45

http://www.furious.com/perfect/simoncrab.html

; – )

Comment from Marcus_777
Posted: March 10, 2019 at 22:10

For those who love trackers, try Sunvox.
http://www.warmplace.ru/soft/sunvox/

Comment from alienbob
Posted: March 10, 2019 at 22:28

Marcus_777, yeah but again – Sunvox is not Open Source.
I come from an age where “freeware” was how you got software you did not have to pay for, or “shareware” where you got limited functionality for free. All that software is now dead and forgotten as it won’t run on modern OS’es except in emulators. Only that software that got its source code opened up, survived.
It is the only way to move this world forward: create something, then let others build and improve on top of your work.

Comment from James (enorbet)
Posted: March 10, 2019 at 22:31

My 72 years has always revolved around Music and Technology. I made my living at it. With respect to digital audio I spent over $1000.00 USD on Magix Sequoia DAW back in Windows NT days and produced lots of recordings that have pleased many, including myself.

When I first started using Linux I sought a workable DAW and when Ardour first became available from the genius of Paul Davis (who also created Jack, LADSPA, and LV2) he was so focused that it was literally Pre-Alpha. It didn’t even have installation instructions but I installed and worked with it. It was at first a bit crude and had none of the polish and simplicity, let alone features, of Sequoia, but in the last 4-5 years it has pretty much caught up. The biggest obstacle for a long time was plugins as some VST plugins are simply indispensable. Many VST plugins now work just fine in Linux.

I am a bit worried about the intrusiveness and exclusivity that Pulseaudio threatens but it has given me considerable hope to see such an interest here in Eric’s blog.

Welcome to the world of digital Music Alien Bob!… and as always, thank you so much for all your hard work, sacrifice and dedication, not to mention expertise. You are a real treasure, a gentleman, a scholar and likely a fine judge of good whiskey 😉 Salut!.

Comment from Jen
Posted: March 11, 2019 at 05:46

Heh, the math involved is one reason why I prefer just intonation to 12-tone equal temperament. ;^)

I wouldn’t consider myself a mathematically-oriented person, but a lot of what I do involves mathy stuff. (LISP, spectral analysis, FFT’s, psychoacoustics.)

I’m coming from acoustic composition, though, and actually got my start doing jazz composition. I took a computer music class in grad school, figuring that I’d have to know the basics, if I ever got a student who was interested in such things. Needless to say, it stuck. 🙂 Most who do computer music have backgrounds in computer science and physics.

At some point, though, writing music is about manipulation of pitch, time, and timbre. I think that’s why I really love Jonathan Harvey’s pieces–he’s thinking about the computer the way a person would a group of acoustic musicians. Paul Lansky, too. Diane Thome writes absolutely gorgeous music, and so does Juan Pampin.

Comment from Marcus_777
Posted: March 11, 2019 at 11:22

Parts of sunvox were OS through version 1.3b http://www.warmplace.ru/forum/viewtopic.php?t=4303
Maybe in the future. Everything depends on Alex decision.
I came from the same age. I was very active on the Amiga music scene. Ultimate sound tracker(commercial) or Nois tracker(shareware). Later on DOS Scream tracker, Fast tracker and Impulse tracker. Yea Golden age of tracker music.
Full open source tracker, which I use on Slackware is Milky Tracker https://milkytracker.titandemo.org/

Comment from KG Hammarlund
Posted: March 11, 2019 at 12:30

i’m another MuseScore advocate, although I can understand and accept if you find it too cumbersome to compile a package after your standards.
The existing SBo script is outdated (version 2.1.0 although the latest version is 3.0.4). My solution has been to simply repacking the ArchLinux .pkg.tar.xz package.

Comment from Gerald Morris
Posted: March 12, 2019 at 07:34

I’ve built Ardour and got it running on some Slack stations I set up for a couple musicians about 9 yrs ago. Its an EXCELLENT app, yes, with MANY dependencies, but well worth the trouble.

Comment from Bob Funk
Posted: March 12, 2019 at 16:25

Eric, it is nice to see that you’re venturing into the Linux audio production world! I am all too familiar with that large list of dependencies and programs to get a usable audio production system on Slackware. I was running the same software on my system a couple years ago. Unfortunately I got tired of maintaining and recompiling an ever growing list of software whenever slackware-current changed shared libraries so I switched to dual booting KXstudio for the ease of a complete system. However, if they’re now in your repository I’ll have to try switching back to pure slackware 🙂

One of the biggest issues with audio production on Linux hunting down and installing decent audio plugins. Glad to see you put Calf Studio on the list as the plugins are all excellent. I would also recommend the EQ10Q plugins which have nice equalizers with spectral analysis built in (http://eq10q.sourceforge.net/).

Zynaddsubfx is a powerful synth, but I would recommend going to Zyn-Fusion which is Mark McCurry’s rewrite of the clunky UI into a more streamlined version. He asks for $55 USD on the website but he has also made the source freely available to build on his github (https://github.com/zynaddsubfx/zyn-fusion-build). I had no trouble building it on slackware-current, although it’s been about a year since I’ve tried.

Ardour is my go to DAW. The learning curve is steep but the capabilities are better than LMMS. I record music using my Focusrite Scarlett 18i8 interface with guitars, microphones, and a MIDI keyboard controller. Ardour is nice in its ability to seamlessly mix real instrument recordings with software instruments. I haven’t used Non very much but once I figured out the basics of ardour there wasn’t any need for another DAW. Unfa’s videos are good for learning the ins and outs but there is quite a lot of content to go through. Following along with some of his tutorials have definitely helped me learn ardour and zyn-fusion/zynaddsubfx.

One other recommendation: I use headphones as monitors, plugged into my scarlett interface which is run via Jack’s backend. Occasionally i like to play mp3 tracks over the headphones but I find that not many audio players are jack aware. XMMS-jack plugin (https://slackbuilds.org/repository/14.2/audio/xmms-jack/?search=xmms-jack) is nice to quickly open a track and have play into the jack server which can route to my headphones.

I will be watching this development with great interest!

Comment from Regnad Kcin
Posted: March 12, 2019 at 23:10

Quoteworthy:

It is the only way to move this world forward: create something, then let others build and improve on top of your work.

– Eric (“Alien Bob”) Hameleers

Comment from alienbob
Posted: March 12, 2019 at 23:47

Hi Bob Funk, I had already added a eq10q package from the beginning. I also looked at zyn-fusion but to me it looked a work-in-progress and no clean way to build a package for it.
Please try my packages if you have time, I would appreciate any feedback. There’s likely room for improvement in how I built them.

Comment from alienbob
Posted: March 12, 2019 at 23:53

In the meantime, I created 64bit test packages for portaudio, portmidi, musescore (3.0.5 was just released hours ago), lsp-plugins and qsynth.
Musescore looks very nice, but I think I am also going to try building lilypond and rosegarden this weekend.

My current issue with qsynth is that on startup it shows the error “Failed to create the audio driver (jack)”. I confess that I am not sure in what order and with what configurations I need to run qsynth, and qjackctl. Your thoughts are welcome.

Comment from Bob Funk
Posted: March 14, 2019 at 02:19

Sorry I missed the eq10q in the list above, I should have read more carefully.

I have downloaded and installed the audio packages today and will start testing things out.

One thing that I have noticed after firing up ardour in a jack session is that the zynaddsubfx plugin gui is broken and only shows minimal controls when opened from inside ardour (add a zynaddsubfx MIDI track in ardour, then open the gui interface by double clicking the zynaddsubfx instrument in the mixer window to see this). If you run zynaddsubfx as a standalone program connected to jack there is a working gui there, but it will be cumbersome to work this way when using multiple instances/tracks with zyn.

After some internet research I installed the ntk package (Non GUI toolkit) from slackbuilds.org, then edited and rebuilt your zynaddsubfx.Slackbuild with -DGuiModule=ntk instead of fltk and now the gui is working in both plugin and standalone mode.

I also tried out qsynth and got the same error as you. It seems that qsynth is using the official slackware package for fluidsynth which wasn’t built with jack support. I rebuilt the fluidsynth package from the slackware.com source after jack was installed and now qsynth works properly.

If you’re using jack/qjackctl then going into qsynth’s setup and changing the midi driver to jack will make the midi connection available in qjackctl. Also you can change the audio sample rate from 44.1k to 48k to match qjackctl’s setting and avoid resampling.

I’ll continue using the software and let you know of anything else I find.

Comment from alienbob
Posted: March 14, 2019 at 10:29

Hi Bob,
Thanks for your valuable feedback.
I will probably have to add a recompiled fluidsynth package to my own repository to make qsynth work properly with Jack. And I will add ntk and recompile zynaddsubfx soon; pity that the fltk GUI is not working in plugin mode.

Comment from alienbob
Posted: March 16, 2019 at 00:15

I have uploaded several packages so far. I want to do my own version of fluidsynth later this weekend, but already available are:
A recompiled zynaddsubfx using a new ntk package;
Musescore plus the dependencies I did not yet have (portaudio and portmidi);
Qsynth and lsp-plugins;
And supercollider.
Enjoy! I will also update the main article with these new packages.

Comment from KG Hammarlund
Posted: March 16, 2019 at 11:42

Hi Eric,
I notice that jack2 is a listed depenency for your portaudio package and this package in turn has celt and opus as listed dependencies. celt is not found in your repo.
I had an older version of portaudio installed, built with the SBo script which has jack only as optional dependency. The latest portaudio verson also builds fine with the SBo script without jack2.
But I also notice that jack2 is a dependency for a lot of your new music production packages. Maybe, when you can find the time, a celt package could be added to your repo? Even if it builds easily with the SBo script.

Comment from alienbob
Posted: March 16, 2019 at 12:01

Hi KG Hammarlund,

Yeah apparently I have not cleaned up the dependency list properly. CELT has been merged into the OPUS codec, so it is not longer needed as a separate package in Slackware-current.
Opus also obsoletes vorbis and speex by the way, for newly written applications the choice would be to use only libopus.

About JACK as an optional versus mandatory dependency: SBo caters to a lot of different wishes and can do so because it only distributes source SlackBuilds. When you build the actual package, you have to make that choice of using that optional dependency.
In creating the set of audio-related packages I decided to make JACK a hard dependency, because some of the applications require it anyway,

Comment from KG Hammarlund
Posted: March 16, 2019 at 13:12

Thanks for the clarification!

Comment from Bob Funk
Posted: March 16, 2019 at 17:03

Thanks for the new software Eric!

One piece of software I forgot to mention that would make an excellent addition to this list is the guitarix amplifier software and its plugins (https://sourceforge.net/projects/guitarix/). Basically takes an electric guitar jack from my interface and provides excellent simulation of numerous guitar amp stacks and effects. Great for plugging in the headphones and noodling around on a guitar without annoying all your family and neighbours. The guitarix plugins are also useful in ardour with other instrument tracks.

Comment from Bob Funk
Posted: March 16, 2019 at 17:39

I should also mention that over the last few days I’ve been poking around the zyn-fusion build scripts trying to see how it works. I know you had dismissed it as being difficult to cleanly package but I missed using zyn-fusion in my daw workflow so I decided to give it a try. I’d like to share my findings with you.

It seems that zyn-fusion is essentially the same build as with the zynaddsubfx source code that you have, with the added dependency of mruby-zest, which is Mark McCurry’s gui engine for zyn-fusion (https://github.com/mruby-zest/mruby-zest-build).

I’ve edited your slackbuild file so that it downloads and builds mruby-zest prior to zynaddsubfx. Then zynaddsubfx is compiled with -DGuiModule=zest option. There’s also a few added steps of copying the zyn-fusion/zest binaries, libraries, and docs to the relevant output package directories. The end result is a working zynaddsubfx package with the zyn-fusion gui instead of the older ntk version.

Now I have only been using slackware full time for the last three years so my experience with package building is minimal. I would appreciate it if you could look over my slackbuild script modifications and see if the steps I’ve taken would be considered a clean way to build and package this. I will put a pastebin link here with the code if you’re interested (https://pastebin.com/fE91NPF1)

Note that if you run the modified slackbuild script that the Makefile for mruby-zest will download and make another dependency libuv before building zest. Not sure if that’s ideal but I didn’t want to modify anything in the source code.

Regards,

Bob

Comment from alienbob
Posted: March 16, 2019 at 22:08

Hi Bob,
Guitarix would require yet another slew of dependencies. I am not yet prepared to do all that, after creating almost 40 packages last week.

I think I know a way to package zyn-fusion without on-the-fly downloads during the build. But that may have to wait a bit since the work on the previous packages ate too much of my free time and other private stuff is overdue. New KDE Plasma5 packages are higher on the priority list now.

Comment from Bob Funk
Posted: March 17, 2019 at 17:22

No worries Eric, I was only adding to the discussion of “nice to have” things in this new audio software stack, not trying to load you up with more work. I know how much time is required in setting up all this software, never mind the other packages you maintain, plus balancing work and family on top of it all. Your work is much appreciated!

Comment from alienbob
Posted: March 17, 2019 at 18:18

Bob, I assume that these packages will eventually show up in my repository, once my curiosity is piqued.
However, I am scratching my head over a somewhat shorter-term goal, which is to keep Slackware’s sound going even after starting jackd.
What I would like is to feed ALSA and Pulseaudio into JACK. As far as I can seem Cadence is the best (easiest to setup) option for that. It needs a couple of other packages (again) to build, so it’s in “study phase” at the moment. But how do people make JACK the primary sound server, with ALSA and Pulseaudio plugging into the JACK backend if not with some management tool like Cadence? Custom scripts? Or …?

Comment from Marcus_777
Posted: March 17, 2019 at 19:38

… or use two different sound cards. as I and musicians around me. External USB card for recording and audio monitoring connected to JACK. Build in audio codec with PulseAudio for all desktop application. Or suspend PulseAudio while JACK is running, if you have only one sound card.

Comment from Bob Funk
Posted: March 17, 2019 at 21:53

As far as audio connections are concerned pulseaudio has the capability to connect to jack with its built in modules “module-jack-source” and “module-jack-sink”. Unfortunately this is another issue with using the slackware official package for pulseaudio which is not compiled with jack support (it would be nice if jack was in the official stream to fix some of these packages 🙂 )

If you grab the sourcecode for the build from slackware.com and rebuild it with jack present on the system then these modules become available. You will have to execute the commands “pactl load-module module-jack-source” and “pactl load-module module-jack-sink”, which then provide stereo input and output connections in qjackctl.

To take it one step further you can open Setup>>Options in qjackctl and execute “pactl load-module module-jack-source && pactl load-module module-jack-sink” on startup and if you wish “pactl unload-module module-jack-source && pactl unload-module module-jack-sink” on shutdown to automate providing the connections in qjack.

However, when you open a new application during a qjack session to play audio (e.g. firefox or mplayer), the connections are not persistent between sessions. If audio isn’t playing then open pavucontrol (pulse audio volume control) and manually set the application to output to the jack-sink module.

Now MIDI on the other hand is a separate problem it seems. I would like to be able to bridge from alsa midi to jack midi. I run jack with my focusrite scarlett as the sound device. My MIDI keyboard connected to usb so that routes to alsa midi. The connections cant be made in qjackctl with out some additional software like a2jmidid (https://libremusicproduction.com/tools/a2jmidid) , which i cant seem to build at the moment. Of course I should just buy a proper MIDI cable and connect to the focusrite scarlett to the preferred device but I know its possible with software to bridge the midi connections.

Comment from Bob Funk
Posted: March 17, 2019 at 22:16

Regarding the persistence of pulse audio connections: you can also issue “pactl set-default-sink jack_out” after loading the modules to have programs default to connecting to jack. Use “pacmd list-sinks” to view other available audio sinks as well. I should have checked the man page earlier

Comment from Lockywolf
Posted: March 19, 2019 at 01:57

I wonder, what was the motivation behind choosing pulseaudio as a default sound server in Linux?

I don’t mean that we should live with bare alsa, although with dmix it can satisfy, I believe, the demands of 90% users, but we had had JACK for ages before pulseaudio was even consieved, and I never had any problems with JACK.

Comment from Fonz
Posted: March 19, 2019 at 12:46

A rather different approach to create electronic music is tidal, where music is \”programmed\”.
https://tidalcycles.org/index.php/Welcome
The page has an interesting \”live coding\” video.

Comment from alienbob
Posted: March 19, 2019 at 18:50

Lockywolf, read the Slackware 14.2 ChangeLog.txt entry please, timestamped “Wed Jan 13 00:01:23 UTC 2016”.

Comment from alienbob
Posted: March 19, 2019 at 18:51

Hi Fonz, I already added supercollider to the package mix last week. Also, Sonic Pi is a nice contender in this area.

Comment from Bob Funk
Posted: March 21, 2019 at 22:36

I noticed you packaged up the pulseaudio plugins for jack. Definitely a better solution than rebuilding the entire program, thanks!

Any chance you could look at adding a2jmidid (alsa to jack midi daemon) when you have time? I can’t seem to get its waf build script to work on slackware64-current. It would be nice to be able to connect midi devices using alsa into programs using jack.

Comment from alienbob
Posted: March 21, 2019 at 23:43

Hi Bob

I am currently fighting with 32bit Chromium (which no longer builds) so that’s eating the CPU cycles on the build box these days, but I quickly put together a a2jmidid.SlackBuild and had no problems compiling a package.
I’ll re-do it properly this weekend and also build a 32bit -current package for it.

Comment from Jen
Posted: March 22, 2019 at 06:09

So I asked a friend of mine from my Ph.D days who is involved in the supercollider community, and he said I should bug report the compile error I was getting. He thinks it’s an issue with cmake. (Error here: https://pastebin.com/Q0N9kCkG)

Your repository is for current only? Honestly, I’m not sure I’d use supercollider enough to make it worth your time to build another package for 14.2. It’s kind of a pain to compile.

One thing going for puredata is that it compiles easily, you start it up, and it runs. It’s weird arranging boxes and lines–it doesn’t feel like programming, but it’s definitely a language. (It’s also cheaper and under the GPL, unlike MAX/MSP…)

Comment from alienbob
Posted: March 22, 2019 at 16:42

Jen, with some modifications to my supercollider script I could build a package on Slackware64-14.2.
Basically I needed to:
– change the script to *not* use the too old system boost libraries. I guess your script already uses the internal copy of boost shipped with the supercollider source.
– add cmake definitions to add “-lncurses” to the linker flags. Like this:
-DCMAKE_SHARED_LINKER_FLAGS=”-lncurses”
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE=”-lncurses”

Comment from Jen
Posted: March 22, 2019 at 17:21

OK, thanks! I’ll try the changes and see how it goes. I probably won’t get to it until the weekend, though.

Comment from Marcus_777
Posted: March 22, 2019 at 18:11

Offtopic – Eric, do you know, who maintain Audacious package for Slackware? Audacious-plugins is build without libcue, than Audacious cannot parse cue files. I was trying contact Pat several times. Without any results. I was trying “Requests for current” on linuxquestion, again any results. I believe that this extension would be welcomed by a lot of users with extensive flac collection. I must rebuild audacious-plugins against libcue with every audacious update in current.

Comment from alienbob
Posted: March 22, 2019 at 21:50

Audacious is part of Slackware, and Pat maintains that package.
Lots of requests are being made in that LQ thread, some are simply not honored, while others may get overlooked. And libcue is not part of Slackware yet.

Comment from lleroy
Posted: March 31, 2019 at 20:50

I’d recommend to consider LMMS and Pure Data

Comment from Oberoid
Posted: April 15, 2019 at 10:35

Ahoy Alien Bob,
Super! I was looking for a replacement my ubuntu studio setup at school. Just benchmarked slackware 32B KDE against lubuntu. To my surprise I could watch youtube vids on my 2005 laptop with 1 gig ram. Use these laptops for Teeworlds lanparty at thursday and friday. Now I understand why kde full install is advised over XFCE. (actually lubuntu is also migrating to qt)
Kids at my technology class use lmms. On the LMMS site I found an interesting link.”sbopkg -i fltk -i lmms” I did not know sbopkg. I’m hesitant to use it though. Lmms does not seem to have much dependencies anywat.
Just re-entering the slackworld. Grts

Comment from Michael Niemeck
Posted: April 16, 2019 at 06:14

Welcome to the incredible world of music!
I’ve been making music essentially my entire life (mostly classical though), and I earn the money I need for lessons and new gear by writing computer software. Also, I’ve been hooked on Slackware since the floppy-disk-days, so I can totally relate to your approach.
I have at least tested almost all applications mentioned so far over the years, but I have to admit, as I grow older, and the time I am willing to spend in front of a screen diminishes, I now try to live with as few programs as possible.
So, for what it’s worth, here’s my personal shortlist
* Ardour (given that recent versions ship with a reasonable set of effect plugins and have limited functionality even without JACK, I usually go without third-party plugins an sometimes just with plain ALSA)
* Lilypond (If your music is supposed to be read by actual musicians, and you are not a trained engraver, there’s really no alternative in my opinion. And if you are used to working with LaTeX you’ll feel right at home, even without any GUI)
* Fluidsynth (For whenever I’m too lazy to drag a real instrument in front of my computer. Sounds reasonably well, and as an added benefit can play MIDI files directly from the command line. Needs at least one Soundfont.)
* Sonic Visualiser (At the bottom of my short shortlist. I don’t use it often, and I’m nowhere near using all of it’s features, but if you’ve ever tried to transcribe a recording using a normal media player, you’ll appreciate it nevertheless. Needs some VAMP plugins to be of any use at all)
Please note that implies in no way any judgement on any of the other software packages mentioned in this thread. It’s just my list of things I typicall install right after Slackware when I set up a new machine for myself…

Comment from Oberoid
Posted: April 17, 2019 at 22:54

Hi Alien Bob,
I had a problem with k3b when trying to rip a copy protected dvd. I tried for more than an hour to get things working. Normally I do not mind tweaking on programs, even for days. But I realized in the process that I had the same experience more than 15 years ago with KDE. Now I could start up OpenSuse and look how how their system is build around KDE. But i felt that KDE was distracting me from understanding the basics of the system. I remembered I kept the hard copy slackbook. Mostly the descriptions in that book are still valid – Slack is still systemd free. So what iI end up doing was making Slack slim again. Even found out that you could do without another “novelty” – dbus. Now setting up studio setup without qt, systemd and dbus is probably quiet a challenge. However with the help of slackbuilds scripts, the compiler warnings give an excellent indication what dependencies are needed. So I’m in the process of moving away from the desktop and to embedded (raspberry) slackware. Grts. F.P.

Comment from Oberoid
Posted: May 2, 2019 at 13:12

Just a thumbs up for your instructions for
https://wiki.alienbase.nl/doku.php?id=slackware:network
What has that to do with music? Want to master my slackbox as a musical instrument. And
Sonic Pi or Super Collider via OSC
https://sonic-pi.net/tutorial.html#section-12

Write a comment