summaryrefslogtreecommitdiff
path: root/vst
diff options
context:
space:
mode:
Diffstat (limited to 'vst')
-rw-r--r--vst/Makefile.am53
-rw-r--r--vst/Makefile.mingw32.in150
-rw-r--r--vst/README.txt46
-rw-r--r--vst/constants.h32
-rw-r--r--vst/drumgizmo_vst.cc590
-rw-r--r--vst/drumgizmo_vst.h119
-rw-r--r--vst/input_vst.cc108
-rw-r--r--vst/input_vst.h59
-rw-r--r--vst/output_vst.cc86
-rw-r--r--vst/output_vst.h54
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__*/