@@ -0,0 +1,3 @@ | |||||
[submodule "dpf"] | |||||
path = dpf | |||||
url = git://github.com/falkTX/DPF |
@@ -0,0 +1,165 @@ | |||||
GNU LESSER GENERAL PUBLIC LICENSE | |||||
Version 3, 29 June 2007 | |||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | |||||
Everyone is permitted to copy and distribute verbatim copies | |||||
of this license document, but changing it is not allowed. | |||||
This version of the GNU Lesser General Public License incorporates | |||||
the terms and conditions of version 3 of the GNU General Public | |||||
License, supplemented by the additional permissions listed below. | |||||
0. Additional Definitions. | |||||
As used herein, "this License" refers to version 3 of the GNU Lesser | |||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU | |||||
General Public License. | |||||
"The Library" refers to a covered work governed by this License, | |||||
other than an Application or a Combined Work as defined below. | |||||
An "Application" is any work that makes use of an interface provided | |||||
by the Library, but which is not otherwise based on the Library. | |||||
Defining a subclass of a class defined by the Library is deemed a mode | |||||
of using an interface provided by the Library. | |||||
A "Combined Work" is a work produced by combining or linking an | |||||
Application with the Library. The particular version of the Library | |||||
with which the Combined Work was made is also called the "Linked | |||||
Version". | |||||
The "Minimal Corresponding Source" for a Combined Work means the | |||||
Corresponding Source for the Combined Work, excluding any source code | |||||
for portions of the Combined Work that, considered in isolation, are | |||||
based on the Application, and not on the Linked Version. | |||||
The "Corresponding Application Code" for a Combined Work means the | |||||
object code and/or source code for the Application, including any data | |||||
and utility programs needed for reproducing the Combined Work from the | |||||
Application, but excluding the System Libraries of the Combined Work. | |||||
1. Exception to Section 3 of the GNU GPL. | |||||
You may convey a covered work under sections 3 and 4 of this License | |||||
without being bound by section 3 of the GNU GPL. | |||||
2. Conveying Modified Versions. | |||||
If you modify a copy of the Library, and, in your modifications, a | |||||
facility refers to a function or data to be supplied by an Application | |||||
that uses the facility (other than as an argument passed when the | |||||
facility is invoked), then you may convey a copy of the modified | |||||
version: | |||||
a) under this License, provided that you make a good faith effort to | |||||
ensure that, in the event an Application does not supply the | |||||
function or data, the facility still operates, and performs | |||||
whatever part of its purpose remains meaningful, or | |||||
b) under the GNU GPL, with none of the additional permissions of | |||||
this License applicable to that copy. | |||||
3. Object Code Incorporating Material from Library Header Files. | |||||
The object code form of an Application may incorporate material from | |||||
a header file that is part of the Library. You may convey such object | |||||
code under terms of your choice, provided that, if the incorporated | |||||
material is not limited to numerical parameters, data structure | |||||
layouts and accessors, or small macros, inline functions and templates | |||||
(ten or fewer lines in length), you do both of the following: | |||||
a) Give prominent notice with each copy of the object code that the | |||||
Library is used in it and that the Library and its use are | |||||
covered by this License. | |||||
b) Accompany the object code with a copy of the GNU GPL and this license | |||||
document. | |||||
4. Combined Works. | |||||
You may convey a Combined Work under terms of your choice that, | |||||
taken together, effectively do not restrict modification of the | |||||
portions of the Library contained in the Combined Work and reverse | |||||
engineering for debugging such modifications, if you also do each of | |||||
the following: | |||||
a) Give prominent notice with each copy of the Combined Work that | |||||
the Library is used in it and that the Library and its use are | |||||
covered by this License. | |||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license | |||||
document. | |||||
c) For a Combined Work that displays copyright notices during | |||||
execution, include the copyright notice for the Library among | |||||
these notices, as well as a reference directing the user to the | |||||
copies of the GNU GPL and this license document. | |||||
d) Do one of the following: | |||||
0) Convey the Minimal Corresponding Source under the terms of this | |||||
License, and the Corresponding Application Code in a form | |||||
suitable for, and under terms that permit, the user to | |||||
recombine or relink the Application with a modified version of | |||||
the Linked Version to produce a modified Combined Work, in the | |||||
manner specified by section 6 of the GNU GPL for conveying | |||||
Corresponding Source. | |||||
1) Use a suitable shared library mechanism for linking with the | |||||
Library. A suitable mechanism is one that (a) uses at run time | |||||
a copy of the Library already present on the user's computer | |||||
system, and (b) will operate properly with a modified version | |||||
of the Library that is interface-compatible with the Linked | |||||
Version. | |||||
e) Provide Installation Information, but only if you would otherwise | |||||
be required to provide such information under section 6 of the | |||||
GNU GPL, and only to the extent that such information is | |||||
necessary to install and execute a modified version of the | |||||
Combined Work produced by recombining or relinking the | |||||
Application with a modified version of the Linked Version. (If | |||||
you use option 4d0, the Installation Information must accompany | |||||
the Minimal Corresponding Source and Corresponding Application | |||||
Code. If you use option 4d1, you must provide the Installation | |||||
Information in the manner specified by section 6 of the GNU GPL | |||||
for conveying Corresponding Source.) | |||||
5. Combined Libraries. | |||||
You may place library facilities that are a work based on the | |||||
Library side by side in a single library together with other library | |||||
facilities that are not Applications and are not covered by this | |||||
License, and convey such a combined library under terms of your | |||||
choice, if you do both of the following: | |||||
a) Accompany the combined library with a copy of the same work based | |||||
on the Library, uncombined with any other library facilities, | |||||
conveyed under the terms of this License. | |||||
b) Give prominent notice with the combined library that part of it | |||||
is a work based on the Library, and explaining where to find the | |||||
accompanying uncombined form of the same work. | |||||
6. Revised Versions of the GNU Lesser General Public License. | |||||
The Free Software Foundation may publish revised and/or new versions | |||||
of the GNU Lesser General Public License from time to time. Such new | |||||
versions will be similar in spirit to the present version, but may | |||||
differ in detail to address new problems or concerns. | |||||
Each version is given a distinguishing version number. If the | |||||
Library as you received it specifies that a certain numbered version | |||||
of the GNU Lesser General Public License "or any later version" | |||||
applies to it, you have the option of following the terms and | |||||
conditions either of that published version or of any later version | |||||
published by the Free Software Foundation. If the Library as you | |||||
received it does not specify a version number of the GNU Lesser | |||||
General Public License, you may choose any version of the GNU Lesser | |||||
General Public License ever published by the Free Software Foundation. | |||||
If the Library as you received it specifies that a proxy can decide | |||||
whether future versions of the GNU Lesser General Public License shall | |||||
apply, that proxy's public statement of acceptance of any version is | |||||
permanent authorization for you to choose that version for the | |||||
Library. |
@@ -0,0 +1,36 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
all: libs plugins gen | |||||
# -------------------------------------------------------------- | |||||
libs: | |||||
$(MAKE) -C libs/dgl | |||||
plugins: libs | |||||
$(MAKE) -C plugins/3BandEQ | |||||
$(MAKE) -C plugins/3BandSplitter | |||||
$(MAKE) -C plugins/PingPongPan | |||||
gen: plugins libs/lv2_ttl_generator | |||||
@./libs/generate-ttl.sh | |||||
libs/lv2_ttl_generator: | |||||
$(MAKE) -C libs/lv2-ttl-generator | |||||
# -------------------------------------------------------------- | |||||
clean: | |||||
$(MAKE) clean -C libs/dgl | |||||
$(MAKE) clean -C libs/lv2-ttl-generator | |||||
$(MAKE) clean -C plugins/3BandEQ | |||||
$(MAKE) clean -C plugins/3BandSplitter | |||||
$(MAKE) clean -C plugins/PingPongPan | |||||
# -------------------------------------------------------------- | |||||
.PHONY: libs plugins |
@@ -0,0 +1,113 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
CC ?= gcc | |||||
CXX ?= g++ | |||||
# -------------------------------------------------------------- | |||||
# Fallback to Linux if no other OS defined | |||||
ifneq ($(HAIKU),true) | |||||
ifneq ($(MACOS),true) | |||||
ifneq ($(WIN32),true) | |||||
LINUX=true | |||||
endif | |||||
endif | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Common build and link flags | |||||
BASE_FLAGS = -Wall -Wextra -pipe | |||||
BASE_OPTS = -O2 -ffast-math -mtune=generic -msse -msse2 -mfpmath=sse -fdata-sections -ffunction-sections | |||||
LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--strip-all | |||||
ifeq ($(MACOS),true) | |||||
# MacOS linker flags | |||||
LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs | |||||
endif | |||||
ifeq ($(RASPPI),true) | |||||
# Raspberry-Pi optimization flags | |||||
BASE_OPTS = -O2 -ffast-math -march=armv6 -mfpu=vfp -mfloat-abi=hard | |||||
LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all | |||||
endif | |||||
ifneq ($(WIN32),true) | |||||
# not needed for Windows | |||||
BASE_FLAGS += -fPIC -DPIC | |||||
endif | |||||
ifeq ($(DEBUG),true) | |||||
BASE_FLAGS += -DDEBUG -O0 -g | |||||
LINK_OPTS = | |||||
else | |||||
BASE_FLAGS += -DNDEBUG $(BASE_OPTS) -fvisibility=hidden | |||||
CXXFLAGS += -fvisibility-inlines-hidden | |||||
LINK_OPTS += -Wl,--strip-all | |||||
endif | |||||
BUILD_C_FLAGS = $(BASE_FLAGS) -std=c99 -std=gnu99 $(CFLAGS) | |||||
BUILD_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x -std=gnu++0x $(CXXFLAGS) | |||||
LINK_FLAGS = $(LINK_OPTS) -Wl,--no-undefined $(LDFLAGS) | |||||
ifeq ($(MACOS),true) | |||||
# No C++11 support | |||||
BUILD_CXX_FLAGS = $(BASE_FLAGS) $(CXXFLAGS) | |||||
LINK_FLAGS = $(LINK_OPTS) $(LDFLAGS) | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Check for required libs | |||||
ifeq ($(LINUX),true) | |||||
ifneq ($(shell pkg-config --exists gl && echo true),true) | |||||
$(error OpenGL missing, cannot continue) | |||||
endif | |||||
ifneq ($(shell pkg-config --exists x11 && echo true),true) | |||||
$(error X11 missing, cannot continue) | |||||
endif | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set libs stuff | |||||
ifeq ($(LINUX),true) | |||||
DGL_FLAGS = $(shell pkg-config --cflags gl x11) | |||||
DGL_LIBS = $(shell pkg-config --libs gl x11) | |||||
endif | |||||
ifeq ($(MACOS),true) | |||||
DGL_LIBS = -framework OpenGL -framework Cocoa | |||||
endif | |||||
ifeq ($(WIN32),true) | |||||
DGL_LIBS = -lopengl32 -lgdi32 | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set extension | |||||
EXT = so | |||||
ifeq ($(MACOS),true) | |||||
EXT = dylib | |||||
endif | |||||
ifeq ($(WIN32),true) | |||||
EXT = dll | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set shared library CLI arg | |||||
SHARED = -shared | |||||
ifeq ($(MACOS),true) | |||||
SHARED = -dynamiclib | |||||
endif | |||||
# -------------------------------------------------------------- |
@@ -0,0 +1,8 @@ | |||||
== DISTRHO Mini-Series == | |||||
A collection of small but useful plugins, based on the good old LOSER-Dev Plugins. | |||||
This collection currently includes:<br/> | |||||
- 3 Band EQ<br/> | |||||
- 3 Band Splitter<br/> | |||||
- Ping Pong Pan<br/> |
@@ -0,0 +1 @@ | |||||
All final plugin builds will be placed in this folder. |
@@ -0,0 +1,9 @@ | |||||
[Project] | |||||
Manager=KDevGenericManager | |||||
Name=DISTRHO Mini-Series | |||||
[Filters] | |||||
Excludes=*/.*,*/*~,*/*.a | |||||
[Project] | |||||
VersionControlSupport=kdevgit |
@@ -0,0 +1 @@ | |||||
Subproject commit 4fffde234c34dcc7f3fc6deba376dc64966d3b97 |
@@ -0,0 +1,114 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# NAME, OBJS_DSP and OBJS_UI have been defined before | |||||
include ../../Makefile.mk | |||||
# -------------------------------------------------------------- | |||||
# Basic setup | |||||
TARGET_DIR = ../../bin | |||||
BUILD_C_FLAGS += -I. | |||||
BUILD_CXX_FLAGS += -I. -I../../libs/distrho -I../../libs/dgl | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
all: ladspa lv2 dssi vst | |||||
# -------------------------------------------------------------- | |||||
# Set plugin binary file targets | |||||
ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa.$(EXT) | |||||
dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi.$(EXT) | |||||
dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui | |||||
lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME).$(EXT) | |||||
lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui.$(EXT) | |||||
vst = $(TARGET_DIR)/$(NAME)-vst.$(EXT) | |||||
ifeq ($(WIN32),true) | |||||
dssi_ui += .exe | |||||
endif | |||||
# TODO: MacOS VST bundle | |||||
# -------------------------------------------------------------- | |||||
# Set distrho code files | |||||
DISTRHO_PLUGIN_FILES = ../../libs/distrho/DistrhoPluginMain.cpp | |||||
DISTRHO_UI_FILES = ../../libs/distrho/DistrhoUIMain.cpp ../../libs/libdgl.a | |||||
# -------------------------------------------------------------- | |||||
# Handle plugins without UI | |||||
ifeq ($(TARGET_NOUI),true) | |||||
dssi_ui = | |||||
lv2_ui = | |||||
DISTRHO_UI_FILES = | |||||
DGL_LIBS = | |||||
OBJS_UI = | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Common | |||||
%.c.o: %.c | |||||
$(CC) $< $(BUILD_C_FLAGS) -c -o $@ | |||||
%.cpp.o: %.cpp | |||||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||||
clean: | |||||
rm -f *.o | |||||
rm -rf $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/ | |||||
# -------------------------------------------------------------- | |||||
# LADSPA | |||||
ladspa: $(ladspa_dsp) | |||||
$(ladspa_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@ | |||||
# -------------------------------------------------------------- | |||||
# DSSI | |||||
dssi: $(dssi_dsp) $(dssi_ui) | |||||
$(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@ | |||||
$(dssi_ui): $(OBJS_UI) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@ | |||||
# -------------------------------------------------------------- | |||||
# LV2 | |||||
lv2: $(lv2_dsp) $(lv2_ui) | |||||
$(lv2_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ | |||||
$(lv2_ui): $(OBJS_UI) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ | |||||
# -------------------------------------------------------------- | |||||
# VST | |||||
vst: $(vst) | |||||
$(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@ | |||||
# -------------------------------------------------------------- |