diff options
Diffstat (limited to 'vst')
-rw-r--r-- | vst/Makefile.am | 53 | ||||
-rw-r--r-- | vst/Makefile.mingw32.in | 150 | ||||
-rw-r--r-- | vst/README.txt | 46 | ||||
-rw-r--r-- | vst/constants.h | 32 | ||||
-rw-r--r-- | vst/drumgizmo_vst.cc | 590 | ||||
-rw-r--r-- | vst/drumgizmo_vst.h | 119 | ||||
-rw-r--r-- | vst/input_vst.cc | 108 | ||||
-rw-r--r-- | vst/input_vst.h | 59 | ||||
-rw-r--r-- | vst/output_vst.cc | 86 | ||||
-rw-r--r-- | vst/output_vst.h | 54 |
10 files changed, 0 insertions, 1297 deletions
diff --git a/vst/Makefile.am b/vst/Makefile.am deleted file mode 100644 index 1f337b6..0000000 --- a/vst/Makefile.am +++ /dev/null @@ -1,53 +0,0 @@ -include $(top_srcdir)/plugingui/Makefile.am.plugingui -include $(top_srcdir)/src/Makefile.am.drumgizmo - -VST_BASE = ${VST_SOURCE_PATH} -VST_SRC_BASE = ${VST_BASE}/public.sdk/source/vst2.x/ -VST_SOURCES = \ - ${VST_SRC_BASE}/audioeffectx.cpp \ - ${VST_SRC_BASE}/audioeffect.cpp \ - ${VST_SRC_BASE}/vstplugmain.cpp - -AM_CPPFLAGS = -I$(top_srcdir)/hugin -DWITH_HUG_SYSLOG -DWITH_HUG_MUTEX - -EXTRA_DIST = \ - Makefile.mingw32.in \ - constants.h \ - drumgizmo_vst.cc \ - drumgizmo_vst.h \ - input_vst.cc \ - input_vst.h \ - output_vst.cc \ - output_vst.h - -if ENABLE_VST -plugin_LTLIBRARIES = -plugindir = $(prefix)/lib/vst -plugin_LTLIBRARIES += drumgizmo_vst.la -noinst_LTLIBRARIES = libdg.la -endif - -libdg_la_SOURCES = \ - $(DRUMGIZMO_SOURCES) \ - $(PLUGIN_GUI_SOURCES) - -libdg_la_LDFLAGS = -all-static -static -static-libgcc -libdg_la_LIBADD = $(PLUGIN_GUI_LIBS) $(DRUMGIZMO_LIBS) -libdg_la_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/plugingui \ - -I$(top_srcdir)/include $(SNDFILE_CXXFLAGS) \ - $(PTHREAD_CFLAGS) $(EXPAT_CFLAGS) $(VST_CPPFLAGS) \ - $(PLUGIN_GUI_CFLAGS) $(SSEFLAGS)\ - -DUSE_THREAD $(SAMPLERATE_CFLAGS) - -nodist_drumgizmo_vst_la_SOURCES = \ - $(VST_SOURCES) - -drumgizmo_vst_la_SOURCES = \ - drumgizmo_vst.cc \ - input_vst.cc \ - output_vst.cc - -drumgizmo_vst_la_LDFLAGS = -shared -module -avoid-version -drumgizmo_vst_la_LIBADD = libdg.la -drumgizmo_vst_la_CXXFLAGS = -w $(VST_CPPFLAGS) \ - -I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_srcdir)/plugingui
\ No newline at end of file diff --git a/vst/Makefile.mingw32.in b/vst/Makefile.mingw32.in deleted file mode 100644 index bf0e7f4..0000000 --- a/vst/Makefile.mingw32.in +++ /dev/null @@ -1,150 +0,0 @@ -VST_BASE=@VST_SOURCE_PATH@ -VST_SRC_BASE = ${VST_BASE}/public.sdk/source/vst2.x/ -VST_SRC = \ - ${VST_SRC_BASE}/audioeffectx.cpp \ - ${VST_SRC_BASE}/audioeffect.cpp \ - ${VST_SRC_BASE}/vstplugmain.cpp -VST_CFLAGS=-I$(VST_BASE) - -DG_SRC = \ - @top_srcdir@/src/audiocachefile.cc \ - @top_srcdir@/src/audiocache.cc \ - @top_srcdir@/src/audiocacheeventhandler.cc \ - @top_srcdir@/src/audiocacheidmanager.cc \ - @top_srcdir@/src/audioinputenginemidi.cc \ - @top_srcdir@/src/audiofile.cc \ - @top_srcdir@/src/channel.cc \ - @top_srcdir@/src/channelmixer.cc \ - @top_srcdir@/src/chresampler.cc \ - @top_srcdir@/src/configfile.cc \ - @top_srcdir@/src/configuration.cc \ - @top_srcdir@/src/configparser.cc \ - @top_srcdir@/src/drumgizmo.cc \ - @top_srcdir@/src/drumkit.cc \ - @top_srcdir@/src/drumkitloader.cc \ - @top_srcdir@/src/drumkitparser.cc \ - @top_srcdir@/src/events.cc \ - @top_srcdir@/src/instrument.cc \ - @top_srcdir@/src/instrumentparser.cc \ - @top_srcdir@/src/memchecker.cc \ - @top_srcdir@/src/messagehandler.cc \ - @top_srcdir@/src/messagereceiver.cc \ - @top_srcdir@/src/midimapparser.cc \ - @top_srcdir@/src/midimapper.cc \ - @top_srcdir@/src/mutex.cc \ - @top_srcdir@/src/path.cc \ - @top_srcdir@/src/powerlist.cc \ - @top_srcdir@/src/sample.cc \ - @top_srcdir@/src/semaphore.cc \ - @top_srcdir@/src/saxparser.cc \ - @top_srcdir@/src/thread.cc \ - @top_srcdir@/src/velocity.cc \ - @top_srcdir@/src/versionstr.cc -DG_CFLAGS = -I.. -I../include -I../src -DSSE -msse -msse2 -# -DDISABLE_HUGIN - -GUI_SRC = \ - @top_srcdir@/plugingui/dgwindow.cc \ - @top_srcdir@/plugingui/nativewindow_win32.cc \ - @top_srcdir@/plugingui/plugingui.cc \ - @top_srcdir@/plugingui/pluginconfig.cc \ - @top_srcdir@/plugingui/label.cc \ - @top_srcdir@/plugingui/eventhandler.cc \ - @top_srcdir@/plugingui/font.cc \ - @top_srcdir@/plugingui/window.cc \ - @top_srcdir@/plugingui/widget.cc \ - @top_srcdir@/plugingui/colour.cc \ - @top_srcdir@/plugingui/painter.cc \ - @top_srcdir@/plugingui/button.cc \ - @top_srcdir@/plugingui/pixelbuffer.cc \ - @top_srcdir@/plugingui/lineedit.cc \ - @top_srcdir@/plugingui/led.cc \ - @top_srcdir@/plugingui/layout.cc \ - @top_srcdir@/plugingui/checkbox.cc \ - @top_srcdir@/plugingui/slider.cc \ - @top_srcdir@/plugingui/scrollbar.cc \ - @top_srcdir@/plugingui/textedit.cc \ - @top_srcdir@/plugingui/listbox.cc \ - @top_srcdir@/plugingui/listboxthin.cc \ - @top_srcdir@/plugingui/listboxbasic.cc \ - @top_srcdir@/plugingui/knob.cc \ - @top_srcdir@/plugingui/filebrowser.cc \ - @top_srcdir@/plugingui/directory.cc \ - @top_srcdir@/plugingui/image.cc \ - @top_srcdir@/plugingui/combobox.cc \ - @top_srcdir@/plugingui/progressbar.cc \ - @top_srcdir@/plugingui/verticalline.cc \ - @top_srcdir@/plugingui/resource.cc \ - @top_srcdir@/plugingui/resource_data.cc \ - @top_srcdir@/plugingui/lodepng/lodepng.cpp - -GUI_CFLAGS=-I@top_srcdir@/plugingui/ -DUSE_THREAD @GUI_CFLAGS@ -GUI_LIBS=-lgdi32 -lsetupapi -lws2_32 - -DBG_SRC = \ - @top_srcdir@/hugin/hugin.c \ - @top_srcdir@/hugin/hugin_syslog.c - -DBG_CFLAGS=-I../hugin -DWITH_HUG_SYSLOG -DWITH_HUG_MUTEX -# -DDISABLE_HUGIN - -# -# http://old.nabble.com/using-VC%2B%2B-.lib-with-mingw-td23151303.html -# Given `-lfoo', the win32 build of GNU ld will search for libfoo.a and foo.lib -# - -EXPAT_CFLAGS=@EXPAT_CFLAGS@ -EXPAT_LIBS=@EXPAT_LIBS@ - -SNDFILE_CFLAGS=@SNDFILE_CFLAGS@ -SNDFILE_LIBS=@SNDFILE_LIBS@ - -SRC_CFLAGS=@SAMPLERATE_CFLAGS@ -SRC_LIBS=@SAMPLERATE_LIBS@ - -ZITA_CXXFLAGS=@ZITA_CPPFLAGS@ -ZITA_LIBS=@ZITA_LIBS@ - -SRC = \ - drumgizmo_vst.cc \ - input_vst.cc \ - output_vst.cc - -####################### -# -#CXXFLAGS=-DWIN32 $(EXPAT_CFLAGS) $(SNDFILE_CFLAGS) $(DG_CFLAGS) $(GUI_CFLAGS) $(DBG_CFLAGS) $(VST_CFLAGS) -#CFLAGS=$(CXXFLAGS) -#LDFLAGS=$(EXPAT_LIBS) $(SNDFILE_LIBS) $(GUI_LIBS) $(DBG_LIBS) -# -#C_SOURCES=$(DBG_SRC) -#CXX_SOURCES=$(GUI_SRC) $(DG_SRC) -#CPP_SOURCES=$(VST_SRC) -# -#OBJECTS=$(CXX_SOURCES:.cc=.o) $(CPP_SOURCES:.cpp=.o) $(C_SOURCES:.c=.o) -#all: $(CXX_SOURCES) $(CPP_SOURCES) $(C_SOURCES) drumgizmo_vst.dll -# -#drumgizmo_vst.dll: $(OBJECTS) -# g++ $(CXXFLAGS) $(OBJECTS) $(LDFLAGS) -shared -o drumgizmo_vst.dll -Wl,--out-implib,libdrumgizmo_vst.a -# -#%.o: %.cc -# g++ -O3 -c $(CXXFLAGS) $(LDFLAGS) $< -o $(notdir $@) -# -#%.o: %.cpp -# g++ -O3 -c $(CXXFLAGS) $(LDFLAGS) $< -o $(notdir $@) -# -#%.o: %.c -# gcc -O3 -c $(CFLAGS) $(LDFLAGS) $< -o $@ -# -#clean: -# del -f $(notdir $(OBJECTS)) drumgizmo_vst.dll libdrumgizmo_vst.a -# -######################## - - -all: - gcc $(DBG_CFLAGS) @top_srcdir@/hugin/hugin.c -c - gcc $(DBG_CFLAGS) @top_srcdir@/hugin/hugin_syslog.c -c - g++ $(CXXFLAGS) -std=c++11 -static -static-libgcc -O2 -g -Wall $(DBG_CFLAGS) $(DG_CFLAGS) $(DG_LIBS) $(VST_CFLAGS) hugin.o hugin_syslog.o $(DG_SRC) $(VST_SRC) ${SRC} ${GUI_SRC} ${GUI_CFLAGS} $(GUI_LIBS) $(EXPAT_CFLAGS) $(SRC_CFLAGS) $(ZITA_CXXFLAGS) $(EXPAT_LIBS) $(SNDFILE_CFLAGS) $(SNDFILE_LIBS) $(SRC_LIBS) $(ZITA_LIBS) -shared -o drumgizmo_vst.dll -Wl,--out-implib,libdrumgizmo_vst.a - -clean: - del -f drumgizmo_vst.dll libdrumgizmo_vst.a diff --git a/vst/README.txt b/vst/README.txt deleted file mode 100644 index 30aa640..0000000 --- a/vst/README.txt +++ /dev/null @@ -1,46 +0,0 @@ -== Installation ==
-To install the DrumGizmo vst plugin, follow these simple steps:
-1. Copy “drumgizmo_vst.dll” into the folder containing your VST plugins.
-2. Done!
-
-When opening your VST host software (Cubase or the like), the plugin
-should now show up as a VST Instrument.
-
-== How to use it ==
-1. Load the plugin as a VST Instrument.
-2. Now create a midi track to use with the plugin.
-2a. (Optional) Choose “GM map” to use with the midi track.
-3. Select DrumGizmo as midi output for the track.
-4. Now open up the DrumGizmo VST interface.
-5. Load a drumkit by clicking on the "Load kit..." button and browse for
- the drumkit xml file. (Example: “C:\drumkit\drumkit.xml”).
- When the “led” to the right of the line edit turns green, it means
- that the drumkit has succesfully begun loading in the background. It
- might take a while before all drums are loaded, so be patient.
-8. Now click on the “Load map...” button and browse for the midimap xml
- file. (Example: “C:\drumkit\midimap.xml”). When the “led” to the
- right of the line edit turns green, it means that the midimap has
- been loaded succesfully.
-
-NOTE: DrumGizmo currently uses 16 channels of output, which should be
-mapped manually in your software, just like you would do with any other
-plugin. We can't describe this step since it varies depending on your
-software.
-
-Now plot some midi notes, and play them. You should hear the sound of
-the DrumGizmo drumkit coming from your speakers. Keep in mind that the
-drumkit needs to load fully before everything will play as
-expected. So be patient...!
-
-== More info ==
-If you have suggestions, bugs or comments, feel free to visit
-http://www.drumgizmo.org or visit the official DrumGizmo irc channel at
-#drumgizmo on the freenode network.
-
-== Known problems ==
-* On Win7 64bit with 32bit Cubase you might have to install the dll
- in "c:\Program Files(x86)\Steinberg\VSTPlugins" instead of
- "c:\Program Files(x86)\Steinberg\Cubase Studio 5\VSTPlugins".
-
-Have fun!
-// The Drumgizmo Team
diff --git a/vst/constants.h b/vst/constants.h deleted file mode 100644 index 655bfc8..0000000 --- a/vst/constants.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * constants.h - * - * Tue Sep 20 11:49:29 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#ifndef __DRUMGIZMO_CONSTANTS_H__ -#define __DRUMGIZMO_CONSTANTS_H__ - -#define NUM_OUTPUTS 16 - -#endif/*__DRUMGIZMO_CONSTANTS_H__*/ diff --git a/vst/drumgizmo_vst.cc b/vst/drumgizmo_vst.cc deleted file mode 100644 index 81b8875..0000000 --- a/vst/drumgizmo_vst.cc +++ /dev/null @@ -1,590 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * drumgizmo_vst.cc - * - * Tue Sep 20 08:22:48 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include "drumgizmo_vst.h" - -#include "constants.h" - -#include <time.h> -#include <drumgizmo.h> - -#include <hugin.hpp> -#include <stdlib.h> -#include <string> - -#define NUM_PROGRAMS 0 -#define NUM_PARAMS 0 - -DGEditor::DGEditor(AudioEffect* effect) -{ - DEBUG(dgeditor, "%s\n", __PRETTY_FUNCTION__); - dgeff = (DrumGizmoVst*)effect; - plugingui = nullptr; - drumgizmo = dgeff->drumgizmo; -} - -bool DGEditor::open(void* ptr) -{ - DEBUG(dgeditor, "%s\n", __PRETTY_FUNCTION__); - if(plugingui) - { - delete plugingui; - } - - plugingui = new GUI::PluginGUI(); - plugingui->show(); - return true; -} - -void DGEditor::close() -{ - DEBUG(dgeditor, "%s\n", __PRETTY_FUNCTION__); - - if(plugingui) - { - delete plugingui; - } - - plugingui = nullptr; -} - -bool DGEditor::isOpen() -{ - DEBUG(dgeditor, "%s\n", __PRETTY_FUNCTION__); - return plugingui != nullptr; -} - -void DGEditor::idle() -{ - DEBUG(dgeditor, "%s\n", __PRETTY_FUNCTION__); - // if(plugingui) plugingui->processEvents(); -} - -AudioEffect* createEffectInstance(audioMasterCallback audioMaster) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - return new DrumGizmoVst(audioMaster); -} - -DrumGizmoVst::DrumGizmoVst(audioMasterCallback audioMaster) - : AudioEffectX(audioMaster, NUM_PROGRAMS, NUM_PARAMS) -{ - hug_status_t status = HUG_STATUS_OK; - - int hugin_flags = HUG_FLAG_USE_MUTEX; - - const char* syslog_host_env = getenv("DG_SYSLOG_HOST"); - - if(syslog_host_env) - { - std::string syslog_host = syslog_host_env; - int syslog_port = 514; - const char* syslog_port_env = getenv("DG_SYSLOG_PORT"); - if(syslog_port_env) - { - syslog_port = atoi(syslog_port_env); - } - - status = hug_init(hugin_flags | HUG_FLAG_OUTPUT_TO_SYSLOG, - HUG_OPTION_SYSLOG_HOST, syslog_host.c_str(), - HUG_OPTION_SYSLOG_PORT, syslog_port, - HUG_OPTION_END); - } - else - { - status = hug_init(hugin_flags); - } - - if(status != HUG_STATUS_OK) - { - printf("Error: %d\n", status); - } - - INFO(vst, "We are up and running"); - - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - - pos = 0; - buffer = nullptr; - buffer_size = 0; - - output = nullptr; - input = nullptr; - drumgizmo = nullptr; - - output = new OutputVST(); - input = new InputVST(); - drumgizmo = new DrumGizmo(output, input); - - // initialize programs - // programs = new DrumGizmoVstProgram[kNumPrograms]; - // for(VstInt32 i = 0; i < 16; i++) channelPrograms[i] = i; - - // if(programs) setProgram(0); - - if(audioMaster) - { - setNumInputs(0); // no audio inputs - setNumOutputs(NUM_OUTPUTS); - canProcessReplacing(); - isSynth(); - - union - { - char cid[4]; - unsigned int iid; - } id; - - memcpy(id.cid, "DGV5", 4); // Four bytes typecasted into an unsigned integer - setUniqueID(id.iid); - - // setUniqueID((unsigned int)time(nullptr)); - } - - initProcess(); - suspend(); - - editor = new DGEditor(this); - setEditor(editor); - - programsAreChunks(true); - - // getChunk - // file:///home/deva/docs/c/drumgizmo/vst/vstsdk2.4/doc/html/class_audio_effect.html#42883c327783d7d31ed513b10c9204fc - - // setChunk - // file:///home/deva/docs/c/drumgizmo/vst/vstsdk2.4/doc/html/class_audio_effect.html#b6e4c31c1acf8d1fc4046521912787b1 -} - -DrumGizmoVst::~DrumGizmoVst() -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - - DEBUG(vst, "~DrumGizmoVst(1)\n"); - if(drumgizmo) - { - delete drumgizmo; - } - - DEBUG(vst, "~DrumGizmoVst(2)\n"); - if(input) - { - delete input; - } - - DEBUG(vst, "~DrumGizmoVst(3)\n"); - if(output) - { - delete output; - } - - DEBUG(vst, "~DrumGizmoVst(4)\n"); - - hug_close(); -} - -VstInt32 DrumGizmoVst::getChunk(void** data, bool isPreset) -{ - DEBUG(vst, "%s - data: %p isPreset: %d\n", - __PRETTY_FUNCTION__, *data, isPreset ? 1 : 0); - std::string cfg = drumgizmo->configString(); - DEBUG(vst, "drumgizmo->config := %s\n", cfg.c_str()); - char* config = strdup(cfg.c_str()); - *data = config; - return cfg.length(); -} - -VstInt32 DrumGizmoVst::setChunk(void* data, VstInt32 byteSize, bool isPreset) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - - std::string config; - config.append((const char*)data, (size_t)byteSize); - DEBUG(vst, "setChunk(isPreset: %d): [%d] %s\n", isPreset ? 1 : 0, byteSize, - config.c_str()); - - if(!drumgizmo->setConfigString(config)) - { - ERR(vst, "setConfigString failed...\n"); - return 1; - } - - return 0; -} - -void DrumGizmoVst::setProgram(VstInt32 program) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); -} -void DrumGizmoVst::setProgramName(char* name) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); -} -void DrumGizmoVst::getProgramName(char* name) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - name[0] = '\0'; -} - -void DrumGizmoVst::getParameterLabel(VstInt32 index, char* label) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - label[0] = '\0'; - /* - switch(index) - { - case kWaveform1: - case kWaveform2: - vst_strncpy(label, "Shape", kVstMaxParamStrLen); - break; - - case kFreq1: - case kFreq2: - vst_strncpy(label, "Hz", kVstMaxParamStrLen); - break; - - case kVolume1: - case kVolume2: - case kVolume: - vst_strncpy(label, "dB", kVstMaxParamStrLen); - break; - } - */ -} - -void DrumGizmoVst::getParameterDisplay(VstInt32 index, char* text) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - text[0] = 0; - /* - switch(index) - { - case kWaveform1: - if(fWaveform1 < .5) - vst_strncpy(text, "Sawtooth", kVstMaxParamStrLen); - else - vst_strncpy(text, "Pulse", kVstMaxParamStrLen); - break; - - case kFreq1: float2string(fFreq1, text, kVstMaxParamStrLen); - break; - case kVolume1: dB2string(fVolume1, text, kVstMaxParamStrLen); - break; - - case kWaveform2: - if(fWaveform2 < .5) - vst_strncpy(text, "Sawtooth", kVstMaxParamStrLen); - else - vst_strncpy(text, "Pulse", kVstMaxParamStrLen); - break; - - case kFreq2: float2string(fFreq2, text, kVstMaxParamStrLen); - break; - case kVolume2: dB2string(fVolume2, text, kVstMaxParamStrLen); - break; - case kVolume: dB2string(fVolume, text, kVstMaxParamStrLen); - break; - } - */ -} - -void DrumGizmoVst::getParameterName(VstInt32 index, char* label) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - /* - switch(index) - { - case kWaveform1: vst_strncpy(label, "Wave 1", kVstMaxParamStrLen); - break; - case kFreq1: vst_strncpy(label, "Freq 1", kVstMaxParamStrLen); - break; - case kVolume1: vst_strncpy(label, "Levl 1", kVstMaxParamStrLen); - break; - case kWaveform2: vst_strncpy(label, "Wave 2", kVstMaxParamStrLen); - break; - case kFreq2: vst_strncpy(label, "Freq 2", kVstMaxParamStrLen); - break; - case kVolume2: vst_strncpy(label, "Levl 2", kVstMaxParamStrLen); - break; - case kVolume: vst_strncpy(label, "Volume", kVstMaxParamStrLen); - break; - } - */ -} - -void DrumGizmoVst::setParameter(VstInt32 index, float value) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - /* - DrumGizmoVstProgram *ap = &programs[curProgram]; - switch(index) - { - case kWaveform1: fWaveform1 = ap->fWaveform1 = value; break; - case kFreq1: fFreq1 = ap->fFreq1 = value; break; - case kVolume1: fVolume1 = ap->fVolume1 = value; break; - case kWaveform2: fWaveform2 = ap->fWaveform2 = value; break; - case kFreq2: fFreq2 = ap->fFreq2 = value; break; - case kVolume2: fVolume2 = ap->fVolume2 = value; break; - case kVolume: fVolume = ap->fVolume = value; break; - } - */ -} - -float DrumGizmoVst::getParameter(VstInt32 index) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - float value = 0; - /* - switch(index) - { - case kWaveform1: value = fWaveform1; break; - case kFreq1: value = fFreq1; break; - case kVolume1: value = fVolume1; break; - case kWaveform2: value = fWaveform2; break; - case kFreq2: value = fFreq2; break; - case kVolume2: value = fVolume2; break; - case kVolume: value = fVolume; break; - } - */ - return value; -} - -bool DrumGizmoVst::getOutputProperties(VstInt32 index, - VstPinProperties* properties) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - if(index < NUM_OUTPUTS) - { - vst_strncpy(properties->label, "Channel ", 63); - char temp[11] = {0}; - int2string(index + 1, temp, 10); - vst_strncat(properties->label, temp, 63); - - properties->flags = kVstPinIsActive; - - return true; - } - return false; -} - -bool DrumGizmoVst::getProgramNameIndexed(VstInt32 category, VstInt32 index, - char* text) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - return false; -} - -bool DrumGizmoVst::getEffectName(char* name) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - vst_strncpy(name, "DrumGizmo4", kVstMaxEffectNameLen); - return true; -} - -bool DrumGizmoVst::getVendorString(char* text) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - vst_strncpy(text, "Aasimon.org", kVstMaxVendorStrLen); - return true; -} - -bool DrumGizmoVst::getProductString(char* text) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - vst_strncpy(text, "Vst Synth", kVstMaxProductStrLen); - return true; -} - -VstInt32 DrumGizmoVst::getVendorVersion() -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - return 1000; -} - -VstInt32 DrumGizmoVst::canDo(char* text) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - if(!strcmp(text, "receiveVstEvents")) - { - return 1; - } - - if(!strcmp(text, "receiveVstMidiEvent")) - { - return 1; - } - - // if(!strcmp(text, "midiProgramNames")) return 1; - return -1; // explicitly can't do; 0 => don't know -} - -VstInt32 DrumGizmoVst::getNumMidiInputChannels() -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - return 1; // we are monophonic -} - -VstInt32 DrumGizmoVst::getNumMidiOutputChannels() -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - return 0; // no MIDI output back to Host app -} - -VstInt32 DrumGizmoVst::getMidiProgramName(VstInt32 channel, - MidiProgramName* mpn) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - VstInt32 prg = mpn->thisProgramIndex; - if((prg < 0) || (prg >= 128)) - { - return 0; - } - - fillProgram(channel, prg, mpn); - if(channel == 9) - { - return 1; - } - - return 128L; -} - -VstInt32 DrumGizmoVst::getCurrentMidiProgram(VstInt32 channel, - MidiProgramName* mpn) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - if((channel < 0) || (channel >= 16) || !mpn) - { - return -1; - } - - VstInt32 prg = 0; - mpn->thisProgramIndex = prg; - fillProgram(channel, prg, mpn); - - return prg; -} - -void DrumGizmoVst::fillProgram(VstInt32 channel, VstInt32 prg, - MidiProgramName* mpn) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - mpn->midiBankMsb = mpn->midiBankLsb = -1; - mpn->reserved = 0; - mpn->flags = 0; - - vst_strncpy(mpn->name, "Standard", 63); - mpn->midiProgram = 0; - mpn->parentCategoryIndex = 0; -} - -VstInt32 DrumGizmoVst::getMidiProgramCategory(VstInt32 channel, - MidiProgramCategory* cat) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - cat->parentCategoryIndex = -1; // -1:no parent category - cat->flags = 0; // reserved, none defined yet, zero. - // VstInt32 category = cat->thisCategoryIndex; - vst_strncpy(cat->name, "Drums", 63); - return 1; -} - -bool DrumGizmoVst::hasMidiProgramsChanged(VstInt32 channel) -{ - return false; // updateDisplay() -} - -bool DrumGizmoVst::getMidiKeyName(VstInt32 channel, MidiKeyName* key) -// struct will be filled with information for 'thisProgramIndex' and -// 'thisKeyNumber' -// if keyName is "" the standard name of the key will be displayed. -// if false is returned, no MidiKeyNames defined for 'thisProgramIndex'. -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - // key->thisProgramIndex; // >= 0. fill struct for this program index. - // key->thisKeyNumber; // 0 - 127. fill struct for this key number. - key->keyName[0] = 0; - key->reserved = 0; // zero - key->flags = 0; // reserved, none defined yet, zero. - return false; -} - -void DrumGizmoVst::setSampleRate(float sampleRate) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - AudioEffectX::setSampleRate(sampleRate); - drumgizmo->setSamplerate(sampleRate); -} - -void DrumGizmoVst::setBlockSize(VstInt32 blockSize) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - AudioEffectX::setBlockSize(blockSize); -} - -void DrumGizmoVst::initProcess() -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - // drumgizmo->loadkit(getenv("DRUMGIZMO_DRUMKIT")); - drumgizmo->init(); -} - -void DrumGizmoVst::processReplacing(float** inputs, float** outputs, - VstInt32 sampleFrames) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - long lvl = getCurrentProcessLevel(); - // 0 = realtime/normal - // 1 = non-realtime/rendering - // 2 = offline processing - drumgizmo->setFreeWheel(lvl != 0); - - output->setOutputs(outputs); - - if(buffer_size != (size_t)sampleFrames) - { - if(buffer) - { - free(buffer); - } - - buffer_size = sampleFrames; - buffer = (sample_t*)malloc(sizeof(sample_t) * buffer_size); - - drumgizmo->setFrameSize(buffer_size); - } - - drumgizmo->run(pos, buffer, buffer_size); - - pos += sampleFrames; -} - -VstInt32 DrumGizmoVst::processEvents(VstEvents* ev) -{ - DEBUG(vst, "%s\n", __PRETTY_FUNCTION__); - input->processEvents(ev); - return 1; -} diff --git a/vst/drumgizmo_vst.h b/vst/drumgizmo_vst.h deleted file mode 100644 index dde4cbb..0000000 --- a/vst/drumgizmo_vst.h +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * drumgizmo_vst.h - * - * Tue Sep 20 08:22:48 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#ifndef __DRUMGIZMO_DRUMGIZMO_VST_H__ -#define __DRUMGIZMO_DRUMGIZMO_VST_H__ - -#include <public.sdk/source/vst2.x/audioeffectx.h> -#include <public.sdk/source/vst2.x/aeffeditor.h> - -#include <drumgizmo.h> -#include <plugingui.h> - -#include "input_vst.h" -#include "output_vst.h" - -class DGEditor; - -class DrumGizmoVst : public AudioEffectX -{ -public: - DrumGizmoVst(audioMasterCallback audioMaster); - ~DrumGizmoVst(); - - void processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames); - VstInt32 processEvents(VstEvents* events); - - void setProgram(VstInt32 program); - void setProgramName(char* name); - void getProgramName(char* name); - bool getProgramNameIndexed(VstInt32 category, VstInt32 index, char* text); - - void setParameter(VstInt32 index, float value); - float getParameter(VstInt32 index); - void getParameterLabel(VstInt32 index, char* label); - void getParameterDisplay(VstInt32 index, char* text); - void getParameterName(VstInt32 index, char* text); - - void setSampleRate(float sampleRate); - void setBlockSize(VstInt32 blockSize); - - bool getOutputProperties(VstInt32 index, VstPinProperties* properties); - - bool getEffectName(char* name); - bool getVendorString(char* text); - bool getProductString(char* text); - VstInt32 getVendorVersion(); - VstInt32 canDo(char* text); - - VstInt32 getNumMidiInputChannels(); - VstInt32 getNumMidiOutputChannels(); - - VstInt32 getMidiProgramName(VstInt32 channel, - MidiProgramName* midiProgramName); - VstInt32 getCurrentMidiProgram(VstInt32 channel, - MidiProgramName* currentProgram); - VstInt32 getMidiProgramCategory(VstInt32 channel, - MidiProgramCategory* category); - bool hasMidiProgramsChanged(VstInt32 channel); - bool getMidiKeyName(VstInt32 channel, MidiKeyName* keyName); - - VstInt32 getChunk(void **data, bool isPreset); - VstInt32 setChunk(void *data, VstInt32 byteSize, bool isPreset); - - DrumGizmo *drumgizmo; - InputVST *input; - OutputVST *output; - -private: - void initProcess(); - // void noteOn(VstInt32 note, VstInt32 velocity, VstInt32 delta); - // void noteOff(); - void fillProgram(VstInt32 channel, VstInt32 prg, MidiProgramName* mpn); - - size_t pos; - sample_t *buffer; - size_t buffer_size; - - DGEditor *editor; -}; - -class DGEditor : public AEffEditor { -public: - DGEditor(AudioEffect* effect); - - bool open(void* ptr); - void close(); - bool isOpen(); - void idle(); - -private: - DrumGizmoVst* dgeff; - GUI::PluginGUI *plugingui; - DrumGizmo *drumgizmo; -}; - -#endif/*__DRUMGIZMO_DRUMGIZMO_VST_H__*/ diff --git a/vst/input_vst.cc b/vst/input_vst.cc deleted file mode 100644 index 74ecb01..0000000 --- a/vst/input_vst.cc +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * input_vst.cc - * - * Tue Sep 20 10:40:10 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include "input_vst.h" - -#include <midimapparser.h> -#include <hugin.hpp> - -InputVST::InputVST() -{ - list = NULL; - listsize = 0; -} - -InputVST::~InputVST() -{ -} - -bool InputVST::init(Instruments &i) -{ - DEBUG(inputvst, "init\n"); - instruments = &i; - return true; -} - -void InputVST::setParm(std::string parm, std::string value) -{ -} - -bool InputVST::start() -{ - return true; -} - -void InputVST::stop() -{ -} - -void InputVST::pre() -{ -} - -event_t *InputVST::run(size_t pos, size_t len, size_t *nevents) -{ - *nevents = listsize; - return list; -} - -void InputVST::post() -{ - list = NULL; - listsize = 0; -} - -void InputVST::processEvents(VstEvents* ev) -{ - if(list == NULL) { - list = (event_t *)malloc(sizeof(event_t) * 1000); - // listsize = 0; - } - - for(VstInt32 i = 0; i < ev->numEvents; i++) { - if(ev->events[i]->type != kVstMidiType) continue; - - VstMidiEvent* event =(VstMidiEvent*)ev->events[i]; - char* midiData = event->midiData; - VstInt32 status = midiData[0] & 0xf0; // ignoring channel - if(status == 0x90) { // we only look at notes - VstInt32 note = midiData[1] & 0x7f; - VstInt32 velocity = midiData[2] & 0x7f; - - int i = mmap.lookup(note); - DEBUG(inputvst, "Note: %d -> %d\n", note, i); - if(velocity && i != -1) { - list[listsize].type = TYPE_ONSET; - list[listsize].instrument = i; - list[listsize].velocity = velocity / 127.0; - list[listsize].offset = event->deltaFrames; - listsize++; - } - - } - event++; - } -} diff --git a/vst/input_vst.h b/vst/input_vst.h deleted file mode 100644 index 88a6d06..0000000 --- a/vst/input_vst.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * input_vst.h - * - * Tue Sep 20 10:40:10 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#ifndef __DRUMGIZMO_INPUT_VST_H__ -#define __DRUMGIZMO_INPUT_VST_H__ - -#include <audioinputenginemidi.h> - -#include <public.sdk/source/vst2.x/audioeffectx.h> - -class InputVST : public AudioInputEngineMidi { -public: - InputVST(); - virtual ~InputVST(); - - bool init(Instruments &instruments); - - void setParm(std::string parm, std::string value); - - bool start(); - void stop(); - - void pre(); - event_t *run(size_t pos, size_t len, size_t *nevents); - void post(); - - void processEvents(VstEvents* ev); - -private: - event_t *list; - size_t listsize; - - Instruments *instruments; -}; - -#endif/*__DRUMGIZMO_INPUT_VST_H__*/ diff --git a/vst/output_vst.cc b/vst/output_vst.cc deleted file mode 100644 index 4a0d6d9..0000000 --- a/vst/output_vst.cc +++ /dev/null @@ -1,86 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * output_vst.cc - * - * Tue Sep 20 10:40:14 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include "output_vst.h" - -#include <string.h> - -#include "constants.h" - -OutputVST::OutputVST() -{ - outputs = NULL; -} - -OutputVST::~OutputVST() -{ -} - -bool OutputVST::init(Channels channels) -{ - return true; -} - -void OutputVST::setParm(std::string parm, std::string value) -{ -} - -bool OutputVST::start() -{ - return true; -} - -void OutputVST::stop() -{ -} - -void OutputVST::pre(size_t nsamples) -{ - if(!outputs) return; - - for(size_t ch = 0; ch < NUM_OUTPUTS; ch++) { - memset(outputs[ch], 0, nsamples * sizeof(sample_t)); - } -} - -void OutputVST::run(int ch, sample_t *samples, size_t nsamples) -{ - if(!outputs) return; - - if(ch < NUM_OUTPUTS) { - memcpy(outputs[ch], samples, nsamples * sizeof(sample_t)); - } -} - -void OutputVST::post(size_t nsamples) -{ - outputs = NULL; -} - -void OutputVST::setOutputs(float **outputs) -{ - this->outputs = outputs; -} diff --git a/vst/output_vst.h b/vst/output_vst.h deleted file mode 100644 index 914e2e8..0000000 --- a/vst/output_vst.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * output_vst.h - * - * Tue Sep 20 10:40:14 CEST 2011 - * Copyright 2011 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of DrumGizmo. - * - * DrumGizmo is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DrumGizmo is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DrumGizmo; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#ifndef __DRUMGIZMO_OUTPUT_VST_H__ -#define __DRUMGIZMO_OUTPUT_VST_H__ - -#include <audiooutputengine.h> - -class OutputVST : public AudioOutputEngine { -public: - OutputVST(); - ~OutputVST(); - - bool init(Channels channels); - - void setParm(std::string parm, std::string value); - - bool start(); - void stop(); - - void pre(size_t nsamples); - void run(int ch, sample_t *samples, size_t nsamples); - void post(size_t nsamples); - - void setOutputs(float **outputs); - -private: - sample_t **outputs; -}; - -#endif/*__DRUMGIZMO_OUTPUT_VST_H__*/ |