Where to start developing Linux music software?

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

kujaw
Established Member
Posts: 12
Joined: Sun Jan 14, 2018 3:43 pm

Where to start developing Linux music software?

Post by kujaw »

I've found this github tutorial: https://github.com/harryhaaren/openAudi ... gTutorials
But it's 6 years old, I'm wondering if there's something fresher out there.

I'd like to write plugins. Or something else (I'm still new into Linux, programming, Linux music), but let's say that my first project is a plugin.
How to start, where to start? Which ones should I learn to write - VST, LV2, any other?

I'm a newbie in C++ and Python.

Any help appreciated.
rghvdberg
Established Member
Posts: 1067
Joined: Mon May 12, 2014 7:11 am
Has thanked: 15 times
Been thanked: 36 times

Re: Where to start developing Linux music software?

Post by rghvdberg »

I started last summer. Also with DPF, after FalkTX brought my attention to it.
I highly recommend it.

To get me started I watched his DPF talk by the master himself. I followed along and this helped a lot finding my way around DPF.
https://media.ccc.de/v/minilac16-ltsmakesomeplugins

Also I've learned a lot from the zam-audio plugins.
https://github.com/zamaudio/zam-plugins

And asked a lot of noob questiona in #lad and #c++-basic on Freenode.

You'll find the Linux Audio developers to be very helpful :-)

My current projects are a sample slicer called ninjas and I'm working on the UI of dragonfly reverb, all on github.
Luc
Established Member
Posts: 741
Joined: Fri Mar 27, 2015 1:04 pm
Been thanked: 1 time

Re: Where to start developing Linux music software?

Post by Luc »

Where to start? Well, I've been around for a couple of years and I'm still a newbie, but in two years I've never seen any kind of "It Starts Here" sign. You find something interesting, you investigate it, and you've already started before you know it. There will be gaps in your knowledge and you will be filling them randomly, but that's OK. It doesn't matter. Just roll up your sleeves and get your hands dirty.

Hey, you found this forum. It's a great place to start. :wink:
CrocoDuck
Established Member
Posts: 1133
Joined: Sat May 05, 2012 6:12 pm
Been thanked: 17 times

Re: Where to start developing Linux music software?

Post by CrocoDuck »

I am a newbie digging into audio software development too. I wanted to keep a diary of my progress on my blog, to hep fellow newbies as well, called "Linux audio development: a noob's journey"... but I quite don't have enough time.

If you don't have a solid DSP background I think you can use Romain Michon Faust workshops as a (very) gentle introduction. It is an introduction to the Faust programming language, but it covers also basic DSP and acoustic concepts.

https://ccrma.stanford.edu/~rmichon/fau ... ourse2015/

