summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'plugin')
-rw-r--r--plugin/Makefile.am10
-rw-r--r--plugin/README_VST.txt33
-rw-r--r--plugin/drumgizmo_plugin.cc27
-rw-r--r--plugin/drumgizmo_plugin.h6
m---------plugin/plugingizmo0
5 files changed, 49 insertions, 27 deletions
diff --git a/plugin/Makefile.am b/plugin/Makefile.am
index 1dab326..15ca7d0 100644
--- a/plugin/Makefile.am
+++ b/plugin/Makefile.am
@@ -41,7 +41,7 @@ VST_SRC_BASE = ${VST_BASE}/public.sdk/source/vst2.x/
# Hack to compile vst sources without -Wall -Werror
libvstsdk_la_CXXFLAGS = -w $(VST_CPPFLAGS)
-libvstsdk_la_SOURCES = \
+nodist_libvstsdk_la_SOURCES = \
${VST_SRC_BASE}/audioeffectx.cpp \
${VST_SRC_BASE}/audioeffect.cpp \
${VST_SRC_BASE}/vstplugmain.cpp
@@ -67,4 +67,10 @@ install-exec-hook:
EXTRA_DIST = \
- $(plugin_DATA)
+ $(lv2plugin_DATA) \
+ $(vstplugin_DATA) \
+ drumgizmo_plugin.h \
+ $(top_srcdir)/plugin/plugingizmo/plugin.h \
+ $(top_srcdir)/plugin/plugingizmo/midievent.h \
+ $(top_srcdir)/plugin/plugingizmo/pluginlv2.h \
+ $(top_srcdir)/plugin/plugingizmo/pluginvst.h
diff --git a/plugin/README_VST.txt b/plugin/README_VST.txt
index 30aa640..30c63e1 100644
--- a/plugin/README_VST.txt
+++ b/plugin/README_VST.txt
@@ -7,40 +7,37 @@ 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.
+1. Load the plugin as a VST Instrument
+ (In Cubase, load it as a "Rack Instrument").
2. Now create a midi track to use with the plugin.
-2a. (Optional) Choose “GM map” to use with the midi track.
+2a. (Optional) Choose “GM drum 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
+5. Load a drumkit by clicking on the "Browse..." 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.
+ You can follow the loading progress on the green bar. It might take a
+ while before all drums are loaded, so be patient.
+8. Load a midimap by clicking the “Browse...” button and browse for the
+ midimap xml file. (Example: “C:\drumkit\midimap.xml”). You can follow
+ the progress on the green bar (this will load almost instantly).
-NOTE: DrumGizmo currently uses 16 channels of output, which should be
+NOTE: DrumGizmo uses several audio output channels, 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.
+software. But keep in mind that if you do not map these channels, you
+will most likely only hear the output of one of the ambience microphones
+and it will sound really bad. So please take your time to get these
+mappings set up!
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...!
+expected.
== 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/plugin/drumgizmo_plugin.cc b/plugin/drumgizmo_plugin.cc
index be11753..6563dcc 100644
--- a/plugin/drumgizmo_plugin.cc
+++ b/plugin/drumgizmo_plugin.cc
@@ -11,16 +11,16 @@
* 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
+ * it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 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.
+ * GNU Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser 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.
*/
@@ -265,7 +265,26 @@ void DrumGizmoPlugin::Output::pre(size_t nsamples)
void DrumGizmoPlugin::Output::run(int ch, sample_t *samples, size_t nsamples)
{
-// assert(false);
+ assert(plugin.output_samples);
+
+ assert(sizeof(float) == sizeof(sample_t));
+
+ if((std::size_t)ch >= plugin.output_samples->size())
+ {
+ return;
+ }
+
+ if((*plugin.output_samples)[ch] == nullptr)
+ {
+ // Port not connected.
+ return;
+ }
+
+ // We are not running directly on the internal buffer: do a copy.
+ if((*plugin.output_samples)[ch] != samples)
+ {
+ memcpy((*plugin.output_samples)[ch], samples, nsamples * sizeof(sample_t));
+ }
}
void DrumGizmoPlugin::Output::post(size_t nsamples)
diff --git a/plugin/drumgizmo_plugin.h b/plugin/drumgizmo_plugin.h
index 5d14955..5d4a648 100644
--- a/plugin/drumgizmo_plugin.h
+++ b/plugin/drumgizmo_plugin.h
@@ -11,16 +11,16 @@
* 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
+ * it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 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.
+ * GNU Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
+ * You should have received a copy of the GNU Lesser 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.
*/
diff --git a/plugin/plugingizmo b/plugin/plugingizmo
-Subproject b4103bd5a37e5da1429d723fb5c5d7e28385ff2
+Subproject 1be0af889aaf6d3baba1cad14914a5771c66839