@@ -51,6 +51,7 @@ endif | |||||
$(MAKE) all -C plugins/bitcrush | $(MAKE) all -C plugins/bitcrush | ||||
$(MAKE) all -C plugins/freeverb | $(MAKE) all -C plugins/freeverb | ||||
$(MAKE) all -C plugins/gigaverb | $(MAKE) all -C plugins/gigaverb | ||||
$(MAKE) all -C plugins/modulay | |||||
$(MAKE) all -C plugins/pitchotto | $(MAKE) all -C plugins/pitchotto | ||||
$(MAKE) all -C plugins/pitchshift | $(MAKE) all -C plugins/pitchshift | ||||
$(MAKE) all -C plugins/shiroverb | $(MAKE) all -C plugins/shiroverb | ||||
@@ -98,6 +99,7 @@ endif | |||||
$(MAKE) clean -C plugins/bitcrush | $(MAKE) clean -C plugins/bitcrush | ||||
$(MAKE) clean -C plugins/freeverb | $(MAKE) clean -C plugins/freeverb | ||||
$(MAKE) clean -C plugins/gigaverb | $(MAKE) clean -C plugins/gigaverb | ||||
$(MAKE) clean -C plugins/modulay | |||||
$(MAKE) clean -C plugins/pitchotto | $(MAKE) clean -C plugins/pitchotto | ||||
$(MAKE) clean -C plugins/pitchshift | $(MAKE) clean -C plugins/pitchshift | ||||
$(MAKE) clean -C plugins/shiroverb | $(MAKE) clean -C plugins/shiroverb | ||||
@@ -115,9 +117,9 @@ install: | |||||
cp bin/*-vst.* $(DESTDIR)$(PREFIX)/lib/vst/ | cp bin/*-vst.* $(DESTDIR)$(PREFIX)/lib/vst/ | ||||
ifeq ($(HAVE_DGL),true) | ifeq ($(HAVE_DGL),true) | ||||
cp -r bin/*-dssi $(DESTDIR)$(PREFIX)/lib/dssi/ | |||||
cp -r bin/*-dssi $(DESTDIR)$(PREFIX)/lib/dssi/ | |||||
endif | endif | ||||
cp -r bin/*.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/ | |||||
cp -r bin/*.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/ | |||||
# Kars | # Kars | ||||
cp -r modguis/Kars.modgui/modgui $(DESTDIR)$(PREFIX)/lib/lv2/Kars.lv2/ | cp -r modguis/Kars.modgui/modgui $(DESTDIR)$(PREFIX)/lib/lv2/Kars.lv2/ | ||||
@@ -132,6 +134,9 @@ endif | |||||
cp modguis/MVerb.modgui/manifest.ttl $(DESTDIR)$(PREFIX)/lib/lv2/MVerb.lv2/modgui.ttl | cp modguis/MVerb.modgui/manifest.ttl $(DESTDIR)$(PREFIX)/lib/lv2/MVerb.lv2/modgui.ttl | ||||
# Max-Gen stuff | # Max-Gen stuff | ||||
cp -r modguis/Modulay.modgui/modgui $(DESTDIR)$(PREFIX)/lib/lv2/Modulay.lv2/ | |||||
cp modguis/Modulay.modgui/manifest.ttl $(DESTDIR)$(PREFIX)/lib/lv2/Modulay.lv2/modgui.ttl | |||||
cp -r modguis/Pitchotto.modgui/modgui $(DESTDIR)$(PREFIX)/lib/lv2/Pitchotto.lv2/ | cp -r modguis/Pitchotto.modgui/modgui $(DESTDIR)$(PREFIX)/lib/lv2/Pitchotto.lv2/ | ||||
cp modguis/Pitchotto.modgui/manifest.ttl $(DESTDIR)$(PREFIX)/lib/lv2/Pitchotto.lv2/modgui.ttl | cp modguis/Pitchotto.modgui/manifest.ttl $(DESTDIR)$(PREFIX)/lib/lv2/Pitchotto.lv2/modgui.ttl | ||||
@@ -0,0 +1,46 @@ | |||||
@prefix modgui: <http://moddevices.com/ns/modgui#> . | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
<http://distrho.sf.net/plugins/Modulay> | |||||
modgui:gui [ | |||||
modgui:resourcesDirectory <modgui> ; | |||||
modgui:iconTemplate <modgui/icon-modulay.html> ; | |||||
modgui:stylesheet <modgui/stylesheet-modulay.css> ; | |||||
modgui:screenshot <modgui/screenshot-modulay.png> ; | |||||
modgui:thumbnail <modgui/thumbnail-modulay.png> ; | |||||
modgui:brand "Shiro" ; | |||||
modgui:label "Modulay" ; | |||||
modgui:model "boxy" ; | |||||
modgui:panel "7-knobs" ; | |||||
modgui:color "racing" ; | |||||
modgui:knob "black" ; | |||||
modgui:port [ | |||||
lv2:index 0 ; | |||||
lv2:symbol "time" ; | |||||
lv2:name "time" ; | |||||
] , [ | |||||
lv2:index 1 ; | |||||
lv2:symbol "repeats" ; | |||||
lv2:name "repeats" ; | |||||
] , [ | |||||
lv2:index 2 ; | |||||
lv2:symbol "cutoff" ; | |||||
lv2:name "cutoff" ; | |||||
] , [ | |||||
lv2:index 3 ; | |||||
lv2:symbol "mix" ; | |||||
lv2:name "mix" ; | |||||
] , [ | |||||
lv2:index 4 ; | |||||
lv2:symbol "depth" ; | |||||
lv2:name "depth" ; | |||||
] , [ | |||||
lv2:index 5 ; | |||||
lv2:symbol "rate" ; | |||||
lv2:name "rate" ; | |||||
] , [ | |||||
lv2:index 6 ; | |||||
lv2:symbol "delay" ; | |||||
lv2:name "delay" ; | |||||
] ; | |||||
] . |
@@ -0,0 +1,49 @@ | |||||
<div class="mod-pedal mod-pedal-boxy{{{cns}}} mod-seven-knobs mod-boxy75 mod-{{color}} {{color}}"> | |||||
<div mod-role="drag-handle" class="mod-drag-handle"></div> | |||||
<div class="mod-plugin-brand"><h1>{{brand}}</h1></div> | |||||
<div class="mod-plugin-name"><h1>{{label}}</h1></div> | |||||
<div class="mod-light on" mod-role="bypass-light"></div> | |||||
<div class="mod-control-group mod-{{knob}} clearfix"> | |||||
{{#controls}} | |||||
<div class="mod-knob"> | |||||
<div class="mod-knob-image" mod-role="input-control-port" mod-port-symbol="{{symbol}}"></div> | |||||
<span class="mod-knob-title">{{name}}</span> | |||||
</div> | |||||
{{/controls}} | |||||
</div> | |||||
<div class="mod-footswitch" mod-role="bypass"></div> | |||||
<div class="mod-pedal-input"> | |||||
{{#effect.ports.audio.input}} | |||||
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-audio-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-input-image"></div> | |||||
</div> | |||||
{{/effect.ports.audio.input}} | |||||
{{#effect.ports.midi.input}} | |||||
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-midi-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-input-image"></div> | |||||
</div> | |||||
{{/effect.ports.midi.input}} | |||||
{{#effect.ports.cv.input}} | |||||
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-cv-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-input-image"></div> | |||||
</div> | |||||
{{/effect.ports.cv.input}} | |||||
</div> | |||||
<div class="mod-pedal-output"> | |||||
{{#effect.ports.audio.output}} | |||||
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-audio-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-output-image"></div> | |||||
</div> | |||||
{{/effect.ports.audio.output}} | |||||
{{#effect.ports.midi.output}} | |||||
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-midi-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-output-image"></div> | |||||
</div> | |||||
{{/effect.ports.midi.output}} | |||||
{{#effect.ports.cv.output}} | |||||
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-cv-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-output-image"></div> | |||||
</div> | |||||
{{/effect.ports.cv.output}} | |||||
</div> | |||||
</div> |
@@ -8,10 +8,10 @@ | |||||
modgui:stylesheet <modgui/stylesheet-pitchotto.css> ; | modgui:stylesheet <modgui/stylesheet-pitchotto.css> ; | ||||
modgui:screenshot <modgui/screenshot-pitchotto.png> ; | modgui:screenshot <modgui/screenshot-pitchotto.png> ; | ||||
modgui:thumbnail <modgui/thumbnail-pitchotto.png> ; | modgui:thumbnail <modgui/thumbnail-pitchotto.png> ; | ||||
modgui:brand "SHIRO" ; | |||||
modgui:brand "Shiro" ; | |||||
modgui:label "Pitchotto" ; | modgui:label "Pitchotto" ; | ||||
modgui:model "boxy" ; | modgui:model "boxy" ; | ||||
modgui:panel "7-knobs" ; | |||||
modgui:panel "6-knobs" ; | |||||
modgui:color "red" ; | modgui:color "red" ; | ||||
modgui:knob "black" ; | modgui:knob "black" ; | ||||
modgui:port [ | modgui:port [ | ||||
@@ -24,23 +24,19 @@ | |||||
lv2:name "ratio2" ; | lv2:name "ratio2" ; | ||||
] , [ | ] , [ | ||||
lv2:index 2 ; | lv2:index 2 ; | ||||
lv2:symbol "cutoff" ; | |||||
lv2:name "cutoff" ; | |||||
] , [ | |||||
lv2:index 3 ; | |||||
lv2:symbol "mix" ; | lv2:symbol "mix" ; | ||||
lv2:name "mix" ; | lv2:name "mix" ; | ||||
] , [ | |||||
lv2:index 3 ; | |||||
lv2:symbol "delay1" ; | |||||
lv2:name "delay1" ; | |||||
] , [ | ] , [ | ||||
lv2:index 4 ; | lv2:index 4 ; | ||||
lv2:symbol "window1" ; | |||||
lv2:name "window1" ; | |||||
lv2:symbol "delay2" ; | |||||
lv2:name "delay2" ; | |||||
] , [ | ] , [ | ||||
lv2:index 5 ; | lv2:index 5 ; | ||||
lv2:symbol "window2" ; | |||||
lv2:name "window2" ; | |||||
] , [ | |||||
lv2:index 6 ; | |||||
lv2:symbol "blur" ; | |||||
lv2:name "blur" ; | |||||
lv2:symbol "cutoff" ; | |||||
lv2:name "cutoff" ; | |||||
] ; | ] ; | ||||
] . | ] . |
@@ -1,4 +1,4 @@ | |||||
<div class="mod-pedal mod-pedal-boxy{{{cns}}} mod-seven-knobs mod-boxy75 mod-{{color}} {{color}}"> | |||||
<div class="mod-pedal mod-pedal-boxy{{{cns}}} mod-six-knobs mod-{{color}} {{color}}"> | |||||
<div mod-role="drag-handle" class="mod-drag-handle"></div> | <div mod-role="drag-handle" class="mod-drag-handle"></div> | ||||
<div class="mod-plugin-brand"><h1>{{brand}}</h1></div> | <div class="mod-plugin-brand"><h1>{{brand}}</h1></div> | ||||
<div class="mod-plugin-name"><h1>{{label}}</h1></div> | <div class="mod-plugin-name"><h1>{{label}}</h1></div> | ||||
@@ -8,7 +8,7 @@ | |||||
modgui:stylesheet <modgui/stylesheet-shiroverb.css> ; | modgui:stylesheet <modgui/stylesheet-shiroverb.css> ; | ||||
modgui:screenshot <modgui/screenshot-shiroverb.png> ; | modgui:screenshot <modgui/screenshot-shiroverb.png> ; | ||||
modgui:thumbnail <modgui/thumbnail-shiroverb.png> ; | modgui:thumbnail <modgui/thumbnail-shiroverb.png> ; | ||||
modgui:brand "SHIRO" ; | |||||
modgui:brand "Shiro" ; | |||||
modgui:label "Shiroverb" ; | modgui:label "Shiroverb" ; | ||||
modgui:model "boxy" ; | modgui:model "boxy" ; | ||||
modgui:panel "8-knobs" ; | modgui:panel "8-knobs" ; | ||||
@@ -20,8 +20,8 @@ | |||||
lv2:name "decay" ; | lv2:name "decay" ; | ||||
] , [ | ] , [ | ||||
lv2:index 1 ; | lv2:index 1 ; | ||||
lv2:symbol "roomsize" ; | |||||
lv2:name "roomsize" ; | |||||
lv2:symbol "tail" ; | |||||
lv2:name "tail" ; | |||||
] , [ | ] , [ | ||||
lv2:index 2 ; | lv2:index 2 ; | ||||
lv2:symbol "damping" ; | lv2:symbol "damping" ; | ||||
@@ -32,16 +32,16 @@ | |||||
lv2:name "mix" ; | lv2:name "mix" ; | ||||
] , [ | ] , [ | ||||
lv2:index 4 ; | lv2:index 4 ; | ||||
lv2:symbol "roomsize" ; | |||||
lv2:name "roomsize" ; | |||||
] , [ | |||||
lv2:index 5 ; | |||||
lv2:symbol "ratio" ; | lv2:symbol "ratio" ; | ||||
lv2:name "ratio" ; | lv2:name "ratio" ; | ||||
] , [ | ] , [ | ||||
lv2:index 5 ; | |||||
lv2:index 6 ; | |||||
lv2:symbol "cutoff" ; | lv2:symbol "cutoff" ; | ||||
lv2:name "cutoff" ; | lv2:name "cutoff" ; | ||||
] , [ | |||||
lv2:index 6 ; | |||||
lv2:symbol "blur" ; | |||||
lv2:name "blur" ; | |||||
] , [ | ] , [ | ||||
lv2:index 7 ; | lv2:index 7 ; | ||||
lv2:symbol "shimmer" ; | lv2:symbol "shimmer" ; | ||||
@@ -0,0 +1,35 @@ | |||||
/* | |||||
* DPF Max Gen | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | |||||
* or without fee is hereby granted, provided that the above copyright notice and this | |||||
* permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||||
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
#ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
#define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
#define DISTRHO_PLUGIN_BRAND "Shiro" | |||||
#define DISTRHO_PLUGIN_NAME "Modulay" | |||||
#define DISTRHO_PLUGIN_URI "http://distrho.sf.net/plugins/Modulay" | |||||
#define DISTRHO_PLUGIN_HAS_UI 0 | |||||
#define DISTRHO_PLUGIN_IS_RT_SAFE 0 | |||||
#define DISTRHO_PLUGIN_NUM_INPUTS 1 | |||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | |||||
#define DISTRHO_PLUGIN_USES_MODGUI 1 | |||||
#define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:DelayPlugin" | |||||
#define DISTRHO_PLUGIN_DESCRIPTION "Modulay is a delay with variable types of modulation based on the settings that are set." | |||||
#define DISTRHO_PLUGIN_VERSION d_cconst('D', 'M', 'd', 'y') | |||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -0,0 +1 @@ | |||||
../common/DistrhoPluginMaxGen.cpp |
@@ -0,0 +1,40 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# -------------------------------------------------------------- | |||||
# Project name, used for binaries | |||||
NAME = Modulay | |||||
# -------------------------------------------------------------- | |||||
# Files to build | |||||
OBJS_DSP = \ | |||||
DistrhoPluginMaxGen.cpp.o \ | |||||
gen_exported.cpp.o | |||||
# -------------------------------------------------------------- | |||||
# Do some magic | |||||
include ../Makefile.DPF-Max-Gen.mk | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
ifeq ($(HAVE_JACK),true) | |||||
TARGETS += jack | |||||
endif | |||||
ifeq ($(LINUX),true) | |||||
TARGETS += ladspa | |||||
endif | |||||
TARGETS += lv2_dsp | |||||
TARGETS += vst | |||||
all: $(TARGETS) | |||||
# -------------------------------------------------------------- |
@@ -0,0 +1,401 @@ | |||||
#include "gen_exported.h" | |||||
namespace gen_exported { | |||||
/******************************************************************************************************************* | |||||
Copyright (c) 2012 Cycling '74 | |||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software | |||||
and associated documentation files (the "Software"), to deal in the Software without restriction, | |||||
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, | |||||
subject to the following conditions: | |||||
The above copyright notice and this permission notice shall be included in all copies | |||||
or substantial portions of the Software. | |||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | |||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE | |||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||||
*******************************************************************************************************************/ | |||||
// global noise generator | |||||
Noise noise; | |||||
static const int GENLIB_LOOPCOUNT_BAIL = 100000; | |||||
// The State struct contains all the state and procedures for the gendsp kernel | |||||
typedef struct State { | |||||
CommonState __commonstate; | |||||
Delay m_delay_2; | |||||
Delay m_delay_3; | |||||
SineCycle m_cycle_14; | |||||
SineData __sinedata; | |||||
double m_bleed_9; | |||||
double m_rate_11; | |||||
double m_time_12; | |||||
double m_cutoff_10; | |||||
double m_feedback_13; | |||||
double m_repeats_8; | |||||
double m_depth_6; | |||||
double m_mix_5; | |||||
double m_feedforward_7; | |||||
double m_y_1; | |||||
double samplerate; | |||||
double m_delay_4; | |||||
int vectorsize; | |||||
int __exception; | |||||
// re-initialize all member variables; | |||||
inline void reset(double __sr, int __vs) { | |||||
__exception = 0; | |||||
vectorsize = __vs; | |||||
samplerate = __sr; | |||||
m_y_1 = 0; | |||||
m_delay_2.reset("m_delay_2", 44100); | |||||
m_delay_3.reset("m_delay_3", 44100); | |||||
m_delay_4 = 0; | |||||
m_mix_5 = 1; | |||||
m_depth_6 = 0; | |||||
m_feedforward_7 = 1; | |||||
m_repeats_8 = 0.75; | |||||
m_bleed_9 = 0; | |||||
m_cutoff_10 = 4000; | |||||
m_rate_11 = 2; | |||||
m_time_12 = 500; | |||||
m_feedback_13 = 0; | |||||
m_cycle_14.reset(samplerate, 0); | |||||
genlib_reset_complete(this); | |||||
}; | |||||
// the signal processing routine; | |||||
inline int perform(t_sample ** __ins, t_sample ** __outs, int __n) { | |||||
vectorsize = __n; | |||||
const t_sample * __in1 = __ins[0]; | |||||
t_sample * __out1 = __outs[0]; | |||||
if (__exception) { | |||||
return __exception; | |||||
} else if (( (__in1 == 0) || (__out1 == 0) )) { | |||||
__exception = GENLIB_ERR_NULL_BUFFER; | |||||
return __exception; | |||||
}; | |||||
double mstosamps_4908 = (m_time_12 * (samplerate * 0.001)); | |||||
double expr_4909 = safediv(((m_cutoff_10 * 2) * 3.1415926535898), 44100); | |||||
double sin_4889 = sin(expr_4909); | |||||
double clamp_4890 = ((sin_4889 <= 1e-05) ? 1e-05 : ((sin_4889 >= 0.99999) ? 0.99999 : sin_4889)); | |||||
// the main sample loop; | |||||
while ((__n--)) { | |||||
const double in1 = (*(__in1++)); | |||||
double tap_4907 = m_delay_3.read_linear(mstosamps_4908); | |||||
double mix_4936 = (m_y_1 + (clamp_4890 * (tap_4907 - m_y_1))); | |||||
double mix_4887 = mix_4936; | |||||
double mul_4904 = (mix_4887 * m_repeats_8); | |||||
m_cycle_14.freq(m_rate_11); | |||||
double cycle_4893 = m_cycle_14(__sinedata); | |||||
double cycleindex_4894 = m_cycle_14.phase(); | |||||
double add_4892 = (cycle_4893 + 1); | |||||
double mul_4891 = (add_4892 * 0.5); | |||||
double mul_4896 = (m_depth_6 * mul_4891); | |||||
double add_4895 = (m_delay_4 + mul_4896); | |||||
double mstosamps_4886 = (add_4895 * (samplerate * 0.001)); | |||||
double tap_4901 = m_delay_2.read_linear(mstosamps_4886); | |||||
double mul_4899 = (tap_4901 * m_feedforward_7); | |||||
double mul_4897 = (tap_4901 * m_feedback_13); | |||||
double add_4903 = (mix_4887 + mul_4897); | |||||
double mul_4898 = (add_4903 * m_bleed_9); | |||||
double add_4902 = (mul_4898 + mul_4899); | |||||
double mul_4905 = (add_4902 * m_mix_5); | |||||
double out1 = (mul_4905 + in1); | |||||
double y0_next_4910 = mix_4887; | |||||
m_delay_3.write((mul_4904 + in1)); | |||||
m_delay_2.write(add_4903); | |||||
m_y_1 = y0_next_4910; | |||||
m_delay_2.step(); | |||||
m_delay_3.step(); | |||||
// assign results to output buffer; | |||||
(*(__out1++)) = out1; | |||||
}; | |||||
return __exception; | |||||
}; | |||||
inline void set_delay(double _value) { | |||||
m_delay_4 = (_value < 0 ? 0 : (_value > 30 ? 30 : _value)); | |||||
}; | |||||
inline void set_mix(double _value) { | |||||
m_mix_5 = (_value < 0 ? 0 : (_value > 1 ? 1 : _value)); | |||||
}; | |||||
inline void set_depth(double _value) { | |||||
m_depth_6 = (_value < 0 ? 0 : (_value > 5 ? 5 : _value)); | |||||
}; | |||||
inline void set_feedforward(double _value) { | |||||
m_feedforward_7 = (_value < 0.7 ? 0.7 : (_value > 1 ? 1 : _value)); | |||||
}; | |||||
inline void set_repeats(double _value) { | |||||
m_repeats_8 = (_value < 0 ? 0 : (_value > 0.99 ? 0.99 : _value)); | |||||
}; | |||||
inline void set_bleed(double _value) { | |||||
m_bleed_9 = (_value < 0 ? 0 : (_value > 0.7 ? 0.7 : _value)); | |||||
}; | |||||
inline void set_cutoff(double _value) { | |||||
m_cutoff_10 = (_value < 0 ? 0 : (_value > 6000 ? 6000 : _value)); | |||||
}; | |||||
inline void set_rate(double _value) { | |||||
m_rate_11 = (_value < 0.1 ? 0.1 : (_value > 10 ? 10 : _value)); | |||||
}; | |||||
inline void set_time(double _value) { | |||||
m_time_12 = (_value < 10 ? 10 : (_value > 1000 ? 1000 : _value)); | |||||
}; | |||||
inline void set_feedback(double _value) { | |||||
m_feedback_13 = (_value < -0.7 ? -0.7 : (_value > 0.7 ? 0.7 : _value)); | |||||
}; | |||||
} State; | |||||
/// | |||||
/// Configuration for the genlib API | |||||
/// | |||||
/// Number of signal inputs and outputs | |||||
int gen_kernel_numins = 1; | |||||
int gen_kernel_numouts = 1; | |||||
int num_inputs() { return gen_kernel_numins; } | |||||
int num_outputs() { return gen_kernel_numouts; } | |||||
int num_params() { return 10; } | |||||
/// Assistive lables for the signal inputs and outputs | |||||
const char * gen_kernel_innames[] = { "in1" }; | |||||
const char * gen_kernel_outnames[] = { "out1" }; | |||||
/// Invoke the signal process of a State object | |||||
int perform(CommonState *cself, t_sample **ins, long numins, t_sample **outs, long numouts, long n) { | |||||
State * self = (State *)cself; | |||||
return self->perform(ins, outs, n); | |||||
} | |||||
/// Reset all parameters and stateful operators of a State object | |||||
void reset(CommonState *cself) { | |||||
State * self = (State *)cself; | |||||
self->reset(cself->sr, cself->vs); | |||||
} | |||||
/// Set a parameter of a State object | |||||
void setparameter(CommonState *cself, long index, double value, void *ref) { | |||||
State * self = (State *)cself; | |||||
switch (index) { | |||||
case 0: self->set_delay(value); break; | |||||
case 1: self->set_mix(value); break; | |||||
case 2: self->set_depth(value); break; | |||||
case 3: self->set_feedforward(value); break; | |||||
case 4: self->set_repeats(value); break; | |||||
case 5: self->set_bleed(value); break; | |||||
case 6: self->set_cutoff(value); break; | |||||
case 7: self->set_rate(value); break; | |||||
case 8: self->set_time(value); break; | |||||
case 9: self->set_feedback(value); break; | |||||
default: break; | |||||
} | |||||
} | |||||
/// Get the value of a parameter of a State object | |||||
void getparameter(CommonState *cself, long index, double *value) { | |||||
State *self = (State *)cself; | |||||
switch (index) { | |||||
case 0: *value = self->m_delay_4; break; | |||||
case 1: *value = self->m_mix_5; break; | |||||
case 2: *value = self->m_depth_6; break; | |||||
case 3: *value = self->m_feedforward_7; break; | |||||
case 4: *value = self->m_repeats_8; break; | |||||
case 5: *value = self->m_bleed_9; break; | |||||
case 6: *value = self->m_cutoff_10; break; | |||||
case 7: *value = self->m_rate_11; break; | |||||
case 8: *value = self->m_time_12; break; | |||||
case 9: *value = self->m_feedback_13; break; | |||||
default: break; | |||||
} | |||||
} | |||||
/// Allocate and configure a new State object and it's internal CommonState: | |||||
void * create(double sr, long vs) { | |||||
State *self = new State; | |||||
self->reset(sr, vs); | |||||
ParamInfo *pi; | |||||
self->__commonstate.inputnames = gen_kernel_innames; | |||||
self->__commonstate.outputnames = gen_kernel_outnames; | |||||
self->__commonstate.numins = gen_kernel_numins; | |||||
self->__commonstate.numouts = gen_kernel_numouts; | |||||
self->__commonstate.sr = sr; | |||||
self->__commonstate.vs = vs; | |||||
self->__commonstate.params = (ParamInfo *)genlib_sysmem_newptr(10 * sizeof(ParamInfo)); | |||||
self->__commonstate.numparams = 10; | |||||
// initialize parameter 0 ("m_delay_4") | |||||
pi = self->__commonstate.params + 0; | |||||
pi->name = "delay"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_delay_4; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 30; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 1 ("m_mix_5") | |||||
pi = self->__commonstate.params + 1; | |||||
pi->name = "mix"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_mix_5; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 1; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 2 ("m_depth_6") | |||||
pi = self->__commonstate.params + 2; | |||||
pi->name = "depth"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_depth_6; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 5; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 3 ("m_feedforward_7") | |||||
pi = self->__commonstate.params + 3; | |||||
pi->name = "feedforward"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_feedforward_7; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0.7; | |||||
pi->outputmax = 1; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 4 ("m_repeats_8") | |||||
pi = self->__commonstate.params + 4; | |||||
pi->name = "repeats"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_repeats_8; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 0.99; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 5 ("m_bleed_9") | |||||
pi = self->__commonstate.params + 5; | |||||
pi->name = "bleed"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_bleed_9; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 0.7; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 6 ("m_cutoff_10") | |||||
pi = self->__commonstate.params + 6; | |||||
pi->name = "cutoff"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_cutoff_10; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 6000; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 7 ("m_rate_11") | |||||
pi = self->__commonstate.params + 7; | |||||
pi->name = "rate"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_rate_11; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0.1; | |||||
pi->outputmax = 10; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 8 ("m_time_12") | |||||
pi = self->__commonstate.params + 8; | |||||
pi->name = "time"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_time_12; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 10; | |||||
pi->outputmax = 1000; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
// initialize parameter 9 ("m_feedback_13") | |||||
pi = self->__commonstate.params + 9; | |||||
pi->name = "feedback"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_feedback_13; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = -0.7; | |||||
pi->outputmax = 0.7; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
return self; | |||||
} | |||||
/// Release all resources and memory used by a State object: | |||||
void destroy(CommonState *cself) { | |||||
State * self = (State *)cself; | |||||
genlib_sysmem_freeptr(cself->params); | |||||
delete self; | |||||
} | |||||
} // gen_exported:: |
@@ -0,0 +1,37 @@ | |||||
/******************************************************************************************************************* | |||||
Copyright (c) 2012 Cycling '74 | |||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software | |||||
and associated documentation files (the "Software"), to deal in the Software without restriction, | |||||
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, | |||||
subject to the following conditions: | |||||
The above copyright notice and this permission notice shall be included in all copies | |||||
or substantial portions of the Software. | |||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | |||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE | |||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||||
*******************************************************************************************************************/ | |||||
#include "genlib.h" | |||||
#include "genlib_exportfunctions.h" | |||||
#include "genlib_ops.h" | |||||
namespace gen_exported { | |||||
int num_inputs(); | |||||
int num_outputs(); | |||||
int num_params(); | |||||
int perform(CommonState *cself, t_sample **ins, long numins, t_sample **outs, long numouts, long n); | |||||
void reset(CommonState *cself); | |||||
void setparameter(CommonState *cself, long index, double value, void *ref); | |||||
void getparameter(CommonState *cself, long index, double *value); | |||||
void * create(double sr, long vs); | |||||
void destroy(CommonState *cself); | |||||
} // gen_exported:: |
@@ -0,0 +1,836 @@ | |||||
{ | |||||
"patcher" : { | |||||
"fileversion" : 1, | |||||
"appversion" : { | |||||
"major" : 6, | |||||
"minor" : 1, | |||||
"revision" : 9, | |||||
"architecture" : "x86" | |||||
} | |||||
, | |||||
"rect" : [ 0.0, 45.0, 960.0, 705.0 ], | |||||
"bgcolor" : [ 0.9, 0.9, 0.9, 1.0 ], | |||||
"bglocked" : 0, | |||||
"openinpresentation" : 0, | |||||
"default_fontsize" : 12.0, | |||||
"default_fontface" : 0, | |||||
"default_fontname" : "Arial", | |||||
"gridonopen" : 0, | |||||
"gridsize" : [ 15.0, 15.0 ], | |||||
"gridsnaponopen" : 0, | |||||
"statusbarvisible" : 2, | |||||
"toolbarvisible" : 1, | |||||
"boxanimatetime" : 200, | |||||
"imprint" : 0, | |||||
"enablehscroll" : 1, | |||||
"enablevscroll" : 1, | |||||
"devicewidth" : 0.0, | |||||
"description" : "", | |||||
"digest" : "", | |||||
"tags" : "", | |||||
"boxes" : [ { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-40", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 96.5, 492.0, 72.0, 20.0 ], | |||||
"text" : "mstosamps" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-15", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 3, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 30.5, 217.0, 46.0, 20.0 ], | |||||
"text" : "mix" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-16", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 57.5, 117.0, 170.0, 20.0 ], | |||||
"text" : "expr out=in1*2*PI/samplerate\\;" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-24", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 30.5, 192.0, 72.0, 20.0 ], | |||||
"text" : "history y0 0" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-31", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 57.5, 142.0, 26.0, 20.0 ], | |||||
"text" : "sin" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-35", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 57.5, 167.0, 125.0, 20.0 ], | |||||
"text" : "clip 0.00001 0.99999" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-38", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 57.5, 92.0, 220.0, 20.0 ], | |||||
"text" : "param cutoff 4000 @min 0 @max 6000" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-62", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 147.5, 417.0, 35.0, 20.0 ], | |||||
"text" : "* 0.5" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-61", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 147.5, 392.0, 28.0, 20.0 ], | |||||
"text" : "+ 1" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-11", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 147.5, 342.0, 188.0, 20.0 ], | |||||
"text" : "param rate 2 @min 0.1 @max 10" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-58", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 2, | |||||
"outlettype" : [ "", "" ], | |||||
"patching_rect" : [ 147.5, 367.0, 38.0, 20.0 ], | |||||
"text" : "cycle" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-53", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 96.5, 467.0, 57.0, 20.0 ], | |||||
"text" : "+" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-52", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 134.5, 442.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-49", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 134.5, 317.0, 181.0, 20.0 ], | |||||
"text" : "param depth 0 @min 0 @max 5" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-33", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 121.0, 547.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-32", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 30.0, 632.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-30", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 76.0, 632.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-29", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 77.0, 517.0, 39.0, 20.0 ], | |||||
"text" : "delay" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-28", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 30.0, 657.0, 65.0, 20.0 ], | |||||
"text" : "+" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-27", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 31.0, 292.0, 32.5, 20.0 ], | |||||
"text" : "+" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-6", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 134.5, 517.0, 224.0, 20.0 ], | |||||
"text" : "param feedback 0 @min -0.7 @max 0.7" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-5", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 43.5, 582.0, 190.0, 20.0 ], | |||||
"text" : "param bleed 0 @min 0 @max 0.7" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-3", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 97.0, 292.0, 186.0, 20.0 ], | |||||
"text" : "param delay 0 @min 0 @max 30" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-2", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 89.5, 607.0, 224.0, 20.0 ], | |||||
"text" : "param feedforward 1 @min 0.7 @max 1" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-44", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 96.5, 217.0, 224.0, 20.0 ], | |||||
"text" : "param repeats 0.75 @min 0 @max 0.99" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-43", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 83.0, 247.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-42", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 43.5, 682.0, 170.0, 20.0 ], | |||||
"text" : "param mix 1 @min 0 @max 1" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-36", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 61.5, 2.0, 214.0, 20.0 ], | |||||
"text" : "param time 500 @min 10 @max 1000" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-34", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 30.0, 707.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-21", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 42.0, 67.0, 39.0, 20.0 ], | |||||
"text" : "delay" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-20", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 61.5, 27.0, 72.0, 20.0 ], | |||||
"text" : "mstosamps" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-1", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 16.0, 2.0, 30.0, 20.0 ], | |||||
"text" : "in 1" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-4", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 0, | |||||
"patching_rect" : [ 16.0, 737.0, 37.0, 20.0 ], | |||||
"text" : "out 1" | |||||
} | |||||
} | |||||
], | |||||
"lines" : [ { | |||||
"patchline" : { | |||||
"destination" : [ "obj-21", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 25.5, 44.0, 51.5, 44.0 ], | |||||
"source" : [ "obj-1", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-4", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-1", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-58", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-11", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-24", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 40.0, 244.0, 11.0, 244.0, 11.0, 184.0, 40.0, 184.0 ], | |||||
"source" : [ "obj-15", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-27", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-15", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-43", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 40.0, 241.5, 92.5, 241.5 ], | |||||
"source" : [ "obj-15", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-31", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-16", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-30", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-2", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-21", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-20", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-15", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-21", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-15", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-24", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-29", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-27", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-32", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-27", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-34", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-28", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-30", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-29", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-33", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 86.5, 541.5, 130.5, 541.5 ], | |||||
"source" : [ "obj-29", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-53", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-3", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-28", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-30", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-35", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-31", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-28", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-32", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-27", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 130.5, 575.0, 363.0, 575.0, 363.0, 324.0, 363.0, 324.0, 363.0, 283.0, 54.0, 283.0 ], | |||||
"source" : [ "obj-33", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-4", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 39.5, 731.5, 25.5, 731.5 ], | |||||
"source" : [ "obj-34", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-15", 2 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-35", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-20", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-36", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-16", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-38", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-29", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-40", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-34", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-42", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-21", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 92.5, 274.0, 361.25, 274.0, 361.25, 58.0, 51.5, 58.0 ], | |||||
"source" : [ "obj-43", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-43", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-44", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-52", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-49", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-32", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-5", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-53", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-52", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-40", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-53", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-61", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-58", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-33", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-6", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-62", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-61", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-52", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-62", 0 ] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
} |
@@ -25,11 +25,12 @@ | |||||
#define DISTRHO_PLUGIN_IS_RT_SAFE 0 | #define DISTRHO_PLUGIN_IS_RT_SAFE 0 | ||||
#define DISTRHO_PLUGIN_NUM_INPUTS 1 | #define DISTRHO_PLUGIN_NUM_INPUTS 1 | ||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | #define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | ||||
#define DISTRHO_PLUGIN_USES_MODGUI 1 | |||||
#define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:PitchPlugin" | #define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:PitchPlugin" | ||||
#define DISTRHO_PLUGIN_DESCRIPTION "Pitchotto is a pitch-shifter based on the \"Pitch-Shift\"-genpatch in Max, where Phase-shifting is used to achieve different intervals.\n\ | #define DISTRHO_PLUGIN_DESCRIPTION "Pitchotto is a pitch-shifter based on the \"Pitch-Shift\"-genpatch in Max, where Phase-shifting is used to achieve different intervals.\n\ | ||||
There are two shifted signals available, both with variable window-sizes for arpeggio-like sounds." | |||||
There are two shifted signals available, both with variable delay-lengths for arpeggio-like sounds." | |||||
#define DISTRHO_PLUGIN_VERSION d_cconst('D', 'M', 'p', 'c') | #define DISTRHO_PLUGIN_VERSION d_cconst('D', 'M', 'p', 'c') | ||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -31,54 +31,52 @@ static const int GENLIB_LOOPCOUNT_BAIL = 100000; | |||||
// The State struct contains all the state and procedures for the gendsp kernel | // The State struct contains all the state and procedures for the gendsp kernel | ||||
typedef struct State { | typedef struct State { | ||||
CommonState __commonstate; | CommonState __commonstate; | ||||
Delay m_delay_12; | |||||
Delay m_delay_10; | |||||
Delay m_delay_11; | Delay m_delay_11; | ||||
Delta m_delta_22; | |||||
Delta m_delta_38; | |||||
Delta m_delta_41; | |||||
Delta m_delta_31; | |||||
Delta m_delta_28; | |||||
Delta m_delta_25; | |||||
Delta m_delta_44; | |||||
Delta m_delta_35; | |||||
Phasor m_phasor_34; | |||||
Phasor m_phasor_21; | |||||
Sah m_sah_23; | |||||
Sah m_sah_27; | |||||
Sah m_sah_42; | |||||
Sah m_sah_26; | |||||
Delta m_delta_29; | |||||
Delta m_delta_26; | |||||
Delta m_delta_23; | |||||
Delta m_delta_33; | |||||
Delta m_delta_36; | |||||
Delta m_delta_20; | |||||
Delta m_delta_39; | |||||
Delta m_delta_42; | |||||
Phasor m_phasor_32; | |||||
Phasor m_phasor_19; | |||||
Sah m_sah_25; | |||||
Sah m_sah_35; | |||||
Sah m_sah_24; | Sah m_sah_24; | ||||
Sah m_sah_43; | |||||
Sah m_sah_36; | |||||
Sah m_sah_29; | |||||
Sah m_sah_40; | |||||
Sah m_sah_37; | |||||
Sah m_sah_27; | |||||
Sah m_sah_28; | |||||
Sah m_sah_41; | |||||
Sah m_sah_30; | Sah m_sah_30; | ||||
Sah m_sah_39; | |||||
Sah m_sah_32; | |||||
Sah m_sah_33; | |||||
Sah m_sah_46; | |||||
Sah m_sah_45; | |||||
Sah m_sah_34; | |||||
Sah m_sah_37; | |||||
Sah m_sah_38; | |||||
Sah m_sah_31; | |||||
Sah m_sah_40; | |||||
Sah m_sah_22; | |||||
Sah m_sah_44; | |||||
Sah m_sah_43; | |||||
Sah m_sah_21; | |||||
double m_y_1; | |||||
double m_history_5; | double m_history_5; | ||||
double m_history_6; | double m_history_6; | ||||
double m_history_7; | |||||
double samples_to_seconds; | |||||
double samplerate; | |||||
double m_history_4; | double m_history_4; | ||||
double m_history_2; | double m_history_2; | ||||
double m_history_7; | |||||
double m_history_3; | double m_history_3; | ||||
double samplerate; | |||||
double m_y_1; | |||||
double m_history_9; | |||||
double m_history_8; | double m_history_8; | ||||
double m_resonance_13; | |||||
double m_y_10; | |||||
double m_window_19; | |||||
double m_ratio_20; | |||||
double m_ratio_12; | |||||
double m_history_9; | |||||
double m_delay_18; | |||||
double samples_to_seconds; | |||||
double m_cutoff_16; | |||||
double m_blur_17; | double m_blur_17; | ||||
double m_ratio_18; | |||||
double m_window_15; | |||||
double m_cutoff_14; | |||||
double m_mix_16; | |||||
double m_delay_14; | |||||
double m_mix_13; | |||||
double m_ratio_15; | |||||
int vectorsize; | int vectorsize; | ||||
int __exception; | int __exception; | ||||
// re-initialize all member variables; | // re-initialize all member variables; | ||||
@@ -95,44 +93,42 @@ typedef struct State { | |||||
m_history_7 = 0; | m_history_7 = 0; | ||||
m_history_8 = 0; | m_history_8 = 0; | ||||
m_history_9 = 0; | m_history_9 = 0; | ||||
m_y_10 = 0; | |||||
m_delay_10.reset("m_delay_10", 96000); | |||||
m_delay_11.reset("m_delay_11", 96000); | m_delay_11.reset("m_delay_11", 96000); | ||||
m_delay_12.reset("m_delay_12", 96000); | |||||
m_resonance_13 = 0; | |||||
m_cutoff_14 = 2250; | |||||
m_window_15 = 100; | |||||
m_mix_16 = 0.5; | |||||
m_ratio_12 = 2; | |||||
m_mix_13 = 0.5; | |||||
m_delay_14 = 100; | |||||
m_ratio_15 = 0.5; | |||||
m_cutoff_16 = 2250; | |||||
m_blur_17 = 0.25; | m_blur_17 = 0.25; | ||||
m_ratio_18 = 0.5; | |||||
m_window_19 = 100; | |||||
m_ratio_20 = 2; | |||||
m_delay_18 = 100; | |||||
samples_to_seconds = (1 / samplerate); | samples_to_seconds = (1 / samplerate); | ||||
m_phasor_21.reset(0); | |||||
m_delta_22.reset(0); | |||||
m_sah_23.reset(0); | |||||
m_phasor_19.reset(0); | |||||
m_delta_20.reset(0); | |||||
m_sah_21.reset(0); | |||||
m_sah_22.reset(0); | |||||
m_delta_23.reset(0); | |||||
m_sah_24.reset(0); | m_sah_24.reset(0); | ||||
m_delta_25.reset(0); | |||||
m_sah_26.reset(0); | |||||
m_sah_25.reset(0); | |||||
m_delta_26.reset(0); | |||||
m_sah_27.reset(0); | m_sah_27.reset(0); | ||||
m_delta_28.reset(0); | |||||
m_sah_29.reset(0); | |||||
m_sah_28.reset(0); | |||||
m_delta_29.reset(0); | |||||
m_sah_30.reset(0); | m_sah_30.reset(0); | ||||
m_delta_31.reset(0); | |||||
m_sah_32.reset(0); | |||||
m_sah_33.reset(0); | |||||
m_phasor_34.reset(0); | |||||
m_delta_35.reset(0); | |||||
m_sah_36.reset(0); | |||||
m_sah_31.reset(0); | |||||
m_phasor_32.reset(0); | |||||
m_delta_33.reset(0); | |||||
m_sah_34.reset(0); | |||||
m_sah_35.reset(0); | |||||
m_delta_36.reset(0); | |||||
m_sah_37.reset(0); | m_sah_37.reset(0); | ||||
m_delta_38.reset(0); | |||||
m_sah_39.reset(0); | |||||
m_sah_38.reset(0); | |||||
m_delta_39.reset(0); | |||||
m_sah_40.reset(0); | m_sah_40.reset(0); | ||||
m_delta_41.reset(0); | |||||
m_sah_42.reset(0); | |||||
m_sah_41.reset(0); | |||||
m_delta_42.reset(0); | |||||
m_sah_43.reset(0); | m_sah_43.reset(0); | ||||
m_delta_44.reset(0); | |||||
m_sah_45.reset(0); | |||||
m_sah_46.reset(0); | |||||
m_sah_44.reset(0); | |||||
genlib_reset_complete(this); | genlib_reset_complete(this); | ||||
}; | }; | ||||
@@ -149,179 +145,170 @@ typedef struct State { | |||||
return __exception; | return __exception; | ||||
}; | }; | ||||
double mul_2327 = (m_resonance_13 * 0.125); | |||||
double exp_2328 = exp(mul_2327); | |||||
double mul_2326 = (exp_2328 * 0.882497); | |||||
double mul_2322 = (mul_2326 * mul_2326); | |||||
double expr_2437 = safediv(((m_cutoff_14 * 2) * 3.1415926535898), 44100); | |||||
double cos_2325 = cos(expr_2437); | |||||
double mul_2324 = (cos_2325 * mul_2326); | |||||
double mul_2323 = (mul_2324 * -2); | |||||
double add_2321 = ((mul_2323 + mul_2322) + 1); | |||||
double mstosamps_2393 = (m_window_15 * (samplerate * 0.001)); | |||||
double mstosamps_2309 = (m_window_19 * (samplerate * 0.001)); | |||||
double rsub_2296 = (1 - m_ratio_20); | |||||
double mul_2295 = (rsub_2296 * 1000); | |||||
double div_2294 = safediv(mul_2295, m_window_19); | |||||
double expr_5155 = safediv(((m_cutoff_16 * 2) * 3.1415926535898), 44100); | |||||
double sin_5012 = sin(expr_5155); | |||||
double clamp_5013 = ((sin_5012 <= 1e-05) ? 1e-05 : ((sin_5012 >= 0.99999) ? 0.99999 : sin_5012)); | |||||
double mstosamps_5148 = (m_delay_14 * (samplerate * 0.001)); | |||||
double mstosamps_5077 = (m_delay_18 * (samplerate * 0.001)); | |||||
double rsub_5064 = (1 - m_ratio_12); | |||||
double mul_5063 = (rsub_5064 * 1000); | |||||
double div_5062 = safediv(mul_5063, m_delay_18); | |||||
samples_to_seconds = (1 / samplerate); | samples_to_seconds = (1 / samplerate); | ||||
double rsub_2380 = (1 - m_ratio_18); | |||||
double mul_2379 = (rsub_2380 * 1000); | |||||
double div_2378 = safediv(mul_2379, m_window_15); | |||||
double rsub_5135 = (1 - m_ratio_15); | |||||
double mul_5134 = (rsub_5135 * 1000); | |||||
double div_5133 = safediv(mul_5134, m_delay_14); | |||||
// the main sample loop; | // the main sample loop; | ||||
while ((__n--)) { | while ((__n--)) { | ||||
const double in1 = (*(__in1++)); | const double in1 = (*(__in1++)); | ||||
double noise_2247 = noise(); | |||||
double abs_2264 = fabs(noise_2247); | |||||
double mul_2270 = (abs_2264 * m_blur_17); | |||||
double noise_2246 = noise(); | |||||
double abs_2263 = fabs(noise_2246); | |||||
double mul_2267 = (abs_2263 * m_blur_17); | |||||
double noise_2330 = noise(); | |||||
double abs_2348 = fabs(noise_2330); | |||||
double mul_2354 = (abs_2348 * m_blur_17); | |||||
double noise_2332 = noise(); | |||||
double abs_2350 = fabs(noise_2332); | |||||
double mul_2360 = (abs_2350 * m_blur_17); | |||||
double noise_2249 = noise(); | |||||
double abs_2266 = fabs(noise_2249); | |||||
double mul_2276 = (abs_2266 * m_blur_17); | |||||
double noise_2248 = noise(); | |||||
double abs_2265 = fabs(noise_2248); | |||||
double mul_2273 = (abs_2265 * m_blur_17); | |||||
double noise_2331 = noise(); | |||||
double abs_2349 = fabs(noise_2331); | |||||
double mul_2357 = (abs_2349 * m_blur_17); | |||||
double noise_2329 = noise(); | |||||
double abs_2347 = fabs(noise_2329); | |||||
double mul_2351 = (abs_2347 * m_blur_17); | |||||
double mul_2318 = (mul_2322 * m_y_10); | |||||
double mul_2319 = (mul_2323 * m_y_1); | |||||
double phasor_2315 = m_phasor_21(div_2294, samples_to_seconds); | |||||
double add_2293 = ((phasor_2315 + m_history_9) + 0.5); | |||||
double mod_2292 = safemod(add_2293, 1); | |||||
double delta_2272 = m_delta_22(mod_2292); | |||||
double sah_2252 = m_sah_23(mul_2270, delta_2272, 0); | |||||
double sah_2271 = m_sah_24(mstosamps_2309, delta_2272, 0); | |||||
double mul_2260 = (sah_2271 * mod_2292); | |||||
double sub_2291 = (mod_2292 - 0.5); | |||||
double mul_2290 = (sub_2291 * 3.1415926535898); | |||||
double cos_2289 = cos(mul_2290); | |||||
double mul_2279 = (cos_2289 * cos_2289); | |||||
double add_2287 = ((phasor_2315 + m_history_8) + 0.75); | |||||
double mod_2286 = safemod(add_2287, 1); | |||||
double delta_2269 = m_delta_25(mod_2286); | |||||
double sah_2250 = m_sah_26(mul_2267, delta_2269, 0); | |||||
double sah_2268 = m_sah_27(mstosamps_2309, delta_2269, 0); | |||||
double mul_2259 = (sah_2268 * mod_2286); | |||||
double sub_2285 = (mod_2286 - 0.5); | |||||
double mul_2284 = (sub_2285 * 3.1415926535898); | |||||
double cos_2283 = cos(mul_2284); | |||||
double mul_2278 = (cos_2283 * cos_2283); | |||||
double add_2314 = ((phasor_2315 + m_history_7) + 0); | |||||
double mod_2313 = safemod(add_2314, 1); | |||||
double delta_2257 = m_delta_28(mod_2313); | |||||
double sah_2256 = m_sah_29(mul_2276, delta_2257, 0); | |||||
double sah_2277 = m_sah_30(mstosamps_2309, delta_2257, 0); | |||||
double mul_2262 = (sah_2277 * mod_2313); | |||||
double sub_2312 = (mod_2313 - 0.5); | |||||
double mul_2311 = (sub_2312 * 3.1415926535898); | |||||
double cos_2310 = cos(mul_2311); | |||||
double mul_2281 = (cos_2310 * cos_2310); | |||||
double add_2308 = ((phasor_2315 + m_history_6) + 0.25); | |||||
double mod_2307 = safemod(add_2308, 1); | |||||
double delta_2275 = m_delta_31(mod_2307); | |||||
double sah_2254 = m_sah_32(mul_2273, delta_2275, 0); | |||||
double sah_2274 = m_sah_33(mstosamps_2309, delta_2275, 0); | |||||
double mul_2261 = (sah_2274 * mod_2307); | |||||
double tap_2300 = m_delay_12.read_linear(mul_2262); | |||||
double tap_2301 = m_delay_12.read_linear(mul_2261); | |||||
double tap_2302 = m_delay_12.read_linear(mul_2260); | |||||
double tap_2303 = m_delay_12.read_linear(mul_2259); | |||||
double mul_2282 = (tap_2303 * mul_2278); | |||||
double mul_2288 = (tap_2302 * mul_2279); | |||||
double mul_2298 = (tap_2300 * mul_2281); | |||||
double sub_2306 = (mod_2307 - 0.5); | |||||
double mul_2305 = (sub_2306 * 3.1415926535898); | |||||
double cos_2304 = cos(mul_2305); | |||||
double mul_2280 = (cos_2304 * cos_2304); | |||||
double mul_2297 = (tap_2301 * mul_2280); | |||||
double phasor_2399 = m_phasor_34(div_2378, samples_to_seconds); | |||||
double add_2377 = ((m_history_5 + phasor_2399) + 0.5); | |||||
double mod_2376 = safemod(add_2377, 1); | |||||
double delta_2356 = m_delta_35(mod_2376); | |||||
double sah_2335 = m_sah_36(mul_2354, delta_2356, 0); | |||||
double sah_2355 = m_sah_37(mstosamps_2393, delta_2356, 0); | |||||
double mul_2344 = (sah_2355 * mod_2376); | |||||
double sub_2375 = (mod_2376 - 0.5); | |||||
double mul_2374 = (sub_2375 * 3.1415926535898); | |||||
double cos_2373 = cos(mul_2374); | |||||
double mul_2363 = (cos_2373 * cos_2373); | |||||
double add_2398 = ((m_history_4 + phasor_2399) + 0); | |||||
double mod_2397 = safemod(add_2398, 1); | |||||
double delta_2340 = m_delta_38(mod_2397); | |||||
double sah_2339 = m_sah_39(mul_2360, delta_2340, 0); | |||||
double sah_2361 = m_sah_40(mstosamps_2393, delta_2340, 0); | |||||
double mul_2346 = (sah_2361 * mod_2397); | |||||
double sub_2396 = (mod_2397 - 0.5); | |||||
double mul_2395 = (sub_2396 * 3.1415926535898); | |||||
double cos_2394 = cos(mul_2395); | |||||
double mul_2365 = (cos_2394 * cos_2394); | |||||
double add_2392 = ((m_history_3 + phasor_2399) + 0.25); | |||||
double mod_2391 = safemod(add_2392, 1); | |||||
double delta_2359 = m_delta_41(mod_2391); | |||||
double sah_2337 = m_sah_42(mul_2357, delta_2359, 0); | |||||
double sah_2358 = m_sah_43(mstosamps_2393, delta_2359, 0); | |||||
double mul_2345 = (sah_2358 * mod_2391); | |||||
double sub_2390 = (mod_2391 - 0.5); | |||||
double mul_2389 = (sub_2390 * 3.1415926535898); | |||||
double cos_2388 = cos(mul_2389); | |||||
double mul_2364 = (cos_2388 * cos_2388); | |||||
double add_2371 = ((m_history_2 + phasor_2399) + 0.75); | |||||
double mod_2370 = safemod(add_2371, 1); | |||||
double delta_2353 = m_delta_44(mod_2370); | |||||
double sah_2333 = m_sah_45(mul_2351, delta_2353, 0); | |||||
double sah_2352 = m_sah_46(mstosamps_2393, delta_2353, 0); | |||||
double mul_2343 = (sah_2352 * mod_2370); | |||||
double tap_2384 = m_delay_11.read_linear(mul_2346); | |||||
double tap_2385 = m_delay_11.read_linear(mul_2345); | |||||
double tap_2386 = m_delay_11.read_linear(mul_2344); | |||||
double tap_2387 = m_delay_11.read_linear(mul_2343); | |||||
double mul_2382 = (tap_2384 * mul_2365); | |||||
double mul_2381 = (tap_2385 * mul_2364); | |||||
double mul_2372 = (tap_2386 * mul_2363); | |||||
double sub_2369 = (mod_2370 - 0.5); | |||||
double mul_2368 = (sub_2369 * 3.1415926535898); | |||||
double cos_2367 = cos(mul_2368); | |||||
double mul_2362 = (cos_2367 * cos_2367); | |||||
double mul_2366 = (tap_2387 * mul_2362); | |||||
double mul_2320 = ((((((((mul_2298 + mul_2297) + mul_2288) + mul_2282) + mul_2366) + mul_2372) + mul_2381) + mul_2382) * add_2321); | |||||
double sub_2317 = (mul_2320 - (mul_2319 + mul_2318)); | |||||
double mix_2450 = (in1 + (m_mix_16 * (sub_2317 - in1))); | |||||
double out1 = mix_2450; | |||||
double y2_next_2440 = m_y_1; | |||||
double history_2253_next_2441 = sah_2252; | |||||
double history_2251_next_2442 = sah_2250; | |||||
double history_2258_next_2443 = sah_2256; | |||||
double history_2255_next_2444 = sah_2254; | |||||
double history_2336_next_2445 = sah_2335; | |||||
double history_2341_next_2446 = sah_2339; | |||||
double history_2338_next_2447 = sah_2337; | |||||
double history_2334_next_2448 = sah_2333; | |||||
double y1_next_2449 = sub_2317; | |||||
m_delay_12.write(in1); | |||||
double noise_5014 = noise(); | |||||
double abs_5031 = fabs(noise_5014); | |||||
double mul_5035 = (abs_5031 * m_blur_17); | |||||
double noise_5086 = noise(); | |||||
double abs_5104 = fabs(noise_5086); | |||||
double mul_5112 = (abs_5104 * m_blur_17); | |||||
double noise_5015 = noise(); | |||||
double abs_5032 = fabs(noise_5015); | |||||
double mul_5038 = (abs_5032 * m_blur_17); | |||||
double noise_5084 = noise(); | |||||
double abs_5102 = fabs(noise_5084); | |||||
double mul_5106 = (abs_5102 * m_blur_17); | |||||
double noise_5017 = noise(); | |||||
double abs_5034 = fabs(noise_5017); | |||||
double mul_5044 = (abs_5034 * m_blur_17); | |||||
double noise_5087 = noise(); | |||||
double abs_5105 = fabs(noise_5087); | |||||
double mul_5115 = (abs_5105 * m_blur_17); | |||||
double noise_5016 = noise(); | |||||
double abs_5033 = fabs(noise_5016); | |||||
double mul_5041 = (abs_5033 * m_blur_17); | |||||
double noise_5085 = noise(); | |||||
double abs_5103 = fabs(noise_5085); | |||||
double mul_5109 = (abs_5103 * m_blur_17); | |||||
double phasor_5083 = m_phasor_19(div_5062, samples_to_seconds); | |||||
double add_5055 = ((phasor_5083 + m_history_9) + 0.75); | |||||
double mod_5054 = safemod(add_5055, 1); | |||||
double delta_5037 = m_delta_20(mod_5054); | |||||
double sah_5018 = m_sah_21(mul_5035, delta_5037, 0); | |||||
double sah_5036 = m_sah_22(mstosamps_5077, delta_5037, 0); | |||||
double mul_5027 = (sah_5036 * mod_5054); | |||||
double sub_5053 = (mod_5054 - 0.5); | |||||
double mul_5052 = (sub_5053 * 3.1415926535898); | |||||
double cos_5051 = cos(mul_5052); | |||||
double mul_5046 = (cos_5051 * cos_5051); | |||||
double add_5061 = ((phasor_5083 + m_history_8) + 0.5); | |||||
double mod_5060 = safemod(add_5061, 1); | |||||
double delta_5040 = m_delta_23(mod_5060); | |||||
double sah_5020 = m_sah_24(mul_5038, delta_5040, 0); | |||||
double sah_5039 = m_sah_25(mstosamps_5077, delta_5040, 0); | |||||
double mul_5028 = (sah_5039 * mod_5060); | |||||
double sub_5059 = (mod_5060 - 0.5); | |||||
double mul_5058 = (sub_5059 * 3.1415926535898); | |||||
double cos_5057 = cos(mul_5058); | |||||
double mul_5047 = (cos_5057 * cos_5057); | |||||
double add_5082 = ((phasor_5083 + m_history_7) + 0); | |||||
double mod_5081 = safemod(add_5082, 1); | |||||
double delta_5025 = m_delta_26(mod_5081); | |||||
double sah_5024 = m_sah_27(mul_5044, delta_5025, 0); | |||||
double sah_5045 = m_sah_28(mstosamps_5077, delta_5025, 0); | |||||
double mul_5030 = (sah_5045 * mod_5081); | |||||
double sub_5080 = (mod_5081 - 0.5); | |||||
double mul_5079 = (sub_5080 * 3.1415926535898); | |||||
double cos_5078 = cos(mul_5079); | |||||
double mul_5049 = (cos_5078 * cos_5078); | |||||
double add_5076 = ((phasor_5083 + m_history_6) + 0.25); | |||||
double mod_5075 = safemod(add_5076, 1); | |||||
double delta_5043 = m_delta_29(mod_5075); | |||||
double sah_5022 = m_sah_30(mul_5041, delta_5043, 0); | |||||
double sah_5042 = m_sah_31(mstosamps_5077, delta_5043, 0); | |||||
double mul_5029 = (sah_5042 * mod_5075); | |||||
double tap_5068 = m_delay_11.read_linear(mul_5030); | |||||
double tap_5069 = m_delay_11.read_linear(mul_5029); | |||||
double tap_5070 = m_delay_11.read_linear(mul_5028); | |||||
double tap_5071 = m_delay_11.read_linear(mul_5027); | |||||
double mul_5050 = (tap_5071 * mul_5046); | |||||
double mul_5056 = (tap_5070 * mul_5047); | |||||
double mul_5066 = (tap_5068 * mul_5049); | |||||
double sub_5074 = (mod_5075 - 0.5); | |||||
double mul_5073 = (sub_5074 * 3.1415926535898); | |||||
double cos_5072 = cos(mul_5073); | |||||
double mul_5048 = (cos_5072 * cos_5072); | |||||
double mul_5065 = (tap_5069 * mul_5048); | |||||
double phasor_5154 = m_phasor_32(div_5133, samples_to_seconds); | |||||
double add_5147 = ((m_history_5 + phasor_5154) + 0.25); | |||||
double mod_5146 = safemod(add_5147, 1); | |||||
double delta_5114 = m_delta_33(mod_5146); | |||||
double sah_5092 = m_sah_34(mul_5112, delta_5114, 0); | |||||
double sah_5113 = m_sah_35(mstosamps_5148, delta_5114, 0); | |||||
double mul_5100 = (sah_5113 * mod_5146); | |||||
double sub_5145 = (mod_5146 - 0.5); | |||||
double mul_5144 = (sub_5145 * 3.1415926535898); | |||||
double cos_5143 = cos(mul_5144); | |||||
double mul_5119 = (cos_5143 * cos_5143); | |||||
double add_5126 = ((m_history_4 + phasor_5154) + 0.75); | |||||
double mod_5125 = safemod(add_5126, 1); | |||||
double delta_5108 = m_delta_36(mod_5125); | |||||
double sah_5088 = m_sah_37(mul_5106, delta_5108, 0); | |||||
double sah_5107 = m_sah_38(mstosamps_5148, delta_5108, 0); | |||||
double mul_5098 = (sah_5107 * mod_5125); | |||||
double sub_5124 = (mod_5125 - 0.5); | |||||
double mul_5123 = (sub_5124 * 3.1415926535898); | |||||
double cos_5122 = cos(mul_5123); | |||||
double mul_5117 = (cos_5122 * cos_5122); | |||||
double add_5153 = ((m_history_3 + phasor_5154) + 0); | |||||
double mod_5152 = safemod(add_5153, 1); | |||||
double delta_5095 = m_delta_39(mod_5152); | |||||
double sah_5094 = m_sah_40(mul_5115, delta_5095, 0); | |||||
double sah_5116 = m_sah_41(mstosamps_5148, delta_5095, 0); | |||||
double mul_5101 = (sah_5116 * mod_5152); | |||||
double sub_5151 = (mod_5152 - 0.5); | |||||
double mul_5150 = (sub_5151 * 3.1415926535898); | |||||
double cos_5149 = cos(mul_5150); | |||||
double mul_5120 = (cos_5149 * cos_5149); | |||||
double add_5132 = ((m_history_2 + phasor_5154) + 0.5); | |||||
double mod_5131 = safemod(add_5132, 1); | |||||
double delta_5111 = m_delta_42(mod_5131); | |||||
double sah_5090 = m_sah_43(mul_5109, delta_5111, 0); | |||||
double sah_5110 = m_sah_44(mstosamps_5148, delta_5111, 0); | |||||
double mul_5099 = (sah_5110 * mod_5131); | |||||
double tap_5139 = m_delay_10.read_linear(mul_5101); | |||||
double tap_5140 = m_delay_10.read_linear(mul_5100); | |||||
double tap_5141 = m_delay_10.read_linear(mul_5099); | |||||
double tap_5142 = m_delay_10.read_linear(mul_5098); | |||||
double mul_5137 = (tap_5139 * mul_5120); | |||||
double mul_5136 = (tap_5140 * mul_5119); | |||||
double mul_5121 = (tap_5142 * mul_5117); | |||||
double sub_5130 = (mod_5131 - 0.5); | |||||
double mul_5129 = (sub_5130 * 3.1415926535898); | |||||
double cos_5128 = cos(mul_5129); | |||||
double mul_5118 = (cos_5128 * cos_5128); | |||||
double mul_5127 = (tap_5141 * mul_5118); | |||||
double add_5174 = (((((((mul_5066 + mul_5065) + mul_5056) + mul_5050) + mul_5121) + mul_5127) + mul_5136) + mul_5137); | |||||
double mix_5173 = (m_y_1 + (clamp_5013 * (add_5174 - m_y_1))); | |||||
double mix_5010 = mix_5173; | |||||
double mix_5175 = (in1 + (m_mix_13 * (mix_5010 - in1))); | |||||
double out1 = mix_5175; | |||||
double history_5019_next_5156 = sah_5018; | |||||
double history_5021_next_5157 = sah_5020; | |||||
double history_5026_next_5158 = sah_5024; | |||||
double history_5023_next_5159 = sah_5022; | |||||
double history_5093_next_5160 = sah_5092; | |||||
double history_5089_next_5161 = sah_5088; | |||||
double history_5096_next_5162 = sah_5094; | |||||
double history_5091_next_5163 = sah_5090; | |||||
double y0_next_5164 = mix_5010; | |||||
m_delay_11.write(in1); | m_delay_11.write(in1); | ||||
m_y_10 = y2_next_2440; | |||||
m_history_9 = history_2253_next_2441; | |||||
m_history_8 = history_2251_next_2442; | |||||
m_history_7 = history_2258_next_2443; | |||||
m_history_6 = history_2255_next_2444; | |||||
m_history_5 = history_2336_next_2445; | |||||
m_history_4 = history_2341_next_2446; | |||||
m_history_3 = history_2338_next_2447; | |||||
m_history_2 = history_2334_next_2448; | |||||
m_y_1 = y1_next_2449; | |||||
m_delay_10.write(in1); | |||||
m_history_9 = history_5019_next_5156; | |||||
m_history_8 = history_5021_next_5157; | |||||
m_history_7 = history_5026_next_5158; | |||||
m_history_6 = history_5023_next_5159; | |||||
m_history_5 = history_5093_next_5160; | |||||
m_history_4 = history_5089_next_5161; | |||||
m_history_3 = history_5096_next_5162; | |||||
m_history_2 = history_5091_next_5163; | |||||
m_y_1 = y0_next_5164; | |||||
m_delay_10.step(); | |||||
m_delay_11.step(); | m_delay_11.step(); | ||||
m_delay_12.step(); | |||||
// assign results to output buffer; | // assign results to output buffer; | ||||
(*(__out1++)) = out1; | (*(__out1++)) = out1; | ||||
@@ -329,29 +316,26 @@ typedef struct State { | |||||
return __exception; | return __exception; | ||||
}; | }; | ||||
inline void set_resonance(double _value) { | |||||
m_resonance_13 = (_value < 0 ? 0 : (_value > 0.25 ? 0.25 : _value)); | |||||
}; | |||||
inline void set_cutoff(double _value) { | |||||
m_cutoff_14 = (_value < 0 ? 0 : (_value > 3000 ? 3000 : _value)); | |||||
}; | |||||
inline void set_window1(double _value) { | |||||
m_window_15 = (_value < 0.1 ? 0.1 : (_value > 1000 ? 1000 : _value)); | |||||
inline void set_ratio2(double _value) { | |||||
m_ratio_12 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value)); | |||||
}; | }; | ||||
inline void set_mix(double _value) { | inline void set_mix(double _value) { | ||||
m_mix_16 = (_value < 0 ? 0 : (_value > 1 ? 1 : _value)); | |||||
m_mix_13 = (_value < 0 ? 0 : (_value > 1 ? 1 : _value)); | |||||
}; | }; | ||||
inline void set_blur(double _value) { | |||||
m_blur_17 = (_value < 0.01 ? 0.01 : (_value > 0.25 ? 0.25 : _value)); | |||||
inline void set_delay1(double _value) { | |||||
m_delay_14 = (_value < 0.1 ? 0.1 : (_value > 1000 ? 1000 : _value)); | |||||
}; | }; | ||||
inline void set_ratio1(double _value) { | inline void set_ratio1(double _value) { | ||||
m_ratio_18 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value)); | |||||
m_ratio_15 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value)); | |||||
}; | }; | ||||
inline void set_window2(double _value) { | |||||
m_window_19 = (_value < 0.1 ? 0.1 : (_value > 1000 ? 1000 : _value)); | |||||
inline void set_cutoff(double _value) { | |||||
m_cutoff_16 = (_value < 0 ? 0 : (_value > 3000 ? 3000 : _value)); | |||||
}; | }; | ||||
inline void set_ratio2(double _value) { | |||||
m_ratio_20 = (_value < 0.5 ? 0.5 : (_value > 2 ? 2 : _value)); | |||||
inline void set_blur(double _value) { | |||||
m_blur_17 = (_value < 0.01 ? 0.01 : (_value > 0.25 ? 0.25 : _value)); | |||||
}; | |||||
inline void set_delay2(double _value) { | |||||
m_delay_18 = (_value < 0.1 ? 0.1 : (_value > 1000 ? 1000 : _value)); | |||||
}; | }; | ||||
} State; | } State; | ||||
@@ -368,7 +352,7 @@ int gen_kernel_numouts = 1; | |||||
int num_inputs() { return gen_kernel_numins; } | int num_inputs() { return gen_kernel_numins; } | ||||
int num_outputs() { return gen_kernel_numouts; } | int num_outputs() { return gen_kernel_numouts; } | ||||
int num_params() { return 8; } | |||||
int num_params() { return 7; } | |||||
/// Assistive lables for the signal inputs and outputs | /// Assistive lables for the signal inputs and outputs | ||||
@@ -394,14 +378,13 @@ void reset(CommonState *cself) { | |||||
void setparameter(CommonState *cself, long index, double value, void *ref) { | void setparameter(CommonState *cself, long index, double value, void *ref) { | ||||
State * self = (State *)cself; | State * self = (State *)cself; | ||||
switch (index) { | switch (index) { | ||||
case 0: self->set_resonance(value); break; | |||||
case 1: self->set_cutoff(value); break; | |||||
case 2: self->set_window1(value); break; | |||||
case 3: self->set_mix(value); break; | |||||
case 4: self->set_blur(value); break; | |||||
case 5: self->set_ratio1(value); break; | |||||
case 6: self->set_window2(value); break; | |||||
case 7: self->set_ratio2(value); break; | |||||
case 0: self->set_ratio2(value); break; | |||||
case 1: self->set_mix(value); break; | |||||
case 2: self->set_delay1(value); break; | |||||
case 3: self->set_ratio1(value); break; | |||||
case 4: self->set_cutoff(value); break; | |||||
case 5: self->set_blur(value); break; | |||||
case 6: self->set_delay2(value); break; | |||||
default: break; | default: break; | ||||
} | } | ||||
@@ -412,14 +395,13 @@ void setparameter(CommonState *cself, long index, double value, void *ref) { | |||||
void getparameter(CommonState *cself, long index, double *value) { | void getparameter(CommonState *cself, long index, double *value) { | ||||
State *self = (State *)cself; | State *self = (State *)cself; | ||||
switch (index) { | switch (index) { | ||||
case 0: *value = self->m_resonance_13; break; | |||||
case 1: *value = self->m_cutoff_14; break; | |||||
case 2: *value = self->m_window_15; break; | |||||
case 3: *value = self->m_mix_16; break; | |||||
case 4: *value = self->m_blur_17; break; | |||||
case 5: *value = self->m_ratio_18; break; | |||||
case 6: *value = self->m_window_19; break; | |||||
case 7: *value = self->m_ratio_20; break; | |||||
case 0: *value = self->m_ratio_12; break; | |||||
case 1: *value = self->m_mix_13; break; | |||||
case 2: *value = self->m_delay_14; break; | |||||
case 3: *value = self->m_ratio_15; break; | |||||
case 4: *value = self->m_cutoff_16; break; | |||||
case 5: *value = self->m_blur_17; break; | |||||
case 6: *value = self->m_delay_18; break; | |||||
default: break; | default: break; | ||||
} | } | ||||
@@ -437,41 +419,41 @@ void * create(double sr, long vs) { | |||||
self->__commonstate.numouts = gen_kernel_numouts; | self->__commonstate.numouts = gen_kernel_numouts; | ||||
self->__commonstate.sr = sr; | self->__commonstate.sr = sr; | ||||
self->__commonstate.vs = vs; | self->__commonstate.vs = vs; | ||||
self->__commonstate.params = (ParamInfo *)genlib_sysmem_newptr(8 * sizeof(ParamInfo)); | |||||
self->__commonstate.numparams = 8; | |||||
// initialize parameter 0 ("m_resonance_13") | |||||
self->__commonstate.params = (ParamInfo *)genlib_sysmem_newptr(7 * sizeof(ParamInfo)); | |||||
self->__commonstate.numparams = 7; | |||||
// initialize parameter 0 ("m_ratio_12") | |||||
pi = self->__commonstate.params + 0; | pi = self->__commonstate.params + 0; | ||||
pi->name = "resonance"; | |||||
pi->name = "ratio2"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_resonance_13; | |||||
pi->defaultvalue = self->m_ratio_12; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
pi->inputmax = 1; | pi->inputmax = 1; | ||||
pi->hasminmax = true; | pi->hasminmax = true; | ||||
pi->outputmin = 0; | |||||
pi->outputmax = 0.25; | |||||
pi->outputmin = 0.5; | |||||
pi->outputmax = 2; | |||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 1 ("m_cutoff_14") | |||||
// initialize parameter 1 ("m_mix_13") | |||||
pi = self->__commonstate.params + 1; | pi = self->__commonstate.params + 1; | ||||
pi->name = "cutoff"; | |||||
pi->name = "mix"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_cutoff_14; | |||||
pi->defaultvalue = self->m_mix_13; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
pi->inputmax = 1; | pi->inputmax = 1; | ||||
pi->hasminmax = true; | pi->hasminmax = true; | ||||
pi->outputmin = 0; | pi->outputmin = 0; | ||||
pi->outputmax = 3000; | |||||
pi->outputmax = 1; | |||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 2 ("m_window_15") | |||||
// initialize parameter 2 ("m_delay_14") | |||||
pi = self->__commonstate.params + 2; | pi = self->__commonstate.params + 2; | ||||
pi->name = "window1"; | |||||
pi->name = "delay1"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_window_15; | |||||
pi->defaultvalue = self->m_delay_14; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
@@ -481,53 +463,53 @@ void * create(double sr, long vs) { | |||||
pi->outputmax = 1000; | pi->outputmax = 1000; | ||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 3 ("m_mix_16") | |||||
// initialize parameter 3 ("m_ratio_15") | |||||
pi = self->__commonstate.params + 3; | pi = self->__commonstate.params + 3; | ||||
pi->name = "mix"; | |||||
pi->name = "ratio1"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_mix_16; | |||||
pi->defaultvalue = self->m_ratio_15; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
pi->inputmax = 1; | pi->inputmax = 1; | ||||
pi->hasminmax = true; | pi->hasminmax = true; | ||||
pi->outputmin = 0; | |||||
pi->outputmax = 1; | |||||
pi->outputmin = 0.5; | |||||
pi->outputmax = 2; | |||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 4 ("m_blur_17") | |||||
// initialize parameter 4 ("m_cutoff_16") | |||||
pi = self->__commonstate.params + 4; | pi = self->__commonstate.params + 4; | ||||
pi->name = "blur"; | |||||
pi->name = "cutoff"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_blur_17; | |||||
pi->defaultvalue = self->m_cutoff_16; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
pi->inputmax = 1; | pi->inputmax = 1; | ||||
pi->hasminmax = true; | pi->hasminmax = true; | ||||
pi->outputmin = 0.01; | |||||
pi->outputmax = 0.25; | |||||
pi->outputmin = 0; | |||||
pi->outputmax = 3000; | |||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 5 ("m_ratio_18") | |||||
// initialize parameter 5 ("m_blur_17") | |||||
pi = self->__commonstate.params + 5; | pi = self->__commonstate.params + 5; | ||||
pi->name = "ratio1"; | |||||
pi->name = "blur"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_ratio_18; | |||||
pi->defaultvalue = self->m_blur_17; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
pi->inputmax = 1; | pi->inputmax = 1; | ||||
pi->hasminmax = true; | pi->hasminmax = true; | ||||
pi->outputmin = 0.5; | |||||
pi->outputmax = 2; | |||||
pi->outputmin = 0.01; | |||||
pi->outputmax = 0.25; | |||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 6 ("m_window_19") | |||||
// initialize parameter 6 ("m_delay_18") | |||||
pi = self->__commonstate.params + 6; | pi = self->__commonstate.params + 6; | ||||
pi->name = "window2"; | |||||
pi->name = "delay2"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | ||||
pi->defaultvalue = self->m_window_19; | |||||
pi->defaultvalue = self->m_delay_18; | |||||
pi->defaultref = 0; | pi->defaultref = 0; | ||||
pi->hasinputminmax = false; | pi->hasinputminmax = false; | ||||
pi->inputmin = 0; | pi->inputmin = 0; | ||||
@@ -537,20 +519,6 @@ void * create(double sr, long vs) { | |||||
pi->outputmax = 1000; | pi->outputmax = 1000; | ||||
pi->exp = 0; | pi->exp = 0; | ||||
pi->units = ""; // no units defined | pi->units = ""; // no units defined | ||||
// initialize parameter 7 ("m_ratio_20") | |||||
pi = self->__commonstate.params + 7; | |||||
pi->name = "ratio2"; | |||||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||||
pi->defaultvalue = self->m_ratio_20; | |||||
pi->defaultref = 0; | |||||
pi->hasinputminmax = false; | |||||
pi->inputmin = 0; | |||||
pi->inputmax = 1; | |||||
pi->hasminmax = true; | |||||
pi->outputmin = 0.5; | |||||
pi->outputmax = 2; | |||||
pi->exp = 0; | |||||
pi->units = ""; // no units defined | |||||
return self; | return self; | ||||
} | } | ||||
@@ -29,6 +29,90 @@ | |||||
"digest" : "", | "digest" : "", | ||||
"tags" : "", | "tags" : "", | ||||
"boxes" : [ { | "boxes" : [ { | ||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-60", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 3, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 652.833313, 673.0, 46.0, 20.0 ], | |||||
"text" : "mix" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-71", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 679.833313, 563.0, 170.0, 20.0 ], | |||||
"text" : "expr out=in1*2*PI/samplerate\\;" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-72", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 652.833313, 638.0, 72.0, 20.0 ], | |||||
"text" : "history y0 0" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-91", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 679.833313, 588.0, 26.0, 20.0 ], | |||||
"text" : "sin" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-93", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 679.833313, 613.0, 125.0, 20.0 ], | |||||
"text" : "clip 0.00001 0.99999" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-95", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 679.833313, 538.0, 220.0, 20.0 ], | |||||
"text" : "param cutoff 2250 @min 0 @max 3000" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | "box" : { | ||||
"fontname" : "Arial", | "fontname" : "Arial", | ||||
"fontsize" : 12.0, | "fontsize" : 12.0, | ||||
@@ -891,8 +975,8 @@ | |||||
"numinlets" : 0, | "numinlets" : 0, | ||||
"numoutlets" : 1, | "numoutlets" : 1, | ||||
"outlettype" : [ "" ], | "outlettype" : [ "" ], | ||||
"patching_rect" : [ 754.5, 11.0, 248.0, 20.0 ], | |||||
"text" : "param window2 100. @min 0.1 @max 1000." | |||||
"patching_rect" : [ 754.5, 11.0, 236.0, 20.0 ], | |||||
"text" : "param delay2 100. @min 0.1 @max 1000." | |||||
} | } | ||||
} | } | ||||
@@ -989,248 +1073,10 @@ | |||||
"numinlets" : 0, | "numinlets" : 0, | ||||
"numoutlets" : 1, | "numoutlets" : 1, | ||||
"outlettype" : [ "" ], | "outlettype" : [ "" ], | ||||
"patching_rect" : [ 564.5, 531.0, 186.0, 20.0 ], | |||||
"patching_rect" : [ 666.833313, 513.0, 186.0, 20.0 ], | |||||
"text" : "param mix 0.5 @min 0. @max 1." | "text" : "param mix 0.5 @min 0. @max 1." | ||||
} | } | ||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-11", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 754.5, 531.0, 170.0, 20.0 ], | |||||
"text" : "expr out=in1*2*PI/samplerate\\;" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-20", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 740.583313, 721.0, 60.5, 20.0 ], | |||||
"text" : "-" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-21", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 985.25, 696.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-69", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 998.75, 671.0, 74.0, 20.0 ], | |||||
"text" : "history y2 0" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-70", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 782.5, 671.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-75", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 740.583313, 696.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-76", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 796.5, 646.0, 74.0, 20.0 ], | |||||
"text" : "history y1 0" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-77", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 754.5, 671.0, 28.0, 20.0 ], | |||||
"text" : "+ 1" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-78", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 985.25, 611.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-79", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 754.5, 611.0, 30.0, 20.0 ], | |||||
"text" : "* -2" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-80", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 2, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 754.5, 581.0, 32.5, 20.0 ], | |||||
"text" : "*" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-81", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 754.5, 556.0, 30.0, 20.0 ], | |||||
"text" : "cos" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-82", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 984.5, 581.0, 70.0, 20.0 ], | |||||
"text" : "* 0.882497" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-86", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 984.5, 531.0, 50.0, 20.0 ], | |||||
"text" : "* 0.125" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-92", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 1, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 984.5, 556.0, 30.0, 20.0 ], | |||||
"text" : "exp" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-94", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 984.5, 506.0, 230.0, 20.0 ], | |||||
"text" : "param resonance 0. @min 0. @max 0.25" | |||||
} | |||||
} | |||||
, { | |||||
"box" : { | |||||
"fontname" : "Arial", | |||||
"fontsize" : 12.0, | |||||
"id" : "obj-96", | |||||
"maxclass" : "newobj", | |||||
"numinlets" : 0, | |||||
"numoutlets" : 1, | |||||
"outlettype" : [ "" ], | |||||
"patching_rect" : [ 754.5, 506.0, 230.0, 20.0 ], | |||||
"text" : "param cutoff 2250. @min 0. @max 3000." | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"box" : { | "box" : { | ||||
@@ -1423,7 +1269,7 @@ | |||||
"numinlets" : 0, | "numinlets" : 0, | ||||
"numoutlets" : 1, | "numoutlets" : 1, | ||||
"outlettype" : [ "" ], | "outlettype" : [ "" ], | ||||
"patching_rect" : [ 537.5, 531.0, 30.0, 20.0 ], | |||||
"patching_rect" : [ 639.833313, 513.0, 30.0, 20.0 ], | |||||
"text" : "in 1" | "text" : "in 1" | ||||
} | } | ||||
@@ -1436,7 +1282,7 @@ | |||||
"maxclass" : "newobj", | "maxclass" : "newobj", | ||||
"numinlets" : 1, | "numinlets" : 1, | ||||
"numoutlets" : 0, | "numoutlets" : 0, | ||||
"patching_rect" : [ 537.5, 721.0, 37.0, 20.0 ], | |||||
"patching_rect" : [ 639.833313, 733.0, 37.0, 20.0 ], | |||||
"text" : "out 1" | "text" : "out 1" | ||||
} | } | ||||
@@ -1450,7 +1296,7 @@ | |||||
"numinlets" : 3, | "numinlets" : 3, | ||||
"numoutlets" : 1, | "numoutlets" : 1, | ||||
"outlettype" : [ "" ], | "outlettype" : [ "" ], | ||||
"patching_rect" : [ 537.5, 611.0, 46.0, 20.0 ], | |||||
"patching_rect" : [ 639.833313, 708.0, 46.0, 20.0 ], | |||||
"text" : "mix" | "text" : "mix" | ||||
} | } | ||||
@@ -1576,7 +1422,7 @@ | |||||
"numinlets" : 0, | "numinlets" : 0, | ||||
"numoutlets" : 1, | "numoutlets" : 1, | ||||
"outlettype" : [ "" ], | "outlettype" : [ "" ], | ||||
"patching_rect" : [ 1231.333252, 11.0, 221.0, 20.0 ], | |||||
"patching_rect" : [ 508.833313, 11.0, 221.0, 20.0 ], | |||||
"text" : "param blur 0.25 @min 0.01 @max 0.25" | "text" : "param blur 0.25 @min 0.01 @max 0.25" | ||||
} | } | ||||
@@ -2150,8 +1996,8 @@ | |||||
"numinlets" : 0, | "numinlets" : 0, | ||||
"numoutlets" : 1, | "numoutlets" : 1, | ||||
"outlettype" : [ "" ], | "outlettype" : [ "" ], | ||||
"patching_rect" : [ 15.5, 11.0, 248.0, 20.0 ], | |||||
"text" : "param window1 100. @min 0.1 @max 1000." | |||||
"patching_rect" : [ 15.5, 11.0, 236.0, 20.0 ], | |||||
"text" : "param delay1 100. @min 0.1 @max 1000." | |||||
} | } | ||||
} | } | ||||
@@ -2315,15 +2161,6 @@ | |||||
"source" : [ "obj-10", 0 ] | "source" : [ "obj-10", 0 ] | ||||
} | } | ||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-81", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-11", 0 ] | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
@@ -2448,20 +2285,20 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 175.833328, 508.0, 750.0, 508.0, 750.0, 702.0, 750.083313, 702.0 ], | |||||
"midpoints" : [ 175.833328, 508.0, 175.0, 508.0, 175.0, 665.0, 675.833313, 665.0 ], | |||||
"source" : [ "obj-18", 0 ] | "source" : [ "obj-18", 0 ] | ||||
} | } | ||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 326.666656, 506.0, 750.083313, 506.0 ], | |||||
"midpoints" : [ 326.666656, 664.0, 675.833313, 664.0 ], | |||||
"source" : [ "obj-19", 0 ] | "source" : [ "obj-19", 0 ] | ||||
} | } | ||||
@@ -2505,36 +2342,6 @@ | |||||
"source" : [ "obj-2", 0 ] | "source" : [ "obj-2", 0 ] | ||||
} | } | ||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-76", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 750.083313, 750.0, 733.041626, 750.0, 733.041626, 636.0, 806.0, 636.0 ], | |||||
"source" : [ "obj-20", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-84", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 750.083313, 750.0, 655.291626, 750.0, 655.291626, 601.0, 560.5, 601.0 ], | |||||
"source" : [ "obj-20", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-20", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 994.75, 717.0, 791.583313, 717.0 ], | |||||
"source" : [ "obj-21", 0 ] | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
@@ -2666,10 +2473,10 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 477.5, 507.0, 750.083313, 507.0 ], | |||||
"midpoints" : [ 477.5, 665.0, 675.833313, 665.0 ], | |||||
"source" : [ "obj-33", 0 ] | "source" : [ "obj-33", 0 ] | ||||
} | } | ||||
@@ -3106,10 +2913,10 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 628.333313, 508.0, 750.083313, 508.0 ], | |||||
"midpoints" : [ 628.333313, 665.0, 675.833313, 665.0 ], | |||||
"source" : [ "obj-40", 0 ] | "source" : [ "obj-40", 0 ] | ||||
} | } | ||||
@@ -3174,10 +2981,10 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1367.333252, 507.5, 750.083313, 507.5 ], | |||||
"midpoints" : [ 1367.333252, 664.5, 675.833313, 664.5 ], | |||||
"source" : [ "obj-406", 0 ] | "source" : [ "obj-406", 0 ] | ||||
} | } | ||||
@@ -3271,10 +3078,10 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1216.5, 507.5, 750.083313, 507.5 ], | |||||
"midpoints" : [ 1216.5, 664.5, 675.833313, 664.5 ], | |||||
"source" : [ "obj-412", 0 ] | "source" : [ "obj-412", 0 ] | ||||
} | } | ||||
@@ -3415,20 +3222,20 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1065.666626, 507.0, 749.0, 507.0, 749.0, 702.0, 750.083313, 702.0 ], | |||||
"midpoints" : [ 1065.666626, 507.0, 1066.0, 507.0, 1066.0, 663.0, 675.833313, 663.0 ], | |||||
"source" : [ "obj-422", 0 ] | "source" : [ "obj-422", 0 ] | ||||
} | } | ||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-75", 0 ], | |||||
"destination" : [ "obj-60", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 914.833313, 506.0, 749.0, 506.0, 749.0, 702.0, 750.083313, 702.0 ], | |||||
"midpoints" : [ 914.833313, 508.0, 914.0, 508.0, 914.0, 664.0, 675.833313, 664.0 ], | |||||
"source" : [ "obj-423", 0 ] | "source" : [ "obj-423", 0 ] | ||||
} | } | ||||
@@ -3902,7 +3709,7 @@ | |||||
"destination" : [ "obj-25", 1 ], | "destination" : [ "obj-25", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 260.333313, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 260.333313, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3913,7 +3720,7 @@ | |||||
"destination" : [ "obj-26", 1 ], | "destination" : [ "obj-26", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 411.166656, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 411.166656, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3924,7 +3731,7 @@ | |||||
"destination" : [ "obj-391", 1 ], | "destination" : [ "obj-391", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 1451.833252, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 1451.833252, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3935,7 +3742,7 @@ | |||||
"destination" : [ "obj-394", 1 ], | "destination" : [ "obj-394", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 1301.0, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 1301.0, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3946,7 +3753,7 @@ | |||||
"destination" : [ "obj-397", 1 ], | "destination" : [ "obj-397", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 1150.166626, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 1150.166626, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3957,7 +3764,7 @@ | |||||
"destination" : [ "obj-400", 1 ], | "destination" : [ "obj-400", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 999.333313, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 999.333313, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3968,7 +3775,7 @@ | |||||
"destination" : [ "obj-47", 1 ], | "destination" : [ "obj-47", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 712.833313, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 712.833313, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -3979,7 +3786,7 @@ | |||||
"destination" : [ "obj-51", 1 ], | "destination" : [ "obj-51", 1 ], | ||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 1240.833252, 63.0, 562.0, 63.0 ], | |||||
"midpoints" : [ 518.333313, 63.0, 562.0, 63.0 ], | |||||
"source" : [ "obj-55", 0 ] | "source" : [ "obj-55", 0 ] | ||||
} | } | ||||
@@ -4029,6 +3836,26 @@ | |||||
"source" : [ "obj-6", 0 ] | "source" : [ "obj-6", 0 ] | ||||
} | } | ||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-72", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 662.333313, 690.0, 604.333313, 690.0, 604.333313, 630.0, 662.333313, 630.0 ], | |||||
"source" : [ "obj-60", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-84", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 662.333313, 695.0, 662.833313, 695.0 ], | |||||
"source" : [ "obj-60", 0 ] | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
@@ -4111,17 +3938,18 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-21", 1 ], | |||||
"color" : [ 1.0, 0.501961, 0.0, 1.0 ], | |||||
"destination" : [ "obj-63", 1 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"source" : [ "obj-69", 0 ] | |||||
"source" : [ "obj-7", 0 ] | |||||
} | } | ||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"color" : [ 1.0, 0.501961, 0.0, 1.0 ], | "color" : [ 1.0, 0.501961, 0.0, 1.0 ], | ||||
"destination" : [ "obj-63", 1 ], | |||||
"destination" : [ "obj-63", 0 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"source" : [ "obj-7", 0 ] | "source" : [ "obj-7", 0 ] | ||||
@@ -4130,21 +3958,19 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"color" : [ 1.0, 0.501961, 0.0, 1.0 ], | |||||
"destination" : [ "obj-63", 0 ], | |||||
"destination" : [ "obj-91", 0 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"source" : [ "obj-7", 0 ] | |||||
"source" : [ "obj-71", 0 ] | |||||
} | } | ||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-20", 1 ], | |||||
"destination" : [ "obj-60", 0 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"midpoints" : [ 792.0, 691.0, 791.583313, 691.0 ], | |||||
"source" : [ "obj-70", 0 ] | |||||
"source" : [ "obj-72", 0 ] | |||||
} | } | ||||
} | } | ||||
@@ -4166,84 +3992,6 @@ | |||||
"source" : [ "obj-74", 0 ] | "source" : [ "obj-74", 0 ] | ||||
} | } | ||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-20", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 750.083313, 718.0, 750.083313, 718.0 ], | |||||
"source" : [ "obj-75", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-69", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 806.0, 666.0, 1008.25, 666.0 ], | |||||
"source" : [ "obj-76", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-70", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-76", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-75", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 764.0, 692.0, 763.583313, 692.0 ], | |||||
"source" : [ "obj-77", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-21", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-78", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-77", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 994.75, 635.0, 880.25, 635.0, 880.25, 635.0, 784.25, 635.0, 784.25, 636.0, 764.0, 636.0 ], | |||||
"source" : [ "obj-78", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-70", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 764.0, 657.0, 792.0, 657.0 ], | |||||
"source" : [ "obj-79", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-77", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 764.0, 633.0, 764.0, 633.0 ], | |||||
"source" : [ "obj-79", 0 ] | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
@@ -4253,55 +4001,6 @@ | |||||
"source" : [ "obj-8", 0 ] | "source" : [ "obj-8", 0 ] | ||||
} | } | ||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-79", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-80", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-80", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 764.0, 577.0, 764.0, 577.0 ], | |||||
"source" : [ "obj-81", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-78", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 994.0, 607.0, 1008.25, 607.0 ], | |||||
"source" : [ "obj-82", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-78", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 994.0, 601.0, 994.75, 601.0 ], | |||||
"source" : [ "obj-82", 0 ] | |||||
} | |||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-80", 1 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"midpoints" : [ 994.0, 608.0, 796.25, 608.0, 796.25, 577.0, 777.5, 577.0 ], | |||||
"source" : [ "obj-82", 0 ] | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
@@ -4320,15 +4019,6 @@ | |||||
"source" : [ "obj-85", 0 ] | "source" : [ "obj-85", 0 ] | ||||
} | } | ||||
} | |||||
, { | |||||
"patchline" : { | |||||
"destination" : [ "obj-92", 0 ], | |||||
"disabled" : 0, | |||||
"hidden" : 0, | |||||
"source" : [ "obj-86", 0 ] | |||||
} | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
@@ -4388,28 +4078,28 @@ | |||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-82", 0 ], | |||||
"destination" : [ "obj-93", 0 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"source" : [ "obj-92", 0 ] | |||||
"source" : [ "obj-91", 0 ] | |||||
} | } | ||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-86", 0 ], | |||||
"destination" : [ "obj-60", 2 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"source" : [ "obj-94", 0 ] | |||||
"source" : [ "obj-93", 0 ] | |||||
} | } | ||||
} | } | ||||
, { | , { | ||||
"patchline" : { | "patchline" : { | ||||
"destination" : [ "obj-11", 0 ], | |||||
"destination" : [ "obj-71", 0 ], | |||||
"disabled" : 0, | "disabled" : 0, | ||||
"hidden" : 0, | "hidden" : 0, | ||||
"source" : [ "obj-96", 0 ] | |||||
"source" : [ "obj-95", 0 ] | |||||
} | } | ||||
} | } | ||||
@@ -25,6 +25,7 @@ | |||||
#define DISTRHO_PLUGIN_IS_RT_SAFE 0 | #define DISTRHO_PLUGIN_IS_RT_SAFE 0 | ||||
#define DISTRHO_PLUGIN_NUM_INPUTS 1 | #define DISTRHO_PLUGIN_NUM_INPUTS 1 | ||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 2 | #define DISTRHO_PLUGIN_NUM_OUTPUTS 2 | ||||
#define DISTRHO_PLUGIN_USES_MODGUI 1 | |||||
#define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:PitchPlugin" | #define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:PitchPlugin" | ||||