Browse Source

Update maxgen stuff, add modulay plugin

tags/v1.0
falkTX 9 years ago
parent
commit
57e6e9de58
35 changed files with 5696 additions and 5593 deletions
  1. +7
    -2
      Makefile
  2. +46
    -0
      modguis/Modulay.modgui/manifest.ttl
  3. +49
    -0
      modguis/Modulay.modgui/modgui/icon-modulay.html
  4. BIN
      modguis/Modulay.modgui/modgui/knobs/boxy/black.png
  5. BIN
      modguis/Modulay.modgui/modgui/pedals/boxy75/racing.png
  6. BIN
      modguis/Modulay.modgui/modgui/pedals/footswitch.png
  7. BIN
      modguis/Modulay.modgui/modgui/screenshot-modulay.png
  8. +1093
    -0
      modguis/Modulay.modgui/modgui/stylesheet-modulay.css
  9. BIN
      modguis/Modulay.modgui/modgui/thumbnail-modulay.png
  10. BIN
      modguis/Modulay.modgui/modgui/utils/dropdown-arrow-black.png
  11. BIN
      modguis/Modulay.modgui/modgui/utils/dropdown-arrow-white.png
  12. +10
    -14
      modguis/Pitchotto.modgui/manifest.ttl
  13. +1
    -1
      modguis/Pitchotto.modgui/modgui/icon-pitchotto.html
  14. BIN
      modguis/Pitchotto.modgui/modgui/pedals/boxy/red.png
  15. BIN
      modguis/Pitchotto.modgui/modgui/pedals/boxy75/red.png
  16. BIN
      modguis/Pitchotto.modgui/modgui/screenshot-pitchotto.png
  17. BIN
      modguis/Pitchotto.modgui/modgui/thumbnail-pitchotto.png
  18. +8
    -8
      modguis/Shiroverb.modgui/manifest.ttl
  19. BIN
      modguis/Shiroverb.modgui/modgui/screenshot-shiroverb.png
  20. BIN
      modguis/Shiroverb.modgui/modgui/thumbnail-shiroverb.png
  21. +35
    -0
      plugins/modulay/DistrhoPluginInfo.h
  22. +1
    -0
      plugins/modulay/DistrhoPluginMaxGen.cpp
  23. +40
    -0
      plugins/modulay/Makefile
  24. +401
    -0
      plugins/modulay/gen_exported.cpp
  25. +37
    -0
      plugins/modulay/gen_exported.h
  26. +836
    -0
      plugins/modulay/modulay.gendsp
  27. +1542
    -0
      plugins/modulay/modulay.maxpat
  28. +2
    -1
      plugins/pitchotto/DistrhoPluginInfo.h
  29. +281
    -313
      plugins/pitchotto/gen_exported.cpp
  30. +151
    -461
      plugins/pitchotto/pitchotto.gendsp
  31. +142
    -3101
      plugins/pitchotto/pitchotto.maxpat
  32. +1
    -0
      plugins/pitchshift/DistrhoPluginInfo.h
  33. +412
    -444
      plugins/shiroverb/gen_exported.cpp
  34. +297
    -609
      plugins/shiroverb/shiroverb.gendsp
  35. +304
    -639
      plugins/shiroverb/shiroverb.maxpat

+ 7
- 2
Makefile View File

@@ -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



+ 46
- 0
modguis/Modulay.modgui/manifest.ttl View File

@@ -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" ;
] ;
] .

+ 49
- 0
modguis/Modulay.modgui/modgui/icon-modulay.html View File

@@ -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>

BIN
modguis/Modulay.modgui/modgui/knobs/boxy/black.png View File

Before After
Width: 8320  |  Height: 128  |  Size: 382KB

BIN
modguis/Modulay.modgui/modgui/pedals/boxy75/racing.png View File

Before After
Width: 326  |  Height: 431  |  Size: 236KB

BIN
modguis/Modulay.modgui/modgui/pedals/footswitch.png View File

Before After
Width: 88  |  Height: 176  |  Size: 13KB

