Page 1 of 2

Where to start developing Linux music software?

Posted: Thu Mar 08, 2018 7:00 pm
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.

Re: Where to start developing Linux music software?

Posted: Fri Mar 09, 2018 7:21 pm
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.

Re: Where to start developing Linux music software?

Posted: Fri Mar 09, 2018 7:53 pm
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:

Re: Where to start developing Linux music software?

Posted: Sat Mar 10, 2018 11:36 am
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.

Re: Where to start developing Linux music software?

Posted: Sat Mar 10, 2018 12:10 pm
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.

Re: Where to start developing Linux music software?

Posted: Tue Mar 27, 2018 5:43 pm
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.

Re: Where to start developing Linux music software?

Posted: Tue Mar 27, 2018 7:17 pm
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).

Re: Where to start developing Linux music software?

Posted: Tue Mar 27, 2018 9:04 pm
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.

Re: Where to start developing Linux music software?

Posted: Tue Mar 27, 2018 9:27 pm
by lucianodato
So clear winner is DPF then.

Re: Where to start developing Linux music software?

Posted: Wed Mar 28, 2018 7:05 pm
by Lyberta
lucianodato wrote:So clear winner is DPF then.
Now if only it would integrate well with CMake and Conan.

Re: Where to start developing Linux music software?

Posted: Thu Mar 29, 2018 1:56 pm
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?

Re: Where to start developing Linux music software?

Posted: Thu Mar 29, 2018 3:44 pm
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

Re: Where to start developing Linux music software?

Posted: Thu Mar 29, 2018 3:57 pm
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!)

Re: Where to start developing Linux music software?

Posted: Thu Mar 29, 2018 4:31 pm
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*

Re: Where to start developing Linux music software?

Posted: Thu Mar 29, 2018 7:06 pm
by rghvdberg
That's brilliant!
Thanks.