Where to start developing Linux music software?

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

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.
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:anyway, instead of complaining you can do more useful things and contribute with a pull request or patches.
I do have plans to do that but I don't understand most of what is going on inside those Makefiles.
falkTX wrote:to be honest, I really cannot read cmake projects at all.
What about this one, it's from one of my libraries:

Code: Select all

cmake_minimum_required(VERSION 3.8)

# Name of the library.
set(LIBRARY_NAME ftzGeneral)

# Name of the library file.
set(LIBRARY_FILENAME ftzgeneral)

# Name of the project.
project(${LIBRARY_NAME})

# Setting output directory.
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Lib)

# Importing Conan settings.
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS NO_OUTPUT_DIRS)

# Adding a library target.
add_library(Library
	Src/Delta.cpp
	Src/FileLogger.cpp
	Src/Hex.cpp
	Src/InterfaceManager.cpp
	Src/MultiLogger.cpp
	Src/RLE.cpp
	Src/StdLogger.cpp
	Src/ThreadedMultiLogger.cpp
	Src/UUID.cpp
	Src/WorkerThread.cpp)

# Setting the name of the library file.
set_target_properties(Library PROPERTIES OUTPUT_NAME ${LIBRARY_FILENAME})

# Specifying compiler configuration for the library.
target_compile_options(Library PUBLIC "-fconcepts")
set_target_properties(Library PROPERTIES POSITION_INDEPENDENT_CODE ON)

# Specifying include directories of the library.
target_include_directories(Library PUBLIC Include)

# Specifying libraries to link to for the users of the library.
target_link_libraries(Library PUBLIC CONAN_PKG::ftzSerialization pthread stdc++fs)
Post Reply