BIN
modguis/Modulay.modgui/modgui/screenshot-modulay.png View File

Before After
Width: 357  |  Height: 430  |  Size: 235KB

+ 1093
- 0
modguis/Modulay.modgui/modgui/stylesheet-modulay.css
File diff suppressed because it is too large
View File


BIN
modguis/Modulay.modgui/modgui/thumbnail-modulay.png View File

Before After
Width: 53  |  Height: 64  |  Size: 6.4KB

BIN
modguis/Modulay.modgui/modgui/utils/dropdown-arrow-black.png View File

Before After
Width: 13  |  Height: 6  |  Size: 982B

BIN
modguis/Modulay.modgui/modgui/utils/dropdown-arrow-white.png View File

Before After
Width: 13  |  Height: 6  |  Size: 977B

+ 10
- 14
modguis/Pitchotto.modgui/manifest.ttl View File

@@ -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
- 1
modguis/Pitchotto.modgui/modgui/icon-pitchotto.html View File

@@ -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>


BIN
modguis/Pitchotto.modgui/modgui/pedals/boxy/red.png View File

Before After
Width: 230  |  Height: 431  |  Size: 173KB

BIN
modguis/Pitchotto.modgui/modgui/pedals/boxy75/red.png View File

Before After
Width: 326  |  Height: 431  |  Size: 247KB

BIN
modguis/Pitchotto.modgui/modgui/screenshot-pitchotto.png View File

Before After
Width: 357  |  Height: 430  |  Size: 239KB Width: 261  |  Height: 430  |  Size: 167KB

BIN
modguis/Pitchotto.modgui/modgui/thumbnail-pitchotto.png View File

Before After
Width: 53  |  Height: 64  |  Size: 6.7KB Width: 38  |  Height: 64  |  Size: 5.2KB

+ 8
- 8
modguis/Shiroverb.modgui/manifest.ttl View File

@@ -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" ;


BIN
modguis/Shiroverb.modgui/modgui/screenshot-shiroverb.png View File

Before After
Width: 357  |  Height: 430  |  Size: 239KB Width: 357  |  Height: 430  |  Size: 241KB

BIN
modguis/Shiroverb.modgui/modgui/thumbnail-shiroverb.png View File

Before After
Width: 53  |  Height: 64  |  Size: 6.9KB Width: 53  |  Height: 64  |  Size: 6.9KB

+ 35
- 0
plugins/modulay/DistrhoPluginInfo.h View File

@@ -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

+ 1
- 0
plugins/modulay/DistrhoPluginMaxGen.cpp View File

@@ -0,0 +1 @@
../common/DistrhoPluginMaxGen.cpp

+ 40
- 0
plugins/modulay/Makefile View File

@@ -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)

# --------------------------------------------------------------

+ 401
- 0
plugins/modulay/gen_exported.cpp View File

@@ -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::

+ 37
- 0
plugins/modulay/gen_exported.h View File

@@ -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::

+ 836
- 0
plugins/modulay/modulay.gendsp View File

@@ -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 ]
}

}
]
}

}

+ 1542
- 0
plugins/modulay/modulay.maxpat
File diff suppressed because it is too large
View File


+ 2
- 1
plugins/pitchotto/DistrhoPluginInfo.h View File

@@ -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

+ 281
- 313
plugins/pitchotto/gen_exported.cpp View File

@@ -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;
}


+ 151
- 461
plugins/pitchotto/pitchotto.gendsp View File

@@ -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 ]
}

}


+ 142
- 3101
plugins/pitchotto/pitchotto.maxpat
File diff suppressed because it is too large
View File


+ 1
- 0
plugins/pitchshift/DistrhoPluginInfo.h View File

@@ -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"



+ 412
- 444
plugins/shiroverb/gen_exported.cpp
File diff suppressed because it is too large
View File


+ 297
- 609
plugins/shiroverb/shiroverb.gendsp
File diff suppressed because it is too large
View File


+ 304
- 639
plugins/shiroverb/shiroverb.maxpat
File diff suppressed because it is too large
View File


Loading…
Cancel
Save