Romain points to sources for more advanced understanding along the workshop, mostly free available books written by Julius Orion Smith III (https://ccrma.stanford.edu/~jos/). Be aware that now Faust libraries are organized differently with respect that workshop, but the concepts are all still there. You can find more up to date tutorials on the same website. Faust is a pretty nice programming language for DSP, and you can get a plugin up and running in seconds with it. Probably the best language to try out ideas quickly. It is quite fun and satisfying to get a plugin working out of 10 lines of code.

However, for more complex projects, involving your own GUIs for example, you will need to learn C++ quite well. Cool thing is that Faust can generate well optimized C++ code you can include in your projects. Guitarix, for example, is developed in that way.
Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Re: Where to start developing Linux music software?

Post by Lyberta »

kujaw wrote:I've found this github tutorial: https://github.com/harryhaaren/openAudi ... gTutorials
i've looked at WriteSndfileToDisk and JackClient and I can say that C++ in those tutorials is rather bad. But I don't know of any good C++ tutorial as I'm self taught. There are great CppCon videos out there though.
kujaw
Established Member
Posts: 12
Joined: Sun Jan 14, 2018 3:43 pm

Re: Where to start developing Linux music software?

Post by kujaw »

Thanks a lot for the responses. I'll check all these links/videos/tutorials :)

I've just started Audio Signal Processing @ Coursera, it should be a good introduction to DSP.
Also I'm learning Bjarne Stroustrup's C++ book right now.

At this moment, what I mean by "where to start" is - what plugin type should I write. VST, LV2, LADSPA? I know that VST is most popular, I've also read that it's now also supported on Linux.
Which one is the most versatile? What I would like to write is something cross-platform.
User avatar
lucianodato
Established Member
Posts: 156
Joined: Sat May 15, 2010 9:00 pm
Has thanked: 3 times
Been thanked: 16 times

Re: Where to start developing Linux music software?

Post by lucianodato »

You are off to a great start! I did that course too! It was great I highly recommend it! :D
Speaking of plugins types I'm in the same boat as you are. I know that the two big players for developing in linux are DPF and Juce. Definitively DPF is the best option for linux the thing that I don't know if it can export plugins to be used in windows or mac (that would be cool if possible).
Arguy (IRC)
User avatar
Michael Willis
Established Member
Posts: 1450
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Has thanked: 68 times
Been thanked: 162 times
Contact:

Re: Where to start developing Linux music software?

Post by Michael Willis »

lucianodato wrote:Definitively DPF ... I don't know if it can export plugins to be used in windows or mac (that would be cool if possible).
Yes, DPF is designed to compile for Linux, Mac, and Windows. I have confirmed that my current DPF project works on both Mac and Linux, and I'm hoping that somebody will also compile it for Windows at some point so that I can say that it supports all three.
User avatar
lucianodato
Established Member
Posts: 156
Joined: Sat May 15, 2010 9:00 pm
Has thanked: 3 times
Been thanked: 16 times

Re: Where to start developing Linux music software?

Post by lucianodato »

So clear winner is DPF then.
Arguy (IRC)
Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Re: Where to start developing Linux music software?

Post by Lyberta »

lucianodato wrote:So clear winner is DPF then.
Now if only it would integrate well with CMake and Conan.
Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet
Been thanked: 1 time

Re: Where to start developing Linux music software?

Post by Lyberta »

falkTX wrote:Hm? nothing stops you from doing that in your own plugins.
Zyn uses DPF for its plugin version, together with cmake.
I don't see a simple way of merging the makefile mess of DPF with cmake code. Is there a way?
User avatar
lucianodato
Established Member
Posts: 156
Joined: Sat May 15, 2010 9:00 pm
Has thanked: 3 times
Been thanked: 16 times

Re: Where to start developing Linux music software?

Post by lucianodato »

Hey! Coincidentally I'm playing with meson for my plugin and it's just great. I can fork some dpf example and build it with meson now that I know a little bit more of how it works. Would that be useful? Plus I plan to migrate to dpf in the near future so it's win win for me
Arguy (IRC)
User avatar
lucianodato
Established Member
Posts: 156
Joined: Sat May 15, 2010 9:00 pm
Has thanked: 3 times
Been thanked: 16 times

Re: Where to start developing Linux music software?

Post by lucianodato »

How about an amp plugin that uses dpf and meson as a build system? Would that be useful? Meson is not hard to learn at all and makes much more sense than make or cmake or waf or anything really (I'm converted yes!)
Arguy (IRC)
User avatar
SpotlightKid
Established Member
Posts: 250
Joined: Sun Jul 02, 2017 1:24 pm
Has thanked: 48 times
Been thanked: 54 times

Re: Where to start developing Linux music software?

Post by SpotlightKid »

Lyberta wrote:I don't see a simple way of merging the makefile mess of DPF with cmake code.
I find the makefiles that DPF uses, quite clear.

BTW, a while ago, I wrote a cookiecutter template, with which you can generate a new DPF project by simply answering a few prompts:

Code: Select all

$ cookiecutter https://github.com/SpotlightKid/cookiecutter-dpf-effect
project_name [Simple Gain]: 
plugin_description [A simple audio volume gain plugin]: 
full_name [Christopher Arndt]: 
domain [chrisarndt.de]: 
github_username [SpotlightKid]: 
email [info@chrisarndt.de]: 
plugin_brand [chrisarndt.de]: 
plugin_name [SimpleGain]: 
repo_name [simplegain]: 
plugin_uri [http://chrisarndt.de/plugins/simplegain]: 
project_license [MIT]: 
version [0.1.0]: 
year [2016]: 2018
Leeres Git-Repository in /home/chris/work/audio-plugins/simplegain/.git/ initialisiert
Klone nach '/home/chris/work/audio-plugins/simplegain/dpf' ...
remote: Counting objects: 7126, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7126 (delta 0), reused 1 (delta 0), pack-reused 7121
Empfange Objekte: 100% (7126/7126), 12.12 MiB | 966.00 KiB/s, Fertig.
Löse Unterschiede auf: 100% (6040/6040), Fertig.
$ cd simplegain
$ ls
dpf/  plugins/  LICENSE  Makefile  Makefile.mk  README.md
$ git remote -v
origin	git@github.com:SpotlightKid/simplegain (fetch)
origin	git@github.com:SpotlightKid/simplegain (push)
$ make
[ Compilation output ]
$ ls bin
simplegain.lv2/  simplegain-dssi.so*  simplegain-ladspa.so*  simplegain-vst.so*
rghvdberg
Established Member
Posts: 1067
Joined: Mon May 12, 2014 7:11 am
Has thanked: 15 times
Been thanked: 36 times

Re: Where to start developing Linux music software?

Post by rghvdberg »

That's brilliant!
Thanks.
Post Reply