@@ -51,6 +51,7 @@ endif | |||
$(MAKE) all -C plugins/bitcrush | |||
$(MAKE) all -C plugins/freeverb | |||
$(MAKE) all -C plugins/gigaverb | |||
$(MAKE) all -C plugins/modulay | |||
$(MAKE) all -C plugins/pitchotto | |||
$(MAKE) all -C plugins/pitchshift | |||
$(MAKE) all -C plugins/shiroverb | |||
@@ -98,6 +99,7 @@ endif | |||
$(MAKE) clean -C plugins/bitcrush | |||
$(MAKE) clean -C plugins/freeverb | |||
$(MAKE) clean -C plugins/gigaverb | |||
$(MAKE) clean -C plugins/modulay | |||
$(MAKE) clean -C plugins/pitchotto | |||
$(MAKE) clean -C plugins/pitchshift | |||
$(MAKE) clean -C plugins/shiroverb | |||
@@ -115,9 +117,9 @@ install: | |||
cp bin/*-vst.* $(DESTDIR)$(PREFIX)/lib/vst/ | |||
ifeq ($(HAVE_DGL),true) | |||
cp -r bin/*-dssi $(DESTDIR)$(PREFIX)/lib/dssi/ | |||
cp -r bin/*-dssi $(DESTDIR)$(PREFIX)/lib/dssi/ | |||
endif | |||
cp -r bin/*.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/ | |||
cp -r bin/*.lv2 $(DESTDIR)$(PREFIX)/lib/lv2/ | |||
# Kars | |||
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 | |||
# 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 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:screenshot <modgui/screenshot-pitchotto.png> ; | |||
modgui:thumbnail <modgui/thumbnail-pitchotto.png> ; | |||
modgui:brand "SHIRO" ; | |||
modgui:brand "Shiro" ; | |||
modgui:label "Pitchotto" ; | |||
modgui:model "boxy" ; | |||
modgui:panel "7-knobs" ; | |||
modgui:panel "6-knobs" ; | |||
modgui:color "red" ; | |||
modgui:knob "black" ; | |||
modgui:port [ | |||
@@ -24,23 +24,19 @@ | |||
lv2:name "ratio2" ; | |||
] , [ | |||
lv2:index 2 ; | |||
lv2:symbol "cutoff" ; | |||
lv2:name "cutoff" ; | |||
] , [ | |||
lv2:index 3 ; | |||
lv2:symbol "mix" ; | |||
lv2:name "mix" ; | |||
] , [ | |||
lv2:index 3 ; | |||
lv2:symbol "delay1" ; | |||
lv2:name "delay1" ; | |||
] , [ | |||
lv2:index 4 ; | |||
lv2:symbol "window1" ; | |||
lv2:name "window1" ; | |||
lv2:symbol "delay2" ; | |||
lv2:name "delay2" ; | |||
] , [ | |||
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 class="mod-plugin-brand"><h1>{{brand}}</h1></div> | |||
<div class="mod-plugin-name"><h1>{{label}}</h1></div> | |||
@@ -8,7 +8,7 @@ | |||
modgui:stylesheet <modgui/stylesheet-shiroverb.css> ; | |||
modgui:screenshot <modgui/screenshot-shiroverb.png> ; | |||
modgui:thumbnail <modgui/thumbnail-shiroverb.png> ; | |||
modgui:brand "SHIRO" ; | |||
modgui:brand "Shiro" ; | |||
modgui:label "Shiroverb" ; | |||
modgui:model "boxy" ; | |||
modgui:panel "8-knobs" ; | |||
@@ -20,8 +20,8 @@ | |||
lv2:name "decay" ; | |||
] , [ | |||
lv2:index 1 ; | |||
lv2:symbol "roomsize" ; | |||
lv2:name "roomsize" ; | |||
lv2:symbol "tail" ; | |||
lv2:name "tail" ; | |||
] , [ | |||
lv2:index 2 ; | |||
lv2:symbol "damping" ; | |||
@@ -32,16 +32,16 @@ | |||
lv2:name "mix" ; | |||
] , [ | |||
lv2:index 4 ; | |||
lv2:symbol "roomsize" ; | |||
lv2:name "roomsize" ; | |||
] , [ | |||
lv2:index 5 ; | |||
lv2:symbol "ratio" ; | |||
lv2:name "ratio" ; | |||
] , [ | |||
lv2:index 5 ; | |||
lv2:index 6 ; | |||
lv2:symbol "cutoff" ; | |||
lv2:name "cutoff" ; | |||
] , [ | |||
lv2:index 6 ; | |||
lv2:symbol "blur" ; | |||
lv2:name "blur" ; | |||
] , [ | |||
lv2:index 7 ; | |||
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_NUM_INPUTS 1 | |||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | |||
#define DISTRHO_PLUGIN_USES_MODGUI 1 | |||
#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\ | |||
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') | |||
#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 | |||
typedef struct State { | |||
CommonState __commonstate; | |||
Delay m_delay_12; | |||
Delay m_delay_10; | |||
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_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_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_6; | |||
double m_history_7; | |||
double samples_to_seconds; | |||
double samplerate; | |||
double m_history_4; | |||
double m_history_2; | |||
double m_history_7; | |||
double m_history_3; | |||
double samplerate; | |||
double m_y_1; | |||
double m_history_9; | |||
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_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 __exception; | |||
// re-initialize all member variables; | |||
@@ -95,44 +93,42 @@ typedef struct State { | |||
m_history_7 = 0; | |||
m_history_8 = 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_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_ratio_18 = 0.5; | |||
m_window_19 = 100; | |||
m_ratio_20 = 2; | |||
m_delay_18 = 100; | |||
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_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_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_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_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_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_delta_44.reset(0); | |||
m_sah_45.reset(0); | |||
m_sah_46.reset(0); | |||
m_sah_44.reset(0); | |||
genlib_reset_complete(this); | |||
}; | |||
@@ -149,179 +145,170 @@ typedef struct State { | |||
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); | |||
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; | |||
while ((__n--)) { | |||
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_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_12.step(); | |||
// assign results to output buffer; | |||
(*(__out1++)) = out1; | |||
@@ -329,29 +316,26 @@ typedef struct State { | |||
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) { | |||
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) { | |||
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; | |||
@@ -368,7 +352,7 @@ int gen_kernel_numouts = 1; | |||
int num_inputs() { return gen_kernel_numins; } | |||
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 | |||
@@ -394,14 +378,13 @@ void reset(CommonState *cself) { | |||
void setparameter(CommonState *cself, long index, double value, void *ref) { | |||
State * self = (State *)cself; | |||
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; | |||
} | |||
@@ -412,14 +395,13 @@ void setparameter(CommonState *cself, long index, double value, void *ref) { | |||
void getparameter(CommonState *cself, long index, double *value) { | |||
State *self = (State *)cself; | |||
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; | |||
} | |||
@@ -437,41 +419,41 @@ void * create(double sr, long vs) { | |||
self->__commonstate.numouts = gen_kernel_numouts; | |||
self->__commonstate.sr = sr; | |||
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->name = "resonance"; | |||
pi->name = "ratio2"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_resonance_13; | |||
pi->defaultvalue = self->m_ratio_12; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
pi->inputmax = 1; | |||
pi->hasminmax = true; | |||
pi->outputmin = 0; | |||
pi->outputmax = 0.25; | |||
pi->outputmin = 0.5; | |||
pi->outputmax = 2; | |||
pi->exp = 0; | |||
pi->units = ""; // no units defined | |||
// initialize parameter 1 ("m_cutoff_14") | |||
// initialize parameter 1 ("m_mix_13") | |||
pi = self->__commonstate.params + 1; | |||
pi->name = "cutoff"; | |||
pi->name = "mix"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_cutoff_14; | |||
pi->defaultvalue = self->m_mix_13; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
pi->inputmax = 1; | |||
pi->hasminmax = true; | |||
pi->outputmin = 0; | |||
pi->outputmax = 3000; | |||
pi->outputmax = 1; | |||
pi->exp = 0; | |||
pi->units = ""; // no units defined | |||
// initialize parameter 2 ("m_window_15") | |||
// initialize parameter 2 ("m_delay_14") | |||
pi = self->__commonstate.params + 2; | |||
pi->name = "window1"; | |||
pi->name = "delay1"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_window_15; | |||
pi->defaultvalue = self->m_delay_14; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
@@ -481,53 +463,53 @@ void * create(double sr, long vs) { | |||
pi->outputmax = 1000; | |||
pi->exp = 0; | |||
pi->units = ""; // no units defined | |||
// initialize parameter 3 ("m_mix_16") | |||
// initialize parameter 3 ("m_ratio_15") | |||
pi = self->__commonstate.params + 3; | |||
pi->name = "mix"; | |||
pi->name = "ratio1"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_mix_16; | |||
pi->defaultvalue = self->m_ratio_15; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
pi->inputmax = 1; | |||
pi->hasminmax = true; | |||
pi->outputmin = 0; | |||
pi->outputmax = 1; | |||
pi->outputmin = 0.5; | |||
pi->outputmax = 2; | |||
pi->exp = 0; | |||
pi->units = ""; // no units defined | |||
// initialize parameter 4 ("m_blur_17") | |||
// initialize parameter 4 ("m_cutoff_16") | |||
pi = self->__commonstate.params + 4; | |||
pi->name = "blur"; | |||
pi->name = "cutoff"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_blur_17; | |||
pi->defaultvalue = self->m_cutoff_16; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
pi->inputmax = 1; | |||
pi->hasminmax = true; | |||
pi->outputmin = 0.01; | |||
pi->outputmax = 0.25; | |||
pi->outputmin = 0; | |||
pi->outputmax = 3000; | |||
pi->exp = 0; | |||
pi->units = ""; // no units defined | |||
// initialize parameter 5 ("m_ratio_18") | |||
// initialize parameter 5 ("m_blur_17") | |||
pi = self->__commonstate.params + 5; | |||
pi->name = "ratio1"; | |||
pi->name = "blur"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_ratio_18; | |||
pi->defaultvalue = self->m_blur_17; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
pi->inputmax = 1; | |||
pi->hasminmax = true; | |||
pi->outputmin = 0.5; | |||
pi->outputmax = 2; | |||
pi->outputmin = 0.01; | |||
pi->outputmax = 0.25; | |||
pi->exp = 0; | |||
pi->units = ""; // no units defined | |||
// initialize parameter 6 ("m_window_19") | |||
// initialize parameter 6 ("m_delay_18") | |||
pi = self->__commonstate.params + 6; | |||
pi->name = "window2"; | |||
pi->name = "delay2"; | |||
pi->paramtype = GENLIB_PARAMTYPE_FLOAT; | |||
pi->defaultvalue = self->m_window_19; | |||
pi->defaultvalue = self->m_delay_18; | |||
pi->defaultref = 0; | |||
pi->hasinputminmax = false; | |||
pi->inputmin = 0; | |||
@@ -537,20 +519,6 @@ void * create(double sr, long vs) { | |||
pi->outputmax = 1000; | |||
pi->exp = 0; | |||
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; | |||
} | |||
@@ -29,6 +29,90 @@ | |||
"digest" : "", | |||
"tags" : "", | |||
"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" : { | |||
"fontname" : "Arial", | |||
"fontsize" : 12.0, | |||
@@ -891,8 +975,8 @@ | |||
"numinlets" : 0, | |||
"numoutlets" : 1, | |||
"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, | |||
"numoutlets" : 1, | |||
"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." | |||
} | |||
} | |||
, { | |||
"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" : { | |||
@@ -1423,7 +1269,7 @@ | |||
"numinlets" : 0, | |||
"numoutlets" : 1, | |||
"outlettype" : [ "" ], | |||
"patching_rect" : [ 537.5, 531.0, 30.0, 20.0 ], | |||
"patching_rect" : [ 639.833313, 513.0, 30.0, 20.0 ], | |||
"text" : "in 1" | |||
} | |||
@@ -1436,7 +1282,7 @@ | |||
"maxclass" : "newobj", | |||
"numinlets" : 1, | |||
"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" | |||
} | |||
@@ -1450,7 +1296,7 @@ | |||
"numinlets" : 3, | |||
"numoutlets" : 1, | |||
"outlettype" : [ "" ], | |||
"patching_rect" : [ 537.5, 611.0, 46.0, 20.0 ], | |||
"patching_rect" : [ 639.833313, 708.0, 46.0, 20.0 ], | |||
"text" : "mix" | |||
} | |||
@@ -1576,7 +1422,7 @@ | |||
"numinlets" : 0, | |||
"numoutlets" : 1, | |||
"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" | |||
} | |||
@@ -2150,8 +1996,8 @@ | |||
"numinlets" : 0, | |||
"numoutlets" : 1, | |||
"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 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-81", 0 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-11", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
@@ -2448,20 +2285,20 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -2505,36 +2342,6 @@ | |||
"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" : { | |||
@@ -2666,10 +2473,10 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3106,10 +2913,10 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3174,10 +2981,10 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3271,10 +3078,10 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3415,20 +3222,20 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-75", 0 ], | |||
"destination" : [ "obj-60", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3902,7 +3709,7 @@ | |||
"destination" : [ "obj-25", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3913,7 +3720,7 @@ | |||
"destination" : [ "obj-26", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3924,7 +3731,7 @@ | |||
"destination" : [ "obj-391", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3935,7 +3742,7 @@ | |||
"destination" : [ "obj-394", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3946,7 +3753,7 @@ | |||
"destination" : [ "obj-397", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3957,7 +3764,7 @@ | |||
"destination" : [ "obj-400", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3968,7 +3775,7 @@ | |||
"destination" : [ "obj-47", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -3979,7 +3786,7 @@ | |||
"destination" : [ "obj-51", 1 ], | |||
"disabled" : 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 ] | |||
} | |||
@@ -4029,6 +3836,26 @@ | |||
"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" : { | |||
@@ -4111,17 +3938,18 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-21", 1 ], | |||
"color" : [ 1.0, 0.501961, 0.0, 1.0 ], | |||
"destination" : [ "obj-63", 1 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-69", 0 ] | |||
"source" : [ "obj-7", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"color" : [ 1.0, 0.501961, 0.0, 1.0 ], | |||
"destination" : [ "obj-63", 1 ], | |||
"destination" : [ "obj-63", 0 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-7", 0 ] | |||
@@ -4130,21 +3958,19 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"color" : [ 1.0, 0.501961, 0.0, 1.0 ], | |||
"destination" : [ "obj-63", 0 ], | |||
"destination" : [ "obj-91", 0 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-7", 0 ] | |||
"source" : [ "obj-71", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-20", 1 ], | |||
"destination" : [ "obj-60", 0 ], | |||
"disabled" : 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 ] | |||
} | |||
} | |||
, { | |||
"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" : { | |||
@@ -4253,55 +4001,6 @@ | |||
"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" : { | |||
@@ -4320,15 +4019,6 @@ | |||
"source" : [ "obj-85", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-92", 0 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-86", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
@@ -4388,28 +4078,28 @@ | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-82", 0 ], | |||
"destination" : [ "obj-93", 0 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-92", 0 ] | |||
"source" : [ "obj-91", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-86", 0 ], | |||
"destination" : [ "obj-60", 2 ], | |||
"disabled" : 0, | |||
"hidden" : 0, | |||
"source" : [ "obj-94", 0 ] | |||
"source" : [ "obj-93", 0 ] | |||
} | |||
} | |||
, { | |||
"patchline" : { | |||
"destination" : [ "obj-11", 0 ], | |||
"destination" : [ "obj-71", 0 ], | |||
"disabled" : 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_NUM_INPUTS 1 | |||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 2 | |||
#define DISTRHO_PLUGIN_USES_MODGUI 1 | |||
#define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:PitchPlugin" | |||