| @@ -41,4 +41,4 @@ BUILD_CXX_FLAGS += -DVESTIGE_HEADER | |||||
| # Modify to enable/disable specific features | # Modify to enable/disable specific features | ||||
| CARLA_PLUGIN_SUPPORT = true | CARLA_PLUGIN_SUPPORT = true | ||||
| CARLA_SAMPLERS_SUPPORT = true | CARLA_SAMPLERS_SUPPORT = true | ||||
| CARLA_RTAUDIO_SUPPORT = false | |||||
| CARLA_RTAUDIO_SUPPORT = true | |||||
| @@ -4,94 +4,111 @@ | |||||
| # Created by falkTX | # Created by falkTX | ||||
| # | # | ||||
| CC ?= gcc | |||||
| CXX ?= g++ | |||||
| include ../Makefile.mk | |||||
| # HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||||
| HAVE_JACK = $(shell pkg-config --exists jack && echo true) | |||||
| # HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||||
| HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true) | HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true) | ||||
| endif | |||||
| BASE_FLAGS = -O2 -ffast-math -fomit-frame-pointer -fPIC -mtune=generic -msse -mfpmath=sse -Wall -I. -I../carla-includes -I../carla-jackbridge | |||||
| ifeq ($(CARLA_SAMPLERS_SUPPORT),true) | |||||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||||
| endif | |||||
| CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||||
| ifeq ($(CARLA_RTAUDIO_SUPPORT),true) | |||||
| HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||||
| HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||||
| endif | |||||
| CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui) | |||||
| CARLA_CXX_FLAGS += -DQT_NO_DEBUG -DQT_NO_DEBUG_STREAM -DQT_NO_DEBUG_OUTPUT -DNDEBUG | |||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||||
| HAVE_ZYN_GUI_DEPS = $(shell pkg-config --exists fftw3 mxml ntk && echo true) | |||||
| CARLA_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||||
| CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header | |||||
| # -------------------------------------------------------------- | |||||
| CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS) | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui) | |||||
| BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-engine -I../carla-jackbridge -I../carla-native -I../carla-plugin -I../carla-utils | |||||
| BUILD_CXX_FLAGS += -fPIC -DCARLA_ENGINE_JACK | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags jack liblo QtCore QtGui) | |||||
| ifeq ($(HAVE_ALSA),true) | |||||
| WANT_RTAUDIO = true | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs alsa) | |||||
| endif | |||||
| LINK_FLAGS += -fPIC -shared -ldl -lm | |||||
| LINK_FLAGS += $(shell pkg-config --libs jack liblo QtCore QtGui) | |||||
| ifeq ($(HAVE_JACK),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack) -DCARLA_ENGINE_JACK | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs jack) | |||||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||||
| BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||||
| endif | endif | ||||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||||
| WANT_RTAUDIO = true | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__ | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs libpulse-simple) | |||||
| ifeq ($(HAVE_SUIL),true) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DWANT_SUIL | |||||
| LINK_FLAGS += $(shell pkg-config --libs suil-0) | |||||
| endif | endif | ||||
| ifeq ($(HAVE_FLUIDSYNTH),true) | ifeq ($(HAVE_FLUIDSYNTH),true) | ||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH | |||||
| LINK_FLAGS += $(shell pkg-config --libs fluidsynth) | |||||
| endif | endif | ||||
| ifeq ($(HAVE_LINUXSAMPLER),true) | ifeq ($(HAVE_LINUXSAMPLER),true) | ||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER | |||||
| LINK_FLAGS += $(shell pkg-config --libs linuxsampler) | |||||
| endif | |||||
| ifeq ($(HAVE_ALSA),true) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ | |||||
| LINK_FLAGS += $(shell pkg-config --libs alsa) | |||||
| WANT_RTAUDIO = true | |||||
| endif | |||||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__ | |||||
| LINK_FLAGS += $(shell pkg-config --libs libpulse-simple) | |||||
| WANT_RTAUDIO = true | |||||
| endif | endif | ||||
| ifeq ($(HAVE_ZYN_DEPS),true) | ifeq ($(HAVE_ZYN_DEPS),true) | ||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) -DWANT_ZYNADDSUBFX | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fftw3 mxml) | |||||
| LINK_FLAGS += $(shell pkg-config --libs fftw3 mxml) | |||||
| endif | endif | ||||
| ifeq ($(HAVE_SUIL),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DHAVE_SUIL | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs suil-0) | |||||
| ifeq ($(HAVE_ZYN_GUI_DEPS),true) | |||||
| LINK_FLAGS += $(shell pkg-config --libs ntk) | |||||
| endif | endif | ||||
| # backend | |||||
| OBJS = \ | OBJS = \ | ||||
| carla_backend_standalone.o \ | |||||
| carla_bridge.o \ | |||||
| carla_engine.o \ | |||||
| carla_engine_jack.o \ | |||||
| carla_engine_rtaudio.o \ | |||||
| carla_native.o \ | |||||
| carla_osc.o \ | |||||
| carla_shared.o \ | |||||
| carla_threads.o \ | |||||
| ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \ | |||||
| ../carla-lilv/carla_lilv.a \ | |||||
| ../carla-rtmempool/carla_rtmempool.a | |||||
| carla_backend_standalone.o | |||||
| # engine | |||||
| OBJS += \ | OBJS += \ | ||||
| plugins/bypass.o \ | |||||
| plugins/midi-split.o | |||||
| ifeq ($(WANT_RTAUDIO),true) | |||||
| CARLA_CXX_FLAGS += -Irtaudio-4.0.11 -Irtmidi-2.0.1 -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D_FORTIFY_SOURCE=2 | |||||
| OBJS += rtaudio-4.0.11/RtAudio.o | |||||
| OBJS += rtmidi-2.0.1/RtMidi.o | |||||
| ../carla-engine/carla_engine.o \ | |||||
| ../carla-engine/carla_engine_jack.o \ | |||||
| ../carla-engine/carla_engine_rtaudio.o \ | |||||
| ../carla-engine/carla_osc.o \ | |||||
| ../carla-engine/carla_shared.o \ | |||||
| ../carla-engine/carla_threads.o | |||||
| # plugins | |||||
| OBJS += \ | |||||
| ../carla-plugin/carla_bridge.o \ | |||||
| ../carla-plugin/native.o \ | |||||
| ../carla-plugin/ladspa.o \ | |||||
| ../carla-plugin/dssi.o \ | |||||
| ../carla-plugin/lv2.o \ | |||||
| ../carla-plugin/vst.o \ | |||||
| ../carla-plugin/fluidsynth.o \ | |||||
| ../carla-plugin/linuxsampler.o | |||||
| # native | |||||
| OBJS += ../carla-native/carla_native.a | |||||
| # others | |||||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | |||||
| OBJS += ../carla-lilv/carla_lilv.a | |||||
| OBJS += ../carla-rtmempool/carla_rtmempool.a | |||||
| endif | endif | ||||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||||
| OBJS += plugins/zynaddsubfx.o plugins/zynaddsubfx-src.o | |||||
| ifeq ($(WANT_RTAUDIO),true) | |||||
| BUILD_CXX_FLAGS += -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D_FORTIFY_SOURCE=2 | |||||
| BUILD_CXX_FLAGS += -I../carla-engine/rtaudio-4.0.11 -I../carla-engine/rtmidi-2.0.1 | |||||
| OBJS += ../carla-engine/rtaudio-4.0.11/RtAudio.o | |||||
| OBJS += ../carla-engine/rtmidi-2.0.1/RtMidi.o | |||||
| endif | endif | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| @@ -102,22 +119,22 @@ doc: carla_backend.doxygen | |||||
| doxygen $< | doxygen $< | ||||
| carla_backend.so: $(OBJS) | carla_backend.so: $(OBJS) | ||||
| $(CXX) $^ $(CARLA_LD_FLAGS) -o $@ && strip $@ | |||||
| $(CXX) $^ $(LINK_FLAGS) -o $@ && strip $@ | |||||
| carla_backend-dssi.so: $(OBJS) carla_backend_plugin.cpp | |||||
| $(CXX) $^ -DDISTRHO_PLUGIN_TARGET_DSSI -Idistrho-plugin-toolkit $(CARLA_CXX_FLAGS) $(CARLA_LD_FLAGS) -o $@ && strip $@ | |||||
| # carla_backend-dssi.so: $(OBJS) carla_backend_plugin.cpp | |||||
| # $(CXX) $^ -DDISTRHO_PLUGIN_TARGET_DSSI -Idistrho-plugin-toolkit $(CARLA_CXX_FLAGS) $(CARLA_LD_FLAGS) -o $@ && strip $@ | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| .c.o: | |||||
| $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||||
| .cpp.o: | .cpp.o: | ||||
| $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@ | |||||
| $(CXX) -c $< $(BUILD_CXX_FLAGS) -o $@ | |||||
| ../carla-lilv/carla_lilv.a: | ../carla-lilv/carla_lilv.a: | ||||
| $(MAKE) -C ../carla-lilv | $(MAKE) -C ../carla-lilv | ||||
| ../carla-native/carla_native.a: | |||||
| $(MAKE) -C ../carla-native | |||||
| ../carla-rtmempool/carla_rtmempool.a: | ../carla-rtmempool/carla_rtmempool.a: | ||||
| $(MAKE) -C ../carla-rtmempool | $(MAKE) -C ../carla-rtmempool | ||||
| @@ -1,125 +0,0 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for carla-backend # | |||||
| # ------------------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| CC ?= gcc | |||||
| CXX ?= g++ | |||||
| # HAVE_ALSA = $(shell pkg-config --exists alsa && echo true) | |||||
| HAVE_JACK = $(shell pkg-config --exists jack && echo true) | |||||
| # HAVE_PULSEAUDIO = $(shell pkg-config --exists libpulse-simple && echo true) | |||||
| HAVE_FLUIDSYNTH = $(shell pkg-config --exists fluidsynth && echo true) | |||||
| HAVE_LINUXSAMPLER = $(shell pkg-config --exists linuxsampler && echo true) | |||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||||
| HAVE_SUIL = $(shell pkg-config --exists suil-0 && echo true) | |||||
| BASE_FLAGS = -O0 -g -fPIC -Wall -I. -I../carla-includes -I../carla-jackbridge | |||||
| CARLA_C_FLAGS = $(BASE_FLAGS) -std=c99 $(CFLAGS) | |||||
| CARLA_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x $(CXXFLAGS) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtGui) | |||||
| CARLA_CXX_FLAGS += -DDEBUG | |||||
| CARLA_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST | |||||
| CARLA_CXX_FLAGS += -DVESTIGE_HEADER # Comment this line to not use vestige header | |||||
| CARLA_LD_FLAGS = -shared -ldl -lm -fPIC $(LDFLAGS) | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs liblo QtCore QtGui) | |||||
| ifeq ($(HAVE_ALSA),true) | |||||
| WANT_RTAUDIO = true | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags alsa) -D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs alsa) | |||||
| endif | |||||
| ifeq ($(HAVE_JACK),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags jack) -DCARLA_ENGINE_JACK | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs jack) | |||||
| endif | |||||
| ifeq ($(HAVE_PULSEAUDIO),true) | |||||
| WANT_RTAUDIO = true | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags libpulse-simple) -D__LINUX_PULSE__ | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs libpulse-simple) | |||||
| endif | |||||
| ifeq ($(HAVE_FLUIDSYNTH),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fluidsynth) -DWANT_FLUIDSYNTH | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fluidsynth) | |||||
| endif | |||||
| ifeq ($(HAVE_LINUXSAMPLER),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags linuxsampler) -DWANT_LINUXSAMPLER | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs linuxsampler) | |||||
| endif | |||||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) -DWANT_ZYNADDSUBFX | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs fftw3 mxml) | |||||
| endif | |||||
| ifeq ($(HAVE_SUIL),true) | |||||
| CARLA_CXX_FLAGS += $(shell pkg-config --cflags suil-0) -DHAVE_SUIL | |||||
| CARLA_LD_FLAGS += $(shell pkg-config --libs suil-0) | |||||
| endif | |||||
| OBJS = \ | |||||
| carla_backend_standalone.o \ | |||||
| carla_bridge.o \ | |||||
| carla_engine.o \ | |||||
| carla_engine_jack.o \ | |||||
| carla_engine_rtaudio.o \ | |||||
| carla_native.o \ | |||||
| carla_osc.o \ | |||||
| carla_shared.o \ | |||||
| carla_threads.o \ | |||||
| ladspa.o dssi.o lv2.o vst.o fluidsynth.o linuxsampler.o \ | |||||
| ../carla-lilv/carla_lilv.a \ | |||||
| ../carla-rtmempool/carla_rtmempool.a | |||||
| OBJS += \ | |||||
| plugins/bypass.o \ | |||||
| plugins/midi-split.o | |||||
| ifeq ($(WANT_RTAUDIO),true) | |||||
| CARLA_CXX_FLAGS += -Irtaudio-4.0.11 -Irtmidi-2.0.1 -DCARLA_ENGINE_RTAUDIO -DHAVE_GETTIMEOFDAY -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__ | |||||
| OBJS += rtaudio-4.0.11/RtAudio.o | |||||
| OBJS += rtmidi-2.0.1/RtMidi.o | |||||
| endif | |||||
| ifeq ($(HAVE_ZYN_DEPS),true) | |||||
| OBJS += plugins/zynaddsubfx.o plugins/zynaddsubfx-src.o | |||||
| endif | |||||
| # -------------------------------------------------------------- | |||||
| all: carla_backend.so | |||||
| doc: carla_backend.doxygen | |||||
| doxygen $< | |||||
| carla_backend.so: $(OBJS) | |||||
| $(CXX) $^ $(CARLA_LD_FLAGS) -o $@ | |||||
| carla_backend-dssi.so: $(OBJS) carla_backend_plugin.cpp | |||||
| $(CXX) $^ -DDISTRHO_PLUGIN_TARGET_DSSI -Idistrho-plugin-toolkit $(CARLA_CXX_FLAGS) $(CARLA_LD_FLAGS) -o $@ | |||||
| # -------------------------------------------------------------- | |||||
| .c.o: | |||||
| $(CC) -c $< $(CARLA_C_FLAGS) -o $@ | |||||
| .cpp.o: | |||||
| $(CXX) -c $< $(CARLA_CXX_FLAGS) -o $@ | |||||
| ../carla-lilv/carla_lilv.a: | |||||
| $(MAKE) -C ../carla-lilv | |||||
| ../carla-rtmempool/carla_rtmempool.a: | |||||
| $(MAKE) -C ../carla-rtmempool | |||||
| clean: | |||||
| rm -f $(OBJS) *.a *.so *.dll | |||||
| @@ -0,0 +1,99 @@ | |||||
| # QtCreator project file | |||||
| QT = core gui | |||||
| CONFIG = debug | |||||
| CONFIG += link_pkgconfig qt warn_on # plugin shared | |||||
| DEFINES = DEBUG | |||||
| DEFINES += QTCREATOR_TEST | |||||
| DEFINES += CARLA_ENGINE_JACK | |||||
| DEFINES += CARLA_ENGINE_RTAUDIO HAVE_GETTIMEOFDAY __LINUX_ALSA__ __LINUX_ALSASEQ__ __LINUX_PULSE__ | |||||
| DEFINES += __RTAUDIO_DEBUG__ __RTMIDI_DEBUG__ | |||||
| DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST | |||||
| DEFINES += WANT_SUIL | |||||
| DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER | |||||
| DEFINES += WANT_ZYNADDSUBFX WANT_ZYNADDSUBFX_GUI | |||||
| PKGCONFIG = jack liblo | |||||
| PKGCONFIG += alsa libpulse-simple | |||||
| PKGCONFIG += fluidsynth linuxsampler | |||||
| PKGCONFIG += fftw3 mxml | |||||
| PKGCONFIG += suil-0 | |||||
| TARGET = carla_backend | |||||
| TEMPLATE = app | |||||
| VERSION = 0.5.0 | |||||
| # backend | |||||
| SOURCES = \ | |||||
| # carla_backend_plugin.cpp \ | |||||
| carla_backend_standalone.cpp | |||||
| # engine | |||||
| SOURCES += \ | |||||
| ../carla-engine/carla_engine.cpp \ | |||||
| ../carla-engine/carla_engine_jack.cpp \ | |||||
| ../carla-engine/carla_engine_rtaudio.cpp \ | |||||
| ../carla-engine/carla_osc.cpp \ | |||||
| ../carla-engine/carla_shared.cpp \ | |||||
| ../carla-engine/carla_threads.cpp | |||||
| # plugins | |||||
| SOURCES += \ | |||||
| ../carla-plugin/carla_bridge.cpp \ | |||||
| ../carla-plugin/native.cpp \ | |||||
| ../carla-plugin/ladspa.cpp \ | |||||
| ../carla-plugin/dssi.cpp \ | |||||
| ../carla-plugin/lv2.cpp \ | |||||
| ../carla-plugin/vst.cpp \ | |||||
| ../carla-plugin/fluidsynth.cpp \ | |||||
| ../carla-plugin/linuxsampler.cpp | |||||
| # HEADERS = \ | |||||
| # ../carla_backend.hpp \ | |||||
| # ../carla_backend_standalone.hpp \ | |||||
| # ../carla_engine.hpp \ | |||||
| # ../carla_osc.hpp \ | |||||
| # ../carla_plugin.hpp \ | |||||
| # ../carla_shared.hpp \ | |||||
| # ../carla_threads.hpp \ | |||||
| # ../plugins/carla_native.h \ | |||||
| # ../plugins/carla_nativemm.h \ | |||||
| # ../../carla-includes/carla_defines.hpp \ | |||||
| # ../../carla-includes/carla_midi.hpp \ | |||||
| # ../../carla-includes/ladspa_rdf.hpp \ | |||||
| # ../../carla-includes/lv2_rdf.hpp \ | |||||
| # ../../carla-utils/carla_utils.hpp \ | |||||
| # ../../carla-utils/carla_lib_utils.hpp \ | |||||
| # ../../carla-utils/carla_osc_utils.hpp \ | |||||
| # ../../carla-utils/carla_ladspa_utils.hpp \ | |||||
| # ../../carla-utils/carla_lv2_utils.hpp \ | |||||
| # ../../carla-utils/carla_vst_utils.hpp | |||||
| INCLUDEPATH = . \ | |||||
| ../carla-includes \ | |||||
| ../carla-engine \ | |||||
| ../carla-jackbridge \ | |||||
| ../carla-native \ | |||||
| ../carla-plugin \ | |||||
| ../carla-utils | |||||
| LIBS = \ | |||||
| ../carla-lilv/carla_lilv.a \ | |||||
| ../carla-native/carla_native.a \ | |||||
| ../carla-rtmempool/carla_rtmempool.a | |||||
| INCLUDEPATH += ../carla-engine/rtaudio-4.0.11 | |||||
| INCLUDEPATH += ../carla-engine/rtmidi-2.0.1 | |||||
| SOURCES += ../carla-engine/rtaudio-4.0.11/RtAudio.cpp | |||||
| SOURCES += ../carla-engine/rtmidi-2.0.1/RtMidi.cpp | |||||
| QMAKE_CFLAGS *= -fPIC -std=c99 | |||||
| QMAKE_CXXFLAGS *= -fPIC -std=c++0x | |||||
| unix { | |||||
| LIBS += -ldl -lm | |||||
| } | |||||
| @@ -17,7 +17,7 @@ | |||||
| #include "carla_backend_standalone.hpp" | #include "carla_backend_standalone.hpp" | ||||
| #include "carla_plugin.hpp" | #include "carla_plugin.hpp" | ||||
| #include "plugins/carla_native.h" | |||||
| #include "carla_native.h" | |||||
| // ------------------------------------------------------------------------------------------------------------------- | // ------------------------------------------------------------------------------------------------------------------- | ||||
| @@ -1,92 +0,0 @@ | |||||
| # QtCreator project file | |||||
| QT = core gui | |||||
| CONFIG = debug link_pkgconfig qt warn_on plugin shared | |||||
| PKGCONFIG = liblo | |||||
| PKGCONFIG += jack | |||||
| PKGCONFIG += alsa libpulse-simple | |||||
| PKGCONFIG += fluidsynth linuxsampler | |||||
| PKGCONFIG += fftw3 mxml | |||||
| PKGCONFIG += suil-0 | |||||
| TARGET = carla_backend | |||||
| TEMPLATE = app | |||||
| VERSION = 0.5.0 | |||||
| SOURCES = \ | |||||
| ../carla_backend_plugin.cpp \ | |||||
| ../carla_backend_standalone.cpp \ | |||||
| ../carla_bridge.cpp \ | |||||
| ../carla_engine.cpp \ | |||||
| ../carla_engine_jack.cpp \ | |||||
| ../carla_engine_rtaudio.cpp \ | |||||
| ../carla_native.cpp \ | |||||
| ../carla_osc.cpp \ | |||||
| ../carla_shared.cpp \ | |||||
| ../carla_threads.cpp \ | |||||
| ../ladspa.cpp \ | |||||
| ../dssi.cpp \ | |||||
| ../lv2.cpp \ | |||||
| ../vst.cpp \ | |||||
| ../fluidsynth.cpp \ | |||||
| ../linuxsampler.cpp | |||||
| SOURCES += \ | |||||
| ../plugins/bypass.c \ | |||||
| ../plugins/midi-split.cpp \ | |||||
| ../plugins/zynaddsubfx.cpp \ | |||||
| ../plugins/zynaddsubfx-src.cpp | |||||
| HEADERS = \ | |||||
| ../carla_backend.hpp \ | |||||
| ../carla_backend_standalone.hpp \ | |||||
| ../carla_engine.hpp \ | |||||
| ../carla_osc.hpp \ | |||||
| ../carla_plugin.hpp \ | |||||
| ../carla_shared.hpp \ | |||||
| ../carla_threads.hpp \ | |||||
| ../plugins/carla_native.h \ | |||||
| ../plugins/carla_nativemm.h \ | |||||
| ../../carla-includes/carla_defines.hpp \ | |||||
| ../../carla-includes/carla_midi.hpp \ | |||||
| ../../carla-includes/ladspa_rdf.hpp \ | |||||
| ../../carla-includes/lv2_rdf.hpp \ | |||||
| ../../carla-utils/carla_utils.hpp \ | |||||
| ../../carla-utils/carla_lib_utils.hpp \ | |||||
| ../../carla-utils/carla_osc_utils.hpp \ | |||||
| ../../carla-utils/carla_ladspa_utils.hpp \ | |||||
| ../../carla-utils/carla_lv2_utils.hpp \ | |||||
| ../../carla-utils/carla_vst_utils.hpp | |||||
| INCLUDEPATH = .. \ | |||||
| ../../carla-jackbridge \ | |||||
| ../../carla-includes \ | |||||
| ../../carla-utils \ | |||||
| ../distrho-plugin-toolkit | |||||
| LIBS = -ldl \ | |||||
| ../../carla-lilv/carla_lilv.a \ | |||||
| ../../carla-rtmempool/carla_rtmempool.a | |||||
| DEFINES = QTCREATOR_TEST | |||||
| DEFINES += DEBUG NDEBUG | |||||
| DEFINES += CARLA_ENGINE_JACK | |||||
| DEFINES += CARLA_ENGINE_RTAUDIO HAVE_GETTIMEOFDAY __LINUX_ALSA__ __LINUX_ALSASEQ__ __LINUX_PULSE__ __RTAUDIO_DEBUG__ __RTMIDI_DEBUG__ | |||||
| DEFINES += CARLA_ENGINE_LV2 | |||||
| DEFINES += CARLA_ENGINE_VST | |||||
| DEFINES += DISTRHO_PLUGIN_TARGET_DSSI | |||||
| DEFINES += HAVE_SUIL | |||||
| DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST | |||||
| DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER | |||||
| DEFINES += WANT_ZYNADDSUBFX | |||||
| #LIBS += -L../../carla-jackbridge -lcarla-jackbridge-native | |||||
| INCLUDEPATH += ../rtaudio-4.0.11 | |||||
| INCLUDEPATH += ../rtmidi-2.0.1 | |||||
| SOURCES += ../rtaudio-4.0.11/RtAudio.cpp | |||||
| SOURCES += ../rtmidi-2.0.1/RtMidi.cpp | |||||
| QMAKE_CFLAGS *= -fPIC -std=c99 | |||||
| QMAKE_CXXFLAGS *= -fPIC -std=c++0x | |||||
| @@ -1301,7 +1301,7 @@ const CarlaEngineControlEvent* CarlaEngineControlPort::getEvent(uint32_t index) | |||||
| #ifdef CARLA_ENGINE_JACK | #ifdef CARLA_ENGINE_JACK | ||||
| if (handle.jackPort) | if (handle.jackPort) | ||||
| { | { | ||||
| static jackbridge_midi_event_t jackEvent; | |||||
| static jack_midi_event_t jackEvent; | |||||
| static CarlaEngineControlEvent carlaEvent; | static CarlaEngineControlEvent carlaEvent; | ||||
| if (jackbridge_midi_event_get(&jackEvent, buffer, index) != 0) | if (jackbridge_midi_event_get(&jackEvent, buffer, index) != 0) | ||||
| @@ -1520,7 +1520,7 @@ const CarlaEngineMidiEvent* CarlaEngineMidiPort::getEvent(uint32_t index) | |||||
| #ifdef CARLA_ENGINE_JACK | #ifdef CARLA_ENGINE_JACK | ||||
| if (handle.jackPort) | if (handle.jackPort) | ||||
| { | { | ||||
| static jackbridge_midi_event_t jackEvent; | |||||
| static jack_midi_event_t jackEvent; | |||||
| static CarlaEngineMidiEvent carlaEvent; | static CarlaEngineMidiEvent carlaEvent; | ||||
| if (jackbridge_midi_event_get(&jackEvent, buffer, index) == 0 && jackEvent.size <= 4) | if (jackbridge_midi_event_get(&jackEvent, buffer, index) == 0 && jackEvent.size <= 4) | ||||
| @@ -316,7 +316,7 @@ protected: | |||||
| // initialize control input | // initialize control input | ||||
| memset(rackControlEventsIn, 0, sizeof(CarlaEngineControlEvent)*MAX_ENGINE_CONTROL_EVENTS); | memset(rackControlEventsIn, 0, sizeof(CarlaEngineControlEvent)*MAX_ENGINE_CONTROL_EVENTS); | ||||
| { | { | ||||
| jackbridge_midi_event_t jackEvent; | |||||
| jack_midi_event_t jackEvent; | |||||
| const uint32_t jackEventCount = jackbridge_midi_get_event_count(controlIn); | const uint32_t jackEventCount = jackbridge_midi_get_event_count(controlIn); | ||||
| uint32_t carlaEventIndex = 0; | uint32_t carlaEventIndex = 0; | ||||
| @@ -373,7 +373,7 @@ protected: | |||||
| memset(rackMidiEventsIn, 0, sizeof(CarlaEngineMidiEvent)*MAX_ENGINE_MIDI_EVENTS); | memset(rackMidiEventsIn, 0, sizeof(CarlaEngineMidiEvent)*MAX_ENGINE_MIDI_EVENTS); | ||||
| { | { | ||||
| uint32_t i = 0, j = 0; | uint32_t i = 0, j = 0; | ||||
| jackbridge_midi_event_t jackEvent; | |||||
| jack_midi_event_t jackEvent; | |||||
| while (jackbridge_midi_event_get(&jackEvent, midiIn, j++) == 0) | while (jackbridge_midi_event_get(&jackEvent, midiIn, j++) == 0) | ||||
| { | { | ||||
| @@ -49,6 +49,9 @@ | |||||
| CARLA_BACKEND_START_NAMESPACE | CARLA_BACKEND_START_NAMESPACE | ||||
| class CarlaEngine; | |||||
| class CarlaPlugin; | |||||
| class CarlaOsc | class CarlaOsc | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -19,7 +19,7 @@ | |||||
| #include "carla_engine.hpp" | #include "carla_engine.hpp" | ||||
| #ifndef BUILD_BRIDGE | #ifndef BUILD_BRIDGE | ||||
| # include "plugins/carla_native.h" | |||||
| # include "carla_native.h" | |||||
| #endif | #endif | ||||
| #include <QtCore/QString> | #include <QtCore/QString> | ||||
| @@ -23,6 +23,11 @@ | |||||
| #include <QtCore/QMutex> | #include <QtCore/QMutex> | ||||
| #include <QtCore/QThread> | #include <QtCore/QThread> | ||||
| CARLA_BACKEND_START_NAMESPACE | |||||
| class CarlaEngine; | |||||
| class CarlaPlugin; | |||||
| CARLA_BACKEND_END_NAMESPACE | |||||
| // -------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------- | ||||
| // CarlaCheckThread | // CarlaCheckThread | ||||
| @@ -6,13 +6,19 @@ | |||||
| include ../Makefile.mk | include ../Makefile.mk | ||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||||
| HAVE_ZYN_DEPS = $(shell pkg-config --exists fftw3 mxml && echo true) | |||||
| HAVE_ZYN_GUI_DEPS = $(shell pkg-config --exists fftw3 mxml ntk && echo true) | |||||
| BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-utils -fPIC | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore) | |||||
| BUILD_C_FLAGS += -I. -fPIC | |||||
| BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-utils -fPIC | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags QtCore) | |||||
| ifeq ($(HAVE_ZYN_DEPS),true) | ifeq ($(HAVE_ZYN_DEPS),true) | ||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags fftw3 mxml) | |||||
| endif | |||||
| ifeq ($(HAVE_ZYN_GUI_DEPS),true) | |||||
| BUILD_CXX_FLAGS += $(shell pkg-config --cflags ntk) -DWANT_ZYNADDSUBFX_GUI | |||||
| endif | endif | ||||
| OBJS = \ | OBJS = \ | ||||
| @@ -15,7 +15,7 @@ | |||||
| * For a full copy of the GNU General Public License see the COPYING file | * For a full copy of the GNU General Public License see the COPYING file | ||||
| */ | */ | ||||
| #include "carla_midi.hpp" | |||||
| #include "carla_midi.h" | |||||
| #include "carla_native.hpp" | #include "carla_native.hpp" | ||||
| #include "zynaddsubfx/Misc/Master.h" | #include "zynaddsubfx/Misc/Master.h" | ||||
| @@ -20,7 +20,7 @@ | |||||
| #include "carla_engine.hpp" | #include "carla_engine.hpp" | ||||
| #include "carla_shared.hpp" | #include "carla_shared.hpp" | ||||
| #include "carla_midi.hpp" | |||||
| #include "carla_midi.h" | |||||
| #include "carla_lib_utils.hpp" | #include "carla_lib_utils.hpp" | ||||
| @@ -16,7 +16,7 @@ | |||||
| */ | */ | ||||
| #include "carla_plugin.hpp" | #include "carla_plugin.hpp" | ||||
| #include "plugins/carla_native.h" | |||||
| #include "carla_native.h" | |||||
| // Internal C plugins | // Internal C plugins | ||||
| extern "C" { | extern "C" { | ||||
| @@ -26,7 +26,7 @@ extern void carla_register_native_plugin_bypass(); | |||||
| // Internal C++ plugins | // Internal C++ plugins | ||||
| extern void carla_register_native_plugin_midiSplit(); | extern void carla_register_native_plugin_midiSplit(); | ||||
| #ifdef WANT_ZYNADDSUBFX | #ifdef WANT_ZYNADDSUBFX | ||||
| extern void carla_register_native_plugin_zynAddSubFx(); | |||||
| extern void carla_register_native_plugin_zynaddsubfx(); | |||||
| #endif | #endif | ||||
| CARLA_BACKEND_START_NAMESPACE | CARLA_BACKEND_START_NAMESPACE | ||||
| @@ -52,44 +52,23 @@ public: | |||||
| ~NativePluginScopedInitiliazer() | ~NativePluginScopedInitiliazer() | ||||
| { | { | ||||
| for (size_t i=0; i < descriptors.size(); i++) | |||||
| { | |||||
| const PluginDescriptor* const desc = descriptors[i]; | |||||
| if (desc->_fini) | |||||
| desc->_fini((struct _PluginDescriptor*)desc); | |||||
| } | |||||
| descriptors.clear(); | |||||
| } | } | ||||
| void maybeFirstInit() | void maybeFirstInit() | ||||
| { | { | ||||
| if (firstInit) | |||||
| { | |||||
| firstInit = false; | |||||
| carla_register_native_plugin_bypass(); | |||||
| carla_register_native_plugin_midiSplit(); | |||||
| if (! firstInit) | |||||
| return; | |||||
| firstInit = false; | |||||
| carla_register_native_plugin_bypass(); | |||||
| carla_register_native_plugin_midiSplit(); | |||||
| #ifdef WANT_ZYNADDSUBFX | #ifdef WANT_ZYNADDSUBFX | ||||
| carla_register_native_plugin_zynAddSubFx(); | |||||
| carla_register_native_plugin_zynaddsubfx(); | |||||
| #endif | #endif | ||||
| } | |||||
| } | |||||
| void initializeIfNeeded(const PluginDescriptor* const desc) | |||||
| { | |||||
| if (descriptors.empty() || std::find(descriptors.begin(), descriptors.end(), desc) == descriptors.end()) | |||||
| { | |||||
| if (desc->_init) | |||||
| desc->_init((struct _PluginDescriptor*)desc); | |||||
| descriptors.push_back(desc); | |||||
| } | |||||
| } | } | ||||
| private: | private: | ||||
| bool firstInit; | bool firstInit; | ||||
| std::vector<const PluginDescriptor*> descriptors; | |||||
| }; | }; | ||||
| static NativePluginScopedInitiliazer scopedInitliazer; | static NativePluginScopedInitiliazer scopedInitliazer; | ||||
| @@ -176,12 +155,12 @@ public: | |||||
| int32_t rindex = param.data[parameterId].rindex; | int32_t rindex = param.data[parameterId].rindex; | ||||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | |||||
| if (descriptor && descriptor->get_parameter_count && rindex < (int32_t)descriptor->get_parameter_count(handle)) | |||||
| { | { | ||||
| const PluginPort* const port = &descriptor->ports[rindex]; | |||||
| const Parameter* const param = descriptor->get_parameter_info(handle, rindex); | |||||
| if (port) | |||||
| return port->scalePointCount; | |||||
| if (param) | |||||
| return param->scalePointCount; | |||||
| } | } | ||||
| return 0; | return 0; | ||||
| @@ -208,6 +187,7 @@ public: | |||||
| CARLA_ASSERT(parameterId < param.count); | CARLA_ASSERT(parameterId < param.count); | ||||
| CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); | CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); | ||||
| #if 0 | |||||
| const int32_t rindex = param.data[parameterId].rindex; | const int32_t rindex = param.data[parameterId].rindex; | ||||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | if (descriptor && rindex < (int32_t)descriptor->portCount) | ||||
| @@ -222,6 +202,7 @@ public: | |||||
| return scalePoint->value; | return scalePoint->value; | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| return 0.0; | return 0.0; | ||||
| } | } | ||||
| @@ -271,6 +252,7 @@ public: | |||||
| CARLA_ASSERT(descriptor); | CARLA_ASSERT(descriptor); | ||||
| CARLA_ASSERT(parameterId < param.count); | CARLA_ASSERT(parameterId < param.count); | ||||
| #if 0 | |||||
| const int32_t rindex = param.data[parameterId].rindex; | const int32_t rindex = param.data[parameterId].rindex; | ||||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | if (descriptor && rindex < (int32_t)descriptor->portCount) | ||||
| @@ -283,6 +265,7 @@ public: | |||||
| return; | return; | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| CarlaPlugin::getParameterName(parameterId, strBuf); | CarlaPlugin::getParameterName(parameterId, strBuf); | ||||
| } | } | ||||
| @@ -315,6 +298,7 @@ public: | |||||
| CARLA_ASSERT(handle); | CARLA_ASSERT(handle); | ||||
| CARLA_ASSERT(parameterId < param.count); | CARLA_ASSERT(parameterId < param.count); | ||||
| #if 0 | |||||
| if (descriptor && handle) | if (descriptor && handle) | ||||
| { | { | ||||
| const int32_t rindex = param.data[parameterId].rindex; | const int32_t rindex = param.data[parameterId].rindex; | ||||
| @@ -327,6 +311,7 @@ public: | |||||
| return; | return; | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| CarlaPlugin::getParameterUnit(parameterId, strBuf); | CarlaPlugin::getParameterUnit(parameterId, strBuf); | ||||
| } | } | ||||
| @@ -337,6 +322,7 @@ public: | |||||
| CARLA_ASSERT(parameterId < param.count); | CARLA_ASSERT(parameterId < param.count); | ||||
| CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); | CARLA_ASSERT(scalePointId < parameterScalePointCount(parameterId)); | ||||
| #if 0 | |||||
| int32_t rindex = param.data[parameterId].rindex; | int32_t rindex = param.data[parameterId].rindex; | ||||
| if (descriptor && rindex < (int32_t)descriptor->portCount) | if (descriptor && rindex < (int32_t)descriptor->portCount) | ||||
| @@ -354,6 +340,7 @@ public: | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| CarlaPlugin::getParameterScalePointLabel(parameterId, scalePointId, strBuf); | CarlaPlugin::getParameterScalePointLabel(parameterId, scalePointId, strBuf); | ||||
| } | } | ||||
| @@ -474,6 +461,7 @@ public: | |||||
| // Delete old data | // Delete old data | ||||
| deleteBuffers(); | deleteBuffers(); | ||||
| #if 0 | |||||
| uint32_t aIns, aOuts, mIns, mOuts, params, j; | uint32_t aIns, aOuts, mIns, mOuts, params, j; | ||||
| aIns = aOuts = mIns = mOuts = params = 0; | aIns = aOuts = mIns = mOuts = params = 0; | ||||
| @@ -775,6 +763,7 @@ public: | |||||
| m_hints |= getPluginHintsFromNative(descriptor->hints); | m_hints |= getPluginHintsFromNative(descriptor->hints); | ||||
| reloadPrograms(true); | reloadPrograms(true); | ||||
| #endif | |||||
| x_client->activate(); | x_client->activate(); | ||||
| @@ -801,6 +790,7 @@ public: | |||||
| midiprog.count = 0; | midiprog.count = 0; | ||||
| midiprog.data = nullptr; | midiprog.data = nullptr; | ||||
| #if 0 | |||||
| // Query new programs | // Query new programs | ||||
| if (descriptor->get_midi_program && descriptor->set_midi_program) | if (descriptor->get_midi_program && descriptor->set_midi_program) | ||||
| { | { | ||||
| @@ -874,6 +864,7 @@ public: | |||||
| if (programChanged) | if (programChanged) | ||||
| setMidiProgram(midiprog.current, true, true, true, true); | setMidiProgram(midiprog.current, true, true, true, true); | ||||
| } | } | ||||
| #endif | |||||
| } | } | ||||
| // ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
| @@ -1124,7 +1115,6 @@ public: | |||||
| midiEvent->data[0] = uint8_t(extMidiNotes[i].velo ? MIDI_STATUS_NOTE_ON : MIDI_STATUS_NOTE_OFF) + extMidiNotes[i].channel; | midiEvent->data[0] = uint8_t(extMidiNotes[i].velo ? MIDI_STATUS_NOTE_ON : MIDI_STATUS_NOTE_OFF) + extMidiNotes[i].channel; | ||||
| midiEvent->data[1] = extMidiNotes[i].note; | midiEvent->data[1] = extMidiNotes[i].note; | ||||
| midiEvent->data[2] = extMidiNotes[i].velo; | midiEvent->data[2] = extMidiNotes[i].velo; | ||||
| midiEvent->size = 3; | |||||
| extMidiNotes[i].channel = -1; // mark as invalid | extMidiNotes[i].channel = -1; // mark as invalid | ||||
| midiEventCount += 1; | midiEventCount += 1; | ||||
| @@ -1169,9 +1159,8 @@ public: | |||||
| ::MidiEvent* const midiEvent = &midiEvents[midiEventCount]; | ::MidiEvent* const midiEvent = &midiEvents[midiEventCount]; | ||||
| memset(midiEvent, 0, sizeof(::MidiEvent)); | memset(midiEvent, 0, sizeof(::MidiEvent)); | ||||
| midiEvent->portOffset = i; | |||||
| midiEvent->port = i; | |||||
| midiEvent->time = minEvent->time; | midiEvent->time = minEvent->time; | ||||
| midiEvent->size = minEvent->size; | |||||
| if (MIDI_IS_STATUS_NOTE_OFF(status)) | if (MIDI_IS_STATUS_NOTE_OFF(status)) | ||||
| { | { | ||||
| @@ -1245,12 +1234,10 @@ public: | |||||
| memset(&midiEvents[k], 0, sizeof(::MidiEvent)); | memset(&midiEvents[k], 0, sizeof(::MidiEvent)); | ||||
| midiEvents[k].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; | midiEvents[k].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; | ||||
| midiEvents[k].data[1] = MIDI_CONTROL_ALL_SOUND_OFF; | midiEvents[k].data[1] = MIDI_CONTROL_ALL_SOUND_OFF; | ||||
| midiEvents[k].size = 2; | |||||
| memset(&midiEvents[k*2], 0, sizeof(::MidiEvent)); | memset(&midiEvents[k*2], 0, sizeof(::MidiEvent)); | ||||
| midiEvents[k*2].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; | midiEvents[k*2].data[0] = MIDI_STATUS_CONTROL_CHANGE + k; | ||||
| midiEvents[k*2].data[1] = MIDI_CONTROL_ALL_NOTES_OFF; | midiEvents[k*2].data[1] = MIDI_CONTROL_ALL_NOTES_OFF; | ||||
| midiEvents[k*2].size = 2; | |||||
| } | } | ||||
| midiEventCount = MAX_MIDI_CHANNELS*2; | midiEventCount = MAX_MIDI_CHANNELS*2; | ||||
| @@ -1390,10 +1377,10 @@ public: | |||||
| if (MIDI_IS_STATUS_NOTE_ON(data[0]) && data[2] == 0) | if (MIDI_IS_STATUS_NOTE_ON(data[0]) && data[2] == 0) | ||||
| data[0] -= 0x10; | data[0] -= 0x10; | ||||
| const uint32_t portOffset = midiEvents[i].portOffset; | |||||
| const uint32_t port = midiEvents[i].port; | |||||
| if (portOffset < mOut.count) | |||||
| mOut.ports[portOffset]->writeEvent(midiEvents[i].time, data, 3); | |||||
| if (port < mOut.count) | |||||
| mOut.ports[port]->writeEvent(midiEvents[i].time, data, 3); | |||||
| } | } | ||||
| } // End of MIDI Output | } // End of MIDI Output | ||||
| @@ -1628,8 +1615,6 @@ public: | |||||
| return false; | return false; | ||||
| } | } | ||||
| scopedInitliazer.initializeIfNeeded(descriptor); | |||||
| // --------------------------------------------------------------- | // --------------------------------------------------------------- | ||||
| // initialize plugin | // initialize plugin | ||||