Where to start developing Linux music software?

Programming applications for making music on Linux.

Moderators: khz, MattKingUSA

User avatar
lucianodato
Established Member
Posts: 146
Joined: Sat May 15, 2010 9:00 pm

Re: Where to start developing Linux music software?

Postby lucianodato » Thu Mar 29, 2018 3:57 pm

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: 85
Joined: Sun Jul 02, 2017 1:24 pm

Re: Where to start developing Linux music software?

Postby SpotlightKid » Thu Mar 29, 2018 4:31 pm

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: 888
Joined: Mon May 12, 2014 7:11 am

Re: Where to start developing Linux music software?

Postby rghvdberg » Thu Mar 29, 2018 7:06 pm

That's brilliant!
Thanks.

Lyberta
Established Member
Posts: 681
Joined: Sat Nov 01, 2014 8:15 pm
Location: The Internet

Re: Where to start developing Linux music software?

Postby Lyberta » Fri Mar 30, 2018 3:10 am

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)


Return to “Developer's Section”

Who is online

Users browsing this forum: No registered users and 0 guests