Browse Source

fix I/O amp; add Fundamental.VCA-1 module; update LindenbergResearch modules; add PG-Instruments and Southpole modules

pull/1639/head
bsp2 6 years ago
parent
commit
96a2f05573
100 changed files with 10346 additions and 1120 deletions
  1. +58
    -19
      README.md
  2. +2539
    -0
      plugins/community/repos/Fundamental/res/VCA-1.svg
  3. +2
    -0
      plugins/community/repos/Fundamental/src/Fundamental.cpp
  4. +3
    -3
      plugins/community/repos/Fundamental/src/LFO.cpp
  5. +113
    -18
      plugins/community/repos/Fundamental/src/VCA.cpp
  6. +2
    -2
      plugins/community/repos/LindenbergResearch/doc/Woldemar_Manual_v0.6.1.svg
  7. +9
    -2
      plugins/community/repos/LindenbergResearch/make.objects
  8. BIN
      plugins/community/repos/LindenbergResearch/res/AlternateBigKnob.afdesign
  9. +9
    -6
      plugins/community/repos/LindenbergResearch/res/AlternateBigKnob.svg
  10. BIN
      plugins/community/repos/LindenbergResearch/res/AlternateSmallKnob.afdesign
  11. +7
    -7
      plugins/community/repos/LindenbergResearch/res/AlternateSmallKnob.svg
  12. BIN
      plugins/community/repos/LindenbergResearch/res/IOPortC.afdesign
  13. +6
    -4
      plugins/community/repos/LindenbergResearch/res/IOPortC.svg
  14. BIN
      plugins/community/repos/LindenbergResearch/res/Westcoast.afdesign
  15. +170
    -166
      plugins/community/repos/LindenbergResearch/res/Westcoast.svg
  16. +1
    -0
      plugins/community/repos/LindenbergResearch/src/AlmaFilter.cpp
  17. +1
    -0
      plugins/community/repos/LindenbergResearch/src/BlankPanel.cpp
  18. +1
    -0
      plugins/community/repos/LindenbergResearch/src/BlankPanelM1.cpp
  19. +0
    -314
      plugins/community/repos/LindenbergResearch/src/LRComponents.cpp
  20. +458
    -500
      plugins/community/repos/LindenbergResearch/src/LRComponents.hpp
  21. +1
    -0
      plugins/community/repos/LindenbergResearch/src/MS20Filter.cpp
  22. +1
    -0
      plugins/community/repos/LindenbergResearch/src/ReShaper.cpp
  23. +1
    -0
      plugins/community/repos/LindenbergResearch/src/SimpleFilter.cpp
  24. +2
    -1
      plugins/community/repos/LindenbergResearch/src/VCO.cpp
  25. +75
    -49
      plugins/community/repos/LindenbergResearch/src/Westcoast.cpp
  26. +1
    -1
      plugins/community/repos/LindenbergResearch/src/dsp/DSPMath.hpp
  27. +2
    -2
      plugins/community/repos/LindenbergResearch/src/dsp/HQTrig.hpp
  28. +97
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/Horner.h
  29. +0
    -1
      plugins/community/repos/LindenbergResearch/src/dsp/LadderFilter.cpp
  30. +330
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/LambertW.cpp
  31. +46
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/LambertW.h
  32. +11
    -17
      plugins/community/repos/LindenbergResearch/src/dsp/Lockhart.cpp
  33. +4
    -6
      plugins/community/repos/LindenbergResearch/src/dsp/Lockhart.hpp
  34. +2
    -2
      plugins/community/repos/LindenbergResearch/src/dsp/Oscillator.hpp
  35. +81
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/Serge.cpp
  36. +44
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/Serge.hpp
  37. +8
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/WaveShaper.cpp
  38. +10
    -0
      plugins/community/repos/LindenbergResearch/src/dsp/WaveShaper.hpp
  39. +69
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRCVIndicator.cpp
  40. +67
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRKnob.cpp
  41. +80
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRLCDWidget.cpp
  42. +48
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRLight.cpp
  43. +43
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRPanel.cpp
  44. +42
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRSVGRotator.cpp
  45. +69
    -0
      plugins/community/repos/LindenbergResearch/src/widgets/LRShadow.cpp
  46. +6
    -0
      plugins/community/repos/PG-Instruments/.gitignore
  47. +121
    -0
      plugins/community/repos/PG-Instruments/LICENSE.txt
  48. +29
    -0
      plugins/community/repos/PG-Instruments/Makefile
  49. +39
    -0
      plugins/community/repos/PG-Instruments/README.md
  50. +11
    -0
      plugins/community/repos/PG-Instruments/make.objects
  51. +7
    -0
      plugins/community/repos/PG-Instruments/makefile.msvc
  52. +211
    -0
      plugins/community/repos/PG-Instruments/res/PGEcho.svg
  53. +395
    -0
      plugins/community/repos/PG-Instruments/res/PGOctPanner.svg
  54. +295
    -0
      plugins/community/repos/PG-Instruments/res/PGPanner.svg
  55. +347
    -0
      plugins/community/repos/PG-Instruments/res/PGQuadPanner.svg
  56. +593
    -0
      plugins/community/repos/PG-Instruments/res/PGSEQ3.svg
  57. +268
    -0
      plugins/community/repos/PG-Instruments/res/PGStereoEcho.svg
  58. +268
    -0
      plugins/community/repos/PG-Instruments/res/PGStereoPingPongEcho.svg
  59. +301
    -0
      plugins/community/repos/PG-Instruments/res/PGStereoVCF.svg
  60. +297
    -0
      plugins/community/repos/PG-Instruments/res/PGVCF.svg
  61. +93
    -0
      plugins/community/repos/PG-Instruments/res/fonts/OFL.txt
  62. BIN
      plugins/community/repos/PG-Instruments/res/fonts/Sudo.ttf
  63. +92
    -0
      plugins/community/repos/PG-Instruments/src/PGEcho.cpp
  64. +96
    -0
      plugins/community/repos/PG-Instruments/src/PGOctPanner.cpp
  65. +92
    -0
      plugins/community/repos/PG-Instruments/src/PGPanner.cpp
  66. +98
    -0
      plugins/community/repos/PG-Instruments/src/PGQuadPanner.cpp
  67. +253
    -0
      plugins/community/repos/PG-Instruments/src/PGSEQ3.cpp
  68. +119
    -0
      plugins/community/repos/PG-Instruments/src/PGStereoEcho.cpp
  69. +108
    -0
      plugins/community/repos/PG-Instruments/src/PGStereoPingPongEcho.cpp
  70. +130
    -0
      plugins/community/repos/PG-Instruments/src/PGStereoVCF.cpp
  71. +95
    -0
      plugins/community/repos/PG-Instruments/src/PGVCF.cpp
  72. +32
    -0
      plugins/community/repos/PG-Instruments/src/Template.cpp
  73. +6
    -0
      plugins/community/repos/PG-Instruments/src/Template.hpp
  74. +3
    -0
      plugins/community/repos/Southpole/.gitmodules
  75. +29
    -0
      plugins/community/repos/Southpole/.travis.yml
  76. +137
    -0
      plugins/community/repos/Southpole/CHANGELOG.txt
  77. +20
    -0
      plugins/community/repos/Southpole/LICENSE.md
  78. +74
    -0
      plugins/community/repos/Southpole/Makefile
  79. +205
    -0
      plugins/community/repos/Southpole/README.md
  80. BIN
      plugins/community/repos/Southpole/doc/sp-all-2018-01-22.png
  81. BIN
      plugins/community/repos/Southpole/doc/sp-all-2018-01-30.png
  82. BIN
      plugins/community/repos/Southpole/doc/sp-all-2018-02-06.png
  83. BIN
      plugins/community/repos/Southpole/doc/sp-all-2018-02-23.png
  84. BIN
      plugins/community/repos/Southpole/doc/sp-all-2018-03-15.png
  85. BIN
      plugins/community/repos/Southpole/doc/sp-main-0_6_0.png
  86. +46
    -0
      plugins/community/repos/Southpole/eurorack/README.md
  87. +0
    -0
      plugins/community/repos/Southpole/eurorack/__init__.py
  88. +22
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/LICENSE
  89. +2
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/README.md
  90. +0
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/__init__.py
  91. +120
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/audio_stream_writer.py
  92. +101
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/crc32.h
  93. +0
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/__init__.py
  94. +55
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/decoder.cc
  95. +180
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/decoder.h
  96. +199
    -0
      plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/encoder.py
  97. +3
    -0
      plugins/community/repos/Southpole/eurorack/avrlib/README
  98. +0
    -0
      plugins/community/repos/Southpole/eurorack/avrlib/__init__.py
  99. +36
    -0
      plugins/community/repos/Southpole/eurorack/avrlib/adc.cc
  100. +199
    -0
      plugins/community/repos/Southpole/eurorack/avrlib/adc.h

+ 58
- 19
README.md View File

@@ -30,7 +30,7 @@ Tested in
# Downloads
The current release can be found in the [vst2_bin/](vst2_bin/) folder.

Here's a snapshot of it: [veeseevstrack_0_6_1_win64_bin-14Aug2018.7z](dist/veeseevstrack_0_6_1_win64_bin-14Aug2018.7z) (64bit)
Here's a snapshot of it: [veeseevstrack_0_6_1_win64_bin-16Aug2018.7z](dist/veeseevstrack_0_6_1_win64_bin-16Aug2018.7z) (64bit)

Note: The effect plugin can used be as an instrument, too. You just have to send it MIDI events !

@@ -51,7 +51,7 @@ Here's a demo video of it: https://vimeo.com/277703414

# Add-on modules

The binary distribution contains the following dynamically loaded add-on modules:
The binary distribution contains the following (17) dynamically loaded add-on modules:
- dBiz.dBizBlank
- dBiz.Multiple
- dBiz.Contorno
@@ -71,7 +71,7 @@ The binary distribution contains the following dynamically loaded add-on modules
- Template_shared.MyModule


The following (478) add-on modules are statically linked with the VST plugin:
The following (517) add-on modules are statically linked with the VST plugin:
- 21kHz.D_Inf
- 21kHz.PalmLoop
- Alikins.IdleSwitch
@@ -267,22 +267,23 @@ The following (478) add-on modules are statically linked with the VST plugin:
- FrozenWasteland.SeriouslySlowLFO
- FrozenWasteland.VoxInhumana
- FrozenWasteland.CDCSeriouslySlowLFO
- Fundamentals.8vert
- Fundamentals.ADSR
- Fundamentals.Delay
- Fundamentals.LFO
- Fundamentals.LFO2
- Fundamentals.Mutes
- Fundamentals.SEQ3
- Fundamentals.SequentialSwitch1
- Fundamentals.SequentialSwitch2
- Fundamentals.Scope
- Fundamentals.Unity
- Fundamentals.VCA
- Fundamentals.VCF
- Fundamentals.VCMixer
- Fundamentals.VCO
- Fundamentals.VCO2
- Fundamental.8vert
- Fundamental.ADSR
- Fundamental.Delay
- Fundamental.LFO
- Fundamental.LFO2
- Fundamental.Mutes
- Fundamental.SEQ3
- Fundamental.SequentialSwitch1
- Fundamental.SequentialSwitch2
- Fundamental.Scope
- Fundamental.Unity
- Fundamental.VCA
- Fundamental.VCA-1
- Fundamental.VCF
- Fundamental.VCMixer
- Fundamental.VCO
- Fundamental.VCO2
- Gratrix.VCO_F1
- Gratrix.VCO_F2
- Gratrix.VCF_F1
@@ -434,6 +435,15 @@ The following (478) add-on modules are statically linked with the VST plugin:
- Ohmer.BlankPanel8
- Ohmer.BlankPanel16
- Ohmer.BlankPanel32
- add PG-Instruments.PGSEQ3
- add PG-Instruments.PGPanner
- add PG-Instruments.PGQuadPanner
- add PG-Instruments.PGOctPanner
- add PG-Instruments.PGVCF
- add PG-Instruments.PGStereoVCF
- add PG-Instruments.PGEcho
- add PG-Instruments.PGStereoEcho
- add PG-Instruments.PGStereoPingPongEcho
- Qwelk.Automaton
- Qwelk.Byte
- Qwelk.Chaos
@@ -497,6 +507,35 @@ The following (478) add-on modules are statically linked with the VST plugin:
- SonusModular.Scramblase
- SonusModular.Twoff
- SonusModular.Yabp
- Southpole.Abr
- Southpole.Annuli
- Southpole.Aux
- Southpole.Balaclava
- Southpole.Bandana
- Southpole.Blank1HP
- Southpole.Blank2HP
- Southpole.Blank4HP
- Southpole.Blank8HP
- Southpole.Blank16HP
- Southpole.Blank42HP
- Southpole.But
- Southpole.CornrowsX
- Southpole.DeuxEtageres
- Southpole.Etagere
- Southpole.Falls
- Southpole.Ftagn
- Southpole.Fuse
- Southpole.Gnome
- Southpole.Piste
- Southpole.Pulse
- Southpole.Rakes
- Southpole.Riemann
- Southpole.Smoke
- Southpole.Snake
- Southpole.Sns
- Southpole.Splash
- Southpole.Sssh
- Southpole.Wriggle
- Southpole-parasites.Annuli
- Southpole-parasites.Splash
- squinkylabs-plug1.Booty


+ 2539
- 0
plugins/community/repos/Fundamental/res/VCA-1.svg
File diff suppressed because it is too large
View File


+ 2
- 0
plugins/community/repos/Fundamental/src/Fundamental.cpp View File

@@ -11,6 +11,7 @@ RACK_PLUGIN_MODEL_DECLARE(Fundamental, SequentialSwitch1);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, SequentialSwitch2);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, Scope);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, Unity);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, VCA_1);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, VCA);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, VCF);
RACK_PLUGIN_MODEL_DECLARE(Fundamental, VCMixer);
@@ -23,6 +24,7 @@ RACK_PLUGIN_INIT(Fundamental) {
RACK_PLUGIN_MODEL_ADD(Fundamental, VCO);
RACK_PLUGIN_MODEL_ADD(Fundamental, VCO2);
RACK_PLUGIN_MODEL_ADD(Fundamental, VCF);
RACK_PLUGIN_MODEL_ADD(Fundamental, VCA_1);
RACK_PLUGIN_MODEL_ADD(Fundamental, VCA);
RACK_PLUGIN_MODEL_ADD(Fundamental, LFO);
RACK_PLUGIN_MODEL_ADD(Fundamental, LFO2);


+ 3
- 3
plugins/community/repos/Fundamental/src/LFO.cpp View File

@@ -12,7 +12,7 @@ struct LowFrequencyOscillator {

LowFrequencyOscillator() {}
void setPitch(float pitch) {
pitch = fminf(pitch, 8.0f);
pitch = fminf(pitch, 10.0f);
freq = powf(2.0f, pitch);
}
void setPulseWidth(float pw_) {
@@ -135,7 +135,7 @@ LFOWidget::LFOWidget(LFO *module) : ModuleWidget(module) {
addParam(ParamWidget::create<CKSS>(Vec(15, 77), module, LFO::OFFSET_PARAM, 0.0f, 1.0f, 1.0f));
addParam(ParamWidget::create<CKSS>(Vec(119, 77), module, LFO::INVERT_PARAM, 0.0f, 1.0f, 1.0f));

addParam(ParamWidget::create<RoundHugeBlackKnob>(Vec(47, 61), module, LFO::FREQ_PARAM, -8.0f, 6.0f, -1.0f));
addParam(ParamWidget::create<RoundHugeBlackKnob>(Vec(47, 61), module, LFO::FREQ_PARAM, -8.0f, 10.0f, 1.0f));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(23, 143), module, LFO::FM1_PARAM, 0.0f, 1.0f, 0.0f));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(91, 143), module, LFO::PW_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(23, 208), module, LFO::FM2_PARAM, 0.0f, 1.0f, 0.0f));
@@ -231,7 +231,7 @@ LFO2Widget::LFO2Widget(LFO2 *module) : ModuleWidget(module) {
addParam(ParamWidget::create<CKSS>(Vec(62, 150), module, LFO2::OFFSET_PARAM, 0.0f, 1.0f, 1.0f));
addParam(ParamWidget::create<CKSS>(Vec(62, 215), module, LFO2::INVERT_PARAM, 0.0f, 1.0f, 1.0f));

addParam(ParamWidget::create<RoundHugeBlackKnob>(Vec(18, 60), module, LFO2::FREQ_PARAM, -8.0f, 6.0f, -1.0f));
addParam(ParamWidget::create<RoundHugeBlackKnob>(Vec(18, 60), module, LFO2::FREQ_PARAM, -8.0f, 10.0f, 1.0f));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(11, 142), module, LFO2::WAVE_PARAM, 0.0f, 3.0f, 1.5f));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(11, 207), module, LFO2::FM_PARAM, 0.0f, 1.0f, 0.5f));



+ 113
- 18
plugins/community/repos/Fundamental/src/VCA.cpp View File

@@ -50,27 +50,122 @@ struct VCAWidget : ModuleWidget {
VCAWidget::VCAWidget(VCA *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/VCA.svg")));

addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(27, 57), module, VCA::LEVEL1_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(27, 222), module, VCA::LEVEL2_PARAM, 0.0f, 1.0f, 0.5f));
addInput(Port::create<PJ301MPort>(Vec(11, 113), Port::INPUT, module, VCA::EXP1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(54, 113), Port::INPUT, module, VCA::LIN1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(11, 156), Port::INPUT, module, VCA::IN1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(11, 276), Port::INPUT, module, VCA::EXP2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(54, 276), Port::INPUT, module, VCA::LIN2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(11, 320), Port::INPUT, module, VCA::IN2_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(54, 156), Port::OUTPUT, module, VCA::OUT1_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(54, 320), Port::OUTPUT, module, VCA::OUT2_OUTPUT));
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
addParam(ParamWidget::create<RoundLargeBlackKnob>(mm2px(Vec(6.35, 19.11753)), module, VCA::LEVEL1_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<RoundLargeBlackKnob>(mm2px(Vec(6.35, 74.80544)), module, VCA::LEVEL2_PARAM, 0.0, 1.0, 0.0));
addInput(Port::create<PJ301MPort>(mm2px(Vec(2.5907, 38.19371)), Port::INPUT, module, VCA::EXP1_INPUT));
addInput(Port::create<PJ301MPort>(mm2px(Vec(14.59752, 38.19371)), Port::INPUT, module, VCA::LIN1_INPUT));
addInput(Port::create<PJ301MPort>(mm2px(Vec(2.5907, 52.80642)), Port::INPUT, module, VCA::IN1_INPUT));
addInput(Port::create<PJ301MPort>(mm2px(Vec(2.5907, 93.53435)), Port::INPUT, module, VCA::EXP2_INPUT));
addInput(Port::create<PJ301MPort>(mm2px(Vec(14.59752, 93.53435)), Port::INPUT, module, VCA::LIN2_INPUT));
addInput(Port::create<PJ301MPort>(mm2px(Vec(2.5907, 108.14706)), Port::INPUT, module, VCA::IN2_INPUT));
addOutput(Port::create<PJ301MPort>(mm2px(Vec(14.59752, 52.80642)), Port::OUTPUT, module, VCA::OUT1_OUTPUT));
addOutput(Port::create<PJ301MPort>(mm2px(Vec(14.59752, 108.14706)), Port::OUTPUT, module, VCA::OUT2_OUTPUT));
}

struct VCA_1 : Module {
enum ParamIds {
LEVEL_PARAM,
EXP_PARAM,
NUM_PARAMS
};
enum InputIds {
CV_INPUT,
IN_INPUT,
NUM_INPUTS
};
enum OutputIds {
OUT_OUTPUT,
NUM_OUTPUTS
};
enum LightIds {
NUM_LIGHTS
};

float lastCv = 0.f;

VCA_1() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {}

void step() override {
float cv = 1.f;
if (inputs[CV_INPUT].active)
cv = fmaxf(inputs[CV_INPUT].value / 10.f, 0.f);
if ((int) params[EXP_PARAM].value == 0)
cv = powf(cv, 4.f);
lastCv = cv;
outputs[OUT_OUTPUT].value = inputs[IN_INPUT].value * params[LEVEL_PARAM].value * cv;
}
};


struct VCA_1VUKnob : Knob {
VCA_1VUKnob() {
box.size = mm2px(Vec(10, 46));
}

void draw(NVGcontext *vg) override {
nvgBeginPath(vg);
nvgRoundedRect(vg, 0, 0, box.size.x, box.size.y, 2.0);
nvgFillColor(vg, nvgRGB(0, 0, 0));
nvgFill(vg);

VCA_1 *module = dynamic_cast<VCA_1*>(this->module);

const int segs = 25;
const Vec margin = Vec(4, 4);
Rect r = box.zeroPos().shrink(margin);

for (int i = 0; i < segs; i++) {
float segValue = clamp(value * segs - (segs - i - 1), 0.f, 1.f);
float amplitude = value * module->lastCv;
float segAmplitude = clamp(amplitude * segs - (segs - i - 1), 0.f, 1.f);
nvgBeginPath(vg);
nvgRect(vg, r.pos.x, r.pos.y + r.size.y / segs * i + 0.5,
r.size.x, r.size.y / segs - 1.0);
if (segValue > 0.f) {
nvgFillColor(vg, colorAlpha(nvgRGBf(0.33, 0.33, 0.33), segValue));
nvgFill(vg);
}
if (segAmplitude > 0.f) {
nvgFillColor(vg, colorAlpha(COLOR_GREEN, segAmplitude));
nvgFill(vg);
}
}
}
};


struct VCA_1Widget : ModuleWidget {
VCA_1Widget(VCA_1 *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/VCA-1.svg")));

addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));

addParam(ParamWidget::create<VCA_1VUKnob>(mm2px(Vec(2.62103, 12.31692)), module, VCA_1::LEVEL_PARAM, 0.0, 1.0, 1.0));
addParam(ParamWidget::create<CKSS>(mm2px(Vec(5.24619, 79.9593)), module, VCA_1::EXP_PARAM, 0.0, 1.0, 1.0));

addInput(Port::create<PJ301MPort>(mm2px(Vec(3.51261, 60.4008)), Port::INPUT, module, VCA_1::CV_INPUT));
addInput(Port::create<PJ301MPort>(mm2px(Vec(3.51398, 97.74977)), Port::INPUT, module, VCA_1::IN_INPUT));

addOutput(Port::create<PJ301MPort>(mm2px(Vec(3.51398, 108.64454)), Port::OUTPUT, module, VCA_1::OUT_OUTPUT));
}
};

RACK_PLUGIN_MODEL_INIT(Fundamental, VCA_1) {
Model *modelVCA_1 = Model::create<VCA_1, VCA_1Widget>("Fundamental", "VCA-1", "VCA-1", AMPLIFIER_TAG);
return modelVCA_1;
}

RACK_PLUGIN_MODEL_INIT(Fundamental, VCA) {
Model *modelVCA = Model::create<VCA, VCAWidget>("Fundamental", "VCA", "VCA", AMPLIFIER_TAG, DUAL_TAG);
Model *modelVCA = Model::create<VCA, VCAWidget>("Fundamental", "VCA", "VCA-2", AMPLIFIER_TAG, DUAL_TAG);
return modelVCA;
}

+ 2
- 2
plugins/community/repos/LindenbergResearch/doc/Woldemar_Manual_v0.6.1.svg
File diff suppressed because it is too large
View File


+ 9
- 2
plugins/community/repos/LindenbergResearch/make.objects View File

@@ -1,15 +1,22 @@
ALL_OBJ= \
src/dsp/DSPMath.o \
src/dsp/LadderFilter.o \
src/dsp/LambertW.o \
src/dsp/Lockhart.o \
src/dsp/MS20zdf.o \
src/dsp/Oscillator.o \
src/dsp/SergeWavefolder.o \
src/dsp/Serge.o \
src/dsp/WaveShaper.o \
src/widgets/LRCVIndicator.o \
src/widgets/LRKnob.o \
src/widgets/LRLCDWidget.o \
src/widgets/LRLight.o \
src/widgets/LRPanel.o \
src/widgets/LRShadow.o \
src/widgets/LRSVGRotator.o \
src/AlmaFilter.o \
src/BlankPanel.o \
src/BlankPanelM1.o \
src/LRComponents.o \
src/LindenbergResearch.o \
src/MS20Filter.o \
src/ReShaper.o \


BIN
plugins/community/repos/LindenbergResearch/res/AlternateBigKnob.afdesign View File


+ 9
- 6
plugins/community/repos/LindenbergResearch/res/AlternateBigKnob.svg View File

@@ -1,17 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="56px" height="56px" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<svg width="56px" height="56px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g id="BigKnob">
<circle cx="28" cy="28" r="28" style="fill:#232323;fill-opacity:0.372549;"/>
<g transform="matrix(1,0,0,1,1,1)">
<circle cx="28" cy="28" r="28" style="fill:#232323;fill-opacity:0.372549;"/>
</g>
<path d="M21.609,3.309c0.54,-0.601 1.023,-1.258 1.437,-1.965c1.607,-0.31 3.262,-0.477 4.955,-0.477c1.692,0 3.352,0.167 4.956,0.477c0.414,0.707 0.896,1.364 1.436,1.965c3.19,0.825 6.14,2.253 8.719,4.155c0.718,0.032 1.443,-0.001 2.163,-0.104c2.504,2.179 4.608,4.818 6.176,7.796c-0.212,0.559 -0.381,1.131 -0.507,1.71c1.6,3.29 2.514,6.974 2.554,10.866c0.333,0.411 0.694,0.801 1.081,1.166c-0.114,3.412 -0.846,6.661 -2.09,9.64c-0.531,0.161 -1.046,0.361 -1.544,0.594c-1.652,3.395 -4.036,6.37 -6.945,8.719c-0.141,0.629 -0.233,1.271 -0.273,1.922c-2.566,1.914 -5.485,3.367 -8.631,4.254c-0.58,-0.415 -1.192,-0.773 -1.828,-1.073c-1.7,0.358 -3.462,0.546 -5.268,0.546c-1.805,0 -3.567,-0.188 -5.267,-0.546c-0.636,0.3 -1.248,0.658 -1.828,1.073c-3.147,-0.885 -6.063,-2.338 -8.627,-4.254c-0.04,-0.65 -0.133,-1.291 -0.274,-1.919c-2.912,-2.35 -5.297,-5.326 -6.95,-8.724c-0.496,-0.233 -1.009,-0.431 -1.537,-0.592c-1.244,-2.98 -1.976,-6.23 -2.095,-9.64c0.387,-0.364 0.747,-0.753 1.079,-1.163c0.04,-3.894 0.955,-7.58 2.556,-10.871c-0.127,-0.579 -0.296,-1.15 -0.508,-1.708c1.568,-2.978 3.673,-5.617 6.177,-7.796c0.72,0.103 1.444,0.136 2.162,0.104c2.58,-1.902 5.53,-3.33 8.721,-4.155Z" style="fill:#fbeede;stroke:#262626;stroke-width:0.6px;"/>
<path id="path8603" d="M51.451,15.156c-1.568,-2.978 -3.672,-5.617 -6.176,-7.796c-4.828,0.69 -9.827,-1.756 -12.318,-6.016c-1.604,-0.31 -3.264,-0.477 -4.956,-0.477c-1.693,0 -3.348,0.167 -4.955,0.477c-2.495,4.26 -7.492,6.706 -12.32,6.016c-2.504,2.179 -4.609,4.818 -6.177,7.796c1.788,4.702 0.513,10.314 -3.127,13.742c0.119,3.41 0.851,6.66 2.095,9.64c4.841,1.476 8.444,6.098 8.761,11.235c2.564,1.916 5.48,3.369 8.627,4.254c4.168,-2.986 10.025,-2.986 14.191,0c3.146,-0.887 6.065,-2.34 8.631,-4.254c0.312,-5.137 3.914,-9.76 8.762,-11.235c1.244,-2.979 1.976,-6.228 2.09,-9.64c-3.636,-3.428 -4.911,-9.039 -3.128,-13.742" style="fill:#fbeede;fill-rule:nonzero;stroke:#272727;stroke-width:0.7px;stroke-linejoin:miter;stroke-miterlimit:1.414;"/>
<g transform="matrix(1.27941,0,0,1.98808,-6.88531,-21.9967)">
<path d="M34.791,14.092c0,-1.249 -1.576,-2.264 -3.517,-2.264l-7.035,0c-1.941,0 -3.517,1.015 -3.517,2.264l0,22.312c0,1.249 1.576,2.264 3.517,2.264l7.035,0c1.941,0 3.517,-1.015 3.517,-2.264l0,-22.312Z" style="fill:#fbe6c9;stroke:#262626;stroke-width:0.54px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.414;"/>
<path d="M34.791,14.092c0,-1.249 -1.576,-2.264 -3.517,-2.264l-7.035,0c-1.941,0 -3.517,1.015 -3.517,2.264l0,22.312c0,1.249 1.576,2.264 3.517,2.264l7.035,0c1.941,0 3.517,-1.015 3.517,-2.264l0,-22.312Z" style="fill:#fbe6c9;fill-opacity:0.223529;stroke:#262626;stroke-opacity:0.384314;stroke-width:0.54px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.414;"/>
</g>
<g transform="matrix(1.27941,0,0,1.98808,-7.512,-22.3542)">
<path d="M34.791,14.092c0,-1.249 -1.576,-2.264 -3.517,-2.264l-7.035,0c-1.941,0 -3.517,1.015 -3.517,2.264l0,22.312c0,1.249 1.576,2.264 3.517,2.264l7.035,0c1.941,0 3.517,-1.015 3.517,-2.264l0,-22.312Z" style="fill:#fcf3e8;stroke:#262626;stroke-width:0.45px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.414;"/>
<path d="M34.791,14.092c0,-1.249 -1.576,-2.264 -3.517,-2.264l-7.035,0c-1.941,0 -3.517,1.015 -3.517,2.264l0,22.312c0,1.249 1.576,2.264 3.517,2.264l7.035,0c1.941,0 3.517,-1.015 3.517,-2.264l0,-22.312Z" style="fill:#f0e4d5;stroke:#262626;stroke-width:0.45px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.414;"/>
</g>
<g transform="matrix(0.714042,0,0,0.842226,7.91244,1.3791)">
<rect x="26.732" y="1.915" width="2.801" height="12.374" style="stroke:#000;stroke-width:0.58px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.414;"/>
<g transform="matrix(0.166676,0,0,0.166676,23.3332,1.15966)">
<circle cx="27.999" cy="28" r="17.999"/>
</g>
</g>
</svg>

BIN
plugins/community/repos/LindenbergResearch/res/AlternateSmallKnob.afdesign View File


+ 7
- 7
plugins/community/repos/LindenbergResearch/res/AlternateSmallKnob.svg View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="24px" height="24px" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10;">
<g transform="matrix(1,0,0,1,0,-0.251)">
<circle cx="12" cy="12.251" r="10.835" style="fill:#797979;stroke:#2d2d2d;stroke-width:0.7px;"/>
</g>
<svg width="24px" height="24px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10;">
<g id="SmallKnob" transform="matrix(1,0,0,1,0,-0.251)">
<g transform="matrix(0.833333,0,0,0.833333,2,2.20925)">
<path d="M9.267,0.673c0.183,-0.222 0.349,-0.459 0.496,-0.71c0.725,-0.139 1.473,-0.214 2.237,-0.214c0.764,0 1.514,0.075 2.237,0.213c0.147,0.251 0.313,0.489 0.496,0.711c1.593,0.384 3.059,1.095 4.322,2.058c0.248,0.001 0.497,-0.017 0.744,-0.052c1.131,0.986 2.081,2.176 2.788,3.521c-0.07,0.185 -0.13,0.374 -0.179,0.564c0.794,1.575 1.242,3.353 1.242,5.236l0,0.041c0.11,0.126 0.227,0.247 0.35,0.363c-0.051,1.541 -0.382,3.008 -0.944,4.353c-0.171,0.052 -0.339,0.113 -0.503,0.182c-0.78,1.662 -1.942,3.11 -3.371,4.232c-0.04,0.217 -0.067,0.437 -0.081,0.659c-1.16,0.863 -2.476,1.522 -3.898,1.92c-0.201,-0.144 -0.411,-0.273 -0.627,-0.386c-0.829,0.187 -1.691,0.286 -2.576,0.286c-0.885,0 -1.747,-0.099 -2.576,-0.286c-0.216,0.113 -0.426,0.242 -0.627,0.386c-1.421,-0.399 -2.737,-1.057 -3.895,-1.92c-0.014,-0.221 -0.041,-0.441 -0.081,-0.657c-1.431,-1.122 -2.593,-2.571 -3.374,-4.235c-0.163,-0.068 -0.33,-0.129 -0.501,-0.181c-0.562,-1.345 -0.893,-2.812 -0.946,-4.353c0.123,-0.116 0.24,-0.237 0.35,-0.363l0,-0.041c0,-1.882 0.447,-3.66 1.241,-5.235c-0.049,-0.191 -0.109,-0.379 -0.18,-0.565c0.707,-1.345 1.658,-2.536 2.789,-3.52c0.248,0.035 0.496,0.052 0.744,0.052c1.263,-0.964 2.729,-1.675 4.323,-2.059Z" style="fill:#fcf1e2;stroke:#3d3d3d;stroke-width:1.02px;stroke-linejoin:round;stroke-miterlimit:1.41421;"/>
<g transform="matrix(0.830641,0,0,0.830641,2.0323,2.07481)">
<circle cx="12" cy="12.251" r="10.835" style="fill:#797979;stroke:#2d2d2d;stroke-width:0.7px;"/>
</g>
<g transform="matrix(0.692201,0,0,0.692201,3.69359,3.90991)">
<path d="M9.267,0.673c0.183,-0.222 0.349,-0.459 0.496,-0.71c0.725,-0.139 1.473,-0.214 2.237,-0.214c0.764,0 1.514,0.075 2.237,0.213c0.147,0.251 0.313,0.489 0.496,0.711c1.593,0.384 3.059,1.095 4.322,2.058c0.248,0.001 0.497,-0.017 0.744,-0.052c1.131,0.986 2.081,2.176 2.788,3.521c-0.07,0.185 -0.13,0.374 -0.179,0.564c0.794,1.575 1.242,3.353 1.242,5.236l0,0.041c0.11,0.126 0.227,0.247 0.35,0.363c-0.051,1.541 -0.382,3.008 -0.944,4.353c-0.171,0.052 -0.339,0.113 -0.503,0.182c-0.78,1.662 -1.942,3.11 -3.371,4.232c-0.04,0.217 -0.067,0.437 -0.081,0.659c-1.16,0.863 -2.476,1.522 -3.898,1.92c-0.201,-0.144 -0.411,-0.273 -0.627,-0.386c-0.829,0.187 -1.691,0.286 -2.576,0.286c-0.885,0 -1.747,-0.099 -2.576,-0.286c-0.216,0.113 -0.426,0.242 -0.627,0.386c-1.421,-0.399 -2.737,-1.057 -3.895,-1.92c-0.014,-0.221 -0.041,-0.441 -0.081,-0.657c-1.431,-1.122 -2.593,-2.571 -3.374,-4.235c-0.163,-0.068 -0.33,-0.129 -0.501,-0.181c-0.562,-1.345 -0.893,-2.812 -0.946,-4.353c0.123,-0.116 0.24,-0.237 0.35,-0.363l0,-0.041c0,-1.882 0.447,-3.66 1.241,-5.235c-0.049,-0.191 -0.109,-0.379 -0.18,-0.565c0.707,-1.345 1.658,-2.536 2.789,-3.52c0.248,0.035 0.496,0.052 0.744,0.052c1.263,-0.964 2.729,-1.675 4.323,-2.059Z" style="fill:#fcf1e2;stroke:#3d3d3d;stroke-width:0.43px;stroke-linejoin:round;stroke-miterlimit:1.41421;"/>
</g>
<g transform="matrix(1.34761,0,0,1.48846,-4.21516,0.249512)">
<path d="M13.193,0.526c0,-0.29 -0.26,-0.525 -0.58,-0.525l-1.161,0c-0.32,0 -0.58,0.235 -0.58,0.525l0,7.012c0,0.29 0.26,0.525 0.58,0.525l1.161,0c0.32,0 0.58,-0.235 0.58,-0.525l0,-7.012Z" style="fill:#2b2b2b;"/>
<path d="M13.193,0.526c0,-0.29 -0.26,-0.525 -0.58,-0.525l-1.161,0c-0.32,0 -0.58,0.235 -0.58,0.525l0,7.012c0,0.29 0.26,0.525 0.58,0.525l1.161,0c0.32,0 0.58,-0.235 0.58,-0.525l0,-7.012Z" style="fill:#080808;stroke:#8e8e8e;stroke-width:0.14px;stroke-linejoin:round;stroke-miterlimit:1.41421;"/>
</g>
</g>
</svg>

BIN
plugins/community/repos/LindenbergResearch/res/IOPortC.afdesign View File


+ 6
- 4
plugins/community/repos/LindenbergResearch/res/IOPortC.svg View File

@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="28px" height="28px" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10;">
<svg width="28px" height="28px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-miterlimit:10;">
<g id="IOPortB_3_">
<g>
<circle cx="14" cy="14" r="14" style="fill:#979797;stroke:#313131;stroke-width:3px;"/>
<g transform="matrix(1.14225,0,0,1,0.958098,0.0571711)">
<g transform="matrix(0.964286,0,0,0.964286,0.5,0.5)">
<circle cx="14" cy="14" r="14" style="fill:#979797;stroke:#313131;stroke-width:1.5px;"/>
</g>
<g transform="matrix(1.6023,0,0,1,-0.523693,0.0571711)">
<rect x="0.304" y="13.174" width="2.917" height="1.537" style="fill:#1c1c1c;"/>
</g>
<g transform="matrix(1.14225,0,0,1,22.9581,0.0571711)">
<g transform="matrix(1.6023,0,0,1,22.8183,0.0571711)">
<rect x="0.304" y="13.174" width="2.917" height="1.537" style="fill:#1c1c1c;"/>
</g>
<circle cx="13.982" cy="14.085" r="9.333" style="fill:#444;stroke:#1a1a1a;stroke-width:2px;stroke-linejoin:round;stroke-miterlimit:1.41421;"/>


BIN
plugins/community/repos/LindenbergResearch/res/Westcoast.afdesign View File


+ 170
- 166
plugins/community/repos/LindenbergResearch/res/Westcoast.svg
File diff suppressed because it is too large
View File


+ 1
- 0
plugins/community/repos/LindenbergResearch/src/AlmaFilter.cpp View File

@@ -2,6 +2,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct AlmaFilter : LRModule {



+ 1
- 0
plugins/community/repos/LindenbergResearch/src/BlankPanel.cpp View File

@@ -1,6 +1,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct BlankPanel : Module {
enum ParamIds {


+ 1
- 0
plugins/community/repos/LindenbergResearch/src/BlankPanelM1.cpp View File

@@ -1,6 +1,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct BlankPanelM1 : Module {
enum ParamIds {


+ 0
- 314
plugins/community/repos/LindenbergResearch/src/LRComponents.cpp View File

@@ -1,314 +0,0 @@
#include "LRComponents.hpp"


/**
* @brief Constructor of LCD Widget
*/
LCDWidget::LCDWidget(NVGcolor fg, unsigned char length, std::string format, LCDType type, float fontsize) {
/** load LCD ttf font */
ttfLCDDig7 = Font::load(assetPlugin(plugin, LCD_FONT_DIG7));
LCDWidget::fontsize = fontsize;

LCDWidget::type = type;

LCDWidget::length = length;
LCDWidget::format = format;

LCDWidget::fg = fg;
LCDWidget::bg = nvgRGBAf(fg.r, fg.g, fg.b, 0.15f);

for (int i = 0; i < LCDWidget::length; ++i) {
s1.append("O");
s2.append("X");
}
}


/**
* @brief Draw method of custom LCD widget
* @param vg
*/
void LCDWidget::draw(NVGcontext *vg) {
nvgFontSize(vg, fontsize);
nvgFontFaceId(vg, ttfLCDDig7->handle);
nvgTextLetterSpacing(vg, LCD_LETTER_SPACING);

nvgFillColor(vg, bg);
std::string str;

nvgTextBox(vg, 0, 0, 220, s1.c_str(), nullptr);
nvgTextBox(vg, 0, 0, 220, s2.c_str(), nullptr);

/** if set to inactive just draw the background segments */
if (!active) return;


// if set to numeric, do some formatting
if (type == NUMERIC) {
str = stringf(format.c_str(), value);

// quick and dirty, urgs
if (value < 10)
text = "0" + text;
}

// on text mode just format
if (type == TEXT) {
str = stringf(format.c_str(), text.c_str());
}

// on list mode get current item out of the current value
if (type == LIST) {
unsigned long index;
long current = lround(value);

if (current < 0) {
index = 0;
} else if ((unsigned long) current >= items.size()) {
index = items.size() - 1;
} else {
index = (unsigned long) current;
}

str = stringf(format.c_str(), items[index].c_str());
}

nvgFillColor(vg, fg);
nvgTextBox(vg, 0, 0, 220, str.c_str(), nullptr);
}


void LRLight::draw(NVGcontext *vg) {
float radius = box.size.x / 1.5f;
float oradius = radius + 14.0f;

// Solid
nvgBeginPath(vg);
nvgCircle(vg, radius, radius, radius);
nvgFillColor(vg, bgColor);
nvgFill(vg);

// Border
nvgStrokeWidth(vg, 1.0f);
NVGcolor borderColor = bgColor;
borderColor.a *= 0.5f;
nvgStrokeColor(vg, borderColor);
nvgStroke(vg);

// Inner glow
nvgGlobalCompositeOperation(vg, NVG_LIGHTER);
nvgFillColor(vg, color);
nvgFill(vg);

// Outer glow
nvgBeginPath(vg);
nvgRect(vg, radius - oradius, radius - oradius, 2 * oradius, 2 * oradius);
NVGpaint paint;
NVGcolor icol = color;
icol.a *= 0.30f;
NVGcolor ocol = color;
ocol.a = 0.00f;
paint = nvgRadialGradient(vg, radius, radius, radius, oradius, icol, ocol);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


/**
* @brief Constructor
*/
LRLight::LRLight() {
addBaseColor(nvgRGBAf(0.1, 0.3, 0.9, 0.99));
}


/**
* @brief Draw routine for cv indicator
* @param vg
*/
void Indicator::draw(NVGcontext *vg) {
NVGcolor current = normalColor;

if (active) {
/** underrun */
if (cv < 0.f - OVERFLOW_THRESHOLD) {
cv = 0.f - OVERFLOW_THRESHOLD;
current = overflowColor;
}

/** overrun */
if (cv > 1.f + OVERFLOW_THRESHOLD) {
cv = 1.f + OVERFLOW_THRESHOLD;
current = overflowColor;
}


float a = -angle + cv * angle2;
float d = distance - 4.f;
Vec p1, p2, p3;

/** compute correct point of indicator on circle */
p1.x = middle.x - sin(-a * (float) M_PI) * distance;
p1.y = middle.y - cos(-a * (float) M_PI) * distance;

p2.x = middle.x - sin(-(a + 0.1f) * (float) M_PI) * d;
p2.y = middle.y - cos(-(a + 0.1f) * (float) M_PI) * d;

p3.x = middle.x - sin(-(a - 0.1f) * (float) M_PI) * d;
p3.y = middle.y - cos(-(a - 0.1f) * (float) M_PI) * d;

nvgBeginPath(vg);
nvgMoveTo(vg, p1.x, p1.y);
nvgLineTo(vg, p2.x, p2.y);
nvgLineTo(vg, p3.x, p3.y);
nvgLineTo(vg, p1.x, p1.y);
nvgClosePath(vg);

nvgFillColor(vg, current);
nvgFill(vg);
}
}


/**
* @brief Draw shadow for circular knobs
* @param vg NVGcontext
* @param strength Alpha value of outside gradient
* @param size Outer size
* @param shift XY Offset shift from middle
*/
void LRShadow::drawShadow(NVGcontext *vg, float strength, float size) {
// add shadow
nvgBeginPath(vg);
nvgRect(vg, -20, -20, box.size.x + 40, box.size.y + 40);

NVGcolor icol = nvgRGBAf(0.0f, 0.0f, 0.0f, strength);
NVGcolor ocol = nvgRGBAf(0.0f, 0.0f, 0.0f, 0.f);;

NVGpaint paint = nvgRadialGradient(vg, box.size.x / 2 + shadowPos.x, box.size.y / 2 + shadowPos.y,
box.size.x * 0.3f, box.size.x * size, icol, ocol);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


/**
* @brief Hook into widget draw routine to simulate shadow
* @param vg
*/
void LRShadow::draw(NVGcontext *vg) {
drawShadow(vg, strength, size);
}


/**
* @brief Setter for box dimensions
* @param box
*/
void LRShadow::setBox(const Rect &box) {
LRShadow::box = box;
}


/**
* @brief Setter for outer radius size
* @param size
*/
void LRShadow::setSize(float size) {
LRShadow::size = size;
}


/**
* @brief Setter for draw strength of shadow
* @param strength
*/
void LRShadow::setStrength(float strength) {
LRShadow::strength = strength;
}


/**
* @brief Extention for panel background
* @param vg
*/
void LRPanel::draw(NVGcontext *vg) {
FramebufferWidget::draw(vg);

nvgBeginPath(vg);
nvgRect(vg, -MARGIN, -MARGIN, box.size.x + MARGIN * 2, box.size.y + MARGIN * 2);

NVGpaint paint = nvgLinearGradient(vg, offset.x, offset.y, box.size.x, box.size.y, inner, outer);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


void LRPanel::setInner(const NVGcolor &inner) {
LRPanel::inner = inner;
}


void LRPanel::setOuter(const NVGcolor &outer) {
LRPanel::outer = outer;
}


LRPanel::LRPanel() {}


const NVGcolor &LRPanel::getInner() const {
return inner;
}


const NVGcolor &LRPanel::getOuter() const {
return outer;
}


SVGRotator::SVGRotator() : FramebufferWidget() {
tw = new TransformWidget();
addChild(tw);

sw = new SVGWidget();
tw->addChild(sw);
}


/**
* @brief Set SVG image to rotator
* @param svg
*/
void SVGRotator::setSVG(std::shared_ptr<SVG> svg) {
sw->setSVG(svg);
tw->box.size = sw->box.size;
box.size = sw->box.size;
}


/**
* @brief Rotate one step
*/
void SVGRotator::step() {
tw->identity();

angle = fmodf(angle + inc, 2 * M_PI);;

Vec center = sw->box.getCenter();
tw->translate(center);
tw->rotate(angle);
tw->translate(center.neg());

dirty = true;

FramebufferWidget::step();
}


/**
* @brief
* @param module
*/
LRModuleWidget::LRModuleWidget(Module *module) : ModuleWidget(module) {
}

+ 458
- 500
plugins/community/repos/LindenbergResearch/src/LRComponents.hpp
File diff suppressed because it is too large
View File


+ 1
- 0
plugins/community/repos/LindenbergResearch/src/MS20Filter.cpp View File

@@ -2,6 +2,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct MS20Filter : LRModule {



+ 1
- 0
plugins/community/repos/LindenbergResearch/src/ReShaper.cpp View File

@@ -1,6 +1,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct ReShaper : Module {
enum ParamIds {


+ 1
- 0
plugins/community/repos/LindenbergResearch/src/SimpleFilter.cpp View File

@@ -1,6 +1,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct SimpleFilter : Module {
enum ParamIds {


+ 2
- 1
plugins/community/repos/LindenbergResearch/src/VCO.cpp View File

@@ -2,6 +2,7 @@
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct VCO : LRModule {
enum ParamIds {
@@ -37,7 +38,7 @@ struct VCO : LRModule {
};

dsp::DSPBLOscillator *osc = new dsp::DSPBLOscillator(engineGetSampleRate());
LCDWidget *lcd = new LCDWidget(nvgRGBAf(0.9, 0.2, 0.1, 1.0), 9, "%00004.3f Hz", LCDWidget::NUMERIC);
LRLCDWidget *lcd = new LRLCDWidget(nvgRGBAf(0.9, 0.2, 0.1, 1.0), 9, "%00004.3f Hz", LRLCDWidget::NUMERIC);
LRBigKnob *frqKnob = NULL;




+ 75
- 49
plugins/community/repos/LindenbergResearch/src/Westcoast.cpp View File

@@ -1,11 +1,22 @@
#include "dsp/SergeWavefolder.hpp"
#include "dsp/Serge.hpp"
#include "dsp/Lockhart.hpp"
#include "LindenbergResearch.hpp"

namespace rack_plugin_LindenbergResearch {
using namespace lrt;

struct Westcoast : LRModule {

enum RotaryStages {
OVERDRIVE = 1,
LOCKHART,
SERGE,
SATURATE,
POLYNOM,
SOFTCLIP,
HARDCLIP
};

enum ParamIds {
GAIN_PARAM,
CV_GAIN_PARAM,
@@ -25,7 +36,6 @@ struct Westcoast : LRModule {

enum OutputIds {
SHAPER_OUTPUT,
SG_OUTPUT,
NUM_OUTPUTS
};

@@ -34,11 +44,15 @@ struct Westcoast : LRModule {
};


Westcoast() : LRModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {}

Westcoast() : LRModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {
hs = new dsp::LockhartWavefolder(engineGetSampleRate());
sg = new dsp::SergeWavefolder(engineGetSampleRate());
}

dsp::LockhartWavefolder *hs = new dsp::LockhartWavefolder(engineGetSampleRate());
dsp::SergeWavefolder *sg = new dsp::SergeWavefolder(engineGetSampleRate());
dsp::LockhartWavefolder *hs;
dsp::SergeWavefolder *sg;
LRAlternateBigKnob *gain;
LRAlternateMiddleKnob *bias;

void step() override;
void onSampleRateChange() override;
@@ -46,46 +60,55 @@ struct Westcoast : LRModule {


void Westcoast::step() {
hs->setGain((params[GAIN_PARAM].value));
hs->setBias(params[BIAS_PARAM].value);
hs->setIn(inputs[SHAPER_INPUT].value);

sg->setGain((params[GAIN_PARAM].value));
sg->setBias(params[BIAS_PARAM].value);
sg->setIn(inputs[SHAPER_INPUT].value);


if (params[DCBLOCK_PARAM].value == 1)
hs->setBlockDC(true);
else
hs->setBlockDC(false);

hs->process();
sg->process();

// [bsp] let's hear what this sounds like :-)
// (note) too much gain makes all following modules go quiet permanently
float hsOut = hs->getOut();
float sgOut = sg->getOut();

switch((int)params[TYPE_PARAM].value) {
default:
case -2:
if(params[GAIN_PARAM].value < 9.8f)
outputs[SHAPER_OUTPUT].value = hsOut;
else
outputs[SHAPER_OUTPUT].value = 0.0f;
break;

case -1:
if(params[GAIN_PARAM].value < 15.8f)
outputs[SHAPER_OUTPUT].value = sgOut;
else
outputs[SHAPER_OUTPUT].value = 0.0f;
break;

outputs[SHAPER_OUTPUT].value = 0.0f;

float gaincv = 0;
float biascv = 0;

if (inputs[CV_GAIN_INPUT].active) {
gaincv = inputs[CV_GAIN_INPUT].value * quadraticBipolar(params[CV_GAIN_PARAM].value) * 4.0f;
}

if (inputs[CV_BIAS_INPUT].active) {
biascv = inputs[CV_BIAS_INPUT].value * quadraticBipolar(params[CV_BIAS_PARAM].value) * 2.0f;
}

if (bias != nullptr && gain != nullptr) {
gain->setIndicatorActive(inputs[CV_GAIN_INPUT].active);
bias->setIndicatorActive(inputs[CV_BIAS_INPUT].active);

gain->setIndicatorValue((params[GAIN_PARAM].value + gaincv) / 20);
bias->setIndicatorValue((params[BIAS_PARAM].value + (biascv + 3)) / 6);
}

outputs[SG_OUTPUT].value = sgOut;
float out;

switch (lround(params[TYPE_PARAM].value)) {
case LOCKHART: // Lockhart Model
hs->setGain((params[GAIN_PARAM].value + gaincv));
hs->setBias(params[BIAS_PARAM].value + biascv);
hs->setIn(inputs[SHAPER_INPUT].value);
hs->setBlockDC(params[DCBLOCK_PARAM].value == 1);

hs->process();
out = (float) hs->getOut();
break;
case SERGE: // Serge Model
sg->setGain((params[GAIN_PARAM].value + gaincv));
sg->setBias(params[BIAS_PARAM].value + biascv);
sg->setIn(inputs[SHAPER_INPUT].value);
sg->setBlockDC(params[DCBLOCK_PARAM].value == 1);

sg->process();
out = (float) sg->getOut();
break;
default: // invalid state, should not happen
out = 0;
break;
}

outputs[SHAPER_OUTPUT].value = out;
}


@@ -116,9 +139,13 @@ WestcoastWidget::WestcoastWidget(Westcoast *module) : LRModuleWidget(module) {
// ***** SCREWS **********

// ***** MAIN KNOBS ******
addParam(LRKnob::create<LRAlternateBigKnob>(Vec(128.7, 63.0), module, Westcoast::GAIN_PARAM, 0.25, 20.f, 1.f));
addParam(LRKnob::create<LRAlternateMiddleKnob>(Vec(136.4, 153.3), module, Westcoast::BIAS_PARAM, -0.5f, 0.5f, 0.f));
addParam(LRKnob::create<LRMiddleIncremental>(Vec(85, 274.3), module, Westcoast::TYPE_PARAM, -3, 3, 0));
module->gain = LRKnob::create<LRAlternateBigKnob>(Vec(128.7, 63.0), module, Westcoast::GAIN_PARAM, 0.0, 20.f, 1.f);
module->bias = LRKnob::create<LRAlternateMiddleKnob>(Vec(136.4, 153.3), module, Westcoast::BIAS_PARAM, -6.f, 6.f, 0.f);

addParam(module->gain);
addParam(module->bias);

addParam(LRKnob::create<LRMiddleIncremental>(Vec(85, 274.3), module, Westcoast::TYPE_PARAM, 1, 6, 1));

addParam(LRKnob::create<LRAlternateSmallKnob>(Vec(83.4, 101.00), module, Westcoast::CV_GAIN_PARAM, -1.f, 1.f, 0.f));
addParam(LRKnob::create<LRAlternateSmallKnob>(Vec(83.4, 183.0), module, Westcoast::CV_BIAS_PARAM, -1.f, 1.f, 0.f));
@@ -135,11 +162,10 @@ WestcoastWidget::WestcoastWidget(Westcoast *module) : LRModuleWidget(module) {

// ***** OUTPUTS *********
addOutput(Port::create<LRIOPortC>(Vec(159.4, 324.6), Port::OUTPUT, module, Westcoast::SHAPER_OUTPUT));
// addOutput(Port::create<LRIOPortC>(Vec(159.4, 300.7), Port::OUTPUT, module, Westcoast::SG_OUTPUT));
// ***** OUTPUTS *********

// ***** SWITCH *********
// addParam(ParamWidget::create<LRSwitch>(Vec(119, 331), module, Westcoast::DCBLOCK_PARAM, 0.0, 1.0, 1.0));
addParam(ParamWidget::create<LRSwitch>(Vec(119, 331), module, Westcoast::DCBLOCK_PARAM, 0.0, 1.0, 1.0));
// ***** SWITCH *********
}



+ 1
- 1
plugins/community/repos/LindenbergResearch/src/dsp/DSPMath.hpp View File

@@ -365,7 +365,7 @@ inline double sign(double x) {
* @param ln1
* @return
*/
inline double lambert_W(double x, double ln1) {
inline double lambert_W_Halley(double x, double ln1) {
double w;
double p, r, s, err;
double expw;


+ 2
- 2
plugins/community/repos/LindenbergResearch/src/dsp/HQTrig.hpp View File

@@ -59,7 +59,7 @@ namespace dsp {
* @param x
* @return
*/
double computeAA(double x) {
inline double computeAA(double x) {
double fn = log(cosh(x));
double xn, out;

@@ -80,7 +80,7 @@ namespace dsp {
/**
* @brief Compute tanh
*/
void process() override {
inline void process() override {
rs->doUpsample(STD_CHANNEL, in);

for (int i = 0; i < rs->getFactor(); i++) {


+ 97
- 0
plugins/community/repos/LindenbergResearch/src/dsp/Horner.h View File

@@ -0,0 +1,97 @@
/*
Implementation of the Horner method of polynomial evaluation

Copyright (C) 2011 Darko Veberic, darko.veberic@ijs.si

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once


namespace dsp {

template<typename Float, class Tag, unsigned int order>
struct Polynomial {
static inline Float Coeff();
static inline Float Coeff(const Float x);
};


template<typename Float, class Tag, unsigned int order>
struct Horner {
static Float Recurse(const Float term, const Float x) {
return Horner<Float, Tag, order - 1>::Recurse(term * x + Polynomial<Float, Tag, order>::Coeff(), x);
}


static Float RecurseAlt(const Float term, const Float x) {
return Horner<Float, Tag, order - 1>::RecurseAlt(Polynomial<Float, Tag, order>::Coeff() + x * term, x);
}


static Float Eval(const Float x) { return Horner<Float, Tag, order - 1>::Recurse(Polynomial<Float, Tag, order>::Coeff(), x); }


static Float EvalAlt(const Float x) { return Horner<Float, Tag, order - 1>::RecurseAlt(Polynomial<Float, Tag, order>::Coeff(), x); }


//
static Float Recurse(const Float term, const Float x, const Float y) {
return Horner<Float, Tag, order - 1>::Recurse(term * x + Polynomial<Float, Tag, order>::Coeff(y), x, y);
}


static Float Eval(const Float x, const Float y) {
return Horner<Float, Tag, order - 1>::Recurse(Polynomial<Float, Tag, order>::Coeff(y), x, y);
}
};


template<typename Float, class Tag>
struct Horner<Float, Tag, 0> {
static Float Recurse(const Float term, const Float x) { return term * x + Polynomial<Float, Tag, 0>::Coeff(); }


static Float Eval(const Float x) { return Polynomial<Float, Tag, 0>::Coeff(); }


//
static Float Recurse(const Float term, const Float x, const Float y) { return term * x + Polynomial<Float, Tag, 0>::Coeff(y); }


static Float Eval(const Float x, const Float y) { return Polynomial<Float, Tag, 0>::Coeff(y); }
};


#define HORNER_COEFF(_Tag_, _i_, _c_) \
template<typename Float> struct Polynomial<Float, _Tag_, _i_> { static Float Coeff() { return Float(_c_); } }
#define HORNER_COEFF2(_Tag_, _i_, _c_y_) \
template<typename Float> struct Polynomial<Float, _Tag_, _i_> { static Float Coeff(const Float y) { return Float(_c_y_); } }


#define HORNER0(F, x, c0) (F)(c0)
#define HORNER1(F, x, c1, c0) HORNER0(F, x, (F)(c1)*(x) + (F)(c0) )
#define HORNER2(F, x, c2, c1, c0) HORNER1(F, x, (F)(c2)*(x) + (F)(c1), c0)
#define HORNER3(F, x, c3, c2, c1, c0) HORNER2(F, x, (F)(c3)*(x) + (F)(c2), c1, c0)
#define HORNER4(F, x, c4, c3, c2, c1, c0) HORNER3(F, x, (F)(c4)*(x) + (F)(c3), c2, c1, c0)
#define HORNER5(F, x, c5, c4, c3, c2, c1, c0) HORNER4(F, x, (F)(c5)*(x) + (F)(c4), c3, c2, c1, c0)
#define HORNER6(F, x, c6, c5, c4, c3, c2, c1, c0) HORNER5(F, x, (F)(c6)*(x) + (F)(c5), c4, c3, c2, c1, c0)
#define HORNER7(F, x, c7, c6, c5, c4, c3, c2, c1, c0) HORNER6(F, x, (F)(c7)*(x) + (F)(c6), c5, c4, c3, c2, c1, c0)
#define HORNER8(F, x, c8, c7, c6, c5, c4, c3, c2, c1, c0) HORNER7(F, x, (F)(c8)*(x) + (F)(c7), c6, c5, c4, c3, c2, c1, c0)
#define HORNER9(F, x, c9, c8, c7, c6, c5, c4, c3, c2, c1, c0) HORNER8(F, x, (F)(c9)*(x) + (F)(c8), c7, c6, c5, c4, c3, c2, c1, c0)

}



+ 0
- 1
plugins/community/repos/LindenbergResearch/src/dsp/LadderFilter.cpp View File

@@ -3,7 +3,6 @@

using namespace dsp;


/**
* @brief Check parameter
*/


+ 330
- 0
plugins/community/repos/LindenbergResearch/src/dsp/LambertW.cpp View File

@@ -0,0 +1,330 @@
/*
Implementation of the Lambert W function
Copyright (C) 2011 Darko Veberic, darko.veberic@ijs.si
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include <cmath>
#include "Horner.h"

using namespace dsp;

// fork macro to keep the tree balanced
#define Y2(d1, c12, d2) \
((c12) ? (d1) : (d2))
#define Y3(d1, c12, d2, c23, d3) \
Y2(Y2(d1, c12, d2), c23, d3)
#define Y4(d1, c12, d2, c23, d3, c34, d4) \
Y3(d1, c12, d2, c23, Y2(d3, c34, d4))
#define Y5(d1, c12, d2, c23, d3, c34, d4, c45, d5) \
Y4(Y2(d1, c12, d2), c23, d3, c34, d4, c45, d5)
#define Y6(d1, c12, d2, c23, d3, c34, d4, c45, d5, c56, d6) \
Y5(d1, c12, d2, c23, d3, c34, d4, c45, Y2(d5, c56, d6))
#define Y7(d1, c12, d2, c23, d3, c34, d4, c45, d5, c56, d6, c67, d7) \
Y6(d1, c12, d2, c23, Y2(d3, c34, d4), c45, d5, c56, d6, c67, d7)


namespace dsp {

class BranchPoint { };
HORNER_COEFF(BranchPoint, 0, -1);
HORNER_COEFF(BranchPoint, 1, 1);
HORNER_COEFF(BranchPoint, 2, -0.333333333333333333e0);
HORNER_COEFF(BranchPoint, 3, 0.152777777777777777e0);
HORNER_COEFF(BranchPoint, 4, -0.79629629629629630e-1);
HORNER_COEFF(BranchPoint, 5, 0.44502314814814814e-1);
HORNER_COEFF(BranchPoint, 6, -0.25984714873603760e-1);
HORNER_COEFF(BranchPoint, 7, 0.15635632532333920e-1);
HORNER_COEFF(BranchPoint, 8, -0.96168920242994320e-2);
HORNER_COEFF(BranchPoint, 9, 0.60145432529561180e-2);
HORNER_COEFF(BranchPoint, 10, -0.38112980348919993e-2);
HORNER_COEFF(BranchPoint, 11, 0.24408779911439826e-2);
HORNER_COEFF(BranchPoint, 12, -0.15769303446867841e-2);
HORNER_COEFF(BranchPoint, 13, 0.10262633205076071e-2);
HORNER_COEFF(BranchPoint, 14, -0.67206163115613620e-3);
HORNER_COEFF(BranchPoint, 15, 0.44247306181462090e-3);
HORNER_COEFF(BranchPoint, 16, -0.29267722472962746e-3);
HORNER_COEFF(BranchPoint, 17, 0.19438727605453930e-3);
HORNER_COEFF(BranchPoint, 18, -0.12957426685274883e-3);
HORNER_COEFF(BranchPoint, 19, 0.86650358052081260e-4);

template<unsigned int order>
class AsymptoticPolynomialB { };
//HORNER_COEFF(AsymptoticPolynomialB<0>, 0, 0);
//HORNER_COEFF(AsymptoticPolynomialB<0>, 1, -1);
//HORNER_COEFF(AsymptoticPolynomialB<1>, 0, 0);
//HORNER_COEFF(AsymptoticPolynomialB<1>, 1, 1);
HORNER_COEFF(AsymptoticPolynomialB<2>, 0, 0);
HORNER_COEFF(AsymptoticPolynomialB<2>, 1, -1);
HORNER_COEFF(AsymptoticPolynomialB<2>, 2, 1./2);
HORNER_COEFF(AsymptoticPolynomialB<3>, 0, 0);
HORNER_COEFF(AsymptoticPolynomialB<3>, 1, 1);
HORNER_COEFF(AsymptoticPolynomialB<3>, 2, -3./2);
HORNER_COEFF(AsymptoticPolynomialB<3>, 3, 1./3);
HORNER_COEFF(AsymptoticPolynomialB<4>, 0, 0);
HORNER_COEFF(AsymptoticPolynomialB<4>, 1, -1);
HORNER_COEFF(AsymptoticPolynomialB<4>, 2, 3);
HORNER_COEFF(AsymptoticPolynomialB<4>, 3, -11./6);
HORNER_COEFF(AsymptoticPolynomialB<4>, 4, 1./4);
HORNER_COEFF(AsymptoticPolynomialB<5>, 0, 0);
HORNER_COEFF(AsymptoticPolynomialB<5>, 1, 1);
HORNER_COEFF(AsymptoticPolynomialB<5>, 2, -5);
HORNER_COEFF(AsymptoticPolynomialB<5>, 3, 35./6);
HORNER_COEFF(AsymptoticPolynomialB<5>, 4, -25./12);
HORNER_COEFF(AsymptoticPolynomialB<5>, 5, 1./5);
class AsymptoticPolynomialA { };
//HORNER_COEFF2(AsymptoticPolynomialA, 0, (Horner<Float, AsymptoticPolynomialB<0>, 1>::Eval(y)));
HORNER_COEFF2(AsymptoticPolynomialA, 0, -y);
//HORNER_COEFF2(AsymptoticPolynomialA, 1, (Horner<Float, AsymptoticPolynomialB<1>, 1>::Eval(y)));
HORNER_COEFF2(AsymptoticPolynomialA, 1, y);
HORNER_COEFF2(AsymptoticPolynomialA, 2, (Horner<Float, AsymptoticPolynomialB<2>, 2>::Eval(y)));
HORNER_COEFF2(AsymptoticPolynomialA, 3, (Horner<Float, AsymptoticPolynomialB<3>, 3>::Eval(y)));
HORNER_COEFF2(AsymptoticPolynomialA, 4, (Horner<Float, AsymptoticPolynomialB<4>, 4>::Eval(y)));
HORNER_COEFF2(AsymptoticPolynomialA, 5, (Horner<Float, AsymptoticPolynomialB<5>, 5>::Eval(y)));


template<typename Float, int order>
inline
Float
AsymptoticExpansionImpl(const Float a, const Float b)
{
return a + Horner<Float, AsymptoticPolynomialA, order>::Eval(1/a, b);
}


template<typename Float, int branch, int order>
struct LogRecursionImpl {
enum { eSign = 2*branch + 1 };
static Float Step(const Float logsx)
{ return logsx - log(eSign * LogRecursionImpl<Float, branch, order-1>::Step(logsx)); }
};

template<typename Float, int branch>
struct LogRecursionImpl<Float, branch, 0> {
static Float Step(const Float logsx) { return logsx; }
};


template<typename Float, int branch>
class Branch {
public:
template<int order>
static Float BranchPointExpansion(const Float x)
{ return Horner<Float, BranchPoint, order>::Eval(eSign * sqrt(2*(Float(M_E)*x+1))); }

// Asymptotic expansion: Corless et al. 1996, de Bruijn (1981)
template<int order>
static
Float
AsymptoticExpansion(const Float x)
{
const Float logsx = log(eSign * x);
const Float logslogsx = log(eSign * logsx);
return AsymptoticExpansionImpl<Float, order>(logsx, logslogsx);
}

// Logarithmic recursion
template<int order>
static Float LogRecursion(const Float x)
{ return LogRecursionImpl<Float, branch, order>::Step(log(eSign * x)); }

private:
enum { eSign = 2*branch + 1 };
};


// iterations

template<typename Float>
inline
Float
HalleyStep(const Float x, const Float w)
{
const Float ew = exp(w);
const Float wew = w * ew;
const Float wewx = wew - x;
const Float w1 = w + 1;
return w - wewx / (ew * w1 - (w + 2) * wewx/(2*w1));
}


template<typename Float>
inline
Float
FritschStep(const Float x, const Float w)
{
const Float z = log(x/w) - w;
const Float w1 = w + 1;
const Float q = 2 * w1 * (w1 + Float(2./3)*z);
const Float eps = z / w1 * (q - z) / (q - 2*z);
return w * (1 + eps);
}


template<typename Float>
inline
Float
SchroederStep(const Float x, const Float w)
{
const Float y = x * exp(-w);
const Float f0 = w - y;
const Float f1 = 1 + y;
const Float f00 = f0*f0;
const Float f11 = f1*f1;
const Float f0y = f0*y;
return w - 4*f0*(6*f1*(f11 + f0y) + f00*y) / (f11*(24*f11 + 36*f0y) + f00*(6*y*y + 8*f1*y + f0y));
}


template<
typename Float,
double IterationStep(const Float x, const Float w)
>
struct Iterator {

template<int n, class = void>
struct Depth {
static Float Recurse(const Float x, Float w)
{ return Depth<n-1>::Recurse(x, IterationStep(x, w)); }
};

// stop condition
template<class T>
struct Depth<1, T> {
static Float Recurse(const Float x, const Float w) { return IterationStep(x, w); }
};

// identity
template<class T>
struct Depth<0, T> {
static Float Recurse(const Float x, const Float w) { return w; }
};

};


// Rational approximations

template<typename Float, int branch, int n>
struct Pade {
static inline Float Approximation(const Float x);
};


template<typename Float>
struct Pade<Float, 0, 1> {
static inline Float Approximation(const Float x)
{ return x * HORNER4(Float, x, 0.07066247420543414, 2.4326814530577687, 6.39672835731526, 4.663365025836821, 0.99999908757381) /
HORNER4(Float, x, 1.2906660139511692, 7.164571775410987, 10.559985088953114, 5.66336307375819, 1); }
};


template<typename Float>
struct Pade<Float, 0, 2> {
static inline Float Approximation(const Float x)
{ const Float y = log(Float(0.5)*x) - 2;
return 2 + y * HORNER3(Float, y, 0.00006979269679670452, 0.017110368846615806, 0.19338607770900237, 0.6666648896499793) /
HORNER2(Float, y, 0.0188060684652668, 0.23451269827133317, 1); }
};


template<typename Float>
struct Pade<Float, -1, 4> {
static inline Float Approximation(const Float x)
{ return HORNER4(Float, x, -2793.4565508841197, -1987.3632221106518, 385.7992853617571, 277.2362778379572, -7.840776922133643) /
HORNER4(Float, x, 280.6156995997829, 941.9414019982657, 190.64429338894644, -63.93540494358966, 1); }
};


template<typename Float>
struct Pade<Float, -1, 5> {
static inline Float Approximation(const Float x)
{ const Float y = log(-x);
return -exp(
HORNER3(Float, y, 0.16415668298255184, -3.334873920301941, 2.4831415860003747, 4.173424474574879) /
HORNER3(Float, y, 0.031239411487374164, -1.2961659693400076, 4.517178492772906, 1)
); }
};


template<typename Float>
struct Pade<Float, -1, 6> {
static inline Float Approximation(const Float x)
{ const Float y = log(-x);
return -exp(
HORNER4(Float, y, 0.000026987243254533254, -0.007692106448267341, 0.28793461719300206, -1.5267058884647018, -0.5370669268991288) /
HORNER4(Float, y, 3.6006502104930343e-6, -0.0015552463555591487, 0.08801194682489769, -0.8973922357575583, 1)
); }
};


template<typename Float>
struct Pade<Float, -1, 7> {
static inline Float Approximation(const Float x)
{ return -1 - sqrt(
HORNER4(Float, x, 988.0070769375508, 1619.8111957356814, 989.2017745708083, 266.9332506485452, 26.875022558546036) /
HORNER4(Float, x, -205.50469464210596, -270.0440832897079, -109.554245632316, -11.275355431307334, 1)
); }
};


template<int branch>
double LambertW(const double x);


template<>
double
LambertW<0>(const double x)
{
typedef double d;
return Y5(
(Branch<d, 0>::BranchPointExpansion<8>(x)),
x < -0.367679,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Branch<d, 0>::BranchPointExpansion<10>(x))),
x < -0.311,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Pade<d, 0, 1>::Approximation(x))),
x < 1.38,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Pade<d, 0, 2>::Approximation(x))),
x < 236,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Branch<d, 0>::AsymptoticExpansion<6-1>(x)))
);
}


template<>
double
LambertW<-1>(const double x)
{
typedef double d;
return Y7(
(Branch<d, -1>::BranchPointExpansion<8>(x)),
x < -0.367579,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Branch<d, -1>::BranchPointExpansion<4>(x))),
x < -0.366079,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Pade<d, -1, 7>::Approximation(x))),
x < -0.289379,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Pade<d, -1, 4>::Approximation(x))),
x < -0.0509,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Pade<d, -1, 5>::Approximation(x))),
x < -0.000131826,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Pade<d, -1, 6>::Approximation(x))),
x < -6.30957e-31,
(Iterator<d, HalleyStep<d> >::Depth<1>::Recurse(x, Branch<d, -1>::LogRecursion<3>(x)))
);
}


// instantiations
template double LambertW<0>(const double x);
template double LambertW<-1>(const double x);

}

+ 46
- 0
plugins/community/repos/LindenbergResearch/src/dsp/LambertW.h View File

@@ -0,0 +1,46 @@
/*
Implementation of the Lambert W function

Copyright (C) 2011 Darko Veberic, darko.veberic@ijs.si

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#include <limits>


namespace dsp {

template<int branch>
double LambertW(const double x);


inline
double
LambertW(const int branch, const double x) {
switch (branch) {
case -1:
return LambertW<-1>(x);
case 0:
return LambertW<0>(x);
default:
return std::numeric_limits<double>::quiet_NaN();
}
}

}



+ 11
- 17
plugins/community/repos/LindenbergResearch/src/dsp/Lockhart.cpp View File

@@ -1,4 +1,5 @@
#include "Lockhart.hpp"
#include "LambertW.h"

using namespace dsp;

@@ -10,7 +11,7 @@ double LockhartWFStage::compute(double x) {
// Compute Antiderivative
l = sign(x);
u = d * pow(M_E, l * b * x);
ln = lambert_W_Fritsch(u);
ln = dsp::LambertW<0>(u);
fn = (0.5 * LOCKHART_VT / b) * (ln * (ln + 2.)) - 0.5 * a * x * x;

// Check for ill-conditioning
@@ -18,7 +19,7 @@ double LockhartWFStage::compute(double x) {
// Compute Averaged Wavefolder Output
xn = 0.5 * (x + xn1);
u = d * pow(M_E, l * b * xn);
ln = lambert_W_Fritsch(u);
ln = dsp::LambertW<0>(u);
out = l * LOCKHART_VT * ln - a * xn;

} else {
@@ -59,22 +60,24 @@ void LockhartWavefolder::process() {

double LockhartWavefolder::compute(double x) {
double out;
double in = (x / 8. + bias) * gain;
double in = clampd(x / 5., -SHAPER_MAX_VOLTS, SHAPER_MAX_VOLTS);

in *= 0.5;
in *= clampd(gain, 0., 20.); // add gain
in += clampd(bias, -6., 6.); // add bias

in *= 0.33333;

in = lh1.compute(in);
in = lh2.compute(in);
in = lh3.compute(in);
in = lh4.compute(in);

in *= 2.f;

in *= 3.f;
if (blockDC) in = dc->filter(in);

out = tanh1->next(in / 2.);
out = tanh1->next(in);

return out * 20 * 2;
return out * 20.;
}


@@ -83,12 +86,3 @@ LockhartWavefolder::LockhartWavefolder(float sr) : WaveShaper(sr) {
tanh1 = new HQTanh(sr, 4);
}


bool LockhartWavefolder::isBlockDC() const {
return blockDC;
}


void LockhartWavefolder::setBlockDC(bool blockDC) {
LockhartWavefolder::blockDC = blockDC;
}

+ 4
- 6
plugins/community/repos/LindenbergResearch/src/dsp/Lockhart.hpp View File

@@ -10,7 +10,8 @@
#define LOCKHART_Is 10e-16
#define LOCKHART_THRESHOLD 10e-10

#define DCBLOCK_ALPHA 0.9999


namespace dsp {

/**
@@ -37,9 +38,7 @@ namespace dsp {

private:
LockhartWFStage lh1, lh2, lh3, lh4;
DCBlocker *dc = new DCBlocker(DCBLOCK_ALPHA);
HQTanh *tanh1;
bool blockDC = false;



public:
@@ -51,8 +50,7 @@ namespace dsp {
double compute(double x) override;


bool isBlockDC() const;
void setBlockDC(bool blockDC);


};



+ 2
- 2
plugins/community/repos/LindenbergResearch/src/dsp/Oscillator.hpp View File

@@ -8,8 +8,8 @@
#define LFO_MODE -4
#define CV_BOUNDS 10.f
#define DETUNE_AMOUNT 2.0f
#define DRIFT_AMOUNT 1.4f
#define DRIFT_FREQ 0.005f
#define DRIFT_AMOUNT 0.8f
#define DRIFT_FREQ 0.0005f
#define DRIFT_VARIANZ 0.004

namespace dsp {


+ 81
- 0
plugins/community/repos/LindenbergResearch/src/dsp/Serge.cpp View File

@@ -0,0 +1,81 @@
#include "Serge.hpp"
#include "LambertW.h"

using namespace dsp;


double SergeWFStage::compute(double x) {
double out;
double l, u, ln, fn, xn;

l = sign(x);
u = (SERGE_R1 * SERGE_IS) / (SERGE_ETA * SERGE_VT) * pow(M_E, (l * x) / (SERGE_ETA * SERGE_VT));
ln = dsp::LambertW<0>(u);

fn = SERGE_VT * SERGE_ETA * SERGE_ETA * SERGE_VT * (ln * (ln + 2)) - x * x / 2;

// Check for ill-conditioning
if (abs(x - xn1) < SERGE_THRESHOLD) {
// Compute Averaged Wavefolder Output
xn = 0.5 * (x + xn1);
u = (SERGE_R1 * SERGE_IS) / (SERGE_ETA * SERGE_VT) * pow(M_E, (l * xn) / (SERGE_VT * SERGE_ETA));
ln = dsp::LambertW<0>(u);
out = 2 * l * SERGE_ETA * SERGE_VT * ln - xn;
} else {
// Apply AA Form
out = (fn - fn1) / (x - xn1);
}

fn1 = fn;
xn1 = x;

return out;
}


SergeWFStage::SergeWFStage() {
fn1 = 0;
xn1 = 0;
}


SergeWavefolder::SergeWavefolder(float sr) : WaveShaper(sr) {
init();
tanh1 = new HQTanh(sr, 4);
}


void SergeWavefolder::init() {
dsp::WaveShaper::rs = new dsp::Resampler<1>(1);
}


void SergeWavefolder::process() {
WaveShaper::process();
}


double SergeWavefolder::compute(double x) {
double out;
double in = clampd(x / 5., -SHAPER_MAX_VOLTS, SHAPER_MAX_VOLTS);

in *= clampd(gain, 0., 20.); // add gain
in += clampd(bias, -3., 3.); // add bias

in *= 0.5;

in = sg1.compute(in);
in = sg2.compute(in);
in = sg3.compute(in);
in = sg4.compute(in);
in = sg5.compute(in);
in = sg6.compute(in);

in *= 2.f;
if (blockDC) in = dc->filter(in);

out = tanh1->next(in);

return out * 20.;
}


+ 44
- 0
plugins/community/repos/LindenbergResearch/src/dsp/Serge.hpp View File

@@ -0,0 +1,44 @@
#pragma once

#include "WaveShaper.hpp"
#include "HQTrig.hpp"

#define SERGE_R1 33e3
#define SERGE_IS 2.52e-9
#define SERGE_VT 25.864e-3
#define SERGE_ETA 1.752

#define SERGE_THRESHOLD 10e-10

namespace dsp {

struct SergeWFStage {
private:
double fn1, xn1;

public:
SergeWFStage();
double compute(double x);
};


struct SergeWavefolder : WaveShaper {

private:
SergeWFStage sg1, sg2, sg3, sg4, sg5, sg6;
// DCBlocker *dc = new DCBlocker(DCBLOCK_ALPHA);
HQTanh *tanh1;
bool blockDC = false;


public:
explicit SergeWavefolder(float sr);

void init() override;
void process() override;
double compute(double x) override;

};


}

+ 8
- 0
plugins/community/repos/LindenbergResearch/src/dsp/WaveShaper.cpp View File

@@ -81,6 +81,14 @@ void WaveShaper::process() {
WaveShaper::WaveShaper(float sr) : DSPEffect(sr) {}


bool WaveShaper::isBlockDC() const {
return blockDC;
}


void WaveShaper::setBlockDC(bool blockDC) {
WaveShaper::blockDC = blockDC;
}





+ 10
- 0
plugins/community/repos/LindenbergResearch/src/dsp/WaveShaper.hpp View File

@@ -2,6 +2,10 @@

#include "DSPMath.hpp"
#include "DSPEffect.hpp"
#include "HQTrig.hpp"

#define SHAPER_MAX_VOLTS 1.5
#define DCBLOCK_ALPHA 0.998

namespace dsp {

@@ -17,6 +21,10 @@ namespace dsp {
protected:
Resampler<1> *rs;

DCBlocker *dc = new DCBlocker(DCBLOCK_ALPHA);
HQTanh *tanh1;
bool blockDC = false;

double in, gain, bias, k;
double out;
Vec amp;
@@ -53,6 +61,8 @@ namespace dsp {

const Vec &getAmplitude() const;

bool isBlockDC() const;
void setBlockDC(bool blockDC);

/**
* @brief Implements the oversamping of compute method


+ 69
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRCVIndicator.cpp View File

@@ -0,0 +1,69 @@
#include "../LRComponents.hpp"


namespace lrt {


/**
* @brief Init indicator
* @param distance Radius viewed from the middle
* @param angle Angle of active knob area
*/
LRCVIndicator::LRCVIndicator(float distance, float angle) {
LRCVIndicator::distance = distance;
LRCVIndicator::angle = angle;

/** for optimization */
angle2 = 2 * angle;
}


/**
* @brief Draw routine for cv indicator
* @param vg
*/
void LRCVIndicator::draw(NVGcontext *vg) {
NVGcolor current = normalColor;

if (active) {
/** underrun */
if (cv < 0.f - OVERFLOW_THRESHOLD) {
cv = 0.f - OVERFLOW_THRESHOLD;
current = overflowColor;
}

/** overrun */
if (cv > 1.f + OVERFLOW_THRESHOLD) {
cv = 1.f + OVERFLOW_THRESHOLD;
current = overflowColor;
}


float a = -angle + cv * angle2;
float d = distance - 4.f;
Vec p1, p2, p3;

/** compute correct point of indicator on circle */
p1.x = middle.x - sin(-a * (float) M_PI) * distance;
p1.y = middle.y - cos(-a * (float) M_PI) * distance;

p2.x = middle.x - sin(-(a + 0.1f) * (float) M_PI) * d;
p2.y = middle.y - cos(-(a + 0.1f) * (float) M_PI) * d;

p3.x = middle.x - sin(-(a - 0.1f) * (float) M_PI) * d;
p3.y = middle.y - cos(-(a - 0.1f) * (float) M_PI) * d;

nvgBeginPath(vg);
nvgMoveTo(vg, p1.x, p1.y);
nvgLineTo(vg, p2.x, p2.y);
nvgLineTo(vg, p3.x, p3.y);
nvgLineTo(vg, p1.x, p1.y);
nvgClosePath(vg);

nvgFillColor(vg, current);
nvgFill(vg);
}
}


}

+ 67
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRKnob.cpp View File

@@ -0,0 +1,67 @@
#include "../LRComponents.hpp"


namespace lrt {

LRKnob::LRKnob() {
minAngle = -ANGLE * (float) M_PI;
maxAngle = ANGLE * (float) M_PI;

shader = new LRShadow();
removeChild(shadow); // uninstall default

font = Font::load(assetGlobal("res/fonts/ShareTechMono-Regular.ttf"));

indicator = new LRCVIndicator(15.f, ANGLE);
addChild(indicator);
}


void LRKnob::setSVG(std::shared_ptr<SVG> svg) {
SVGKnob::setSVG(svg);

/** inherit dimensions after loaded svg */
indicator->box.size = sw->box.size;
indicator->middle = Vec(box.size.x / 2, box.size.y / 2);
shader->setBox(box);
}


void LRKnob::draw(NVGcontext *vg) {
/** shadow */
shader->draw(vg);

/** component */
FramebufferWidget::draw(vg);

/** debug numerical values */
if (debug) {
auto text = stringf("%4.2f", value);
nvgFontSize(vg, 15);
nvgFontFaceId(vg, font->handle);

nvgFillColor(vg, nvgRGBAf(1.f, 1.f, 1.0f, 1.0f));
nvgText(vg, box.size.x - 5, box.size.y + 10, text.c_str(), NULL);
}
}


void LRKnob::setSnap(float position, float sensitivity) {
snap = true;
snapSens = sensitivity;
snapAt = position;
}


void LRKnob::unsetSnap() {
snap = false;
}


void LRKnob::onChange(EventChange &e) {
// if the value still inside snap-tolerance keep the value zero
if (snap && value > -snapSens + snapAt && value < snapSens + snapAt) value = 0;
SVGKnob::onChange(e);
}

}

+ 80
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRLCDWidget.cpp View File

@@ -0,0 +1,80 @@
#include "../LRComponents.hpp"

namespace lrt {

/**
* @brief Constructor of LCD Widget
*/
LRLCDWidget::LRLCDWidget(NVGcolor fg, unsigned char length, std::string format, LCDType type, float fontsize) {
/** load LCD ttf font */
ttfLCDDig7 = Font::load(assetPlugin(plugin, LCD_FONT_DIG7));
LRLCDWidget::fontsize = fontsize;

LRLCDWidget::type = type;

LRLCDWidget::length = length;
LRLCDWidget::format = format;

LRLCDWidget::fg = fg;
LRLCDWidget::bg = nvgRGBAf(fg.r, fg.g, fg.b, 0.15f);

for (int i = 0; i < LRLCDWidget::length; ++i) {
s1.append("O");
s2.append("X");
}
}


/**
* @brief Draw method of custom LCD widget
* @param vg
*/
void LRLCDWidget::draw(NVGcontext *vg) {
nvgFontSize(vg, fontsize);
nvgFontFaceId(vg, ttfLCDDig7->handle);
nvgTextLetterSpacing(vg, LCD_LETTER_SPACING);

nvgFillColor(vg, bg);
std::string str;

nvgTextBox(vg, 0, 0, 220, s1.c_str(), nullptr);
nvgTextBox(vg, 0, 0, 220, s2.c_str(), nullptr);

/** if set to inactive just draw the background segments */
if (!active) return;


// if set to numeric, do some formatting
if (type == NUMERIC) {
str = stringf(format.c_str(), value);

// quick and dirty, urgs
if (value < 10)
text = "0" + text;
}

// on text mode just format
if (type == TEXT) {
str = stringf(format.c_str(), text.c_str());
}

// on list mode get current item out of the current value
if (type == LIST) {
unsigned long index;
long current = lround(value);

if (current < 0) {
index = 0;
} else if ((unsigned long) current >= items.size()) {
index = items.size() - 1;
} else {
index = (unsigned long) current;
}

str = stringf(format.c_str(), items[index].c_str());
}

nvgFillColor(vg, fg);
nvgTextBox(vg, 0, 0, 220, str.c_str(), nullptr);
}
}

+ 48
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRLight.cpp View File

@@ -0,0 +1,48 @@
#include "../LRComponents.hpp"

namespace lrt {

void LRLight::draw(NVGcontext *vg) {
float radius = box.size.x / 1.5f;
float oradius = radius + 14.0f;

// Solid
nvgBeginPath(vg);
nvgCircle(vg, radius, radius, radius);
nvgFillColor(vg, bgColor);
nvgFill(vg);

// Border
nvgStrokeWidth(vg, 1.0f);
NVGcolor borderColor = bgColor;
borderColor.a *= 0.5f;
nvgStrokeColor(vg, borderColor);
nvgStroke(vg);

// Inner glow
nvgGlobalCompositeOperation(vg, NVG_LIGHTER);
nvgFillColor(vg, color);
nvgFill(vg);

// Outer glow
nvgBeginPath(vg);
nvgRect(vg, radius - oradius, radius - oradius, 2 * oradius, 2 * oradius);
NVGpaint paint;
NVGcolor icol = color;
icol.a *= 0.30f;
NVGcolor ocol = color;
ocol.a = 0.00f;
paint = nvgRadialGradient(vg, radius, radius, radius, oradius, icol, ocol);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


/**
* @brief Constructor
*/
LRLight::LRLight() {
addBaseColor(nvgRGBAf(0.1, 0.3, 0.9, 0.99));
}

}

+ 43
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRPanel.cpp View File

@@ -0,0 +1,43 @@
#include "../LRComponents.hpp"

namespace lrt {

/**
* @brief Extention for panel background
* @param vg
*/
void LRPanel::draw(NVGcontext *vg) {
FramebufferWidget::draw(vg);

nvgBeginPath(vg);
nvgRect(vg, -MARGIN, -MARGIN, box.size.x + MARGIN * 2, box.size.y + MARGIN * 2);

NVGpaint paint = nvgLinearGradient(vg, offset.x, offset.y, box.size.x, box.size.y, inner, outer);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


void LRPanel::setInner(const NVGcolor &inner) {
LRPanel::inner = inner;
}


void LRPanel::setOuter(const NVGcolor &outer) {
LRPanel::outer = outer;
}


LRPanel::LRPanel() {}


const NVGcolor &LRPanel::getInner() const {
return inner;
}


const NVGcolor &LRPanel::getOuter() const {
return outer;
}

}

+ 42
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRSVGRotator.cpp View File

@@ -0,0 +1,42 @@
#include "../LRComponents.hpp"

namespace lrt {

SVGRotator::SVGRotator() : FramebufferWidget() {
tw = new TransformWidget();
addChild(tw);

sw = new SVGWidget();
tw->addChild(sw);
}


/**
* @brief Set SVG image to rotator
* @param svg
*/
void SVGRotator::setSVG(std::shared_ptr<SVG> svg) {
sw->setSVG(svg);
tw->box.size = sw->box.size;
box.size = sw->box.size;
}


/**
* @brief Rotate one step
*/
void SVGRotator::step() {
tw->identity();

angle = fmodf(angle + inc, 2 * M_PI);;

Vec center = sw->box.getCenter();
tw->translate(center);
tw->rotate(angle);
tw->translate(center.neg());

dirty = true;

FramebufferWidget::step();
}
}

+ 69
- 0
plugins/community/repos/LindenbergResearch/src/widgets/LRShadow.cpp View File

@@ -0,0 +1,69 @@
#include "../LRComponents.hpp"

namespace lrt {


/**
* @brief Draw shadow for circular knobs
* @param vg NVGcontext
* @param strength Alpha value of outside gradient
* @param size Outer size
* @param shift XY Offset shift from middle
*/
void LRShadow::drawShadow(NVGcontext *vg, float strength, float size) {
// add shader
nvgBeginPath(vg);
nvgRect(vg, -20, -20, box.size.x + 40, box.size.y + 40);

NVGcolor icol = nvgRGBAf(0.0f, 0.0f, 0.0f, strength);
NVGcolor ocol = nvgRGBAf(0.0f, 0.0f, 0.0f, 0.f);;

NVGpaint paint = nvgRadialGradient(vg, box.size.x / 2 + shadowPos.x, box.size.y / 2 + shadowPos.y,
box.size.x * 0.3f, box.size.x * size, icol, ocol);
nvgFillPaint(vg, paint);
nvgFill(vg);
}


/**
* @brief Hook into widget draw routine to simulate shadow
* @param vg
*/
void LRShadow::draw(NVGcontext *vg) {
drawShadow(vg, strength, size);
}


/**
* @brief Setter for box dimensions
* @param box
*/
void LRShadow::setBox(const Rect &box) {
LRShadow::box = box;
}


/**
* @brief Setter for outer radius size
* @param size
*/
void LRShadow::setSize(float size) {
LRShadow::size = size;
}


/**
* @brief Setter for draw strength of shadow
* @param strength
*/
void LRShadow::setStrength(float strength) {
LRShadow::strength = strength;
}


LRShadow::LRShadow() {

}

}


+ 6
- 0
plugins/community/repos/PG-Instruments/.gitignore View File

@@ -0,0 +1,6 @@
/build
/dist
/plugin.dylib
/plugin.dll
/plugin.so
.DS_Store

+ 121
- 0
plugins/community/repos/PG-Instruments/LICENSE.txt View File

@@ -0,0 +1,121 @@
Creative Commons Legal Code

CC0 1.0 Universal

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.

For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:

i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.

2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.

3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.

4. Limitations and Disclaimers.

a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

+ 29
- 0
plugins/community/repos/PG-Instruments/Makefile View File

@@ -0,0 +1,29 @@
# If RACK_DIR is not defined when calling the Makefile, default to three directories above
RACK_DIR ?= ../..

# Must follow the format in the Naming section of
# https://vcvrack.com/manual/PluginDevelopmentTutorial.html
SLUG = PG-Instruments

# Must follow the format in the Versioning section of
# https://vcvrack.com/manual/PluginDevelopmentTutorial.html
VERSION = 0.6.4

# FLAGS will be passed to both the C and C++ compiler
FLAGS +=
CFLAGS +=
CXXFLAGS +=

# Careful about linking to shared libraries, since you can't assume much about the user's environment and library search path.
# Static libraries are fine.
LDFLAGS +=

# Add .cpp and .c files to the build
SOURCES += $(wildcard src/*.cpp)

# Add files to the ZIP package when running `make dist`
# The compiled plugin is automatically added.
DISTRIBUTABLES += $(wildcard LICENSE*) res

# Include the VCV Rack plugin Makefile framework
include $(RACK_DIR)/plugin.mk

+ 39
- 0
plugins/community/repos/PG-Instruments/README.md View File

@@ -0,0 +1,39 @@

# PG Instruments

## PG-SEQ-3 plugin

An implementation of SEQ-3 with 16 steps instead of 8

As this was my first plugin, I took the SEQ-3 plugin and extended it to 16 steps. The front panel is a design from scratch
as per the SEQ-3 license.

## PG Panner

Simple stereo panner, mono in, stereo out. The panner knob sets the panning either fully left or right or centered.

This is a simple cosine/sine panner.

## PG Quad Panner

Quad panner - four mono inputs, each with their own panner and level control. One stereo output mixed from all four inputs.

## PG Oct Panner

Oct (yes 8!) panner, eight mono inputs, each with their own panner and level control. One stereo output mixed from all eight inputs.

## PG VCF

Voltage Controlled Filter

## PG Stereo VCF

Voltage Controlled Stereo Filter

## PG Echo

Echo/delay

## PG Stereo Echo

Stereo echo/delay

+ 11
- 0
plugins/community/repos/PG-Instruments/make.objects View File

@@ -0,0 +1,11 @@
ALL_OBJ= \
src/PGEcho.o \
src/PGOctPanner.o \
src/PGPanner.o \
src/PGQuadPanner.o \
src/PGSEQ3.o \
src/PGStereoEcho.o \
src/PGStereoPingPongEcho.o \
src/PGStereoVCF.o \
src/PGVCF.o \
src/Template.o

+ 7
- 0
plugins/community/repos/PG-Instruments/makefile.msvc View File

@@ -0,0 +1,7 @@
SLUG=PG-Instruments

include ../../../build_plugin_pre.mk

include make.objects

include ../../../build_plugin_post.mk

+ 211
- 0
plugins/community/repos/PG-Instruments/res/PGEcho.svg View File

@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGEcho.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="113.86719"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-23.386084,70.291882"
orientation="0,1"
id="guide924"
inkscape:locked="false" />
<sodipodi:guide
position="45.836724,77.909063"
orientation="0,1"
id="guide946"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<g
aria-label="ECHO"
transform="scale(0.9981775,1.0018258)"
style="font-style:normal;font-weight:normal;font-size:11.10610676px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.04119742"
id="text928">
<path
d="m 56.206211,93.880373 h 5.119221 v 0.921894 h -4.023795 v 2.396923 h 3.855685 v 0.921894 h -3.855685 v 2.933786 h 4.121407 v 0.9219 h -5.216833 z"
style="stroke-width:1.04119742"
id="path986"
inkscape:connector-curvature="0" />
<path
d="m 69.2971,94.504007 v 1.155079 q -0.553136,-0.515176 -1.182193,-0.770053 -0.623634,-0.254876 -1.328611,-0.254876 -1.388263,0 -2.125778,0.851396 -0.737515,0.845973 -0.737515,2.451152 0,1.599757 0.737515,2.451155 0.737515,0.84597 2.125778,0.84597 0.704977,0 1.328611,-0.25488 0.629057,-0.25487 1.182193,-0.77005 v 1.14423 q -0.574827,0.39045 -1.220153,0.58568 -0.639903,0.19522 -1.355726,0.19522 -1.838364,0 -2.89583,-1.12254 -1.057467,-1.127962 -1.057467,-3.074785 0,-1.952245 1.057467,-3.074786 1.057466,-1.127964 2.89583,-1.127964 0.726669,0 1.366572,0.195224 0.645325,0.189802 1.209307,0.574828 z"
style="stroke-width:1.04119742"
id="path988"
inkscape:connector-curvature="0" />
<path
d="m 70.999893,93.880373 h 1.095426 v 3.318817 h 3.980412 v -3.318817 h 1.095426 v 8.096397 h -1.095426 v -3.855686 h -3.980412 v 3.855686 h -1.095426 z"
style="stroke-width:1.04119742"
id="path990"
inkscape:connector-curvature="0" />
<path
d="m 82.637443,94.623311 q -1.193039,0 -1.898016,0.889356 -0.699555,0.889356 -0.699555,2.424038 0,1.529259 0.699555,2.418615 0.704977,0.88936 1.898016,0.88936 1.193039,0 1.887171,-0.88936 0.699554,-0.889356 0.699554,-2.418615 0,-1.534682 -0.699554,-2.424038 -0.694132,-0.889356 -1.887171,-0.889356 z m 0,-0.889356 q 1.702792,0 2.722298,1.144233 1.019506,1.138809 1.019506,3.058517 0,1.914285 -1.019506,3.058515 -1.019506,1.13881 -2.722298,1.13881 -1.708214,0 -2.733143,-1.13881 -1.019506,-1.138807 -1.019506,-3.058515 0,-1.919708 1.019506,-3.058517 1.024929,-1.144233 2.733143,-1.144233 z"
style="stroke-width:1.04119742"
id="path992"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="In"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text932"
transform="translate(3.346277,0.09970174)">
<path
d="m 51.426556,109.17668 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path981"
inkscape:connector-curvature="0" />
<path
d="m 53.53082,110.30254 v 0.93155 h -0.253559 v -0.92328 q 0,-0.21911 -0.08544,-0.32798 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13092 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.09095,-0.13918 0.213596,-0.20809 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16537 0.136425,0.16398 0.136425,0.48369 z"
style="stroke-width:0.26458332"
id="path983"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Time"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text936"
transform="translate(2.2395567,0.13362716)">
<path
d="m 60.228464,109.17668 h 1.740462 v 0.23427 h -0.73036 v 1.82314 h -0.279742 v -1.82314 h -0.73036 z"
style="stroke-width:0.26458332"
id="path972"
inkscape:connector-curvature="0" />
<path
d="m 62.139803,109.69069 h 0.253559 v 1.5434 h -0.253559 z m 0,-0.60082 h 0.253559 v 0.32108 h -0.253559 z"
style="stroke-width:0.26458332"
id="path974"
inkscape:connector-curvature="0" />
<path
d="m 64.124178,109.98697 q 0.09508,-0.17088 0.227377,-0.25218 0.132291,-0.0813 0.311436,-0.0813 0.241157,0 0.372071,0.1695 0.130913,0.16812 0.130913,0.47956 v 0.93155 h -0.254937 v -0.92328 q 0,-0.22187 -0.07855,-0.32935 -0.07855,-0.10749 -0.239779,-0.10749 -0.197059,0 -0.311436,0.13091 -0.114378,0.13092 -0.114378,0.35691 v 0.8723 H 63.91196 v -0.92328 q 0,-0.22325 -0.07855,-0.32935 -0.07855,-0.10749 -0.242535,-0.10749 -0.194303,0 -0.30868,0.13229 -0.114377,0.13091 -0.114377,0.35553 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.08682,-0.14194 0.208084,-0.20946 0.121267,-0.0675 0.288009,-0.0675 0.168121,0 0.285254,0.0854 0.118512,0.0854 0.175011,0.24805 z"
style="stroke-width:0.26458332"
id="path976"
inkscape:connector-curvature="0" />
<path
d="m 66.993254,110.399 v 0.12403 h -1.16582 q 0.01654,0.26182 0.157096,0.39963 0.141938,0.13642 0.394119,0.13642 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272851,-0.10748 v 0.23977 q -0.136425,0.0579 -0.279741,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369315,0 -0.585667,-0.21498 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60082 0.205328,-0.22325 0.552593,-0.22325 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path978"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Out"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text944"
transform="translate(-1.7194991,0.09273174)">
<path
d="m 87.273957,109.36547 q -0.303168,0 -0.482313,0.226 -0.177767,0.226 -0.177767,0.61598 0,0.38861 0.177767,0.61461 0.179145,0.226 0.482313,0.226 0.303169,0 0.479558,-0.226 0.177767,-0.226 0.177767,-0.61461 0,-0.38998 -0.177767,-0.61598 -0.176389,-0.226 -0.479558,-0.226 z m 0,-0.226 q 0.432704,0 0.691775,0.29077 0.259072,0.28939 0.259072,0.77721 0,0.48645 -0.259072,0.77722 -0.259071,0.28939 -0.691775,0.28939 -0.434082,0 -0.694531,-0.28939 -0.259071,-0.28939 -0.259071,-0.77722 0,-0.48782 0.259071,-0.77721 0.260449,-0.29077 0.694531,-0.29077 z"
style="stroke-width:0.26458332"
id="path948"
inkscape:connector-curvature="0" />
<path
d="m 88.623057,110.625 v -0.93431 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10887 0.256315,0.10887 0.205328,0 0.323839,-0.13091 0.11989,-0.13092 0.11989,-0.35692 v -0.87505 h 0.253559 v 1.5434 H 89.6621 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16537 -0.137804,-0.16536 -0.137804,-0.48369 z m 0.638031,-0.97152 z"
style="stroke-width:0.26458332"
id="path950"
inkscape:connector-curvature="0" />
<path
d="m 90.691492,109.25247 v 0.43822 h 0.522277 v 0.19706 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24253 0.05236,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10886 -0.111621,-0.11025 -0.111621,-0.39963 v -0.83785 H 90.25052 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path952"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Fbk"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text997"
transform="translate(1.0583333)">
<path
d="m 74.261986,109.27271 h 1.182357 v 0.23426 H 74.54035 v 0.60634 h 0.815799 v 0.23427 H 74.54035 v 0.98254 h -0.278364 z"
style="stroke-width:0.26458332"
id="path999"
inkscape:connector-curvature="0" />
<path
d="m 76.98499,110.55979 q 0,-0.27974 -0.115755,-0.43821 -0.114378,-0.15986 -0.315571,-0.15986 -0.201194,0 -0.316949,0.15986 -0.114377,0.15847 -0.114377,0.43821 0,0.27974 0.114377,0.4396 0.115755,0.15847 0.316949,0.15847 0.201193,0 0.315571,-0.15847 0.115755,-0.15986 0.115755,-0.4396 z m -0.862652,-0.53881 q 0.07993,-0.1378 0.201193,-0.20395 0.122646,-0.0675 0.292145,-0.0675 0.281119,0 0.45613,0.22324 0.176389,0.22324 0.176389,0.58704 0,0.36381 -0.176389,0.58705 -0.175011,0.22324 -0.45613,0.22324 -0.169499,0 -0.292145,-0.0662 -0.121267,-0.0675 -0.201193,-0.20532 v 0.23151 h -0.254937 v -2.14423 h 0.254937 z"
style="stroke-width:0.26458332"
id="path1001"
inkscape:connector-curvature="0" />
<path
d="m 77.658851,109.18589 h 0.254937 v 1.26642 l 0.756543,-0.6656 h 0.323839 l -0.818555,0.7221 0.853006,0.82131 h -0.33073 l -0.784103,-0.75379 v 0.75379 h -0.254937 z"
style="stroke-width:0.26458332"
id="path1003"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

+ 395
- 0
plugins/community/repos/PG-Instruments/res/PGOctPanner.svg View File

@@ -0,0 +1,395 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
sodipodi:docname="PGOctPanner.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="103.00805"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="text4686"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1511"
inkscape:window-height="1008"
inkscape:window-x="373"
inkscape:window-y="0"
inkscape:window-maximized="0"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-30.86963,78.176333"
orientation="0,1"
id="guide2276"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<g
aria-label="QUAD PANNER"
transform="matrix(0.97416344,0,0,1.0265218,0,-1.5875)"
style="font-style:normal;font-weight:normal;font-size:4.54266644px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.42587495"
id="text2270">
<path
d="m 72.235814,92.427745 v 1.244354 h 0.563397 q 0.312752,0 0.483545,-0.161922 0.170794,-0.161921 0.170794,-0.461364 0,-0.297225 -0.170794,-0.459147 -0.170793,-0.161921 -0.483545,-0.161921 z m -0.448056,-0.368204 h 1.011453 q 0.556743,0 0.840659,0.252863 0.286135,0.250645 0.286135,0.736409 0,0.4902 -0.286135,0.740845 -0.283916,0.250645 -0.840659,0.250645 h -0.563397 v 1.330859 h -0.448056 z"
style="stroke-width:0.42587495"
id="path2331"
inkscape:connector-curvature="0" />
<path
d="m 75.34337,92.500943 -0.607759,1.648047 h 1.217736 z m -0.252863,-0.441402 h 0.507944 l 1.262099,3.311621 h -0.465801 l -0.301661,-0.849531 h -1.492781 l -0.301661,0.849531 H 73.82619 Z"
style="stroke-width:0.42587495"
id="path2333"
inkscape:connector-curvature="0" />
<path
d="m 77.341876,92.059541 h 0.603323 l 1.468381,2.770405 v -2.770405 h 0.434748 v 3.311621 h -0.603323 l -1.468382,-2.770405 v 2.770405 h -0.434747 z"
style="stroke-width:0.42587495"
id="path2335"
inkscape:connector-curvature="0" />
<path
d="m 80.740004,92.059541 h 0.603323 l 1.468382,2.770405 v -2.770405 h 0.434747 v 3.311621 h -0.603323 l -1.468381,-2.770405 v 2.770405 h -0.434748 z"
style="stroke-width:0.42587495"
id="path2337"
inkscape:connector-curvature="0" />
<path
d="m 84.138131,92.059541 h 2.093885 v 0.377077 h -1.645829 v 0.980399 h 1.577068 v 0.377077 h -1.577068 v 1.199992 h 1.685755 v 0.377076 h -2.133811 z"
style="stroke-width:0.42587495"
id="path2339"
inkscape:connector-curvature="0" />
<path
d="m 88.583202,93.818493 q 0.144176,0.0488 0.27948,0.208502 0.137522,0.159703 0.275044,0.439183 l 0.454711,0.904984 h -0.481328 l -0.423657,-0.849531 q -0.164139,-0.332715 -0.319406,-0.441402 -0.153049,-0.108687 -0.419221,-0.108687 h -0.487981 v 1.39962 h -0.448056 v -3.311621 h 1.011453 q 0.567833,0 0.847314,0.237336 0.27948,0.237337 0.27948,0.716446 0,0.312752 -0.146395,0.519035 -0.144176,0.206284 -0.421438,0.286135 z m -1.122358,-1.390748 v 1.175593 h 0.563397 q 0.323842,0 0.487982,-0.148613 0.166357,-0.150831 0.166357,-0.441402 0,-0.290571 -0.166357,-0.436965 -0.16414,-0.148613 -0.487982,-0.148613 z"
style="stroke-width:0.42587495"
id="path2341"
inkscape:connector-curvature="0" />
<g
aria-label="OCT (8)"
transform="scale(0.72969808,1.3704298)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.8110671px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2561141"
id="text4624">
<path
d="m 80.140617,66.697985 q -0.516814,0 -0.822204,0.385262 -0.30304,0.385261 -0.30304,1.050071 0,0.662462 0.30304,1.047723 0.30539,0.385261 0.822204,0.385261 0.516814,0 0.817506,-0.385261 0.303041,-0.385261 0.303041,-1.047723 0,-0.66481 -0.303041,-1.050071 -0.300692,-0.385262 -0.817506,-0.385262 z m 0,-0.385261 q 0.737635,0 1.179276,0.495672 0.44164,0.493322 0.44164,1.324922 0,0.829252 -0.44164,1.324923 -0.441641,0.493323 -1.179276,0.493323 -0.739983,0 -1.183973,-0.493323 -0.441641,-0.493322 -0.441641,-1.324923 0,-0.8316 0.441641,-1.324922 0.44399,-0.495672 1.183973,-0.495672 z"
style="stroke-width:0.2561141"
id="path4626"
inkscape:connector-curvature="0" />
<path
d="m 85.13022,66.646304 v 0.50037 q -0.239614,-0.22317 -0.512116,-0.33358 -0.270152,-0.11041 -0.575542,-0.11041 -0.601384,0 -0.920869,0.368817 -0.319484,0.366468 -0.319484,1.061817 0,0.693001 0.319484,1.061818 0.319485,0.366468 0.920869,0.366468 0.30539,0 0.575542,-0.11041 0.272502,-0.11041 0.512116,-0.33358 v 0.495671 q -0.24901,0.169139 -0.52856,0.253709 -0.2772,0.08457 -0.587288,0.08457 -0.796363,0 -1.254448,-0.486275 -0.458085,-0.488624 -0.458085,-1.331971 0,-0.845695 0.458085,-1.33197 0.458085,-0.488624 1.254448,-0.488624 0.314787,0 0.591987,0.08457 0.279549,0.08222 0.523861,0.24901 z"
style="stroke-width:0.2561141"
id="path4628"
inkscape:connector-curvature="0" />
<path
d="m 85.38158,66.376151 h 2.966981 v 0.399357 H 87.10351 v 3.10793 h -0.476879 v -3.10793 H 85.38158 Z"
style="stroke-width:0.2561141"
id="path4630"
inkscape:connector-curvature="0" />
<path
d="M 91.360176,66.232853 Q 91.04539,66.773158 90.892695,67.301718 90.74,67.830278 90.74,68.372932 q 0,0.542655 0.152695,1.075913 0.155044,0.530908 0.467481,1.068865 h -0.375864 q -0.352373,-0.552052 -0.52856,-1.085309 -0.173837,-0.533258 -0.173837,-1.059469 0,-0.523861 0.173837,-1.05477 0.173837,-0.530909 0.52856,-1.085309 z"
style="stroke-width:0.2561141"
id="path4632"
inkscape:connector-curvature="0" />
<path
d="m 93.277086,68.217888 q -0.338278,0 -0.533258,0.180885 -0.192631,0.180885 -0.192631,0.49802 0,0.317136 0.192631,0.498021 0.19498,0.180885 0.533258,0.180885 0.338278,0 0.533258,-0.180885 0.194979,-0.183234 0.194979,-0.498021 0,-0.317135 -0.194979,-0.49802 -0.192631,-0.180885 -0.533258,-0.180885 z m -0.474529,-0.202027 q -0.30539,-0.07517 -0.476879,-0.284248 -0.169139,-0.209075 -0.169139,-0.509766 0,-0.420499 0.298343,-0.664811 0.300692,-0.244312 0.822204,-0.244312 0.523861,0 0.822204,0.244312 0.298342,0.244312 0.298342,0.664811 0,0.300691 -0.171488,0.509766 -0.169139,0.209075 -0.47218,0.284248 0.342976,0.07987 0.533258,0.312437 0.19263,0.232566 0.19263,0.568495 0,0.509767 -0.312437,0.782269 -0.310088,0.272502 -0.890329,0.272502 -0.580241,0 -0.892679,-0.272502 -0.310088,-0.272502 -0.310088,-0.782269 0,-0.335929 0.192631,-0.568495 0.19263,-0.232566 0.535607,-0.312437 z m -0.173838,-0.74938 q 0,0.272502 0.169139,0.425197 0.171489,0.152695 0.479228,0.152695 0.30539,0 0.476878,-0.152695 0.173837,-0.152695 0.173837,-0.425197 0,-0.272502 -0.173837,-0.425197 -0.171488,-0.152695 -0.476878,-0.152695 -0.307739,0 -0.479228,0.152695 -0.169139,0.152695 -0.169139,0.425197 z"
style="stroke-width:0.2561141"
id="path4634"
inkscape:connector-curvature="0" />
<path
d="m 95.196344,66.232853 h 0.375865 q 0.352373,0.5544 0.52621,1.085309 0.176187,0.530909 0.176187,1.05477 0,0.526211 -0.176187,1.059469 -0.173837,0.533257 -0.52621,1.085309 h -0.375865 q 0.312438,-0.537957 0.465133,-1.068865 0.155044,-0.533258 0.155044,-1.075913 0,-0.542654 -0.155044,-1.071214 -0.152695,-0.52856 -0.465133,-1.068865 z"
style="stroke-width:0.2561141"
id="path4636"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="5



6



7



8"
transform="matrix(1.0265218,0,0,0.97416344,-0.27160056,-1.5464844)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11267941"
id="text4641">
<path
d="m 46.968034,148.16173 h 0.819588 v 0.1757 h -0.628385 v 0.37827 q 0.04548,-0.0155 0.09095,-0.0227 0.04548,-0.008 0.09095,-0.008 0.258382,0 0.409277,0.14159 0.150895,0.14159 0.150895,0.38344 0,0.24908 -0.155029,0.38757 -0.155029,0.13746 -0.437183,0.13746 -0.09715,0 -0.198437,-0.0165 -0.100252,-0.0165 -0.207739,-0.0496 v -0.2098 q 0.09302,0.0506 0.192236,0.0754 0.09922,0.0248 0.209806,0.0248 0.178801,0 0.283187,-0.094 0.104386,-0.0941 0.104386,-0.25528 0,-0.16123 -0.104386,-0.25528 -0.104386,-0.0941 -0.283187,-0.0941 -0.08372,0 -0.167431,0.0186 -0.08268,0.0186 -0.169499,0.0579 z"
style="stroke-width:0.11267941"
id="path4667"
inkscape:connector-curvature="0" />
<path
d="m 47.438289,158.37505 q -0.140559,0 -0.223242,0.0961 -0.08165,0.0961 -0.08165,0.26355 0,0.1664 0.08165,0.26355 0.08268,0.0961 0.223242,0.0961 0.14056,0 0.222209,-0.0961 0.08268,-0.0971 0.08268,-0.26355 0,-0.16743 -0.08268,-0.26355 -0.08165,-0.0961 -0.222209,-0.0961 z m 0.414445,-0.65422 v 0.19017 q -0.07855,-0.0372 -0.159163,-0.0568 -0.07958,-0.0196 -0.15813,-0.0196 -0.206706,0 -0.31626,0.13952 -0.10852,0.13953 -0.124023,0.42168 0.06098,-0.0899 0.152962,-0.13745 0.09198,-0.0486 0.202572,-0.0486 0.232544,0 0.366902,0.14159 0.135393,0.14056 0.135393,0.38344 0,0.23771 -0.14056,0.38137 -0.14056,0.14366 -0.374138,0.14366 -0.267684,0 -0.409277,-0.20463 -0.141593,-0.20568 -0.141593,-0.59532 0,-0.36587 0.173632,-0.58291 0.173633,-0.21807 0.466122,-0.21807 0.07855,0 0.15813,0.0155 0.08062,0.0155 0.167431,0.0465 z"
style="stroke-width:0.11267941"
id="path4669"
inkscape:connector-curvature="0" />
<path
d="m 46.913257,167.21172 h 0.992187 v 0.0889 l -0.560172,1.45418 h -0.218075 l 0.5271,-1.36736 h -0.74104 z"
style="stroke-width:0.11267941"
id="path4671"
inkscape:connector-curvature="0" />
<path
d="m 47.412451,178.07617 q -0.148828,0 -0.234611,0.0796 -0.08475,0.0796 -0.08475,0.21911 0,0.13952 0.08475,0.21911 0.08578,0.0796 0.234611,0.0796 0.148828,0 0.234611,-0.0796 0.08578,-0.0806 0.08578,-0.21911 0,-0.13953 -0.08578,-0.21911 -0.08475,-0.0796 -0.234611,-0.0796 z m -0.208773,-0.0889 q -0.134358,-0.0331 -0.209806,-0.12505 -0.07441,-0.092 -0.07441,-0.22428 0,-0.185 0.131258,-0.29249 0.132292,-0.10748 0.361735,-0.10748 0.230477,0 0.361735,0.10748 0.131258,0.10749 0.131258,0.29249 0,0.13229 -0.07545,0.22428 -0.07441,0.092 -0.207739,0.12505 0.150895,0.0351 0.234611,0.13746 0.08475,0.10232 0.08475,0.25012 0,0.22427 -0.137459,0.34416 -0.136426,0.11989 -0.391708,0.11989 -0.255281,0 -0.392741,-0.11989 -0.136425,-0.11989 -0.136425,-0.34416 0,-0.1478 0.08475,-0.25012 0.08475,-0.10232 0.235644,-0.13746 z m -0.07648,-0.32969 q 0,0.11989 0.07441,0.18707 0.07545,0.0672 0.21084,0.0672 0.134359,0 0.209807,-0.0672 0.07648,-0.0672 0.07648,-0.18707 0,-0.11989 -0.07648,-0.18707 -0.07545,-0.0672 -0.209807,-0.0672 -0.135392,0 -0.21084,0.0672 -0.07441,0.0672 -0.07441,0.18707 z"
style="stroke-width:0.11267941"
id="path4673"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="1



2



3


4"
transform="matrix(1.0265218,0,0,0.97416344,0,-2.0619792)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666679px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.11267941"
id="text4686">
<path
d="m 46.734871,111.98309 h 0.341065 v -1.17719 l -0.371037,0.0744 v -0.19017 l 0.36897,-0.0744 h 0.208772 v 1.36736 h 0.341065 v 0.1757 h -0.888835 z"
style="stroke-width:0.11267941"
id="path4710"
inkscape:connector-curvature="0" />
<path
d="m 46.878532,121.77267 h 0.728637 v 0.1757 h -0.979785 v -0.1757 q 0.118856,-0.12299 0.323495,-0.32969 0.205672,-0.20774 0.258382,-0.26769 0.100252,-0.11265 0.139526,-0.19017 0.04031,-0.0786 0.04031,-0.15399 0,-0.12299 -0.08682,-0.20051 -0.08578,-0.0775 -0.224275,-0.0775 -0.09819,0 -0.20774,0.0341 -0.10852,0.0341 -0.232544,0.10336 v -0.21084 q 0.126091,-0.0507 0.235645,-0.0765 0.109554,-0.0258 0.200505,-0.0258 0.239778,0 0.382405,0.11989 0.142627,0.11989 0.142627,0.32039 0,0.0951 -0.03617,0.18087 -0.03514,0.0847 -0.129191,0.2005 -0.02584,0.03 -0.164331,0.17364 -0.138493,0.14262 -0.390674,0.39997 z"
style="stroke-width:0.11267941"
id="path4712"
inkscape:connector-curvature="0" />
<path
d="m 47.331217,130.64138 q 0.149862,0.032 0.233578,0.13332 0.08475,0.10129 0.08475,0.25011 0,0.22841 -0.157096,0.35347 -0.157097,0.12506 -0.446485,0.12506 -0.09715,0 -0.200504,-0.0196 -0.10232,-0.0186 -0.211874,-0.0568 v -0.20154 q 0.08682,0.0506 0.19017,0.0765 0.103353,0.0258 0.216007,0.0258 0.196371,0 0.29869,-0.0775 0.103353,-0.0775 0.103353,-0.22531 0,-0.13642 -0.09612,-0.2129 -0.09508,-0.0775 -0.265617,-0.0775 h -0.179834 v -0.17156 h 0.188102 q 0.153996,0 0.235645,-0.061 0.08165,-0.062 0.08165,-0.17777 0,-0.11885 -0.08475,-0.1819 -0.08372,-0.0641 -0.240812,-0.0641 -0.08578,0 -0.183968,0.0186 -0.09819,0.0186 -0.216008,0.0579 v -0.18603 q 0.118856,-0.0331 0.222209,-0.0496 0.104386,-0.0165 0.19637,-0.0165 0.237712,0 0.376205,0.10852 0.138493,0.10749 0.138493,0.29146 0,0.12816 -0.07338,0.21704 -0.07338,0.0879 -0.208773,0.12196 z"
style="stroke-width:0.11267941"
id="path4714"
inkscape:connector-curvature="0" />
<path
d="m 47.272306,139.9018 -0.5271,0.82372 h 0.5271 z m -0.05478,-0.1819 h 0.262516 v 1.00562 h 0.220142 v 0.17363 h -0.220142 v 0.36381 h -0.207739 v -0.36381 h -0.696598 v -0.20153 z"
style="stroke-width:0.11267941"
id="path4716"
inkscape:connector-curvature="0" />
</g>
</g>
<g
aria-label="Input"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2274"
transform="translate(0,-10.054167)">
<path
d="m 47.551148,108.90941 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path2362"
inkscape:connector-curvature="0" />
<path
d="m 49.655412,110.03527 v 0.93155 h -0.253559 v -0.92329 q 0,-0.2191 -0.08544,-0.32797 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 H 48.36281 v -1.5434 h 0.254938 v 0.23978 q 0.09095,-0.13919 0.213595,-0.20809 0.124024,-0.0689 0.285254,-0.0689 0.265962,0 0.402388,0.16536 0.136425,0.16399 0.136425,0.4837 z"
style="stroke-width:0.26458332"
id="path2364"
inkscape:connector-curvature="0" />
<path
d="m 50.409199,110.73531 v 0.81855 h -0.254937 v -2.13044 h 0.254937 v 0.23426 q 0.07993,-0.1378 0.201194,-0.20395 0.122645,-0.0675 0.292144,-0.0675 0.28112,0 0.456131,0.22324 0.176388,0.22324 0.176388,0.58705 0,0.3638 -0.176388,0.58704 -0.175011,0.22324 -0.456131,0.22324 -0.169499,0 -0.292144,-0.0661 -0.121268,-0.0675 -0.201194,-0.20533 z m 0.862652,-0.53881 q 0,-0.27975 -0.115755,-0.43822 -0.114377,-0.15985 -0.315571,-0.15985 -0.201193,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43822 0,0.27974 0.114377,0.43959 0.115756,0.15847 0.316949,0.15847 0.201194,0 0.315571,-0.15847 0.115755,-0.15985 0.115755,-0.43959 z"
style="stroke-width:0.26458332"
id="path2366"
inkscape:connector-curvature="0" />
<path
d="m 51.929176,110.35773 v -0.93431 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10887 0.256315,0.10887 0.205328,0 0.323839,-0.13092 0.119889,-0.13091 0.119889,-0.35691 v -0.87505 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121267,0.0675 -0.282497,0.0675 -0.265962,0 -0.403766,-0.16536 -0.137803,-0.16537 -0.137803,-0.48369 z m 0.638031,-0.97152 z"
style="stroke-width:0.26458332"
id="path2368"
inkscape:connector-curvature="0" />
<path
d="m 53.997611,108.9852 v 0.43822 h 0.522276 v 0.19706 h -0.522276 v 0.83784 q 0,0.18879 0.05099,0.24254 0.05237,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 h -0.260449 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83784 h -0.186035 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path2370"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Pan"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2280"
transform="translate(1.5875,-10.054167)">
<path
d="m 60.39118,109.2718 v 0.77308 h 0.350022 q 0.194303,0 0.300412,-0.1006 0.106109,-0.10059 0.106109,-0.28663 0,-0.18466 -0.106109,-0.28525 -0.106109,-0.1006 -0.300412,-0.1006 z m -0.278364,-0.22875 h 0.628386 q 0.345887,0 0.522276,0.15709 0.177767,0.15572 0.177767,0.45751 0,0.30455 -0.177767,0.46027 -0.176389,0.15571 -0.522276,0.15571 H 60.39118 v 0.82683 h -0.278364 z"
style="stroke-width:0.26458332"
id="path2355"
inkscape:connector-curvature="0" />
<path
d="m 62.379689,110.32462 q -0.307302,0 -0.425814,0.0703 -0.118511,0.0703 -0.118511,0.23978 0,0.13505 0.08819,0.21497 0.08957,0.0786 0.242534,0.0786 0.21084,0 0.33762,-0.14883 0.128157,-0.1502 0.128157,-0.39825 v -0.0565 z m 0.50574,-0.10473 v 0.88057 H 62.63187 v -0.23427 q -0.08682,0.14056 -0.216352,0.20808 -0.129535,0.0662 -0.316949,0.0662 -0.237022,0 -0.377582,-0.13229 -0.139182,-0.13367 -0.139182,-0.35691 0,-0.26045 0.173633,-0.39275 0.175011,-0.13229 0.520898,-0.13229 h 0.355534 v -0.0248 q 0,-0.17501 -0.115755,-0.2701 -0.114377,-0.0965 -0.322461,-0.0965 -0.132292,0 -0.257693,0.0317 -0.125402,0.0317 -0.241157,0.0951 v -0.23427 q 0.139182,-0.0537 0.270096,-0.0799 0.130913,-0.0276 0.254937,-0.0276 0.334863,0 0.500228,0.17363 0.165364,0.17363 0.165364,0.52641 z"
style="stroke-width:0.26458332"
id="path2357"
inkscape:connector-curvature="0" />
<path
d="m 64.692037,110.1689 v 0.93156 h -0.253559 v -0.92329 q 0,-0.21911 -0.08544,-0.32797 -0.08544,-0.10887 -0.256315,-0.10887 -0.205328,0 -0.323839,0.13092 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.54341 h 0.254937 v 0.23978 q 0.09095,-0.13918 0.213596,-0.20808 0.124023,-0.0689 0.285253,-0.0689 0.265962,0 0.402388,0.16536 0.136425,0.16399 0.136425,0.48369 z"
style="stroke-width:0.26458332"
id="path2359"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Level"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2284"
transform="translate(0.52916667,-10.054167)">
<path
d="m 70.937226,109.04305 h 0.278364 v 1.82314 h 1.001833 v 0.23427 h -1.280197 z"
style="stroke-width:0.26458332"
id="path2344"
inkscape:connector-curvature="0" />
<path
d="m 73.767716,110.26537 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21498 -0.214974,-0.58154 0,-0.37896 0.203949,-0.60082 0.205328,-0.22324 0.552594,-0.22324 0.311436,0 0.491959,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117133,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path2346"
inkscape:connector-curvature="0" />
<path
d="M 74.001983,109.55705 H 74.2707 l 0.482314,1.29536 0.482313,-1.29536 h 0.268717 l -0.578776,1.54341 h -0.344509 z"
style="stroke-width:0.26458332"
id="path2348"
inkscape:connector-curvature="0" />
<path
d="m 77.174227,110.26537 v 0.12402 h -1.165821 q 0.01654,0.26183 0.157097,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282497,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21498 -0.214974,-0.58154 0,-0.37896 0.20395,-0.60082 0.205327,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117134,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path2350"
inkscape:connector-curvature="0" />
<path
d="m 77.590394,108.95623 h 0.253559 v 2.14423 h -0.253559 z"
style="stroke-width:0.26458332"
id="path2352"
inkscape:connector-curvature="0" />
</g>
<g
id="g2321"
transform="translate(-1.6036172,-10.054167)">
<g
transform="translate(2.6619506)"
aria-label="Output"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2288">
<path
d="m 81.260392,116.31448 q -0.303168,0 -0.482313,0.226 -0.177767,0.22599 -0.177767,0.61598 0,0.38861 0.177767,0.6146 0.179145,0.226 0.482313,0.226 0.303169,0 0.479558,-0.226 0.177766,-0.22599 0.177766,-0.6146 0,-0.38999 -0.177766,-0.61598 -0.176389,-0.226 -0.479558,-0.226 z m 0,-0.226 q 0.432704,0 0.691775,0.29077 0.259072,0.28938 0.259072,0.77721 0,0.48645 -0.259072,0.77721 -0.259071,0.28939 -0.691775,0.28939 -0.434082,0 -0.694531,-0.28939 -0.259071,-0.28939 -0.259071,-0.77721 0,-0.48783 0.259071,-0.77721 0.260449,-0.29077 0.694531,-0.29077 z"
style="stroke-width:0.26458332"
id="path2385"
inkscape:connector-curvature="0" />
<path
d="m 82.609492,117.574 v -0.9343 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10886 0.256315,0.10886 0.205328,0 0.323839,-0.13091 0.11989,-0.13091 0.11989,-0.35691 v -0.87505 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16536 -0.137804,-0.16537 -0.137804,-0.4837 z m 0.638031,-0.97151 z"
style="stroke-width:0.26458332"
id="path2387"
inkscape:connector-curvature="0" />
<path
d="m 84.677927,116.20148 v 0.43822 h 0.522277 v 0.19705 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05236,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19705 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path2389"
inkscape:connector-curvature="0" />
<path
d="m 85.780358,117.95159 v 0.81855 h -0.254937 v -2.13044 h 0.254937 v 0.23426 q 0.07993,-0.1378 0.201193,-0.20395 0.122646,-0.0675 0.292144,-0.0675 0.28112,0 0.456131,0.22324 0.176389,0.22324 0.176389,0.58704 0,0.36381 -0.176389,0.58705 -0.175011,0.22324 -0.456131,0.22324 -0.169498,0 -0.292144,-0.0661 -0.121267,-0.0675 -0.201193,-0.20533 z m 0.862652,-0.53882 q 0,-0.27974 -0.115756,-0.43821 -0.114377,-0.15985 -0.31557,-0.15985 -0.201194,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43821 0,0.27975 0.114377,0.4396 0.115755,0.15847 0.316949,0.15847 0.201193,0 0.31557,-0.15847 0.115756,-0.15985 0.115756,-0.4396 z"
style="stroke-width:0.26458332"
id="path2391"
inkscape:connector-curvature="0" />
<path
d="m 87.300334,117.574 v -0.9343 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10886 0.256315,0.10886 0.205328,0 0.323839,-0.13091 0.119889,-0.13091 0.119889,-0.35691 v -0.87505 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121267,0.0675 -0.282497,0.0675 -0.265962,0 -0.403766,-0.16536 -0.137803,-0.16537 -0.137803,-0.4837 z m 0.638031,-0.97151 z"
style="stroke-width:0.26458332"
id="path2393"
inkscape:connector-curvature="0" />
<path
d="m 89.368769,116.20148 v 0.43822 h 0.522277 v 0.19705 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05236,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 h -0.260449 q -0.293523,0 -0.405144,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19705 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path2395"
inkscape:connector-curvature="0" />
</g>
<rect
y="120.58852"
x="82.692741"
height="24.722433"
width="7.6171818"
id="rect2306"
style="fill:#000000;fill-opacity:1;stroke-width:0.33650789" />
<g
aria-label="L"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2310"
transform="translate(-0.52916667)">
<path
d="m 86.30523,121.47107 h 0.278363 v 1.82314 h 1.001834 v 0.23427 H 86.30523 Z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path2401"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2314"
transform="translate(-0.5291667,2.1166667)">
<path
d="m 87.013608,141.1391 q 0.08957,0.0303 0.173633,0.12954 0.08544,0.0992 0.170876,0.27285 l 0.282498,0.56224 h -0.299034 l -0.263205,-0.52779 q -0.101975,-0.20671 -0.198438,-0.27423 -0.09508,-0.0675 -0.260449,-0.0675 H 86.31632 v 0.86954 h -0.278363 v -2.05741 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.4451 0,0.19431 -0.09095,0.32247 -0.08957,0.12815 -0.261827,0.17776 z m -0.697288,-0.86403 v 0.73036 h 0.350022 q 0.201194,0 0.303169,-0.0923 0.103352,-0.0937 0.103352,-0.27423 0,-0.18052 -0.103352,-0.27147 -0.101975,-0.0923 -0.303169,-0.0923 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path2398"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>

+ 295
- 0
plugins/community/repos/PG-Instruments/res/PGPanner.svg View File

@@ -0,0 +1,295 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="75"
height="379.99997"
viewBox="0 0 19.84375 100.54166"
version="1.1"
id="svg11003"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGPanner.svg">
<defs
id="defs10997" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-78.319185"
inkscape:cy="181.36953"
inkscape:document-units="mm"
inkscape:current-layer="svg11003"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
units="px"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-99.691533,91.673449"
orientation="0,1"
id="guide3755"
inkscape:locked="false" />
<sodipodi:guide
position="-88.065309,75.637277"
orientation="0,1"
id="guide3757"
inkscape:locked="false" />
<sodipodi:guide
position="-82.987188,60.269279"
orientation="0,1"
id="guide3759"
inkscape:locked="false" />
<sodipodi:guide
position="-70.024616,44.366742"
orientation="0,1"
id="guide3761"
inkscape:locked="false" />
<sodipodi:guide
position="-41.293142,20.045215"
orientation="0,1"
id="guide3763"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata11000">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-64.792954,-75.127975)">
<path
inkscape:connector-curvature="0"
id="path33429"
d="M 64.866273,75.201293 H 84.82275 V 175.59739 H 64.866273 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.19594605"
sodipodi:insensitive="true" />
<g
aria-label="PGi"
transform="matrix(1.0399713,0,0,0.96156501,0.40090429,-3.3365914e-5)"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
id="text3735">
<path
d="m 68.720886,171.87987 v 1.49004 h 0.674637 q 0.374504,0 0.57902,-0.19389 0.204516,-0.19389 0.204516,-0.55246 0,-0.35591 -0.204516,-0.5498 -0.204516,-0.19389 -0.57902,-0.19389 z m -0.536522,-0.44091 h 1.211159 q 0.666669,0 1.006644,0.30279 0.342631,0.30013 0.342631,0.88181 0,0.58699 -0.342631,0.88712 -0.339975,0.30013 -1.006644,0.30013 h -0.674637 v 1.59364 h -0.536522 z"
style="stroke-width:0.13598984"
id="path3737"
inkscape:connector-curvature="0" />
<path
d="m 74.171104,174.83871 v -1.06508 h -0.876497 v -0.4409 h 1.407708 v 1.70252 q -0.310758,0.22046 -0.685262,0.33467 -0.374503,0.11155 -0.799471,0.11155 -0.929618,0 -1.455517,-0.54183 -0.523242,-0.54449 -0.523242,-1.51395 0,-0.97212 0.523242,-1.51395 0.525899,-0.54449 1.455517,-0.54449 0.387783,0 0.735726,0.0956 0.350599,0.0956 0.645421,0.28154 v 0.57105 q -0.297478,-0.25233 -0.632141,-0.37982 -0.334662,-0.12749 -0.703853,-0.12749 -0.727759,0 -1.094294,0.40638 -0.363879,0.40637 -0.363879,1.21116 0,0.80212 0.363879,1.2085 0.366535,0.40638 1.094294,0.40638 0.284197,0 0.507305,-0.0478 0.223109,-0.0505 0.401064,-0.15405 z"
style="stroke-width:0.13598984"
id="path3739"
inkscape:connector-curvature="0" />
<path
d="m 75.663805,172.42967 h 0.488714 v 2.97478 h -0.488714 z m 0,-1.15804 h 0.488714 v 0.61886 h -0.488714 z"
style="stroke-width:0.13598984"
id="path3741"
inkscape:connector-curvature="0" />
<g
aria-label="Panner
"
transform="scale(0.961565,1.0399713)"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.03598065"
id="text3767">
<path
d="m 70.560057,153.79576 v 0.77308 h 0.350021 q 0.194304,0 0.300413,-0.10059 0.106109,-0.1006 0.106109,-0.28664 0,-0.18465 -0.106109,-0.28525 -0.106109,-0.1006 -0.300413,-0.1006 z m -0.278364,-0.22875 h 0.628385 q 0.345888,0 0.522277,0.1571 0.177767,0.15571 0.177767,0.4575 0,0.30455 -0.177767,0.46027 -0.176389,0.15572 -0.522277,0.15572 h -0.350021 v 0.82682 h -0.278364 z"
style="stroke-width:0.03598065"
id="path3771"
inkscape:connector-curvature="0" />
<path
d="m 72.548566,154.84858 q -0.307303,0 -0.425814,0.0703 -0.118511,0.0703 -0.118511,0.23978 0,0.13505 0.08819,0.21498 0.08957,0.0786 0.242535,0.0786 0.21084,0 0.337619,-0.14883 0.128158,-0.15021 0.128158,-0.39826 v -0.0565 z m 0.50574,-0.10473 v 0.88057 h -0.253559 v -0.23427 q -0.08682,0.14056 -0.216352,0.20809 -0.129536,0.0661 -0.316949,0.0661 -0.237022,0 -0.377582,-0.13229 -0.139182,-0.13367 -0.139182,-0.35691 0,-0.26045 0.173633,-0.39274 0.17501,-0.13229 0.520898,-0.13229 h 0.355534 v -0.0248 q 0,-0.17501 -0.115755,-0.27009 -0.114377,-0.0965 -0.322461,-0.0965 -0.132292,0 -0.257693,0.0317 -0.125402,0.0317 -0.241157,0.0951 v -0.23426 q 0.139182,-0.0537 0.270095,-0.0799 0.130914,-0.0276 0.254937,-0.0276 0.334864,0 0.500228,0.17363 0.165365,0.17364 0.165365,0.52641 z"
style="stroke-width:0.03598065"
id="path3773"
inkscape:connector-curvature="0" />
<path
d="m 74.860914,154.69287 v 0.93155 h -0.253559 v -0.92329 q 0,-0.2191 -0.08544,-0.32797 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118512,0.13091 -0.118512,0.35691 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.09095,-0.13919 0.213596,-0.20809 0.124024,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16536 0.136426,0.16399 0.136426,0.4837 z"
style="stroke-width:0.03598065"
id="path3775"
inkscape:connector-curvature="0" />
<path
d="m 76.652364,154.69287 v 0.93155 h -0.253559 v -0.92329 q 0,-0.2191 -0.08544,-0.32797 -0.08544,-0.10886 -0.256315,-0.10886 -0.205327,0 -0.323839,0.13091 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.5434 H 75.6147 v 0.23978 q 0.09095,-0.13919 0.213596,-0.20809 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16536 0.136426,0.16399 0.136426,0.4837 z"
style="stroke-width:0.03598065"
id="path3777"
inkscape:connector-curvature="0" />
<path
d="m 78.48102,154.78933 v 0.12402 H 77.3152 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.203949,-0.60083 0.205328,-0.22324 0.552594,-0.22324 0.311436,0 0.491959,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117133,-0.3321 -0.112999,-0.12403 -0.300412,-0.12403 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.03598065"
id="path3779"
inkscape:connector-curvature="0" />
<path
d="m 79.791535,154.31804 q -0.04272,-0.0248 -0.09371,-0.0358 -0.04961,-0.0124 -0.110243,-0.0124 -0.214974,0 -0.330729,0.14056 -0.114377,0.13918 -0.114377,0.40101 v 0.81304 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.07993,-0.14056 0.208083,-0.20809 0.128158,-0.0689 0.311437,-0.0689 0.02618,0 0.05788,0.004 0.03169,0.003 0.07028,0.01 z"
style="stroke-width:0.03598065"
id="path3781"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="L"
transform="scale(0.961565,1.0399713)"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.03598065"
id="text3786">
<path
d="m 70.816231,129.24548 h 0.278364 v 1.82314 h 1.001834 v 0.23427 h -1.280198 z"
style="stroke-width:0.03598065"
id="path3837"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R
"
transform="scale(0.961565,1.0399713)"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.03598065"
id="text3790">
<path
d="m 78.874532,130.33826 q 0.08957,0.0303 0.173632,0.12954 0.08544,0.0992 0.170877,0.27285 l 0.282498,0.56224 h -0.299034 l -0.263206,-0.52779 q -0.101974,-0.20671 -0.198437,-0.27423 -0.09509,-0.0675 -0.260449,-0.0675 h -0.303169 v 0.86955 h -0.278363 v -2.05741 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173632,0.14745 0.173632,0.4451 0,0.19431 -0.09095,0.32246 -0.08957,0.12816 -0.261827,0.17777 z m -0.697288,-0.86403 v 0.73036 h 0.350022 q 0.201194,0 0.303168,-0.0923 0.103353,-0.0937 0.103353,-0.27423 0,-0.18052 -0.103353,-0.27147 -0.101974,-0.0923 -0.303168,-0.0923 z"
style="stroke-width:0.03598065"
id="path3834"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Panner CV
"
transform="scale(0.961565,1.0399713)"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.03598065"
id="text3796">
<path
d="m 68.020994,113.5717 v 0.77308 h 0.350022 q 0.194303,0 0.300412,-0.10059 0.106109,-0.1006 0.106109,-0.28664 0,-0.18465 -0.106109,-0.28525 -0.106109,-0.1006 -0.300412,-0.1006 z m -0.278363,-0.22875 h 0.628385 q 0.345888,0 0.522276,0.1571 0.177767,0.15571 0.177767,0.4575 0,0.30455 -0.177767,0.46027 -0.176388,0.15572 -0.522276,0.15572 h -0.350022 v 0.82682 h -0.278363 z"
style="stroke-width:0.03598065"
id="path3817"
inkscape:connector-curvature="0" />
<path
d="m 70.009503,114.62452 q -0.307302,0 -0.425813,0.0703 -0.118512,0.0703 -0.118512,0.23978 0,0.13505 0.08819,0.21498 0.08957,0.0786 0.242534,0.0786 0.21084,0 0.33762,-0.14883 0.128157,-0.15021 0.128157,-0.39826 v -0.0565 z m 0.50574,-0.10473 v 0.88057 h -0.253559 v -0.23427 q -0.08682,0.14056 -0.216352,0.20809 -0.129535,0.0661 -0.316948,0.0661 -0.237023,0 -0.377583,-0.13229 -0.139182,-0.13367 -0.139182,-0.35691 0,-0.26045 0.173633,-0.39274 0.175011,-0.13229 0.520899,-0.13229 h 0.355533 v -0.0248 q 0,-0.17501 -0.115755,-0.27009 -0.114377,-0.0965 -0.322461,-0.0965 -0.132291,0 -0.257693,0.0317 -0.125401,0.0317 -0.241157,0.0951 v -0.23426 q 0.139182,-0.0537 0.270096,-0.0799 0.130914,-0.0276 0.254937,-0.0276 0.334863,0 0.500228,0.17363 0.165364,0.17364 0.165364,0.52641 z"
style="stroke-width:0.03598065"
id="path3819"
inkscape:connector-curvature="0" />
<path
d="m 72.321852,114.46881 v 0.93155 h -0.25356 v -0.92329 q 0,-0.2191 -0.08544,-0.32797 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 H 71.02925 v -1.5434 h 0.254937 v 0.23978 q 0.09095,-0.13919 0.213596,-0.20809 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16536 0.136426,0.16399 0.136426,0.4837 z"
style="stroke-width:0.03598065"
id="path3821"
inkscape:connector-curvature="0" />
<path
d="m 74.113301,114.46881 v 0.93155 h -0.253559 v -0.92329 q 0,-0.2191 -0.08544,-0.32797 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254938 v -1.5434 h 0.254938 v 0.23978 q 0.09095,-0.13919 0.213595,-0.20809 0.124024,-0.0689 0.285254,-0.0689 0.265962,0 0.402388,0.16536 0.136425,0.16399 0.136425,0.4837 z"
style="stroke-width:0.03598065"
id="path3823"
inkscape:connector-curvature="0" />
<path
d="m 75.941958,114.56527 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137803,-0.0358 0.272851,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143315,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60083 0.205328,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117133,-0.3321 -0.113,-0.12403 -0.300413,-0.12403 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.03598065"
id="path3825"
inkscape:connector-curvature="0" />
<path
d="m 77.252472,114.09398 q -0.04272,-0.0248 -0.09371,-0.0358 -0.04961,-0.0124 -0.110243,-0.0124 -0.214974,0 -0.33073,0.14056 -0.114377,0.13918 -0.114377,0.40101 v 0.81304 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.07993,-0.14056 0.208084,-0.20809 0.128158,-0.0689 0.311437,-0.0689 0.02618,0 0.05788,0.004 0.03169,0.003 0.07028,0.01 z"
style="stroke-width:0.03598065"
id="path3827"
inkscape:connector-curvature="0" />
<path
d="m 79.971342,113.50142 v 0.29353 q -0.14056,-0.13092 -0.300413,-0.19569 -0.158474,-0.0648 -0.337619,-0.0648 -0.352778,0 -0.540191,0.21635 -0.187413,0.21497 -0.187413,0.62287 0,0.40652 0.187413,0.62287 0.187413,0.21498 0.540191,0.21498 0.179145,0 0.337619,-0.0648 0.159853,-0.0648 0.300413,-0.19568 v 0.29077 q -0.146072,0.0992 -0.310059,0.14882 -0.162608,0.0496 -0.344509,0.0496 -0.467155,0 -0.735873,-0.28525 -0.268717,-0.28663 -0.268717,-0.78135 0,-0.49609 0.268717,-0.78135 0.268718,-0.28663 0.735873,-0.28663 0.184657,0 0.347265,0.0496 0.163987,0.0482 0.307303,0.14607 z"
style="stroke-width:0.03598065"
id="path3829"
inkscape:connector-curvature="0" />
<path
d="m 80.93459,115.40036 -0.785481,-2.05741 h 0.290766 l 0.651812,1.73219 0.65319,-1.73219 h 0.289388 l -0.784104,2.05741 z"
style="stroke-width:0.03598065"
id="path3831"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Input"
transform="scale(0.961565,1.0399713)"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.03598065"
id="text3802">
<path
d="m 70.949875,98.108582 h 0.278364 v 2.057408 h -0.278364 z"
style="stroke-width:0.03598065"
id="path3806"
inkscape:connector-curvature="0" />
<path
d="m 73.05414,99.234439 v 0.931551 h -0.253559 v -0.923283 q 0,-0.219108 -0.08544,-0.327973 -0.08544,-0.108865 -0.256315,-0.108865 -0.205327,0 -0.323839,0.130914 -0.118511,0.130913 -0.118511,0.356912 v 0.872295 H 71.76154 v -1.5434 h 0.254937 v 0.239779 q 0.09095,-0.139182 0.213596,-0.208084 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.165365 0.136426,0.163986 0.136426,0.483691 z"
style="stroke-width:0.03598065"
id="path3808"
inkscape:connector-curvature="0" />
<path
d="m 73.807927,99.934482 v 0.818558 H 73.55299 v -2.13045 h 0.254937 v 0.234266 q 0.07993,-0.137803 0.201193,-0.203949 0.122646,-0.06752 0.292144,-0.06752 0.28112,0 0.456131,0.223242 0.176389,0.223242 0.176389,0.587044 0,0.363802 -0.176389,0.587045 -0.175011,0.223242 -0.456131,0.223242 -0.169498,0 -0.292144,-0.0662 -0.121267,-0.0675 -0.201193,-0.205324 z m 0.862652,-0.538813 q 0,-0.279741 -0.115756,-0.438216 -0.114377,-0.159852 -0.31557,-0.159852 -0.201194,0 -0.316949,0.159852 -0.114377,0.158475 -0.114377,0.438216 0,0.279742 0.114377,0.439595 0.115755,0.158474 0.316949,0.158474 0.201193,0 0.31557,-0.158474 0.115756,-0.159853 0.115756,-0.439595 z"
style="stroke-width:0.03598065"
id="path3810"
inkscape:connector-curvature="0" />
<path
d="m 75.327903,99.5569 v -0.93431 h 0.253559 v 0.924664 q 0,0.219108 0.08544,0.329351 0.08544,0.108865 0.256315,0.108865 0.205328,0 0.323839,-0.130914 0.11989,-0.130914 0.11989,-0.356912 V 98.62259 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121268,0.0675 -0.282498,0.0675 -0.265961,0 -0.403765,-0.16537 -0.137804,-0.165363 -0.137804,-0.48369 z m 0.638032,-0.971517 z"
style="stroke-width:0.03598065"
id="path3812"
inkscape:connector-curvature="0" />
<path
d="m 77.396338,98.184374 v 0.438216 h 0.522277 v 0.197059 h -0.522277 v 0.837848 q 0,0.188791 0.05099,0.242534 0.05236,0.05374 0.210839,0.05374 h 0.26045 v 0.212219 h -0.26045 q -0.293522,0 -0.405143,-0.10886 -0.111621,-0.110249 -0.111621,-0.399637 V 98.819649 H 76.955366 V 98.62259 h 0.186035 v -0.438216 z"
style="stroke-width:0.03598065"
id="path3814"
inkscape:connector-curvature="0" />
</g>
</g>
<g
aria-label="Panning"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text3842">
<path
d="m 69.49098,82.167529 v 0.773079 h 0.350022 q 0.194303,0 0.300412,-0.100597 0.106109,-0.100597 0.106109,-0.286632 0,-0.184657 -0.106109,-0.285254 -0.106109,-0.100596 -0.300412,-0.100596 z m -0.278364,-0.228755 h 0.628386 q 0.345887,0 0.522276,0.157097 0.177767,0.155718 0.177767,0.457508 0,0.304547 -0.177767,0.460265 -0.176389,0.155718 -0.522276,0.155718 H 69.49098 v 0.826823 h -0.278364 z"
style="stroke-width:0.26458332"
id="path3844"
inkscape:connector-curvature="0" />
<path
d="m 71.479489,83.22035 q -0.307302,0 -0.425813,0.07028 -0.118512,0.07028 -0.118512,0.239778 0,0.135048 0.08819,0.214974 0.08957,0.07855 0.242534,0.07855 0.21084,0 0.33762,-0.148829 0.128157,-0.150206 0.128157,-0.398253 v -0.0565 z m 0.50574,-0.104731 v 0.880566 H 71.73167 v -0.234266 q -0.08682,0.14056 -0.216352,0.208084 -0.129535,0.06614 -0.316948,0.06614 -0.237023,0 -0.377583,-0.132291 -0.139182,-0.13367 -0.139182,-0.356912 0,-0.260449 0.173633,-0.392741 0.175011,-0.132292 0.520898,-0.132292 h 0.355534 v -0.0248 q 0,-0.175011 -0.115755,-0.270096 -0.114377,-0.09646 -0.322461,-0.09646 -0.132291,0 -0.257693,0.03169 -0.125401,0.03169 -0.241157,0.09508 v -0.234267 q 0.139182,-0.05374 0.270096,-0.07993 0.130913,-0.02756 0.254937,-0.02756 0.334863,0 0.500228,0.173633 0.165364,0.173633 0.165364,0.526411 z"
style="stroke-width:0.26458332"
id="path3846"
inkscape:connector-curvature="0" />
<path
d="m 73.791837,83.064631 v 0.931554 H 73.538278 V 83.0729 q 0,-0.219108 -0.08544,-0.327973 -0.08544,-0.108865 -0.256315,-0.108865 -0.205328,0 -0.323839,0.130913 -0.118511,0.130914 -0.118511,0.356912 v 0.872298 h -0.254937 v -1.543402 h 0.254937 v 0.239778 q 0.09095,-0.139182 0.213596,-0.208084 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.165365 0.136425,0.163987 0.136425,0.483691 z"
style="stroke-width:0.26458332"
id="path3848"
inkscape:connector-curvature="0" />
<path
d="m 75.583287,83.064631 v 0.931554 H 75.329728 V 83.0729 q 0,-0.219108 -0.08544,-0.327973 -0.08544,-0.108865 -0.256315,-0.108865 -0.205328,0 -0.323839,0.130913 -0.118511,0.130914 -0.118511,0.356912 v 0.872298 h -0.254938 v -1.543402 h 0.254938 v 0.239778 q 0.09095,-0.139182 0.213595,-0.208084 0.124024,-0.0689 0.285254,-0.0689 0.265962,0 0.402387,0.165365 0.136426,0.163987 0.136426,0.483691 z"
style="stroke-width:0.26458332"
id="path3850"
inkscape:connector-curvature="0" />
<path
d="m 76.091783,82.452783 h 0.253559 v 1.543402 h -0.253559 z m 0,-0.600825 h 0.253559 v 0.321083 h -0.253559 z"
style="stroke-width:0.26458332"
id="path3852"
inkscape:connector-curvature="0" />
<path
d="m 78.157463,83.064631 v 0.931554 H 77.903904 V 83.0729 q 0,-0.219108 -0.08544,-0.327973 -0.08544,-0.108865 -0.256315,-0.108865 -0.205328,0 -0.323839,0.130913 -0.118511,0.130914 -0.118511,0.356912 v 0.872298 H 76.864863 V 82.452783 H 77.1198 v 0.239778 q 0.09095,-0.139182 0.213596,-0.208084 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.165365 0.136426,0.163987 0.136426,0.483691 z"
style="stroke-width:0.26458332"
id="path3854"
inkscape:connector-curvature="0" />
<path
d="m 79.681573,83.206569 q 0,-0.275607 -0.114377,-0.427191 -0.112999,-0.151585 -0.318327,-0.151585 -0.203949,0 -0.318327,0.151585 -0.112999,0.151584 -0.112999,0.427191 0,0.27423 0.112999,0.425814 0.114378,0.151584 0.318327,0.151584 0.205328,0 0.318327,-0.151584 0.114377,-0.151584 0.114377,-0.425814 z m 0.253559,0.598069 q 0,0.394119 -0.175011,0.585666 -0.17501,0.192926 -0.536056,0.192926 -0.13367,0 -0.252181,-0.02067 -0.118512,-0.01929 -0.230133,-0.06063 v -0.246669 q 0.111621,0.06063 0.220486,0.08957 0.108865,0.02894 0.221864,0.02894 0.249425,0 0.373449,-0.130914 0.124023,-0.129535 0.124023,-0.392741 v -0.125401 q -0.07855,0.136426 -0.201193,0.203949 -0.122646,0.06752 -0.293522,0.06752 -0.283876,0 -0.457509,-0.216352 -0.173633,-0.216352 -0.173633,-0.573264 0,-0.35829 0.173633,-0.574642 0.173633,-0.216352 0.457509,-0.216352 0.170876,0 0.293522,0.06752 0.122645,0.06752 0.201193,0.20395 v -0.234266 h 0.253559 z"
style="stroke-width:0.26458332"
id="path3856"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

+ 347
- 0
plugins/community/repos/PG-Instruments/res/PGQuadPanner.svg View File

@@ -0,0 +1,347 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGQuadPanner.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="113.86719"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-30.86963,78.176333"
orientation="0,1"
id="guide2276"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<g
aria-label="QUAD PANNER"
transform="scale(0.97416344,1.0265218)"
style="font-style:normal;font-weight:normal;font-size:4.54266644px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.42587495"
id="text2270">
<path
d="m 58.181939,92.36342 q -0.487982,0 -0.776334,0.363769 -0.286135,0.363768 -0.286135,0.99149 0,0.625504 0.286135,0.989272 0.288352,0.363768 0.776334,0.363768 0.487982,0 0.771899,-0.363768 0.286134,-0.363768 0.286134,-0.989272 0,-0.627722 -0.286134,-0.99149 -0.283917,-0.363769 -0.771899,-0.363769 z m 0.627722,2.947854 0.590014,0.645467 H 58.858459 L 58.36826,95.426615 q -0.0732,0.0044 -0.113124,0.0067 -0.03771,0.0022 -0.0732,0.0022 -0.698701,0 -1.117922,-0.4658 -0.417002,-0.468019 -0.417002,-1.251008 0,-0.785207 0.417002,-1.251008 0.419221,-0.468019 1.117922,-0.468019 0.696483,0 1.113486,0.468019 0.417002,0.465801 0.417002,1.251008 0,0.576705 -0.2329,0.987054 -0.230682,0.410348 -0.669866,0.605541 z"
style="stroke-width:0.42587495"
id="path2323"
inkscape:connector-curvature="0" />
<path
d="m 60.36233,92.059541 h 0.450274 v 2.011815 q 0,0.532344 0.192975,0.767463 0.192975,0.2329 0.625504,0.2329 0.430311,0 0.623286,-0.2329 0.192974,-0.235119 0.192974,-0.767463 v -2.011815 h 0.450274 v 2.067268 q 0,0.647685 -0.321624,0.978182 -0.319406,0.330496 -0.94491,0.330496 -0.627722,0 -0.949346,-0.330496 -0.319407,-0.330497 -0.319407,-0.978182 z"
style="stroke-width:0.42587495"
id="path2325"
inkscape:connector-curvature="0" />
<path
d="m 64.847326,92.500943 -0.607759,1.648047 h 1.217736 z m -0.252863,-0.441402 h 0.507944 l 1.262099,3.311621 h -0.465801 l -0.301662,-0.849531 h -1.49278 l -0.301662,0.849531 h -0.472455 z"
style="stroke-width:0.42587495"
id="path2327"
inkscape:connector-curvature="0" />
<path
d="m 67.29389,92.427745 v 2.575213 h 0.541216 q 0.685392,0 1.00258,-0.310534 0.319407,-0.310534 0.319407,-0.9804 0,-0.665429 -0.319407,-0.973745 -0.317188,-0.310534 -1.00258,-0.310534 z m -0.448056,-0.368204 h 0.920511 q 0.962655,0 1.412929,0.401476 0.450274,0.399258 0.450274,1.251007 0,0.856187 -0.452492,1.257663 -0.452493,0.401475 -1.410711,0.401475 h -0.920511 z"
style="stroke-width:0.42587495"
id="path2329"
inkscape:connector-curvature="0" />
<path
d="m 72.235814,92.427745 v 1.244354 h 0.563397 q 0.312752,0 0.483545,-0.161922 0.170794,-0.161921 0.170794,-0.461364 0,-0.297225 -0.170794,-0.459147 -0.170793,-0.161921 -0.483545,-0.161921 z m -0.448056,-0.368204 h 1.011453 q 0.556743,0 0.840659,0.252863 0.286135,0.250645 0.286135,0.736409 0,0.4902 -0.286135,0.740845 -0.283916,0.250645 -0.840659,0.250645 h -0.563397 v 1.330859 h -0.448056 z"
style="stroke-width:0.42587495"
id="path2331"
inkscape:connector-curvature="0" />
<path
d="m 75.34337,92.500943 -0.607759,1.648047 h 1.217736 z m -0.252863,-0.441402 h 0.507944 l 1.262099,3.311621 h -0.465801 l -0.301661,-0.849531 h -1.492781 l -0.301661,0.849531 H 73.82619 Z"
style="stroke-width:0.42587495"
id="path2333"
inkscape:connector-curvature="0" />
<path
d="m 77.341876,92.059541 h 0.603323 l 1.468381,2.770405 v -2.770405 h 0.434748 v 3.311621 h -0.603323 l -1.468382,-2.770405 v 2.770405 h -0.434747 z"
style="stroke-width:0.42587495"
id="path2335"
inkscape:connector-curvature="0" />
<path
d="m 80.740004,92.059541 h 0.603323 l 1.468382,2.770405 v -2.770405 h 0.434747 v 3.311621 h -0.603323 l -1.468381,-2.770405 v 2.770405 h -0.434748 z"
style="stroke-width:0.42587495"
id="path2337"
inkscape:connector-curvature="0" />
<path
d="m 84.138131,92.059541 h 2.093885 v 0.377077 h -1.645829 v 0.980399 h 1.577068 v 0.377077 h -1.577068 v 1.199992 h 1.685755 v 0.377076 h -2.133811 z"
style="stroke-width:0.42587495"
id="path2339"
inkscape:connector-curvature="0" />
<path
d="m 88.583202,93.818493 q 0.144176,0.0488 0.27948,0.208502 0.137522,0.159703 0.275044,0.439183 l 0.454711,0.904984 h -0.481328 l -0.423657,-0.849531 q -0.164139,-0.332715 -0.319406,-0.441402 -0.153049,-0.108687 -0.419221,-0.108687 h -0.487981 v 1.39962 h -0.448056 v -3.311621 h 1.011453 q 0.567833,0 0.847314,0.237336 0.27948,0.237337 0.27948,0.716446 0,0.312752 -0.146395,0.519035 -0.144176,0.206284 -0.421438,0.286135 z m -1.122358,-1.390748 v 1.175593 h 0.563397 q 0.323842,0 0.487982,-0.148613 0.166357,-0.150831 0.166357,-0.441402 0,-0.290571 -0.166357,-0.436965 -0.16414,-0.148613 -0.487982,-0.148613 z"
style="stroke-width:0.42587495"
id="path2341"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Input"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2274">
<path
d="m 47.551148,108.90941 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path2362"
inkscape:connector-curvature="0" />
<path
d="m 49.655412,110.03527 v 0.93155 h -0.253559 v -0.92329 q 0,-0.2191 -0.08544,-0.32797 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 H 48.36281 v -1.5434 h 0.254938 v 0.23978 q 0.09095,-0.13919 0.213595,-0.20809 0.124024,-0.0689 0.285254,-0.0689 0.265962,0 0.402388,0.16536 0.136425,0.16399 0.136425,0.4837 z"
style="stroke-width:0.26458332"
id="path2364"
inkscape:connector-curvature="0" />
<path
d="m 50.409199,110.73531 v 0.81855 h -0.254937 v -2.13044 h 0.254937 v 0.23426 q 0.07993,-0.1378 0.201194,-0.20395 0.122645,-0.0675 0.292144,-0.0675 0.28112,0 0.456131,0.22324 0.176388,0.22324 0.176388,0.58705 0,0.3638 -0.176388,0.58704 -0.175011,0.22324 -0.456131,0.22324 -0.169499,0 -0.292144,-0.0661 -0.121268,-0.0675 -0.201194,-0.20533 z m 0.862652,-0.53881 q 0,-0.27975 -0.115755,-0.43822 -0.114377,-0.15985 -0.315571,-0.15985 -0.201193,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43822 0,0.27974 0.114377,0.43959 0.115756,0.15847 0.316949,0.15847 0.201194,0 0.315571,-0.15847 0.115755,-0.15985 0.115755,-0.43959 z"
style="stroke-width:0.26458332"
id="path2366"
inkscape:connector-curvature="0" />
<path
d="m 51.929176,110.35773 v -0.93431 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10887 0.256315,0.10887 0.205328,0 0.323839,-0.13092 0.119889,-0.13091 0.119889,-0.35691 v -0.87505 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121267,0.0675 -0.282497,0.0675 -0.265962,0 -0.403766,-0.16536 -0.137803,-0.16537 -0.137803,-0.48369 z m 0.638031,-0.97152 z"
style="stroke-width:0.26458332"
id="path2368"
inkscape:connector-curvature="0" />
<path
d="m 53.997611,108.9852 v 0.43822 h 0.522276 v 0.19706 h -0.522276 v 0.83784 q 0,0.18879 0.05099,0.24254 0.05237,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 h -0.260449 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83784 h -0.186035 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path2370"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Pan"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2280"
transform="translate(1.5875)">
<path
d="m 60.39118,109.2718 v 0.77308 h 0.350022 q 0.194303,0 0.300412,-0.1006 0.106109,-0.10059 0.106109,-0.28663 0,-0.18466 -0.106109,-0.28525 -0.106109,-0.1006 -0.300412,-0.1006 z m -0.278364,-0.22875 h 0.628386 q 0.345887,0 0.522276,0.15709 0.177767,0.15572 0.177767,0.45751 0,0.30455 -0.177767,0.46027 -0.176389,0.15571 -0.522276,0.15571 H 60.39118 v 0.82683 h -0.278364 z"
style="stroke-width:0.26458332"
id="path2355"
inkscape:connector-curvature="0" />
<path
d="m 62.379689,110.32462 q -0.307302,0 -0.425814,0.0703 -0.118511,0.0703 -0.118511,0.23978 0,0.13505 0.08819,0.21497 0.08957,0.0786 0.242534,0.0786 0.21084,0 0.33762,-0.14883 0.128157,-0.1502 0.128157,-0.39825 v -0.0565 z m 0.50574,-0.10473 v 0.88057 H 62.63187 v -0.23427 q -0.08682,0.14056 -0.216352,0.20808 -0.129535,0.0662 -0.316949,0.0662 -0.237022,0 -0.377582,-0.13229 -0.139182,-0.13367 -0.139182,-0.35691 0,-0.26045 0.173633,-0.39275 0.175011,-0.13229 0.520898,-0.13229 h 0.355534 v -0.0248 q 0,-0.17501 -0.115755,-0.2701 -0.114377,-0.0965 -0.322461,-0.0965 -0.132292,0 -0.257693,0.0317 -0.125402,0.0317 -0.241157,0.0951 v -0.23427 q 0.139182,-0.0537 0.270096,-0.0799 0.130913,-0.0276 0.254937,-0.0276 0.334863,0 0.500228,0.17363 0.165364,0.17363 0.165364,0.52641 z"
style="stroke-width:0.26458332"
id="path2357"
inkscape:connector-curvature="0" />
<path
d="m 64.692037,110.1689 v 0.93156 h -0.253559 v -0.92329 q 0,-0.21911 -0.08544,-0.32797 -0.08544,-0.10887 -0.256315,-0.10887 -0.205328,0 -0.323839,0.13092 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.54341 h 0.254937 v 0.23978 q 0.09095,-0.13918 0.213596,-0.20808 0.124023,-0.0689 0.285253,-0.0689 0.265962,0 0.402388,0.16536 0.136425,0.16399 0.136425,0.48369 z"
style="stroke-width:0.26458332"
id="path2359"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Level"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2284"
transform="translate(0.52916667)">
<path
d="m 70.937226,109.04305 h 0.278364 v 1.82314 h 1.001833 v 0.23427 h -1.280197 z"
style="stroke-width:0.26458332"
id="path2344"
inkscape:connector-curvature="0" />
<path
d="m 73.767716,110.26537 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21498 -0.214974,-0.58154 0,-0.37896 0.203949,-0.60082 0.205328,-0.22324 0.552594,-0.22324 0.311436,0 0.491959,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117133,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path2346"
inkscape:connector-curvature="0" />
<path
d="M 74.001983,109.55705 H 74.2707 l 0.482314,1.29536 0.482313,-1.29536 h 0.268717 l -0.578776,1.54341 h -0.344509 z"
style="stroke-width:0.26458332"
id="path2348"
inkscape:connector-curvature="0" />
<path
d="m 77.174227,110.26537 v 0.12402 h -1.165821 q 0.01654,0.26183 0.157097,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282497,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21498 -0.214974,-0.58154 0,-0.37896 0.20395,-0.60082 0.205327,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117134,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path2350"
inkscape:connector-curvature="0" />
<path
d="m 77.590394,108.95623 h 0.253559 v 2.14423 h -0.253559 z"
style="stroke-width:0.26458332"
id="path2352"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="1"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2292"
transform="translate(0,1.0583333)">
<path
d="m 47.223282,118.2161 h 0.454753 v -1.56958 l -0.494716,0.0992 v -0.25356 l 0.49196,-0.0992 h 0.278363 v 1.82314 h 0.454753 v 0.23427 h -1.185113 z"
style="stroke-width:0.26458332"
id="path2382"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="2"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2296"
transform="translate(-0.52916667,1.0583333)">
<path
d="m 47.815731,127.43691 h 0.971517 v 0.23426 h -1.30638 v -0.23426 q 0.158474,-0.16399 0.431326,-0.4396 0.27423,-0.27698 0.34451,-0.35691 0.133669,-0.15021 0.186035,-0.25356 0.05374,-0.10473 0.05374,-0.20533 0,-0.16398 -0.115755,-0.26734 -0.114377,-0.10335 -0.299034,-0.10335 -0.130914,0 -0.276986,0.0455 -0.144694,0.0455 -0.310059,0.1378 V 125.713 q 0.168121,-0.0675 0.314193,-0.10197 0.146072,-0.0344 0.26734,-0.0344 0.319704,0 0.509874,0.15985 0.190169,0.15985 0.190169,0.42719 0,0.12678 -0.04823,0.24116 -0.04685,0.113 -0.172255,0.26734 -0.03445,0.04 -0.219108,0.23151 -0.184657,0.19017 -0.520899,0.5333 z"
style="stroke-width:0.26458332"
id="path2379"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="3"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2300"
transform="translate(-0.52916667,2.6458334)">
<path
d="m 48.152043,134.71356 q 0.199815,0.0427 0.311437,0.17776 0.112999,0.13505 0.112999,0.33349 0,0.30454 -0.209462,0.47129 -0.209462,0.16674 -0.595313,0.16674 -0.129535,0 -0.267339,-0.0262 -0.136426,-0.0248 -0.282498,-0.0758 v -0.26871 q 0.115755,0.0675 0.253559,0.10197 0.137804,0.0344 0.28801,0.0344 0.261827,0 0.398253,-0.10335 0.137804,-0.10335 0.137804,-0.30041 0,-0.1819 -0.128158,-0.28388 -0.126779,-0.10335 -0.354155,-0.10335 h -0.239779 v -0.22876 h 0.250803 q 0.205328,0 0.314193,-0.0813 0.108865,-0.0827 0.108865,-0.23702 0,-0.15848 -0.112999,-0.24254 -0.111622,-0.0854 -0.321083,-0.0854 -0.114378,0 -0.245291,0.0248 -0.130914,0.0248 -0.28801,0.0772 v -0.24805 q 0.158474,-0.0441 0.296278,-0.0661 0.139182,-0.0221 0.261827,-0.0221 0.316949,0 0.501606,0.14469 0.184657,0.14332 0.184657,0.38861 0,0.17088 -0.09784,0.28939 -0.09784,0.11713 -0.278364,0.16261 z"
style="stroke-width:0.26458332"
id="path2376"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="4"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2304"
transform="translate(-0.52916667,3.7041668)">
<path
d="m 48.207131,143.09517 -0.702799,1.0983 h 0.702799 z m -0.07304,-0.24253 h 0.350022 v 1.34083 h 0.293522 v 0.23151 h -0.293522 v 0.48507 h -0.276986 v -0.48507 h -0.928798 v -0.26872 z"
style="stroke-width:0.26458332"
id="path2373"
inkscape:connector-curvature="0" />
</g>
<g
id="g2321"
transform="translate(-1.6036172)">
<g
transform="translate(2.6619506)"
aria-label="Output"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2288">
<path
d="m 81.260392,116.31448 q -0.303168,0 -0.482313,0.226 -0.177767,0.22599 -0.177767,0.61598 0,0.38861 0.177767,0.6146 0.179145,0.226 0.482313,0.226 0.303169,0 0.479558,-0.226 0.177766,-0.22599 0.177766,-0.6146 0,-0.38999 -0.177766,-0.61598 -0.176389,-0.226 -0.479558,-0.226 z m 0,-0.226 q 0.432704,0 0.691775,0.29077 0.259072,0.28938 0.259072,0.77721 0,0.48645 -0.259072,0.77721 -0.259071,0.28939 -0.691775,0.28939 -0.434082,0 -0.694531,-0.28939 -0.259071,-0.28939 -0.259071,-0.77721 0,-0.48783 0.259071,-0.77721 0.260449,-0.29077 0.694531,-0.29077 z"
style="stroke-width:0.26458332"
id="path2385"
inkscape:connector-curvature="0" />
<path
d="m 82.609492,117.574 v -0.9343 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10886 0.256315,0.10886 0.205328,0 0.323839,-0.13091 0.11989,-0.13091 0.11989,-0.35691 v -0.87505 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16536 -0.137804,-0.16537 -0.137804,-0.4837 z m 0.638031,-0.97151 z"
style="stroke-width:0.26458332"
id="path2387"
inkscape:connector-curvature="0" />
<path
d="m 84.677927,116.20148 v 0.43822 h 0.522277 v 0.19705 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05236,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19705 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path2389"
inkscape:connector-curvature="0" />
<path
d="m 85.780358,117.95159 v 0.81855 h -0.254937 v -2.13044 h 0.254937 v 0.23426 q 0.07993,-0.1378 0.201193,-0.20395 0.122646,-0.0675 0.292144,-0.0675 0.28112,0 0.456131,0.22324 0.176389,0.22324 0.176389,0.58704 0,0.36381 -0.176389,0.58705 -0.175011,0.22324 -0.456131,0.22324 -0.169498,0 -0.292144,-0.0661 -0.121267,-0.0675 -0.201193,-0.20533 z m 0.862652,-0.53882 q 0,-0.27974 -0.115756,-0.43821 -0.114377,-0.15985 -0.31557,-0.15985 -0.201194,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43821 0,0.27975 0.114377,0.4396 0.115755,0.15847 0.316949,0.15847 0.201193,0 0.31557,-0.15847 0.115756,-0.15985 0.115756,-0.4396 z"
style="stroke-width:0.26458332"
id="path2391"
inkscape:connector-curvature="0" />
<path
d="m 87.300334,117.574 v -0.9343 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10886 0.256315,0.10886 0.205328,0 0.323839,-0.13091 0.119889,-0.13091 0.119889,-0.35691 v -0.87505 h 0.253559 v 1.5434 h -0.253559 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121267,0.0675 -0.282497,0.0675 -0.265962,0 -0.403766,-0.16536 -0.137803,-0.16537 -0.137803,-0.4837 z m 0.638031,-0.97151 z"
style="stroke-width:0.26458332"
id="path2393"
inkscape:connector-curvature="0" />
<path
d="m 89.368769,116.20148 v 0.43822 h 0.522277 v 0.19705 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05236,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 h -0.260449 q -0.293523,0 -0.405144,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19705 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path2395"
inkscape:connector-curvature="0" />
</g>
<rect
y="120.58852"
x="82.692741"
height="24.722433"
width="7.6171818"
id="rect2306"
style="fill:#000000;fill-opacity:1;stroke-width:0.33650789" />
<g
aria-label="L"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2310"
transform="translate(-0.52916667)">
<path
d="m 86.30523,121.47107 h 0.278363 v 1.82314 h 1.001834 v 0.23427 H 86.30523 Z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path2401"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text2314"
transform="translate(-0.5291667,2.1166667)">
<path
d="m 87.013608,141.1391 q 0.08957,0.0303 0.173633,0.12954 0.08544,0.0992 0.170876,0.27285 l 0.282498,0.56224 h -0.299034 l -0.263205,-0.52779 q -0.101975,-0.20671 -0.198438,-0.27423 -0.09508,-0.0675 -0.260449,-0.0675 H 86.31632 v 0.86954 h -0.278363 v -2.05741 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.4451 0,0.19431 -0.09095,0.32247 -0.08957,0.12815 -0.261827,0.17776 z m -0.697288,-0.86403 v 0.73036 h 0.350022 q 0.201194,0 0.303169,-0.0923 0.103352,-0.0937 0.103352,-0.27423 0,-0.18052 -0.103352,-0.27147 -0.101975,-0.0923 -0.303169,-0.0923 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path2398"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>

+ 593
- 0
plugins/community/repos/PG-Instruments/res/PGSEQ3.svg View File

@@ -0,0 +1,593 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="660.49908"
height="380"
viewBox="0 0 174.75705 100.54166"
version="1.1"
id="svg12553"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGSEQ3.svg">
<defs
id="defs12547" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2"
inkscape:cx="389.58525"
inkscape:cy="189.59439"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid12870"
originx="-20.372917"
originy="84.666661" />
</sodipodi:namedview>
<metadata
id="metadata12550">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-26.543497,-161.30655)">
<path
inkscape:connector-curvature="0"
id="path33453"
d="M 26.616839,161.37987 H 201.96225 v 100.3961 H 26.616839 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.39119366"
sodipodi:insensitive="true" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="114.64974"
y="199.67114"
id="text4659"><tspan
sodipodi:role="line"
id="tspan4657"
x="114.64974"
y="209.03491"
style="stroke-width:0.26458332" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="117.29558"
y="199.67114"
id="text4663"><tspan
sodipodi:role="line"
id="tspan4661"
x="117.29558"
y="209.03491"
style="stroke-width:0.26458332" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="114.64974"
y="198.34822"
id="text4667"><tspan
sodipodi:role="line"
id="tspan4665"
x="114.64974"
y="200.84523"
style="stroke-width:0.26458332" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="114.64974"
y="200.99405"
id="text4671"><tspan
sodipodi:role="line"
id="tspan4669"
x="114.64974"
y="203.49106"
style="stroke-width:0.26458332" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="114.64974"
y="199.67114"
id="text4675"><tspan
sodipodi:role="line"
id="tspan4673"
x="114.64974"
y="201.5439"
style="stroke-width:0.26458332" /></text>
<path
d="m 108.98168,256.35727 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
id="path3737"
inkscape:connector-curvature="0" />
<path
d="m 114.64975,259.20239 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
id="path3739"
inkscape:connector-curvature="0" />
<path
d="m 116.20211,256.88594 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
id="path3741"
inkscape:connector-curvature="0" />
<g
aria-label="PG-SEQ-3 a 16 step sequencer"
transform="matrix(1.0459845,0,0,1.2264996,-43.724866,0)"
style="font-style:normal;font-weight:normal;font-size:3.66321492px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.34342638"
id="text4072">
<path
d="m 160.30281,153.56112 v 1.00344 h 0.45432 q 0.25221,0 0.38993,-0.13057 0.13773,-0.13057 0.13773,-0.37204 0,-0.23969 -0.13773,-0.37026 -0.13772,-0.13057 -0.38993,-0.13057 z m -0.36132,-0.29693 h 0.81564 q 0.44896,0 0.67791,0.20391 0.23074,0.20212 0.23074,0.59385 0,0.39529 -0.23074,0.59741 -0.22895,0.20212 -0.67791,0.20212 h -0.45432 v 1.07321 h -0.36132 z"
style="stroke-width:0.34342638"
id="path4074"
inkscape:connector-curvature="0" />
<path
d="m 163.97318,155.5537 v -0.71726 h -0.59027 v -0.29692 h 0.948 v 1.14655 q -0.20927,0.14846 -0.46148,0.22537 -0.2522,0.0751 -0.53839,0.0751 -0.62604,0 -0.98019,-0.36489 -0.35237,-0.36668 -0.35237,-1.01954 0,-0.65466 0.35237,-1.01955 0.35415,-0.36668 0.98019,-0.36668 0.26115,0 0.49547,0.0644 0.2361,0.0644 0.43465,0.1896 v 0.38457 q -0.20034,-0.16993 -0.42571,-0.25578 -0.22537,-0.0859 -0.474,-0.0859 -0.4901,0 -0.73694,0.27367 -0.24505,0.27367 -0.24505,0.81564 0,0.54018 0.24505,0.81385 0.24684,0.27366 0.73694,0.27366 0.19139,0 0.34164,-0.0322 0.15025,-0.034 0.27009,-0.10375 z"
style="stroke-width:0.34342638"
id="path4076"
inkscape:connector-curvature="0" />
<path
d="m 164.81207,154.78457 h 0.9641 v 0.29335 h -0.9641 z"
style="stroke-width:0.34342638"
id="path4078"
inkscape:connector-curvature="0" />
<path
d="m 167.91722,153.35184 v 0.35237 q -0.2057,-0.0984 -0.38815,-0.14667 -0.18244,-0.0483 -0.35237,-0.0483 -0.29513,0 -0.45611,0.11448 -0.15919,0.11447 -0.15919,0.32554 0,0.17708 0.10553,0.2683 0.10732,0.0894 0.40424,0.14488 l 0.21822,0.0447 q 0.40424,0.0769 0.59563,0.27188 0.19318,0.19318 0.19318,0.51872 0,0.38814 -0.26115,0.58847 -0.25936,0.20033 -0.76198,0.20033 -0.1896,0 -0.40424,-0.0429 -0.21285,-0.0429 -0.4418,-0.127 v -0.37205 q 0.22,0.12342 0.43107,0.18603 0.21106,0.0626 0.41497,0.0626 0.30944,0 0.47758,-0.12163 0.16814,-0.12163 0.16814,-0.347 0,-0.19676 -0.12164,-0.30766 -0.11984,-0.11089 -0.39529,-0.16634 l -0.22001,-0.0429 q -0.40424,-0.0805 -0.5849,-0.25221 -0.18066,-0.17171 -0.18066,-0.47757 0,-0.35416 0.24863,-0.55807 0.25042,-0.20391 0.68864,-0.20391 0.18781,0 0.38278,0.034 0.19497,0.034 0.39888,0.10196 z"
style="stroke-width:0.34342638"
id="path4080"
inkscape:connector-curvature="0" />
<path
d="m 168.64163,153.26419 h 1.68851 v 0.30408 h -1.3272 v 0.7906 h 1.27175 v 0.30407 h -1.27175 v 0.96768 h 1.3594 v 0.30407 h -1.72071 z"
style="stroke-width:0.34342638"
id="path4082"
inkscape:connector-curvature="0" />
<path
d="m 172.0437,153.50924 q -0.39351,0 -0.62604,0.29335 -0.23074,0.29334 -0.23074,0.79954 0,0.5044 0.23074,0.79775 0.23253,0.29334 0.62604,0.29334 0.39351,0 0.62246,-0.29334 0.23074,-0.29335 0.23074,-0.79775 0,-0.5062 -0.23074,-0.79954 -0.22895,-0.29335 -0.62246,-0.29335 z m 0.50619,2.37716 0.47579,0.5205 h -0.43643 l -0.3953,-0.42749 q -0.059,0.004 -0.0912,0.005 -0.0304,0.002 -0.059,0.002 -0.56344,0 -0.9015,-0.37562 -0.33627,-0.37741 -0.33627,-1.00881 0,-0.6332 0.33627,-1.00882 0.33806,-0.37741 0.9015,-0.37741 0.56164,0 0.89792,0.37741 0.33627,0.37562 0.33627,1.00882 0,0.46505 -0.18781,0.79596 -0.18603,0.3309 -0.54019,0.48831 z"
style="stroke-width:0.34342638"
id="path4084"
inkscape:connector-curvature="0" />
<path
d="m 173.76262,154.78457 h 0.9641 v 0.29335 h -0.9641 z"
style="stroke-width:0.34342638"
id="path4086"
inkscape:connector-curvature="0" />
<path
d="m 176.39377,154.49481 q 0.25935,0.0554 0.40424,0.23074 0.14667,0.17529 0.14667,0.43286 0,0.39529 -0.27188,0.61172 -0.27188,0.21643 -0.77271,0.21643 -0.16814,0 -0.347,-0.034 -0.17708,-0.0322 -0.36668,-0.0984 v -0.34879 q 0.15025,0.0876 0.32911,0.13236 0.17887,0.0447 0.37384,0.0447 0.33985,0 0.51693,-0.13415 0.17886,-0.13415 0.17886,-0.38993 0,-0.23611 -0.16634,-0.36847 -0.16456,-0.13415 -0.45969,-0.13415 h -0.31123 v -0.29692 h 0.32554 q 0.26651,0 0.40782,-0.10554 0.1413,-0.10732 0.1413,-0.30765 0,-0.2057 -0.14667,-0.31481 -0.14488,-0.11089 -0.41676,-0.11089 -0.14846,0 -0.31839,0.0322 -0.16992,0.0322 -0.37383,0.10017 v -0.32196 q 0.2057,-0.0572 0.38456,-0.0859 0.18066,-0.0286 0.33985,-0.0286 0.4114,0 0.65108,0.18781 0.23969,0.18602 0.23969,0.50441 0,0.2218 -0.127,0.37562 -0.127,0.15204 -0.36131,0.21107 z"
style="stroke-width:0.34342638"
id="path4088"
inkscape:connector-curvature="0" />
<path
d="m 179.66168,154.92767 q -0.39887,0 -0.5527,0.0912 -0.15383,0.0912 -0.15383,0.31123 0,0.17529 0.11448,0.27903 0.11626,0.10196 0.31481,0.10196 0.27366,0 0.43822,-0.19318 0.16635,-0.19497 0.16635,-0.51693 v -0.0733 z m 0.65645,-0.13594 v 1.14296 h -0.32912 v -0.30407 q -0.11269,0.18244 -0.28082,0.27009 -0.16814,0.0858 -0.4114,0.0858 -0.30765,0 -0.4901,-0.17171 -0.18065,-0.1735 -0.18065,-0.46327 0,-0.33806 0.22537,-0.50977 0.22716,-0.17171 0.67612,-0.17171 h 0.46148 v -0.0322 q 0,-0.22716 -0.15025,-0.35058 -0.14846,-0.12521 -0.41855,-0.12521 -0.17171,0 -0.33448,0.0411 -0.16277,0.0411 -0.31302,0.12342 v -0.30408 q 0.18065,-0.0697 0.35058,-0.10374 0.16992,-0.0358 0.3309,-0.0358 0.43465,0 0.6493,0.22537 0.21464,0.22537 0.21464,0.68328 z"
style="stroke-width:0.34342638"
id="path4090"
inkscape:connector-curvature="0" />
<path
d="m 182.27315,155.63062 h 0.59027 v -2.03731 l -0.64214,0.12879 v -0.32912 l 0.63856,-0.12879 h 0.36131 v 2.36643 h 0.59027 v 0.30407 h -1.53827 z"
style="stroke-width:0.34342638"
id="path4092"
inkscape:connector-curvature="0" />
<path
d="m 185.36041,154.45545 q -0.24326,0 -0.38635,0.16635 -0.14131,0.16635 -0.14131,0.45612 0,0.28797 0.14131,0.45611 0.14309,0.16635 0.38635,0.16635 0.24326,0 0.38457,-0.16635 0.14309,-0.16814 0.14309,-0.45611 0,-0.28977 -0.14309,-0.45612 -0.14131,-0.16635 -0.38457,-0.16635 z m 0.71726,-1.13223 v 0.32912 q -0.13594,-0.0644 -0.27545,-0.0984 -0.13773,-0.034 -0.27367,-0.034 -0.35774,0 -0.54734,0.24147 -0.18781,0.24147 -0.21464,0.72978 0.10553,-0.15562 0.26473,-0.2379 0.15919,-0.0841 0.35058,-0.0841 0.40245,0 0.63498,0.24505 0.23432,0.24326 0.23432,0.6636 0,0.41139 -0.24326,0.66002 -0.24327,0.24862 -0.64751,0.24862 -0.46326,0 -0.70831,-0.35415 -0.24505,-0.35595 -0.24505,-1.03028 0,-0.6332 0.3005,-1.00882 0.30049,-0.37741 0.80669,-0.37741 0.13594,0 0.27367,0.0268 0.13951,0.0268 0.28976,0.0805 z"
style="stroke-width:0.34342638"
id="path4094"
inkscape:connector-curvature="0" />
<path
d="m 189.27226,153.9904 v 0.31123 q -0.13952,-0.0716 -0.28977,-0.10732 -0.15025,-0.0358 -0.31123,-0.0358 -0.24505,0 -0.36847,0.0751 -0.12163,0.0751 -0.12163,0.22537 0,0.11448 0.0876,0.18066 0.0876,0.0644 0.35237,0.12342 l 0.11268,0.025 q 0.35058,0.0751 0.49726,0.21285 0.14846,0.13594 0.14846,0.38099 0,0.27903 -0.2218,0.4418 -0.22001,0.16277 -0.60636,0.16277 -0.16098,0 -0.33627,-0.0322 -0.17351,-0.0304 -0.36668,-0.093 v -0.33985 q 0.18244,0.0948 0.35952,0.14309 0.17708,0.0465 0.35058,0.0465 0.23253,0 0.35774,-0.0787 0.12521,-0.0805 0.12521,-0.22538 0,-0.13415 -0.0912,-0.2057 -0.0894,-0.0715 -0.3953,-0.13772 l -0.11447,-0.0268 q -0.30586,-0.0644 -0.4418,-0.19676 -0.13594,-0.13415 -0.13594,-0.36668 0,-0.28261 0.20033,-0.43644 0.20033,-0.15382 0.5688,-0.15382 0.18244,0 0.34342,0.0268 0.16099,0.0268 0.29693,0.0805 z"
style="stroke-width:0.34342638"
id="path4096"
inkscape:connector-curvature="0" />
<path
d="m 190.23099,153.36257 v 0.5688 h 0.67791 v 0.25578 h -0.67791 v 1.08752 q 0,0.24505 0.0662,0.31481 0.068,0.0698 0.27367,0.0698 h 0.33806 v 0.27545 h -0.33806 q -0.38099,0 -0.52588,-0.1413 -0.14488,-0.1431 -0.14488,-0.51872 v -1.08752 h -0.24147 v -0.25578 h 0.24147 v -0.5688 z"
style="stroke-width:0.34342638"
id="path4098"
inkscape:connector-curvature="0" />
<path
d="m 193.0571,154.85075 v 0.16098 h -1.51322 q 0.0215,0.33985 0.20391,0.51872 0.18423,0.17708 0.51156,0.17708 0.1896,0 0.36668,-0.0465 0.17887,-0.0465 0.35416,-0.13951 v 0.31123 q -0.17708,0.0751 -0.3631,0.11447 -0.18603,0.0393 -0.37742,0.0393 -0.47936,0 -0.76018,-0.27903 -0.27904,-0.27903 -0.27904,-0.75482 0,-0.49189 0.26473,-0.77987 0.26651,-0.28976 0.71726,-0.28976 0.40424,0 0.63856,0.26114 0.2361,0.25936 0.2361,0.70653 z m -0.32912,-0.0966 q -0.004,-0.27009 -0.15203,-0.43107 -0.14668,-0.16098 -0.38994,-0.16098 -0.27545,0 -0.4418,0.15562 -0.16456,0.15561 -0.1896,0.43822 z"
style="stroke-width:0.34342638"
id="path4100"
inkscape:connector-curvature="0" />
<path
d="m 193.91567,155.63419 v 1.06248 h -0.33091 v -2.7653 h 0.33091 v 0.30408 q 0.10374,-0.17887 0.26114,-0.26473 0.1592,-0.0876 0.3792,-0.0876 0.3649,0 0.59206,0.28976 0.22895,0.28977 0.22895,0.76198 0,0.47221 -0.22895,0.76198 -0.22716,0.28976 -0.59206,0.28976 -0.22,0 -0.3792,-0.0858 -0.1574,-0.0876 -0.26114,-0.26652 z m 1.11971,-0.69937 q 0,-0.3631 -0.15025,-0.5688 -0.14846,-0.20749 -0.40961,-0.20749 -0.26114,0 -0.41139,0.20749 -0.14846,0.2057 -0.14846,0.5688 0,0.3631 0.14846,0.57059 0.15025,0.2057 0.41139,0.2057 0.26115,0 0.40961,-0.2057 0.15025,-0.20749 0.15025,-0.57059 z"
style="stroke-width:0.34342638"
id="path4102"
inkscape:connector-curvature="0" />
<path
d="m 198.3659,153.9904 v 0.31123 q -0.13952,-0.0716 -0.28977,-0.10732 -0.15024,-0.0358 -0.31123,-0.0358 -0.24504,0 -0.36846,0.0751 -0.12163,0.0751 -0.12163,0.22537 0,0.11448 0.0876,0.18066 0.0876,0.0644 0.35237,0.12342 l 0.11269,0.025 q 0.35058,0.0751 0.49725,0.21285 0.14846,0.13594 0.14846,0.38099 0,0.27903 -0.2218,0.4418 -0.22,0.16277 -0.60636,0.16277 -0.16098,0 -0.33627,-0.0322 -0.1735,-0.0304 -0.36668,-0.093 v -0.33985 q 0.18245,0.0948 0.35953,0.14309 0.17708,0.0465 0.35058,0.0465 0.23253,0 0.35773,-0.0787 0.12521,-0.0805 0.12521,-0.22538 0,-0.13415 -0.0912,-0.2057 -0.0894,-0.0715 -0.3953,-0.13772 l -0.11448,-0.0268 q -0.30586,-0.0644 -0.4418,-0.19676 -0.13594,-0.13415 -0.13594,-0.36668 0,-0.28261 0.20033,-0.43644 0.20034,-0.15382 0.5688,-0.15382 0.18245,0 0.34343,0.0268 0.16098,0.0268 0.29692,0.0805 z"
style="stroke-width:0.34342638"
id="path4104"
inkscape:connector-curvature="0" />
<path
d="m 200.71265,154.85075 v 0.16098 h -1.51323 q 0.0215,0.33985 0.20391,0.51872 0.18424,0.17708 0.51157,0.17708 0.1896,0 0.36668,-0.0465 0.17886,-0.0465 0.35415,-0.13951 v 0.31123 q -0.17708,0.0751 -0.3631,0.11447 -0.18602,0.0393 -0.37741,0.0393 -0.47937,0 -0.76019,-0.27903 -0.27903,-0.27903 -0.27903,-0.75482 0,-0.49189 0.26472,-0.77987 0.26652,-0.28976 0.71726,-0.28976 0.40424,0 0.63856,0.26114 0.23611,0.25936 0.23611,0.70653 z m -0.32912,-0.0966 q -0.004,-0.27009 -0.15204,-0.43107 -0.14667,-0.16098 -0.38993,-0.16098 -0.27546,0 -0.4418,0.15562 -0.16456,0.15561 -0.1896,0.43822 z"
style="stroke-width:0.34342638"
id="path4106"
inkscape:connector-curvature="0" />
<path
d="m 201.44958,154.93482 q 0,0.3631 0.14846,0.57059 0.15025,0.2057 0.4114,0.2057 0.26115,0 0.41139,-0.2057 0.15025,-0.20749 0.15025,-0.57059 0,-0.3631 -0.15025,-0.5688 -0.15024,-0.20749 -0.41139,-0.20749 -0.26115,0 -0.4114,0.20749 -0.14846,0.2057 -0.14846,0.5688 z m 1.1215,0.69937 q -0.10374,0.17887 -0.26293,0.26652 -0.15741,0.0858 -0.3792,0.0858 -0.3631,0 -0.59206,-0.28976 -0.22716,-0.28977 -0.22716,-0.76198 0,-0.47221 0.22716,-0.76198 0.22896,-0.28976 0.59206,-0.28976 0.22179,0 0.3792,0.0876 0.15919,0.0859 0.26293,0.26473 v -0.30408 h 0.32912 v 2.7653 h -0.32912 z"
style="stroke-width:0.34342638"
id="path4108"
inkscape:connector-curvature="0" />
<path
d="m 203.54413,155.1441 v -1.21273 h 0.32911 v 1.20021 q 0,0.2844 0.1109,0.42749 0.1109,0.14131 0.33269,0.14131 0.26652,0 0.42034,-0.16993 0.15562,-0.16992 0.15562,-0.46327 v -1.13581 h 0.32912 v 2.00332 h -0.32912 v -0.30765 q -0.11984,0.18244 -0.27903,0.27188 -0.15741,0.0876 -0.36668,0.0876 -0.34522,0 -0.52409,-0.21464 -0.17886,-0.21464 -0.17886,-0.62782 z m 0.82815,-1.26102 z"
style="stroke-width:0.34342638"
id="path4110"
inkscape:connector-curvature="0" />
<path
d="m 207.61695,154.85075 v 0.16098 h -1.51322 q 0.0215,0.33985 0.2039,0.51872 0.18424,0.17708 0.51157,0.17708 0.1896,0 0.36668,-0.0465 0.17886,-0.0465 0.35415,-0.13951 v 0.31123 q -0.17707,0.0751 -0.3631,0.11447 -0.18602,0.0393 -0.37741,0.0393 -0.47936,0 -0.76019,-0.27903 -0.27903,-0.27903 -0.27903,-0.75482 0,-0.49189 0.26472,-0.77987 0.26652,-0.28976 0.71726,-0.28976 0.40425,0 0.63856,0.26114 0.23611,0.25936 0.23611,0.70653 z m -0.32912,-0.0966 q -0.004,-0.27009 -0.15204,-0.43107 -0.14667,-0.16098 -0.38993,-0.16098 -0.27546,0 -0.4418,0.15562 -0.16456,0.15561 -0.1896,0.43822 z"
style="stroke-width:0.34342638"
id="path4112"
inkscape:connector-curvature="0" />
<path
d="m 209.82239,154.72555 v 1.20914 h -0.32912 v -1.19841 q 0,-0.2844 -0.1109,-0.42571 -0.1109,-0.1413 -0.33269,-0.1413 -0.26651,0 -0.42034,0.16992 -0.15383,0.16993 -0.15383,0.46327 v 1.13223 h -0.3309 v -2.00332 h 0.3309 v 0.31123 q 0.11806,-0.18065 0.27725,-0.27009 0.16098,-0.0894 0.37025,-0.0894 0.34522,0 0.5223,0.21464 0.17708,0.21285 0.17708,0.62783 z"
style="stroke-width:0.34342638"
id="path4114"
inkscape:connector-curvature="0" />
<path
d="m 211.92409,154.00828 v 0.30766 q -0.13952,-0.0769 -0.28083,-0.11448 -0.13951,-0.0393 -0.28261,-0.0393 -0.32017,0 -0.49725,0.20391 -0.17708,0.20212 -0.17708,0.5688 0,0.36668 0.17708,0.57059 0.17708,0.20212 0.49725,0.20212 0.1431,0 0.28261,-0.0376 0.14131,-0.0394 0.28083,-0.11627 v 0.30408 q -0.13773,0.0644 -0.28619,0.0966 -0.14667,0.0322 -0.31302,0.0322 -0.45254,0 -0.71905,-0.2844 -0.26651,-0.2844 -0.26651,-0.76734 0,-0.4901 0.2683,-0.77092 0.27009,-0.28082 0.73872,-0.28082 0.15204,0 0.29692,0.0322 0.14489,0.0304 0.28083,0.093 z"
style="stroke-width:0.34342638"
id="path4116"
inkscape:connector-curvature="0" />
<path
d="m 214.2136,154.85075 v 0.16098 h -1.51323 q 0.0215,0.33985 0.20391,0.51872 0.18424,0.17708 0.51157,0.17708 0.1896,0 0.36668,-0.0465 0.17886,-0.0465 0.35415,-0.13951 v 0.31123 q -0.17708,0.0751 -0.3631,0.11447 -0.18602,0.0393 -0.37741,0.0393 -0.47937,0 -0.76019,-0.27903 -0.27903,-0.27903 -0.27903,-0.75482 0,-0.49189 0.26472,-0.77987 0.26652,-0.28976 0.71726,-0.28976 0.40424,0 0.63856,0.26114 0.23611,0.25936 0.23611,0.70653 z m -0.32912,-0.0966 q -0.004,-0.27009 -0.15204,-0.43107 -0.14667,-0.16098 -0.38993,-0.16098 -0.27546,0 -0.4418,0.15562 -0.16456,0.15561 -0.1896,0.43822 z"
style="stroke-width:0.34342638"
id="path4118"
inkscape:connector-curvature="0" />
<path
d="m 215.91463,154.23902 q -0.0554,-0.0322 -0.12163,-0.0465 -0.0644,-0.0161 -0.14309,-0.0161 -0.27904,0 -0.42929,0.18245 -0.14846,0.18065 -0.14846,0.5205 v 1.05532 h -0.3309 v -2.00332 h 0.3309 v 0.31123 q 0.10375,-0.18244 0.27009,-0.27009 0.16635,-0.0894 0.40424,-0.0894 0.034,0 0.0751,0.005 0.0411,0.004 0.0912,0.0125 z"
style="stroke-width:0.34342638"
id="path4120"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Gate Out"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text150">
<path
d="m 108.12748,253.48492 v -0.55259 h -0.45476 v -0.22876 h 0.73036 v 0.88333 q -0.16123,0.11437 -0.35553,0.17363 -0.1943,0.0579 -0.41479,0.0579 -0.48231,0 -0.75516,-0.28112 -0.27148,-0.2825 -0.27148,-0.78549 0,-0.50436 0.27148,-0.78548 0.27285,-0.2825 0.75516,-0.2825 0.20119,0 0.38172,0.0496 0.1819,0.0496 0.33486,0.14608 v 0.29627 q -0.15434,-0.13091 -0.32797,-0.19706 -0.17364,-0.0661 -0.36518,-0.0661 -0.37759,0 -0.56776,0.21084 -0.18879,0.21084 -0.18879,0.62838 0,0.41617 0.18879,0.62701 0.19017,0.21084 0.56776,0.21084 0.14745,0 0.2632,-0.0248 0.11576,-0.0262 0.20809,-0.0799 z"
style="stroke-width:0.26458332"
id="path188"
inkscape:connector-curvature="0" />
<path
d="m 109.60335,253.00261 q -0.3073,0 -0.42581,0.0703 -0.11851,0.0703 -0.11851,0.23978 0,0.13504 0.0882,0.21497 0.0896,0.0786 0.24254,0.0786 0.21084,0 0.33762,-0.14883 0.12816,-0.15021 0.12816,-0.39825 v -0.0565 z m 0.50574,-0.10473 v 0.88056 h -0.25355 v -0.23426 q -0.0868,0.14056 -0.21636,0.20808 -0.12953,0.0661 -0.31695,0.0661 -0.23702,0 -0.37758,-0.1323 -0.13918,-0.13367 -0.13918,-0.35691 0,-0.26045 0.17363,-0.39274 0.17501,-0.13229 0.5209,-0.13229 h 0.35554 v -0.0248 q 0,-0.17501 -0.11576,-0.27009 -0.11438,-0.0965 -0.32246,-0.0965 -0.13229,0 -0.25769,0.0317 -0.12541,0.0317 -0.24116,0.0951 v -0.23427 q 0.13918,-0.0537 0.2701,-0.0799 0.13091,-0.0276 0.25493,-0.0276 0.33487,0 0.50023,0.17364 0.16536,0.17363 0.16536,0.52641 z"
style="stroke-width:0.26458332"
id="path190"
inkscape:connector-curvature="0" />
<path
d="m 110.88355,251.79682 v 0.43822 h 0.52228 v 0.19706 h -0.52228 v 0.83785 q 0,0.18879 0.051,0.24253 0.0524,0.0537 0.21084,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.29352,0 -0.40514,-0.10886 -0.11162,-0.11025 -0.11162,-0.39963 v -0.83785 h -0.18604 V 252.235 h 0.18604 v -0.43822 z"
style="stroke-width:0.26458332"
id="path192"
inkscape:connector-curvature="0" />
<path
d="m 113.06085,252.94335 v 0.12402 h -1.16582 q 0.0165,0.26183 0.1571,0.39964 0.14194,0.13642 0.39412,0.13642 0.14607,0 0.2825,-0.0358 0.1378,-0.0358 0.27285,-0.10748 v 0.23977 q -0.13643,0.0579 -0.27974,0.0882 -0.14332,0.0303 -0.29077,0.0303 -0.36932,0 -0.58567,-0.21498 -0.21497,-0.21497 -0.21497,-0.58153 0,-0.37896 0.20395,-0.60083 0.20533,-0.22324 0.55259,-0.22324 0.31144,0 0.49196,0.2012 0.1819,0.19981 0.1819,0.54432 z m -0.25356,-0.0744 q -0.003,-0.20809 -0.11713,-0.33211 -0.113,-0.12402 -0.30041,-0.12402 -0.21222,0 -0.34038,0.11989 -0.12678,0.11989 -0.14607,0.33762 z"
style="stroke-width:0.26458332"
id="path194"
inkscape:connector-curvature="0" />
<path
d="m 115.22162,251.90982 q -0.30317,0 -0.48232,0.226 -0.17776,0.226 -0.17776,0.61598 0,0.38861 0.17776,0.61461 0.17915,0.226 0.48232,0.226 0.30316,0 0.47955,-0.226 0.17777,-0.226 0.17777,-0.61461 0,-0.38998 -0.17777,-0.61598 -0.17639,-0.226 -0.47955,-0.226 z m 0,-0.226 q 0.4327,0 0.69177,0.29077 0.25907,0.28939 0.25907,0.77721 0,0.48645 -0.25907,0.77722 -0.25907,0.28939 -0.69177,0.28939 -0.43409,0 -0.69453,-0.28939 -0.25908,-0.28939 -0.25908,-0.77722 0,-0.48782 0.25908,-0.77721 0.26044,-0.29077 0.69453,-0.29077 z"
style="stroke-width:0.26458332"
id="path196"
inkscape:connector-curvature="0" />
<path
d="m 116.57072,253.16935 v -0.93431 h 0.25356 v 0.92466 q 0,0.21911 0.0854,0.32935 0.0854,0.10887 0.25632,0.10887 0.20533,0 0.32384,-0.13091 0.11989,-0.13092 0.11989,-0.35692 v -0.87505 h 0.25356 v 1.5434 h -0.25356 v -0.23702 q -0.0923,0.14056 -0.21498,0.20946 -0.12126,0.0675 -0.28249,0.0675 -0.26597,0 -0.40377,-0.16537 -0.1378,-0.16536 -0.1378,-0.48369 z m 0.63803,-0.97152 z"
style="stroke-width:0.26458332"
id="path198"
inkscape:connector-curvature="0" />
<path
d="m 118.63915,251.79682 v 0.43822 h 0.52228 v 0.19706 h -0.52228 v 0.83785 q 0,0.18879 0.051,0.24253 0.0524,0.0537 0.21084,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.29352,0 -0.40514,-0.10886 -0.11163,-0.11025 -0.11163,-0.39963 v -0.83785 h -0.18603 V 252.235 h 0.18603 v -0.43822 z"
style="stroke-width:0.26458332"
id="path200"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Ext Clock"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text154"
transform="translate(0,-1.0583333)">
<path
d="m 38.462151,184.78144 h 1.300868 v 0.23427 h -1.022504 v 0.60909 H 39.7203 v 0.23427 h -0.979785 v 0.74552 h 1.047309 v 0.23426 h -1.325673 z"
style="stroke-width:0.26458332"
id="path241"
inkscape:connector-curvature="0" />
<path
d="m 41.520018,185.29545 -0.558106,0.75103 0.587045,0.79237 h -0.299035 l -0.44924,-0.60633 -0.449241,0.60633 h -0.299034 l 0.599447,-0.80753 -0.548459,-0.73587 h 0.299034 l 0.409277,0.54984 0.409278,-0.54984 z"
style="stroke-width:0.26458332"
id="path243"
inkscape:connector-curvature="0" />
<path
d="m 42.15805,184.85723 v 0.43822 h 0.522276 v 0.19706 H 42.15805 v 0.83785 q 0,0.18879 0.05099,0.24253 0.05237,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 H 42.41988 q -0.293522,0 -0.405143,-0.10886 -0.111621,-0.11025 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path245"
inkscape:connector-curvature="0" />
<path
d="m 45.465341,184.93992 v 0.29352 q -0.14056,-0.13092 -0.300412,-0.19568 -0.158474,-0.0648 -0.337619,-0.0648 -0.352778,0 -0.540191,0.21635 -0.187414,0.21497 -0.187414,0.62287 0,0.40652 0.187414,0.62288 0.187413,0.21497 0.540191,0.21497 0.179145,0 0.337619,-0.0648 0.159852,-0.0648 0.300412,-0.19568 v 0.29077 q -0.146072,0.0992 -0.310058,0.14883 -0.162609,0.0496 -0.34451,0.0496 -0.467155,0 -0.735872,-0.28526 -0.268718,-0.28663 -0.268718,-0.78135 0,-0.49609 0.268718,-0.78134 0.268717,-0.28664 0.735872,-0.28664 0.184657,0 0.347266,0.0496 0.163986,0.0482 0.307302,0.14608 z"
style="stroke-width:0.26458332"
id="path247"
inkscape:connector-curvature="0" />
<path
d="m 45.887021,184.69462 h 0.253559 v 2.14423 h -0.253559 z"
style="stroke-width:0.26458332"
id="path249"
inkscape:connector-curvature="0" />
<path
d="m 47.267816,185.47322 q -0.20395,0 -0.322461,0.15985 -0.118512,0.15847 -0.118512,0.43546 0,0.27698 0.117134,0.43684 0.118511,0.15847 0.323839,0.15847 0.202571,0 0.321083,-0.15985 0.118511,-0.15985 0.118511,-0.43546 0,-0.27423 -0.118511,-0.43408 -0.118512,-0.16123 -0.321083,-0.16123 z m 0,-0.21498 q 0.330729,0 0.51952,0.21498 0.188791,0.21497 0.188791,0.59531 0,0.37896 -0.188791,0.59531 -0.188791,0.21498 -0.51952,0.21498 -0.332108,0 -0.520899,-0.21498 -0.187413,-0.21635 -0.187413,-0.59531 0,-0.38034 0.187413,-0.59531 0.188791,-0.21498 0.520899,-0.21498 z"
style="stroke-width:0.26458332"
id="path251"
inkscape:connector-curvature="0" />
<path
d="m 49.50575,185.3547 v 0.23703 q -0.107487,-0.0593 -0.216352,-0.0882 -0.107487,-0.0303 -0.217731,-0.0303 -0.246668,0 -0.383094,0.15709 -0.136426,0.15572 -0.136426,0.43822 0,0.2825 0.136426,0.43959 0.136426,0.15572 0.383094,0.15572 0.110244,0 0.217731,-0.0289 0.108865,-0.0303 0.216352,-0.0896 v 0.23427 q -0.106109,0.0496 -0.220487,0.0744 -0.112999,0.0248 -0.241156,0.0248 -0.348644,0 -0.553972,-0.21911 -0.205327,-0.21911 -0.205327,-0.59118 0,-0.37758 0.206705,-0.59394 0.208084,-0.21635 0.56913,-0.21635 0.117133,0 0.228755,0.0248 0.111621,0.0234 0.216352,0.0717 z"
style="stroke-width:0.26458332"
id="path253"
inkscape:connector-curvature="0" />
<path
d="m 49.939832,184.69462 h 0.254937 v 1.26642 l 0.756543,-0.66559 h 0.323839 l -0.818555,0.72209 0.853006,0.82131 h -0.33073 l -0.784103,-0.75378 v 0.75378 h -0.254937 z"
style="stroke-width:0.26458332"
id="path255"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Gate"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text158">
<path
d="m 73.731655,175.43283 v -0.5526 h -0.454753 v -0.22875 h 0.730361 v 0.88332 q -0.161231,0.11438 -0.355534,0.17363 -0.194304,0.0579 -0.41479,0.0579 -0.482313,0 -0.755165,-0.28112 -0.271473,-0.2825 -0.271473,-0.78548 0,-0.50436 0.271473,-0.78548 0.272852,-0.2825 0.755165,-0.2825 0.201194,0 0.381717,0.0496 0.181901,0.0496 0.334863,0.14607 v 0.29628 q -0.15434,-0.13091 -0.327973,-0.19706 -0.173633,-0.0661 -0.36518,-0.0661 -0.377582,0 -0.567752,0.21083 -0.188791,0.21084 -0.188791,0.62839 0,0.41617 0.188791,0.62701 0.19017,0.21084 0.567752,0.21084 0.14745,0 0.263205,-0.0248 0.115755,-0.0262 0.208084,-0.0799 z"
style="stroke-width:0.26458332"
id="path267"
inkscape:connector-curvature="0" />
<path
d="m 75.207534,174.95051 q -0.307303,0 -0.425814,0.0703 -0.118511,0.0703 -0.118511,0.23978 0,0.13505 0.08819,0.21498 0.08957,0.0785 0.242535,0.0785 0.21084,0 0.337619,-0.14882 0.128158,-0.15021 0.128158,-0.39826 v -0.0565 z m 0.50574,-0.10473 v 0.88057 h -0.253559 v -0.23427 q -0.08682,0.14056 -0.216352,0.20809 -0.129536,0.0661 -0.316949,0.0661 -0.237022,0 -0.377582,-0.13229 -0.139182,-0.13367 -0.139182,-0.35691 0,-0.26045 0.173633,-0.39274 0.175011,-0.13229 0.520898,-0.13229 h 0.355534 v -0.0248 q 0,-0.17501 -0.115755,-0.27009 -0.114377,-0.0965 -0.322461,-0.0965 -0.132292,0 -0.257693,0.0317 -0.125402,0.0317 -0.241157,0.0951 v -0.23426 q 0.139182,-0.0538 0.270095,-0.0799 0.130914,-0.0276 0.254938,-0.0276 0.334863,0 0.500227,0.17363 0.165365,0.17363 0.165365,0.52641 z"
style="stroke-width:0.26458332"
id="path269"
inkscape:connector-curvature="0" />
<path
d="m 76.487732,173.74473 v 0.43822 h 0.522276 v 0.19706 h -0.522276 v 0.83784 q 0,0.18879 0.05099,0.24254 0.05236,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 h -0.260449 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83784 h -0.186036 v -0.19706 h 0.186036 v -0.43822 z"
style="stroke-width:0.26458332"
id="path271"
inkscape:connector-curvature="0" />
<path
d="m 78.665032,174.89126 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137803,-0.0358 0.272851,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21498 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60083 0.205328,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117133,-0.3321 -0.113,-0.12403 -0.300413,-0.12403 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path273"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="A"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text162">
<path
d="m 85.45187,174.07545 -0.377582,1.02388 h 0.756543 z m -0.157096,-0.27423 h 0.315571 l 0.784104,2.05741 H 86.10506 l -0.187413,-0.52779 h -0.927419 l -0.187414,0.52779 h -0.293522 z"
style="stroke-width:0.26458332"
id="path264"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="B"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text166"
transform="translate(-0.52916667)">
<path
d="m 95.493628,174.74381 v 0.75378 h 0.446484 q 0.22462,0 0.332107,-0.0923 0.108865,-0.0937 0.108865,-0.28526 0,-0.19292 -0.108865,-0.28387 -0.107487,-0.0923 -0.332107,-0.0923 z m 0,-0.84612 v 0.62012 h 0.412033 q 0.20395,0 0.303168,-0.0758 0.100597,-0.0772 0.100597,-0.23427 0,-0.15572 -0.100597,-0.23289 -0.09922,-0.0772 -0.303168,-0.0772 z m -0.278364,-0.22875 h 0.711068 q 0.318326,0 0.490581,0.13229 0.172255,0.13229 0.172255,0.3762 0,0.1888 -0.08819,0.30042 -0.08819,0.11162 -0.259072,0.13918 0.205328,0.0441 0.318327,0.18466 0.114377,0.13918 0.114377,0.34864 0,0.27561 -0.187413,0.42581 -0.187413,0.15021 -0.533301,0.15021 h -0.738628 z"
style="stroke-width:0.26458332"
id="path261"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="C"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text170"
transform="translate(0.03444667,0.01791566)">
<path
d="m 106.6778,173.69512 v 0.29352 q -0.14056,-0.13091 -0.30041,-0.19568 -0.15848,-0.0648 -0.33762,-0.0648 -0.35278,0 -0.54019,0.21635 -0.18742,0.21498 -0.18742,0.62288 0,0.40652 0.18742,0.62287 0.18741,0.21497 0.54019,0.21497 0.17914,0 0.33762,-0.0648 0.15985,-0.0648 0.30041,-0.19569 v 0.29077 q -0.14607,0.0992 -0.31006,0.14883 -0.16261,0.0496 -0.34451,0.0496 -0.46715,0 -0.73587,-0.28526 -0.26872,-0.28663 -0.26872,-0.78134 0,-0.4961 0.26872,-0.78135 0.26872,-0.28663 0.73587,-0.28663 0.18466,0 0.34727,0.0496 0.16398,0.0482 0.3073,0.14607 z"
style="stroke-width:0.26458332"
id="path258"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Steps"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text174">
<path
d="m 62.846534,170.95834 v 0.27147 q -0.158474,-0.0758 -0.299034,-0.113 -0.14056,-0.0372 -0.271473,-0.0372 -0.227377,0 -0.3514,0.0882 -0.122646,0.0882 -0.122646,0.2508 0,0.13643 0.08131,0.20671 0.08268,0.0689 0.311436,0.11162 l 0.168121,0.0344 q 0.311437,0.0593 0.458887,0.20946 0.148828,0.14883 0.148828,0.39964 0,0.29903 -0.201194,0.45337 -0.199815,0.15434 -0.587044,0.15434 -0.146072,0 -0.311437,-0.0331 -0.163986,-0.0331 -0.340375,-0.0978 v -0.28664 q 0.169499,0.0951 0.332107,0.14332 0.162609,0.0482 0.319705,0.0482 0.238401,0 0.367936,-0.0937 0.129536,-0.0937 0.129536,-0.26734 0,-0.15159 -0.09371,-0.23703 -0.09233,-0.0854 -0.304546,-0.12815 l -0.169499,-0.0331 q -0.311437,-0.062 -0.450618,-0.1943 -0.139182,-0.13229 -0.139182,-0.36794 0,-0.27285 0.191547,-0.42994 0.192925,-0.1571 0.530545,-0.1571 0.144694,0 0.2949,0.0262 0.150206,0.0262 0.307302,0.0785 z"
style="stroke-width:0.26458332"
id="path230"
inkscape:connector-curvature="0" />
<path
d="m 63.644419,170.96661 v 0.43821 h 0.522276 v 0.19706 h -0.522276 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05237,0.0537 0.21084,0.0537 h 0.260449 v 0.21222 h -0.260449 q -0.293522,0 -0.405143,-0.10887 -0.111622,-0.11024 -0.111622,-0.39963 v -0.83785 h -0.186035 v -0.19706 h 0.186035 v -0.43821 z"
style="stroke-width:0.26458332"
id="path232"
inkscape:connector-curvature="0" />
<path
d="m 65.821719,172.11314 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137803,-0.0358 0.272851,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21498 -0.214974,-0.58154 0,-0.37896 0.20395,-0.60082 0.205328,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20808 -0.117133,-0.33211 -0.113,-0.12402 -0.300413,-0.12402 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path234"
inkscape:connector-curvature="0" />
<path
d="m 66.483177,172.71672 v 0.81855 H 66.22824 v -2.13045 h 0.254937 v 0.23427 q 0.07993,-0.1378 0.201194,-0.20395 0.122645,-0.0675 0.292144,-0.0675 0.281119,0 0.45613,0.22324 0.176389,0.22324 0.176389,0.58704 0,0.36381 -0.176389,0.58705 -0.175011,0.22324 -0.45613,0.22324 -0.169499,0 -0.292144,-0.0661 -0.121268,-0.0675 -0.201194,-0.20532 z m 0.862652,-0.53882 q 0,-0.27974 -0.115755,-0.43821 -0.114378,-0.15986 -0.315571,-0.15986 -0.201194,0 -0.316949,0.15986 -0.114377,0.15847 -0.114377,0.43821 0,0.27975 0.114377,0.4396 0.115755,0.15847 0.316949,0.15847 0.201193,0 0.315571,-0.15847 0.115755,-0.15985 0.115755,-0.4396 z"
style="stroke-width:0.26458332"
id="path236"
inkscape:connector-curvature="0" />
<path
d="m 69.013255,171.4503 v 0.23978 q -0.107487,-0.0551 -0.223242,-0.0827 -0.115755,-0.0276 -0.239778,-0.0276 -0.188792,0 -0.283876,0.0579 -0.09371,0.0579 -0.09371,0.17364 0,0.0882 0.06752,0.13918 0.06752,0.0496 0.271474,0.0951 l 0.08682,0.0193 q 0.270095,0.0579 0.383095,0.16399 0.114377,0.10473 0.114377,0.29352 0,0.21498 -0.170877,0.34038 -0.169499,0.1254 -0.467155,0.1254 -0.124023,0 -0.259071,-0.0248 -0.13367,-0.0234 -0.282498,-0.0717 v -0.26183 q 0.14056,0.073 0.276986,0.11024 0.136426,0.0358 0.270095,0.0358 0.179145,0 0.275608,-0.0606 0.09646,-0.062 0.09646,-0.17363 0,-0.10336 -0.07028,-0.15848 -0.0689,-0.0551 -0.304547,-0.10611 l -0.08819,-0.0207 q -0.235645,-0.0496 -0.340376,-0.15158 -0.104731,-0.10336 -0.104731,-0.2825 0,-0.21773 0.154341,-0.33624 0.15434,-0.11851 0.438216,-0.11851 0.14056,0 0.264583,0.0207 0.124024,0.0207 0.228754,0.062 z"
style="stroke-width:0.26458332"
id="path238"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Clock"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text178">
<path
d="m 32.859045,171.31386 v 0.29352 q -0.14056,-0.13091 -0.300413,-0.19568 -0.158474,-0.0648 -0.337619,-0.0648 -0.352778,0 -0.540191,0.21635 -0.187413,0.21497 -0.187413,0.62287 0,0.40652 0.187413,0.62287 0.187413,0.21498 0.540191,0.21498 0.179145,0 0.337619,-0.0648 0.159853,-0.0648 0.300413,-0.19568 v 0.29076 q -0.146072,0.0992 -0.310059,0.14883 -0.162608,0.0496 -0.344509,0.0496 -0.467155,0 -0.735873,-0.28525 -0.268717,-0.28663 -0.268717,-0.78135 0,-0.49609 0.268717,-0.78135 0.268718,-0.28663 0.735873,-0.28663 0.184657,0 0.347265,0.0496 0.163987,0.0482 0.307303,0.14607 z"
style="stroke-width:0.26458332"
id="path219"
inkscape:connector-curvature="0" />
<path
d="m 33.280724,171.06857 h 0.253559 v 2.14423 h -0.253559 z"
style="stroke-width:0.26458332"
id="path221"
inkscape:connector-curvature="0" />
<path
d="m 34.661519,171.84716 q -0.20395,0 -0.322461,0.15986 -0.118512,0.15847 -0.118512,0.43546 0,0.27698 0.117134,0.43683 0.118511,0.15848 0.323839,0.15848 0.202571,0 0.321083,-0.15985 0.118511,-0.15986 0.118511,-0.43546 0,-0.27423 -0.118511,-0.43409 -0.118512,-0.16123 -0.321083,-0.16123 z m 0,-0.21497 q 0.330729,0 0.51952,0.21497 0.188791,0.21498 0.188791,0.59532 0,0.37896 -0.188791,0.59531 -0.188791,0.21497 -0.51952,0.21497 -0.332108,0 -0.520899,-0.21497 -0.187413,-0.21635 -0.187413,-0.59531 0,-0.38034 0.187413,-0.59532 0.188791,-0.21497 0.520899,-0.21497 z"
style="stroke-width:0.26458332"
id="path223"
inkscape:connector-curvature="0" />
<path
d="m 36.899453,171.72865 v 0.23702 q -0.107487,-0.0592 -0.216352,-0.0882 -0.107487,-0.0303 -0.217731,-0.0303 -0.246668,0 -0.383094,0.1571 -0.136426,0.15572 -0.136426,0.43822 0,0.28249 0.136426,0.43959 0.136426,0.15572 0.383094,0.15572 0.110244,0 0.217731,-0.0289 0.108865,-0.0303 0.216352,-0.0896 v 0.23426 q -0.106109,0.0496 -0.220487,0.0744 -0.112999,0.0248 -0.241156,0.0248 -0.348644,0 -0.553972,-0.21911 -0.205327,-0.2191 -0.205327,-0.59117 0,-0.37759 0.206705,-0.59394 0.208084,-0.21635 0.56913,-0.21635 0.117133,0 0.228755,0.0248 0.111621,0.0234 0.216352,0.0717 z"
style="stroke-width:0.26458332"
id="path225"
inkscape:connector-curvature="0" />
<path
d="m 37.333535,171.06857 h 0.254937 v 1.26642 l 0.756543,-0.66559 h 0.323839 l -0.818555,0.72209 0.853006,0.82131 h -0.33073 l -0.784103,-0.75379 v 0.75379 h -0.254937 z"
style="stroke-width:0.26458332"
id="path227"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Go"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text182">
<path
d="m 44.627491,175.16824 v -0.55259 h -0.454753 v -0.22876 h 0.730361 v 0.88332 q -0.161231,0.11438 -0.355534,0.17364 -0.194304,0.0579 -0.41479,0.0579 -0.482313,0 -0.755165,-0.28112 -0.271473,-0.28249 -0.271473,-0.78548 0,-0.50436 0.271473,-0.78548 0.272852,-0.2825 0.755165,-0.2825 0.201194,0 0.381717,0.0496 0.181901,0.0496 0.334863,0.14607 v 0.29628 q -0.15434,-0.13091 -0.327973,-0.19706 -0.173633,-0.0661 -0.36518,-0.0661 -0.377583,0 -0.567752,0.21084 -0.188791,0.21084 -0.188791,0.62838 0,0.41617 0.188791,0.62701 0.190169,0.21084 0.567752,0.21084 0.14745,0 0.263205,-0.0248 0.115755,-0.0262 0.208084,-0.0799 z"
style="stroke-width:0.26458332"
id="path214"
inkscape:connector-curvature="0" />
<path
d="m 46.000017,174.09613 q -0.20395,0 -0.322461,0.15985 -0.118511,0.15847 -0.118511,0.43546 0,0.27698 0.117133,0.43684 0.118511,0.15847 0.323839,0.15847 0.202572,0 0.321083,-0.15985 0.118511,-0.15985 0.118511,-0.43546 0,-0.27423 -0.118511,-0.43408 -0.118511,-0.16123 -0.321083,-0.16123 z m 0,-0.21498 q 0.330729,0 0.51952,0.21498 0.188792,0.21497 0.188792,0.59531 0,0.37896 -0.188792,0.59531 -0.188791,0.21497 -0.51952,0.21497 -0.332107,0 -0.520898,-0.21497 -0.187414,-0.21635 -0.187414,-0.59531 0,-0.38034 0.187414,-0.59531 0.188791,-0.21498 0.520898,-0.21498 z"
style="stroke-width:0.26458332"
id="path216"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Reset"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text186">
<path
d="m 52.270093,174.49713 q 0.08957,0.0303 0.173633,0.12954 0.08544,0.0992 0.170876,0.27285 l 0.282498,0.56224 h -0.299034 l -0.263205,-0.52779 q -0.101975,-0.2067 -0.198438,-0.27423 -0.09508,-0.0675 -0.260449,-0.0675 h -0.303169 v 0.86954 h -0.278363 v -2.05741 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.44511 0,0.1943 -0.09095,0.32246 -0.08957,0.12816 -0.261827,0.17776 z m -0.697288,-0.86403 v 0.73037 h 0.350022 q 0.201194,0 0.303169,-0.0923 0.103352,-0.0937 0.103352,-0.27423 0,-0.18053 -0.103352,-0.27148 -0.101975,-0.0923 -0.303169,-0.0923 z"
style="stroke-width:0.26458332"
id="path203"
inkscape:connector-curvature="0" />
<path
d="m 54.439125,174.62667 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137803,-0.0358 0.272851,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143315,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60083 0.205328,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.113,-0.12402 -0.300413,-0.12402 -0.212218,0 -0.340375,0.11988 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path205"
inkscape:connector-curvature="0" />
<path
d="m 55.839212,173.96383 v 0.23978 q -0.107487,-0.0551 -0.223242,-0.0827 -0.115756,-0.0276 -0.239779,-0.0276 -0.188791,0 -0.283876,0.0579 -0.09371,0.0579 -0.09371,0.17363 0,0.0882 0.06752,0.13918 0.06752,0.0496 0.271474,0.0951 l 0.08682,0.0193 q 0.270096,0.0579 0.383095,0.16399 0.114377,0.10473 0.114377,0.29352 0,0.21497 -0.170877,0.34037 -0.169498,0.1254 -0.467155,0.1254 -0.124023,0 -0.259071,-0.0248 -0.133669,-0.0234 -0.282498,-0.0717 v -0.26183 q 0.14056,0.073 0.276986,0.11025 0.136426,0.0358 0.270096,0.0358 0.179145,0 0.275607,-0.0606 0.09646,-0.062 0.09646,-0.17363 0,-0.10335 -0.07028,-0.15847 -0.0689,-0.0551 -0.304547,-0.10611 l -0.08819,-0.0207 q -0.235644,-0.0496 -0.340375,-0.15159 -0.104731,-0.10335 -0.104731,-0.2825 0,-0.21773 0.15434,-0.33624 0.15434,-0.11851 0.438216,-0.11851 0.14056,0 0.264583,0.0207 0.124024,0.0207 0.228755,0.062 z"
style="stroke-width:0.26458332"
id="path207"
inkscape:connector-curvature="0" />
<path
d="m 57.647198,174.62667 v 0.12402 h -1.165821 q 0.01654,0.26183 0.157097,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282497,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60083 0.205327,-0.22324 0.552593,-0.22324 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117134,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340375,0.11988 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path209"
inkscape:connector-curvature="0" />
<path
d="m 58.314168,173.48014 v 0.43822 h 0.522277 v 0.19706 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24253 0.05237,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10886 -0.111621,-0.11025 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path211"
inkscape:connector-curvature="0" />
</g>
<rect
id="rect276"
width="38.36459"
height="7.9375"
x="71.522652"
y="186.70657"
style="stroke-width:0.26926658" />
<rect
id="rect278"
width="161.66042"
height="7.9374986"
x="30.512241"
y="242.00447"
style="stroke-width:0.26589206" />
<rect
id="rect280"
width="7.9375"
height="7.9375"
x="30.776825"
y="242.00447"
style="fill:#ff0000;fill-opacity:1;stroke-width:0.26458332" />
<rect
id="rect280-3"
width="7.9375"
height="7.9375"
x="71.522667"
y="242.00447"
style="fill:#ff0000;fill-opacity:1;stroke-width:0.26458332" />
<rect
id="rect280-4"
width="7.9375"
height="7.9375"
x="112.00391"
y="242.00447"
style="fill:#ff0000;fill-opacity:1;stroke-width:0.26458332" />
<rect
id="rect280-39"
width="7.9375"
height="7.9375"
x="152.48515"
y="242.00447"
style="fill:#ff0000;fill-opacity:1;stroke-width:0.26458332" />
<g
transform="translate(108.95046,30.92181)"
aria-label="A"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text162-0">
<path
d="m 85.45187,174.07545 -0.377582,1.02388 h 0.756543 z m -0.157096,-0.27423 h 0.315571 l 0.784104,2.05741 H 86.10506 l -0.187413,-0.52779 h -0.927419 l -0.187414,0.52779 h -0.293522 z"
style="stroke-width:0.26458332"
id="path264-1"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(98.539379,43.045776)"
aria-label="B"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text166-6">
<path
d="m 95.493628,174.74381 v 0.75378 h 0.446484 q 0.22462,0 0.332107,-0.0923 0.108865,-0.0937 0.108865,-0.28526 0,-0.19292 -0.108865,-0.28387 -0.107487,-0.0923 -0.332107,-0.0923 z m 0,-0.84612 v 0.62012 h 0.412033 q 0.20395,0 0.303168,-0.0758 0.100597,-0.0772 0.100597,-0.23427 0,-0.15572 -0.100597,-0.23289 -0.09922,-0.0772 -0.303168,-0.0772 z m -0.278364,-0.22875 h 0.711068 q 0.318326,0 0.490581,0.13229 0.172255,0.13229 0.172255,0.3762 0,0.1888 -0.08819,0.30042 -0.08819,0.11162 -0.259072,0.13918 0.205328,0.0441 0.318327,0.18466 0.114377,0.13918 0.114377,0.34864 0,0.27561 -0.187413,0.42581 -0.187413,0.15021 -0.533301,0.15021 h -0.738628 z"
style="stroke-width:0.26458332"
id="path261-9"
inkscape:connector-curvature="0" />
</g>
<g
transform="translate(88.632653,54.424316)"
aria-label="C"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text170-9">
<path
d="m 106.6778,173.69512 v 0.29352 q -0.14056,-0.13091 -0.30041,-0.19568 -0.15848,-0.0648 -0.33762,-0.0648 -0.35278,0 -0.54019,0.21635 -0.18742,0.21498 -0.18742,0.62288 0,0.40652 0.18742,0.62287 0.18741,0.21497 0.54019,0.21497 0.17914,0 0.33762,-0.0648 0.15985,-0.0648 0.30041,-0.19569 v 0.29077 q -0.14607,0.0992 -0.31006,0.14883 -0.16261,0.0496 -0.34451,0.0496 -0.46715,0 -0.73587,-0.28526 -0.26872,-0.28663 -0.26872,-0.78134 0,-0.4961 0.26872,-0.78135 0.26872,-0.28663 0.73587,-0.28663 0.18466,0 0.34727,0.0496 0.16398,0.0482 0.3073,0.14607 z"
style="stroke-width:0.26458332"
id="path258-9"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

+ 268
- 0
plugins/community/repos/PG-Instruments/res/PGStereoEcho.svg View File

@@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGStereoEcho.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="113.86719"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-23.386084,70.291882"
orientation="0,1"
id="guide924"
inkscape:locked="false" />
<sodipodi:guide
position="45.836724,77.909063"
orientation="0,1"
id="guide946"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<g
aria-label="ECHO"
transform="matrix(0.9981775,0,0,1.0018258,6.1471991,1.4699824)"
style="font-style:normal;font-weight:normal;font-size:11.10610676px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.04119742"
id="text928">
<path
d="m 56.206211,93.880373 h 5.119221 v 0.921894 h -4.023795 v 2.396923 h 3.855685 v 0.921894 h -3.855685 v 2.933786 h 4.121407 v 0.9219 h -5.216833 z"
style="stroke-width:1.04119742"
id="path986"
inkscape:connector-curvature="0" />
<path
d="m 69.2971,94.504007 v 1.155079 q -0.553136,-0.515176 -1.182193,-0.770053 -0.623634,-0.254876 -1.328611,-0.254876 -1.388263,0 -2.125778,0.851396 -0.737515,0.845973 -0.737515,2.451152 0,1.599757 0.737515,2.451155 0.737515,0.84597 2.125778,0.84597 0.704977,0 1.328611,-0.25488 0.629057,-0.25487 1.182193,-0.77005 v 1.14423 q -0.574827,0.39045 -1.220153,0.58568 -0.639903,0.19522 -1.355726,0.19522 -1.838364,0 -2.89583,-1.12254 -1.057467,-1.127962 -1.057467,-3.074785 0,-1.952245 1.057467,-3.074786 1.057466,-1.127964 2.89583,-1.127964 0.726669,0 1.366572,0.195224 0.645325,0.189802 1.209307,0.574828 z"
style="stroke-width:1.04119742"
id="path988"
inkscape:connector-curvature="0" />
<path
d="m 70.999893,93.880373 h 1.095426 v 3.318817 h 3.980412 v -3.318817 h 1.095426 v 8.096397 h -1.095426 v -3.855686 h -3.980412 v 3.855686 h -1.095426 z"
style="stroke-width:1.04119742"
id="path990"
inkscape:connector-curvature="0" />
<path
d="m 82.637443,94.623311 q -1.193039,0 -1.898016,0.889356 -0.699555,0.889356 -0.699555,2.424038 0,1.529259 0.699555,2.418615 0.704977,0.88936 1.898016,0.88936 1.193039,0 1.887171,-0.88936 0.699554,-0.889356 0.699554,-2.418615 0,-1.534682 -0.699554,-2.424038 -0.694132,-0.889356 -1.887171,-0.889356 z m 0,-0.889356 q 1.702792,0 2.722298,1.144233 1.019506,1.138809 1.019506,3.058517 0,1.914285 -1.019506,3.058515 -1.019506,1.13881 -2.722298,1.13881 -1.708214,0 -2.733143,-1.13881 -1.019506,-1.138807 -1.019506,-3.058515 0,-1.919708 1.019506,-3.058517 1.024929,-1.144233 2.733143,-1.144233 z"
style="stroke-width:1.04119742"
id="path992"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="In"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text932"
transform="translate(3.346277,0.09970174)">
<path
d="m 51.426556,109.17668 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path981"
inkscape:connector-curvature="0" />
<path
d="m 53.53082,110.30254 v 0.93155 h -0.253559 v -0.92328 q 0,-0.21911 -0.08544,-0.32798 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13092 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.09095,-0.13918 0.213596,-0.20809 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16537 0.136425,0.16398 0.136425,0.48369 z"
style="stroke-width:0.26458332"
id="path983"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Time"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text936"
transform="translate(2.2395567,0.13362716)">
<path
d="m 60.228464,109.17668 h 1.740462 v 0.23427 h -0.73036 v 1.82314 h -0.279742 v -1.82314 h -0.73036 z"
style="stroke-width:0.26458332"
id="path972"
inkscape:connector-curvature="0" />
<path
d="m 62.139803,109.69069 h 0.253559 v 1.5434 h -0.253559 z m 0,-0.60082 h 0.253559 v 0.32108 h -0.253559 z"
style="stroke-width:0.26458332"
id="path974"
inkscape:connector-curvature="0" />
<path
d="m 64.124178,109.98697 q 0.09508,-0.17088 0.227377,-0.25218 0.132291,-0.0813 0.311436,-0.0813 0.241157,0 0.372071,0.1695 0.130913,0.16812 0.130913,0.47956 v 0.93155 h -0.254937 v -0.92328 q 0,-0.22187 -0.07855,-0.32935 -0.07855,-0.10749 -0.239779,-0.10749 -0.197059,0 -0.311436,0.13091 -0.114378,0.13092 -0.114378,0.35691 v 0.8723 H 63.91196 v -0.92328 q 0,-0.22325 -0.07855,-0.32935 -0.07855,-0.10749 -0.242535,-0.10749 -0.194303,0 -0.30868,0.13229 -0.114377,0.13091 -0.114377,0.35553 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.08682,-0.14194 0.208084,-0.20946 0.121267,-0.0675 0.288009,-0.0675 0.168121,0 0.285254,0.0854 0.118512,0.0854 0.175011,0.24805 z"
style="stroke-width:0.26458332"
id="path976"
inkscape:connector-curvature="0" />
<path
d="m 66.993254,110.399 v 0.12403 h -1.16582 q 0.01654,0.26182 0.157096,0.39963 0.141938,0.13642 0.394119,0.13642 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272851,-0.10748 v 0.23977 q -0.136425,0.0579 -0.279741,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369315,0 -0.585667,-0.21498 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60082 0.205328,-0.22325 0.552593,-0.22325 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path978"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Out"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text944"
transform="translate(-1.7194991,0.09273174)">
<path
d="m 87.273957,109.36547 q -0.303168,0 -0.482313,0.226 -0.177767,0.226 -0.177767,0.61598 0,0.38861 0.177767,0.61461 0.179145,0.226 0.482313,0.226 0.303169,0 0.479558,-0.226 0.177767,-0.226 0.177767,-0.61461 0,-0.38998 -0.177767,-0.61598 -0.176389,-0.226 -0.479558,-0.226 z m 0,-0.226 q 0.432704,0 0.691775,0.29077 0.259072,0.28939 0.259072,0.77721 0,0.48645 -0.259072,0.77722 -0.259071,0.28939 -0.691775,0.28939 -0.434082,0 -0.694531,-0.28939 -0.259071,-0.28939 -0.259071,-0.77722 0,-0.48782 0.259071,-0.77721 0.260449,-0.29077 0.694531,-0.29077 z"
style="stroke-width:0.26458332"
id="path948"
inkscape:connector-curvature="0" />
<path
d="m 88.623057,110.625 v -0.93431 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10887 0.256315,0.10887 0.205328,0 0.323839,-0.13091 0.11989,-0.13092 0.11989,-0.35692 v -0.87505 h 0.253559 v 1.5434 H 89.6621 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16537 -0.137804,-0.16536 -0.137804,-0.48369 z m 0.638031,-0.97152 z"
style="stroke-width:0.26458332"
id="path950"
inkscape:connector-curvature="0" />
<path
d="m 90.691492,109.25247 v 0.43822 h 0.522277 v 0.19706 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24253 0.05236,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10886 -0.111621,-0.11025 -0.111621,-0.39963 v -0.83785 H 90.25052 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path952"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Fbk"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text997"
transform="translate(1.0583333)">
<path
d="m 74.261986,109.27271 h 1.182357 v 0.23426 H 74.54035 v 0.60634 h 0.815799 v 0.23427 H 74.54035 v 0.98254 h -0.278364 z"
style="stroke-width:0.26458332"
id="path999"
inkscape:connector-curvature="0" />
<path
d="m 76.98499,110.55979 q 0,-0.27974 -0.115755,-0.43821 -0.114378,-0.15986 -0.315571,-0.15986 -0.201194,0 -0.316949,0.15986 -0.114377,0.15847 -0.114377,0.43821 0,0.27974 0.114377,0.4396 0.115755,0.15847 0.316949,0.15847 0.201193,0 0.315571,-0.15847 0.115755,-0.15986 0.115755,-0.4396 z m -0.862652,-0.53881 q 0.07993,-0.1378 0.201193,-0.20395 0.122646,-0.0675 0.292145,-0.0675 0.281119,0 0.45613,0.22324 0.176389,0.22324 0.176389,0.58704 0,0.36381 -0.176389,0.58705 -0.175011,0.22324 -0.45613,0.22324 -0.169499,0 -0.292145,-0.0662 -0.121267,-0.0675 -0.201193,-0.20532 v 0.23151 h -0.254937 v -2.14423 h 0.254937 z"
style="stroke-width:0.26458332"
id="path1001"
inkscape:connector-curvature="0" />
<path
d="m 77.658851,109.18589 h 0.254937 v 1.26642 l 0.756543,-0.6656 h 0.323839 l -0.818555,0.7221 0.853006,0.82131 h -0.33073 l -0.784103,-0.75379 v 0.75379 h -0.254937 z"
style="stroke-width:0.26458332"
id="path1003"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="STEREO"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text883">
<path
d="m 49.719936,95.880726 v 0.271473 q -0.158474,-0.07579 -0.299034,-0.112999 -0.14056,-0.03721 -0.271474,-0.03721 -0.227376,0 -0.3514,0.08819 -0.122645,0.08819 -0.122645,0.250803 0,0.136425 0.0813,0.206705 0.08268,0.0689 0.311437,0.111622 l 0.168121,0.03445 q 0.311436,0.05926 0.458886,0.209462 0.148828,0.148828 0.148828,0.399631 0,0.299035 -0.201193,0.453375 -0.199816,0.15434 -0.587044,0.15434 -0.146072,0 -0.311437,-0.03307 -0.163987,-0.03307 -0.340375,-0.09784 v -0.286632 q 0.169498,0.09508 0.332107,0.143316 0.162608,0.04823 0.319705,0.04823 0.2384,0 0.367936,-0.09371 0.129535,-0.09371 0.129535,-0.267339 0,-0.151584 -0.09371,-0.237023 -0.09233,-0.08544 -0.304547,-0.128157 l -0.169498,-0.03307 q -0.311437,-0.06201 -0.450619,-0.194303 -0.139182,-0.132292 -0.139182,-0.367937 0,-0.272851 0.191548,-0.429948 0.192925,-0.157096 0.530544,-0.157096 0.144694,0 0.294901,0.02618 0.150206,0.02618 0.307302,0.07855 z"
style="stroke-width:0.26458332"
id="path893"
inkscape:connector-curvature="0" />
<path
d="m 49.992788,95.813202 h 1.740462 v 0.234267 h -0.73036 v 1.823144 h -0.279742 v -1.823144 h -0.73036 z"
style="stroke-width:0.26458332"
id="path895"
inkscape:connector-curvature="0" />
<path
d="m 52.003345,95.813202 h 1.300868 v 0.234267 h -1.022504 v 0.609092 h 0.979785 v 0.234267 h -0.979785 v 0.745519 h 1.047309 v 0.234266 h -1.325673 z"
style="stroke-width:0.26458332"
id="path897"
inkscape:connector-curvature="0" />
<path
d="m 54.764934,96.905986 q 0.08957,0.03032 0.173633,0.129536 0.08544,0.09922 0.170876,0.272852 l 0.282498,0.562239 h -0.299034 l -0.263205,-0.527789 q -0.101975,-0.206705 -0.198438,-0.274229 -0.09508,-0.06752 -0.260449,-0.06752 h -0.303168 v 0.869542 h -0.278364 v -2.057411 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.445106 0,0.194304 -0.09095,0.322461 -0.08957,0.128158 -0.261827,0.177767 z m -0.697287,-0.86403 v 0.730361 h 0.350021 q 0.201194,0 0.303169,-0.09233 0.103353,-0.09371 0.103353,-0.27423 0,-0.180523 -0.103353,-0.271473 -0.101975,-0.09233 -0.303169,-0.09233 z"
style="stroke-width:0.26458332"
id="path899"
inkscape:connector-curvature="0" />
<path
d="m 55.751609,95.813202 h 1.300868 v 0.234267 h -1.022504 v 0.609092 h 0.979785 v 0.234267 h -0.979785 v 0.745519 h 1.047309 v 0.234266 h -1.325673 z"
style="stroke-width:0.26458332"
id="path901"
inkscape:connector-curvature="0" />
<path
d="m 58.372638,96.001993 q -0.303169,0 -0.482314,0.225999 -0.177766,0.225998 -0.177766,0.615983 0,0.388606 0.177766,0.614605 0.179145,0.225998 0.482314,0.225998 0.303168,0 0.479557,-0.225998 0.177767,-0.225999 0.177767,-0.614605 0,-0.389985 -0.177767,-0.615983 -0.176389,-0.225999 -0.479557,-0.225999 z m 0,-0.225998 q 0.432704,0 0.691775,0.290766 0.259071,0.289388 0.259071,0.777214 0,0.486447 -0.259071,0.777213 -0.259071,0.289388 -0.691775,0.289388 -0.434082,0 -0.694531,-0.289388 -0.259072,-0.289388 -0.259072,-0.777213 0,-0.487826 0.259072,-0.777214 0.260449,-0.290766 0.694531,-0.290766 z"
style="stroke-width:0.26458332"
id="path903"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="L"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text887"
transform="translate(0,0.52916663)">
<path
d="m 47.551148,116.5266 h 0.278364 v 1.82314 h 1.001833 v 0.23427 h -1.280197 z"
style="stroke-width:0.26458332"
id="path909"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text891"
transform="translate(0,3.7041668)">
<path
d="m 48.393166,125.23656 q 0.08957,0.0303 0.173633,0.12954 0.08544,0.0992 0.170877,0.27285 l 0.282498,0.56224 h -0.299035 l -0.263205,-0.52779 q -0.101975,-0.20671 -0.198437,-0.27423 -0.09509,-0.0675 -0.26045,-0.0675 h -0.303168 v 0.86954 h -0.278364 v -2.05741 h 0.628386 q 0.352778,0 0.52641,0.14745 0.173633,0.14745 0.173633,0.4451 0,0.19431 -0.09095,0.32246 -0.08957,0.12816 -0.261828,0.17777 z m -0.697287,-0.86403 v 0.73036 h 0.350022 q 0.201193,0 0.303168,-0.0923 0.103353,-0.0937 0.103353,-0.27423 0,-0.18052 -0.103353,-0.27147 -0.101975,-0.0923 -0.303168,-0.0923 z"
style="stroke-width:0.26458332"
id="path906"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

+ 268
- 0
plugins/community/repos/PG-Instruments/res/PGStereoPingPongEcho.svg View File

@@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGStereoEcho.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="113.86719"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-23.386084,70.291882"
orientation="0,1"
id="guide924"
inkscape:locked="false" />
<sodipodi:guide
position="45.836724,77.909063"
orientation="0,1"
id="guide946"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<g
aria-label="ECHO"
transform="matrix(0.9981775,0,0,1.0018258,6.1471991,1.4699824)"
style="font-style:normal;font-weight:normal;font-size:11.10610676px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.04119742"
id="text928">
<path
d="m 56.206211,93.880373 h 5.119221 v 0.921894 h -4.023795 v 2.396923 h 3.855685 v 0.921894 h -3.855685 v 2.933786 h 4.121407 v 0.9219 h -5.216833 z"
style="stroke-width:1.04119742"
id="path986"
inkscape:connector-curvature="0" />
<path
d="m 69.2971,94.504007 v 1.155079 q -0.553136,-0.515176 -1.182193,-0.770053 -0.623634,-0.254876 -1.328611,-0.254876 -1.388263,0 -2.125778,0.851396 -0.737515,0.845973 -0.737515,2.451152 0,1.599757 0.737515,2.451155 0.737515,0.84597 2.125778,0.84597 0.704977,0 1.328611,-0.25488 0.629057,-0.25487 1.182193,-0.77005 v 1.14423 q -0.574827,0.39045 -1.220153,0.58568 -0.639903,0.19522 -1.355726,0.19522 -1.838364,0 -2.89583,-1.12254 -1.057467,-1.127962 -1.057467,-3.074785 0,-1.952245 1.057467,-3.074786 1.057466,-1.127964 2.89583,-1.127964 0.726669,0 1.366572,0.195224 0.645325,0.189802 1.209307,0.574828 z"
style="stroke-width:1.04119742"
id="path988"
inkscape:connector-curvature="0" />
<path
d="m 70.999893,93.880373 h 1.095426 v 3.318817 h 3.980412 v -3.318817 h 1.095426 v 8.096397 h -1.095426 v -3.855686 h -3.980412 v 3.855686 h -1.095426 z"
style="stroke-width:1.04119742"
id="path990"
inkscape:connector-curvature="0" />
<path
d="m 82.637443,94.623311 q -1.193039,0 -1.898016,0.889356 -0.699555,0.889356 -0.699555,2.424038 0,1.529259 0.699555,2.418615 0.704977,0.88936 1.898016,0.88936 1.193039,0 1.887171,-0.88936 0.699554,-0.889356 0.699554,-2.418615 0,-1.534682 -0.699554,-2.424038 -0.694132,-0.889356 -1.887171,-0.889356 z m 0,-0.889356 q 1.702792,0 2.722298,1.144233 1.019506,1.138809 1.019506,3.058517 0,1.914285 -1.019506,3.058515 -1.019506,1.13881 -2.722298,1.13881 -1.708214,0 -2.733143,-1.13881 -1.019506,-1.138807 -1.019506,-3.058515 0,-1.919708 1.019506,-3.058517 1.024929,-1.144233 2.733143,-1.144233 z"
style="stroke-width:1.04119742"
id="path992"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="In"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text932"
transform="translate(3.346277,0.09970174)">
<path
d="m 51.426556,109.17668 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path981"
inkscape:connector-curvature="0" />
<path
d="m 53.53082,110.30254 v 0.93155 h -0.253559 v -0.92328 q 0,-0.21911 -0.08544,-0.32798 -0.08544,-0.10886 -0.256315,-0.10886 -0.205328,0 -0.323839,0.13091 -0.118511,0.13092 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.09095,-0.13918 0.213596,-0.20809 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16537 0.136425,0.16398 0.136425,0.48369 z"
style="stroke-width:0.26458332"
id="path983"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Time"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text936"
transform="translate(2.2395567,0.13362716)">
<path
d="m 60.228464,109.17668 h 1.740462 v 0.23427 h -0.73036 v 1.82314 h -0.279742 v -1.82314 h -0.73036 z"
style="stroke-width:0.26458332"
id="path972"
inkscape:connector-curvature="0" />
<path
d="m 62.139803,109.69069 h 0.253559 v 1.5434 h -0.253559 z m 0,-0.60082 h 0.253559 v 0.32108 h -0.253559 z"
style="stroke-width:0.26458332"
id="path974"
inkscape:connector-curvature="0" />
<path
d="m 64.124178,109.98697 q 0.09508,-0.17088 0.227377,-0.25218 0.132291,-0.0813 0.311436,-0.0813 0.241157,0 0.372071,0.1695 0.130913,0.16812 0.130913,0.47956 v 0.93155 h -0.254937 v -0.92328 q 0,-0.22187 -0.07855,-0.32935 -0.07855,-0.10749 -0.239779,-0.10749 -0.197059,0 -0.311436,0.13091 -0.114378,0.13092 -0.114378,0.35691 v 0.8723 H 63.91196 v -0.92328 q 0,-0.22325 -0.07855,-0.32935 -0.07855,-0.10749 -0.242535,-0.10749 -0.194303,0 -0.30868,0.13229 -0.114377,0.13091 -0.114377,0.35553 v 0.8723 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.08682,-0.14194 0.208084,-0.20946 0.121267,-0.0675 0.288009,-0.0675 0.168121,0 0.285254,0.0854 0.118512,0.0854 0.175011,0.24805 z"
style="stroke-width:0.26458332"
id="path976"
inkscape:connector-curvature="0" />
<path
d="m 66.993254,110.399 v 0.12403 h -1.16582 q 0.01654,0.26182 0.157096,0.39963 0.141938,0.13642 0.394119,0.13642 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272851,-0.10748 v 0.23977 q -0.136425,0.0579 -0.279741,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369315,0 -0.585667,-0.21498 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60082 0.205328,-0.22325 0.552593,-0.22325 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12402 -0.300412,-0.12402 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path978"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Out"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text944"
transform="translate(-1.7194991,0.09273174)">
<path
d="m 87.273957,109.36547 q -0.303168,0 -0.482313,0.226 -0.177767,0.226 -0.177767,0.61598 0,0.38861 0.177767,0.61461 0.179145,0.226 0.482313,0.226 0.303169,0 0.479558,-0.226 0.177767,-0.226 0.177767,-0.61461 0,-0.38998 -0.177767,-0.61598 -0.176389,-0.226 -0.479558,-0.226 z m 0,-0.226 q 0.432704,0 0.691775,0.29077 0.259072,0.28939 0.259072,0.77721 0,0.48645 -0.259072,0.77722 -0.259071,0.28939 -0.691775,0.28939 -0.434082,0 -0.694531,-0.28939 -0.259071,-0.28939 -0.259071,-0.77722 0,-0.48782 0.259071,-0.77721 0.260449,-0.29077 0.694531,-0.29077 z"
style="stroke-width:0.26458332"
id="path948"
inkscape:connector-curvature="0" />
<path
d="m 88.623057,110.625 v -0.93431 h 0.253559 v 0.92466 q 0,0.21911 0.08544,0.32935 0.08544,0.10887 0.256315,0.10887 0.205328,0 0.323839,-0.13091 0.11989,-0.13092 0.11989,-0.35692 v -0.87505 h 0.253559 v 1.5434 H 89.6621 v -0.23702 q -0.09233,0.14056 -0.214974,0.20946 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16537 -0.137804,-0.16536 -0.137804,-0.48369 z m 0.638031,-0.97152 z"
style="stroke-width:0.26458332"
id="path950"
inkscape:connector-curvature="0" />
<path
d="m 90.691492,109.25247 v 0.43822 h 0.522277 v 0.19706 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24253 0.05236,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10886 -0.111621,-0.11025 -0.111621,-0.39963 v -0.83785 H 90.25052 v -0.19706 h 0.186035 v -0.43822 z"
style="stroke-width:0.26458332"
id="path952"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Fbk"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text997"
transform="translate(1.0583333)">
<path
d="m 74.261986,109.27271 h 1.182357 v 0.23426 H 74.54035 v 0.60634 h 0.815799 v 0.23427 H 74.54035 v 0.98254 h -0.278364 z"
style="stroke-width:0.26458332"
id="path999"
inkscape:connector-curvature="0" />
<path
d="m 76.98499,110.55979 q 0,-0.27974 -0.115755,-0.43821 -0.114378,-0.15986 -0.315571,-0.15986 -0.201194,0 -0.316949,0.15986 -0.114377,0.15847 -0.114377,0.43821 0,0.27974 0.114377,0.4396 0.115755,0.15847 0.316949,0.15847 0.201193,0 0.315571,-0.15847 0.115755,-0.15986 0.115755,-0.4396 z m -0.862652,-0.53881 q 0.07993,-0.1378 0.201193,-0.20395 0.122646,-0.0675 0.292145,-0.0675 0.281119,0 0.45613,0.22324 0.176389,0.22324 0.176389,0.58704 0,0.36381 -0.176389,0.58705 -0.175011,0.22324 -0.45613,0.22324 -0.169499,0 -0.292145,-0.0662 -0.121267,-0.0675 -0.201193,-0.20532 v 0.23151 h -0.254937 v -2.14423 h 0.254937 z"
style="stroke-width:0.26458332"
id="path1001"
inkscape:connector-curvature="0" />
<path
d="m 77.658851,109.18589 h 0.254937 v 1.26642 l 0.756543,-0.6656 h 0.323839 l -0.818555,0.7221 0.853006,0.82131 h -0.33073 l -0.784103,-0.75379 v 0.75379 h -0.254937 z"
style="stroke-width:0.26458332"
id="path1003"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="STEREO"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text883">
<path
d="m 49.719936,95.880726 v 0.271473 q -0.158474,-0.07579 -0.299034,-0.112999 -0.14056,-0.03721 -0.271474,-0.03721 -0.227376,0 -0.3514,0.08819 -0.122645,0.08819 -0.122645,0.250803 0,0.136425 0.0813,0.206705 0.08268,0.0689 0.311437,0.111622 l 0.168121,0.03445 q 0.311436,0.05926 0.458886,0.209462 0.148828,0.148828 0.148828,0.399631 0,0.299035 -0.201193,0.453375 -0.199816,0.15434 -0.587044,0.15434 -0.146072,0 -0.311437,-0.03307 -0.163987,-0.03307 -0.340375,-0.09784 v -0.286632 q 0.169498,0.09508 0.332107,0.143316 0.162608,0.04823 0.319705,0.04823 0.2384,0 0.367936,-0.09371 0.129535,-0.09371 0.129535,-0.267339 0,-0.151584 -0.09371,-0.237023 -0.09233,-0.08544 -0.304547,-0.128157 l -0.169498,-0.03307 q -0.311437,-0.06201 -0.450619,-0.194303 -0.139182,-0.132292 -0.139182,-0.367937 0,-0.272851 0.191548,-0.429948 0.192925,-0.157096 0.530544,-0.157096 0.144694,0 0.294901,0.02618 0.150206,0.02618 0.307302,0.07855 z"
style="stroke-width:0.26458332"
id="path893"
inkscape:connector-curvature="0" />
<path
d="m 49.992788,95.813202 h 1.740462 v 0.234267 h -0.73036 v 1.823144 h -0.279742 v -1.823144 h -0.73036 z"
style="stroke-width:0.26458332"
id="path895"
inkscape:connector-curvature="0" />
<path
d="m 52.003345,95.813202 h 1.300868 v 0.234267 h -1.022504 v 0.609092 h 0.979785 v 0.234267 h -0.979785 v 0.745519 h 1.047309 v 0.234266 h -1.325673 z"
style="stroke-width:0.26458332"
id="path897"
inkscape:connector-curvature="0" />
<path
d="m 54.764934,96.905986 q 0.08957,0.03032 0.173633,0.129536 0.08544,0.09922 0.170876,0.272852 l 0.282498,0.562239 h -0.299034 l -0.263205,-0.527789 q -0.101975,-0.206705 -0.198438,-0.274229 -0.09508,-0.06752 -0.260449,-0.06752 h -0.303168 v 0.869542 h -0.278364 v -2.057411 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.445106 0,0.194304 -0.09095,0.322461 -0.08957,0.128158 -0.261827,0.177767 z m -0.697287,-0.86403 v 0.730361 h 0.350021 q 0.201194,0 0.303169,-0.09233 0.103353,-0.09371 0.103353,-0.27423 0,-0.180523 -0.103353,-0.271473 -0.101975,-0.09233 -0.303169,-0.09233 z"
style="stroke-width:0.26458332"
id="path899"
inkscape:connector-curvature="0" />
<path
d="m 55.751609,95.813202 h 1.300868 v 0.234267 h -1.022504 v 0.609092 h 0.979785 v 0.234267 h -0.979785 v 0.745519 h 1.047309 v 0.234266 h -1.325673 z"
style="stroke-width:0.26458332"
id="path901"
inkscape:connector-curvature="0" />
<path
d="m 58.372638,96.001993 q -0.303169,0 -0.482314,0.225999 -0.177766,0.225998 -0.177766,0.615983 0,0.388606 0.177766,0.614605 0.179145,0.225998 0.482314,0.225998 0.303168,0 0.479557,-0.225998 0.177767,-0.225999 0.177767,-0.614605 0,-0.389985 -0.177767,-0.615983 -0.176389,-0.225999 -0.479557,-0.225999 z m 0,-0.225998 q 0.432704,0 0.691775,0.290766 0.259071,0.289388 0.259071,0.777214 0,0.486447 -0.259071,0.777213 -0.259071,0.289388 -0.691775,0.289388 -0.434082,0 -0.694531,-0.289388 -0.259072,-0.289388 -0.259072,-0.777213 0,-0.487826 0.259072,-0.777214 0.260449,-0.290766 0.694531,-0.290766 z"
style="stroke-width:0.26458332"
id="path903"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="L"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text887"
transform="translate(0,0.52916663)">
<path
d="m 47.551148,116.5266 h 0.278364 v 1.82314 h 1.001833 v 0.23427 h -1.280197 z"
style="stroke-width:0.26458332"
id="path909"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="R"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text891"
transform="translate(0,3.7041668)">
<path
d="m 48.393166,125.23656 q 0.08957,0.0303 0.173633,0.12954 0.08544,0.0992 0.170877,0.27285 l 0.282498,0.56224 h -0.299035 l -0.263205,-0.52779 q -0.101975,-0.20671 -0.198437,-0.27423 -0.09509,-0.0675 -0.26045,-0.0675 h -0.303168 v 0.86954 h -0.278364 v -2.05741 h 0.628386 q 0.352778,0 0.52641,0.14745 0.173633,0.14745 0.173633,0.4451 0,0.19431 -0.09095,0.32246 -0.08957,0.12816 -0.261828,0.17777 z m -0.697287,-0.86403 v 0.73036 h 0.350022 q 0.201193,0 0.303168,-0.0923 0.103353,-0.0937 0.103353,-0.27423 0,-0.18052 -0.103353,-0.27147 -0.101975,-0.0923 -0.303168,-0.0923 z"
style="stroke-width:0.26458332"
id="path906"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

+ 301
- 0
plugins/community/repos/PG-Instruments/res/PGStereoVCF.svg View File

@@ -0,0 +1,301 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGStereoVCF.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="113.86719"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1246"
inkscape:window-height="976"
inkscape:window-x="104"
inkscape:window-y="20"
inkscape:window-maximized="0"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="6.2808337,73.900022"
orientation="0,1"
id="guide836"
inkscape:locked="false" />
<sodipodi:guide
position="-17.639789,44.09947"
orientation="0,1"
id="guide838"
inkscape:locked="false" />
<sodipodi:guide
position="-23.519718,60.002006"
orientation="0,1"
id="guide840"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<rect
style="fill:#000001;fill-opacity:1;stroke-width:0.42887589"
id="rect842"
width="17.372519"
height="38.085903"
x="76.941078"
y="110.29865" />
<g
aria-label="Input"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text846"
transform="translate(-0.40090429,1.7901442)">
<path
d="m 46.882972,120.66927 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path916"
inkscape:connector-curvature="0" />
<path
d="m 48.987237,121.79512 v 0.93156 h -0.253559 v -0.92329 q 0,-0.21911 -0.08544,-0.32797 -0.08544,-0.10887 -0.256315,-0.10887 -0.205327,0 -0.323839,0.13092 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.5434 h 0.254938 v 0.23977 q 0.09095,-0.13918 0.213596,-0.20808 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16536 0.136426,0.16399 0.136426,0.48369 z"
style="stroke-width:0.26458332"
id="path918"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Freq Mod"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text850"
transform="translate(10.78681,15.490505)">
<path
d="m 46.081166,127.21737 h 1.182357 v 0.23427 H 46.35953 v 0.60633 h 0.815798 v 0.23427 H 46.35953 v 0.98254 h -0.278364 z"
style="stroke-width:0.26458332"
id="path901"
inkscape:connector-curvature="0" />
<path
d="m 48.386624,127.9684 q -0.04272,-0.0248 -0.09371,-0.0358 -0.04961,-0.0124 -0.110243,-0.0124 -0.214974,0 -0.330729,0.14056 -0.114377,0.13918 -0.114377,0.40101 v 0.81304 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.07993,-0.14056 0.208084,-0.20809 0.128157,-0.0689 0.311436,-0.0689 0.02618,0 0.05788,0.004 0.03169,0.003 0.07028,0.01 z"
style="stroke-width:0.26458332"
id="path903"
inkscape:connector-curvature="0" />
<path
d="m 49.914868,128.43969 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.203949,-0.60083 0.205328,-0.22324 0.552594,-0.22324 0.311436,0 0.491959,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12403 -0.300412,-0.12403 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path905"
inkscape:connector-curvature="0" />
<path
d="m 50.48262,128.50446 q 0,0.27974 0.114377,0.43959 0.115755,0.15848 0.316949,0.15848 0.201194,0 0.316949,-0.15848 0.115755,-0.15985 0.115755,-0.43959 0,-0.27974 -0.115755,-0.43822 -0.115755,-0.15985 -0.316949,-0.15985 -0.201194,0 -0.316949,0.15985 -0.114377,0.15848 -0.114377,0.43822 z m 0.86403,0.53881 q -0.07993,0.1378 -0.202572,0.20533 -0.121267,0.0661 -0.292144,0.0661 -0.279741,0 -0.45613,-0.22324 -0.175011,-0.22324 -0.175011,-0.58704 0,-0.36381 0.175011,-0.58705 0.176389,-0.22324 0.45613,-0.22324 0.170877,0 0.292144,0.0675 0.122646,0.0661 0.202572,0.20395 v -0.23426 h 0.253559 v 2.13044 H 51.34665 Z"
style="stroke-width:0.26458332"
id="path907"
inkscape:connector-curvature="0" />
<path
d="m 46.081166,130.74515 h 0.414789 l 0.525033,1.40008 0.527789,-1.40008 h 0.414789 v 2.05741 h -0.271474 v -1.80661 l -0.530544,1.41111 h -0.279742 l -0.530545,-1.41111 v 1.80661 h -0.270095 z"
style="stroke-width:0.26458332"
id="path909"
inkscape:connector-curvature="0" />
<path
d="m 49.104582,131.43692 q -0.20395,0 -0.322461,0.15985 -0.118512,0.15848 -0.118512,0.43546 0,0.27699 0.117134,0.43684 0.118511,0.15848 0.323839,0.15848 0.202571,0 0.321083,-0.15986 0.118511,-0.15985 0.118511,-0.43546 0,-0.27422 -0.118511,-0.43408 -0.118512,-0.16123 -0.321083,-0.16123 z m 0,-0.21497 q 0.330729,0 0.51952,0.21497 0.188791,0.21498 0.188791,0.59531 0,0.37897 -0.188791,0.59532 -0.188791,0.21497 -0.51952,0.21497 -0.332108,0 -0.520899,-0.21497 -0.187413,-0.21635 -0.187413,-0.59532 0,-0.38033 0.187413,-0.59531 0.188791,-0.21497 0.520899,-0.21497 z"
style="stroke-width:0.26458332"
id="path911"
inkscape:connector-curvature="0" />
<path
d="m 51.247431,131.49342 v -0.83509 h 0.253559 v 2.14423 h -0.253559 v -0.23151 q -0.07993,0.1378 -0.202571,0.20533 -0.121268,0.0661 -0.292145,0.0661 -0.279741,0 -0.45613,-0.22324 -0.175011,-0.22324 -0.175011,-0.58705 0,-0.3638 0.175011,-0.58704 0.176389,-0.22324 0.45613,-0.22324 0.170877,0 0.292145,0.0675 0.122645,0.0661 0.202571,0.20395 z m -0.86403,0.53881 q 0,0.27975 0.114377,0.4396 0.115756,0.15847 0.316949,0.15847 0.201194,0 0.316949,-0.15847 0.115755,-0.15985 0.115755,-0.4396 0,-0.27974 -0.115755,-0.43821 -0.115755,-0.15985 -0.316949,-0.15985 -0.201193,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43821 z"
style="stroke-width:0.26458332"
id="path913"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Cutoff"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text856"
transform="translate(-2.1166667,-1.0583333)">
<path
d="m 61.386194,111.33968 v 0.29352 q -0.14056,-0.13091 -0.300412,-0.19568 -0.158475,-0.0648 -0.33762,-0.0648 -0.352778,0 -0.540191,0.21636 -0.187413,0.21497 -0.187413,0.62287 0,0.40652 0.187413,0.62287 0.187413,0.21498 0.540191,0.21498 0.179145,0 0.33762,-0.0648 0.159852,-0.0648 0.300412,-0.19568 v 0.29076 q -0.146072,0.0992 -0.310059,0.14883 -0.162608,0.0496 -0.344509,0.0496 -0.467155,0 -0.735873,-0.28525 -0.268717,-0.28664 -0.268717,-0.78135 0,-0.4961 0.268717,-0.78135 0.268718,-0.28663 0.735873,-0.28663 0.184657,0 0.347265,0.0496 0.163987,0.0482 0.307303,0.14607 z"
style="stroke-width:0.26458332"
id="path890"
inkscape:connector-curvature="0" />
<path
d="m 61.781691,112.62952 v -0.93431 h 0.253559 v 0.92467 q 0,0.21911 0.08544,0.32935 0.08544,0.10886 0.256315,0.10886 0.205328,0 0.323839,-0.13091 0.11989,-0.13091 0.11989,-0.35691 v -0.87506 h 0.253559 v 1.54341 h -0.253559 v -0.23703 q -0.09233,0.14056 -0.214974,0.20947 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16536 -0.137804,-0.16537 -0.137804,-0.4837 z m 0.638032,-0.97151 z"
style="stroke-width:0.26458332"
id="path892"
inkscape:connector-curvature="0" />
<path
d="m 63.850126,111.257 v 0.43821 h 0.522277 v 0.19706 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05237,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19706 h 0.186035 V 111.257 Z"
style="stroke-width:0.26458332"
id="path894"
inkscape:connector-curvature="0" />
<path
d="m 65.305335,111.87298 q -0.20395,0 -0.322461,0.15985 -0.118512,0.15848 -0.118512,0.43546 0,0.27699 0.117134,0.43684 0.118511,0.15848 0.323839,0.15848 0.202571,0 0.321083,-0.15986 0.118511,-0.15985 0.118511,-0.43546 0,-0.27423 -0.118511,-0.43408 -0.118512,-0.16123 -0.321083,-0.16123 z m 0,-0.21497 q 0.330729,0 0.51952,0.21497 0.188791,0.21498 0.188791,0.59531 0,0.37896 -0.188791,0.59532 -0.188791,0.21497 -0.51952,0.21497 -0.332108,0 -0.520899,-0.21497 -0.187413,-0.21636 -0.187413,-0.59532 0,-0.38033 0.187413,-0.59531 0.188791,-0.21497 0.520899,-0.21497 z"
style="stroke-width:0.26458332"
id="path896"
inkscape:connector-curvature="0" />
<path
d="m 68.164764,111.09439 v 0.21084 h -0.242535 q -0.136426,0 -0.190169,0.0551 -0.05237,0.0551 -0.05237,0.19844 v 0.13642 h 0.417546 v 0.19706 H 67.67969 v 1.34635 h -0.254937 v -1.34635 h -0.695909 v 1.34635 h -0.254937 v -1.34635 h -0.242535 v -0.19706 h 0.242535 v -0.10748 q 0,-0.2577 0.119889,-0.37483 0.119889,-0.11851 0.380339,-0.11851 h 0.239778 v 0.21084 h -0.242534 q -0.136426,0 -0.19017,0.0551 -0.05236,0.0551 -0.05236,0.19844 v 0.13642 h 0.695909 v -0.10748 q 0,-0.2577 0.11989,-0.37483 0.119889,-0.11851 0.380338,-0.11851 z"
style="stroke-width:0.26458332"
id="path898"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Res"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text860"
transform="translate(-4.2333335,-1.0583333)">
<path
d="m 74.585576,112.14035 q 0.08957,0.0303 0.173633,0.12953 0.08544,0.0992 0.170876,0.27285 l 0.282498,0.56224 h -0.299034 l -0.263205,-0.52779 q -0.101975,-0.2067 -0.198438,-0.27423 -0.09508,-0.0675 -0.260449,-0.0675 h -0.303168 v 0.86954 h -0.278364 v -2.05741 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.44511 0,0.1943 -0.09095,0.32246 -0.08957,0.12816 -0.261827,0.17777 z m -0.697287,-0.86403 v 0.73036 h 0.350021 q 0.201194,0 0.303169,-0.0923 0.103353,-0.0937 0.103353,-0.27423 0,-0.18052 -0.103353,-0.27148 -0.101975,-0.0923 -0.303169,-0.0923 z"
style="stroke-width:0.26458332"
id="path883"
inkscape:connector-curvature="0" />
<path
d="m 76.754608,112.26988 v 0.12403 h -1.16582 q 0.01654,0.26182 0.157096,0.39963 0.141938,0.13642 0.394119,0.13642 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272851,-0.10748 v 0.23977 q -0.136425,0.0579 -0.279741,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369315,0 -0.585667,-0.21498 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60082 0.205328,-0.22325 0.552593,-0.22325 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12402 -0.300413,-0.12402 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path885"
inkscape:connector-curvature="0" />
<path
d="m 78.154695,111.60705 v 0.23977 q -0.107487,-0.0551 -0.223242,-0.0827 -0.115756,-0.0276 -0.239779,-0.0276 -0.188791,0 -0.283876,0.0579 -0.09371,0.0579 -0.09371,0.17363 0,0.0882 0.06752,0.13918 0.06752,0.0496 0.271474,0.0951 l 0.08682,0.0193 q 0.270096,0.0579 0.383095,0.16399 0.114377,0.10473 0.114377,0.29352 0,0.21497 -0.170877,0.34037 -0.169498,0.12541 -0.467155,0.12541 -0.124023,0 -0.259071,-0.0248 -0.133669,-0.0234 -0.282498,-0.0717 v -0.26182 q 0.14056,0.073 0.276986,0.11024 0.136426,0.0358 0.270096,0.0358 0.179145,0 0.275607,-0.0606 0.09646,-0.062 0.09646,-0.17363 0,-0.10335 -0.07028,-0.15847 -0.0689,-0.0551 -0.304546,-0.10611 l -0.08819,-0.0207 q -0.235644,-0.0496 -0.340375,-0.15159 -0.104731,-0.10335 -0.104731,-0.28249 0,-0.21773 0.15434,-0.33625 0.15434,-0.11851 0.438216,-0.11851 0.14056,0 0.264584,0.0207 0.124023,0.0207 0.228754,0.062 z"
style="stroke-width:0.26458332"
id="path887"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="VCF"
transform="scale(0.99826066,1.0017424)"
style="font-style:normal;font-weight:normal;font-size:11.81254005px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.10742557"
id="text864">
<path
d="m 63.383713,101.57508 -3.28767,-8.611387 h 1.217015 l 2.728189,7.250177 2.733957,-7.250177 h 1.211247 l -3.281902,8.611387 z"
style="stroke-width:1.10742557"
id="path876"
inkscape:connector-curvature="0" />
<path
d="m 75.68652,93.626995 v 1.22855 Q 75.0982,94.3076 74.42913,94.036512 q -0.663302,-0.271089 -1.413121,-0.271089 -1.476568,0 -2.260994,0.905551 -0.784427,0.899784 -0.784427,2.607065 0,1.701513 0.784427,2.607064 0.784426,0.899787 2.260994,0.899787 0.749819,0 1.413121,-0.27109 0.66907,-0.27109 1.25739,-0.819036 v 1.217016 q -0.611392,0.41528 -1.297765,0.62293 -0.680605,0.20764 -1.44196,0.20764 -1.955299,0 -3.080028,-1.19394 -1.124729,-1.199716 -1.124729,-3.270371 0,-2.076423 1.124729,-3.270367 1.124729,-1.199711 3.080028,-1.199711 0.772891,0 1.453496,0.207643 0.686373,0.201874 1.286229,0.611391 z"
style="stroke-width:1.10742557"
id="path878"
inkscape:connector-curvature="0" />
<path
d="m 77.497622,92.963693 h 4.948808 v 0.980533 h -3.783704 v 2.537851 h 3.414562 v 0.980533 h -3.414562 v 4.11247 h -1.165104 z"
style="stroke-width:1.10742557"
id="path880"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="LPF BPF HPF "
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text868"
transform="translate(-1.0583333)">
<path
d="m 85.230777,111.89769 h 0.278364 v 1.82314 h 1.001834 v 0.23427 h -1.280198 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path927"
inkscape:connector-curvature="0" />
<path
d="m 87.080104,112.12644 v 0.77308 h 0.350022 q 0.194304,0 0.300412,-0.1006 0.106109,-0.10059 0.106109,-0.28663 0,-0.18466 -0.106109,-0.28525 -0.106108,-0.1006 -0.300412,-0.1006 z m -0.278363,-0.22875 h 0.628385 q 0.345888,0 0.522277,0.15709 0.177767,0.15572 0.177767,0.45751 0,0.30455 -0.177767,0.46027 -0.176389,0.15571 -0.522277,0.15571 h -0.350022 v 0.82683 h -0.278363 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path929"
inkscape:connector-curvature="0" />
<path
d="m 88.504996,111.89769 h 1.182357 v 0.23426 h -0.903994 v 0.60634 h 0.815799 v 0.23427 h -0.815799 v 0.98254 h -0.278363 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path931"
inkscape:connector-curvature="0" />
<path
d="m 85.247244,124.12288 v 0.75379 h 0.446484 q 0.224621,0 0.332108,-0.0923 0.108865,-0.0937 0.108865,-0.28525 0,-0.19293 -0.108865,-0.28388 -0.107487,-0.0923 -0.332108,-0.0923 z m 0,-0.84611 v 0.62011 h 0.412033 q 0.20395,0 0.303169,-0.0758 0.100597,-0.0772 0.100597,-0.23426 0,-0.15572 -0.100597,-0.23289 -0.09922,-0.0772 -0.303169,-0.0772 z m -0.278364,-0.22876 h 0.711068 q 0.318327,0 0.490582,0.1323 0.172254,0.13229 0.172254,0.3762 0,0.18879 -0.08819,0.30041 -0.08819,0.11162 -0.259071,0.13918 0.205327,0.0441 0.318326,0.18466 0.114378,0.13918 0.114378,0.34864 0,0.27561 -0.187414,0.42582 -0.187413,0.1502 -0.5333,0.1502 H 84.96888 Z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path933"
inkscape:connector-curvature="0" />
<path
d="m 87.18201,123.27677 v 0.77308 h 0.350021 q 0.194304,0 0.300413,-0.1006 0.106108,-0.1006 0.106108,-0.28663 0,-0.18466 -0.106108,-0.28526 -0.106109,-0.10059 -0.300413,-0.10059 z m -0.278364,-0.22876 h 0.628385 q 0.345888,0 0.522277,0.1571 0.177767,0.15572 0.177767,0.45751 0,0.30454 -0.177767,0.46026 -0.176389,0.15572 -0.522277,0.15572 H 87.18201 v 0.82682 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path935"
inkscape:connector-curvature="0" />
<path
d="m 88.606901,123.04801 h 1.182357 v 0.23427 h -0.903993 v 0.60634 h 0.815798 v 0.23426 h -0.815798 v 0.98254 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path937"
inkscape:connector-curvature="0" />
<path
d="m 84.835245,133.75985 h 0.278364 v 0.84336 h 1.01148 v -0.84336 h 0.278364 v 2.05741 h -0.278364 v -0.97978 h -1.01148 v 0.97978 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path939"
inkscape:connector-curvature="0" />
<path
d="m 87.235788,133.98861 v 0.77307 h 0.350021 q 0.194304,0 0.300413,-0.10059 0.106109,-0.1006 0.106109,-0.28663 0,-0.18466 -0.106109,-0.28526 -0.106109,-0.10059 -0.300413,-0.10059 z m -0.278364,-0.22876 h 0.628385 q 0.345888,0 0.522277,0.1571 0.177767,0.15572 0.177767,0.45751 0,0.30454 -0.177767,0.46026 -0.176389,0.15572 -0.522277,0.15572 h -0.350021 v 0.82682 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path941"
inkscape:connector-curvature="0" />
<path
d="m 88.660679,133.75985 h 1.182357 v 0.23427 h -0.903993 v 0.60633 h 0.815799 v 0.23427 h -0.815799 v 0.98254 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path943"
inkscape:connector-curvature="0" />
</g>
<rect
style="fill:#000000;fill-opacity:1;stroke-width:0.26458332"
id="rect4616"
width="2.1381562"
height="13.898016"
x="51.806999"
y="115.90594" />
</g>
</svg>

+ 297
- 0
plugins/community/repos/PG-Instruments/res/PGVCF.svg View File

@@ -0,0 +1,297 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="195.29379"
height="380.00003"
viewBox="0 0 51.671483 100.54167"
version="1.1"
id="svg8630"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="PGVCF.svg">
<defs
id="defs8624" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="113.86719"
inkscape:cy="185.98498"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="-35.814117,76.038176"
orientation="0,1"
id="guide836"
inkscape:locked="false" />
<sodipodi:guide
position="-17.639789,44.09947"
orientation="0,1"
id="guide838"
inkscape:locked="false" />
<sodipodi:guide
position="-23.519718,60.002006"
orientation="0,1"
id="guide840"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata8627">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.467833,-88.735117)">
<path
inkscape:connector-curvature="0"
id="path33449"
d="M 44.541176,88.808436 H 96.065974 V 189.20454 H 44.541176 Z m 0,0"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.27602378"
sodipodi:insensitive="true" />
<g
id="logo"
inkscape:label="#g2255"
transform="translate(11.759859,53.053001)">
<path
inkscape:connector-curvature="0"
id="path3737"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 55.047763,130.90923 v 1.43277 h 0.7016 q 0.38947,0 0.60216,-0.18644 0.21269,-0.18643 0.21269,-0.53122 0,-0.34223 -0.21269,-0.52867 -0.21269,-0.18644 -0.60216,-0.18644 z m -0.55797,-0.42396 h 1.25957 q 0.69332,0 1.04688,0.29115 0.35633,0.2886 0.35633,0.84792 0,0.56443 -0.35633,0.85302 -0.35356,0.2886 -1.04688,0.2886 h -0.7016 v 1.53239 h -0.55797 z" />
<path
inkscape:connector-curvature="0"
id="path3739"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 60.715833,133.75435 v -1.02414 h -0.91154 v -0.42396 h 1.46398 v 1.63709 q -0.32318,0.21198 -0.71265,0.3218 -0.38947,0.10726 -0.83143,0.10726 -0.96678,0 -1.5137,-0.521 -0.54415,-0.52356 -0.54415,-1.45576 0,-0.93476 0.54415,-1.45576 0.54692,-0.52357 1.5137,-0.52357 0.40328,0 0.76513,0.0919 0.36462,0.0919 0.67122,0.27072 v 0.5491 q -0.30936,-0.24263 -0.6574,-0.36522 -0.34804,-0.12259 -0.73199,-0.12259 -0.75685,0 -1.13804,0.39076 -0.37842,0.39075 -0.37842,1.16461 0,0.77129 0.37842,1.16205 0.38119,0.39076 1.13804,0.39076 0.29556,0 0.52758,-0.046 0.23203,-0.0486 0.4171,-0.14813 z" />
<path
inkscape:connector-curvature="0"
id="path3741"
style="font-style:normal;font-weight:normal;font-size:5.43959379px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13598984"
d="m 62.268193,131.4379 h 0.50825 v 2.86045 h -0.50825 z m 0,-1.11353 h 0.50825 v 0.59507 h -0.50825 z" />
</g>
<rect
style="fill:#000001;fill-opacity:1;stroke-width:0.28892556"
id="rect842"
width="7.8844509"
height="38.085903"
x="83.489182"
y="110.29865" />
<g
aria-label="Input"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text846"
transform="translate(-0.53453905,-3.8225158)">
<path
d="m 46.882972,120.66927 h 0.278364 v 2.05741 h -0.278364 z"
style="stroke-width:0.26458332"
id="path916"
inkscape:connector-curvature="0" />
<path
d="m 48.987237,121.79512 v 0.93156 h -0.253559 v -0.92329 q 0,-0.21911 -0.08544,-0.32797 -0.08544,-0.10887 -0.256315,-0.10887 -0.205327,0 -0.323839,0.13092 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254937 v -1.5434 h 0.254938 v 0.23977 q 0.09095,-0.13918 0.213596,-0.20808 0.124023,-0.0689 0.285254,-0.0689 0.265961,0 0.402387,0.16536 0.136426,0.16399 0.136426,0.48369 z"
style="stroke-width:0.26458332"
id="path918"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Freq
Mod"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text850"
transform="translate(0,-0.67800549)">
<path
d="m 46.081166,127.21737 h 1.182357 v 0.23427 H 46.35953 v 0.60633 h 0.815798 v 0.23427 H 46.35953 v 0.98254 h -0.278364 z"
style="stroke-width:0.26458332"
id="path901"
inkscape:connector-curvature="0" />
<path
d="m 48.386624,127.9684 q -0.04272,-0.0248 -0.09371,-0.0358 -0.04961,-0.0124 -0.110243,-0.0124 -0.214974,0 -0.330729,0.14056 -0.114377,0.13918 -0.114377,0.40101 v 0.81304 h -0.254937 v -1.5434 h 0.254937 v 0.23978 q 0.07993,-0.14056 0.208084,-0.20809 0.128157,-0.0689 0.311436,-0.0689 0.02618,0 0.05788,0.004 0.03169,0.003 0.07028,0.01 z"
style="stroke-width:0.26458332"
id="path903"
inkscape:connector-curvature="0" />
<path
d="m 49.914868,128.43969 v 0.12402 h -1.16582 q 0.01654,0.26183 0.157096,0.39963 0.141938,0.13643 0.394119,0.13643 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272852,-0.10749 v 0.23978 q -0.136426,0.0579 -0.279742,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369314,0 -0.585666,-0.21497 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.203949,-0.60083 0.205328,-0.22324 0.552594,-0.22324 0.311436,0 0.491959,0.20119 0.181901,0.19982 0.181901,0.54433 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12403 -0.300412,-0.12403 -0.212218,0 -0.340376,0.11989 -0.126779,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path905"
inkscape:connector-curvature="0" />
<path
d="m 50.48262,128.50446 q 0,0.27974 0.114377,0.43959 0.115755,0.15848 0.316949,0.15848 0.201194,0 0.316949,-0.15848 0.115755,-0.15985 0.115755,-0.43959 0,-0.27974 -0.115755,-0.43822 -0.115755,-0.15985 -0.316949,-0.15985 -0.201194,0 -0.316949,0.15985 -0.114377,0.15848 -0.114377,0.43822 z m 0.86403,0.53881 q -0.07993,0.1378 -0.202572,0.20533 -0.121267,0.0661 -0.292144,0.0661 -0.279741,0 -0.45613,-0.22324 -0.175011,-0.22324 -0.175011,-0.58704 0,-0.36381 0.175011,-0.58705 0.176389,-0.22324 0.45613,-0.22324 0.170877,0 0.292144,0.0675 0.122646,0.0661 0.202572,0.20395 v -0.23426 h 0.253559 v 2.13044 H 51.34665 Z"
style="stroke-width:0.26458332"
id="path907"
inkscape:connector-curvature="0" />
<path
d="m 46.081166,130.74515 h 0.414789 l 0.525033,1.40008 0.527789,-1.40008 h 0.414789 v 2.05741 h -0.271474 v -1.80661 l -0.530544,1.41111 h -0.279742 l -0.530545,-1.41111 v 1.80661 h -0.270095 z"
style="stroke-width:0.26458332"
id="path909"
inkscape:connector-curvature="0" />
<path
d="m 49.104582,131.43692 q -0.20395,0 -0.322461,0.15985 -0.118512,0.15848 -0.118512,0.43546 0,0.27699 0.117134,0.43684 0.118511,0.15848 0.323839,0.15848 0.202571,0 0.321083,-0.15986 0.118511,-0.15985 0.118511,-0.43546 0,-0.27422 -0.118511,-0.43408 -0.118512,-0.16123 -0.321083,-0.16123 z m 0,-0.21497 q 0.330729,0 0.51952,0.21497 0.188791,0.21498 0.188791,0.59531 0,0.37897 -0.188791,0.59532 -0.188791,0.21497 -0.51952,0.21497 -0.332108,0 -0.520899,-0.21497 -0.187413,-0.21635 -0.187413,-0.59532 0,-0.38033 0.187413,-0.59531 0.188791,-0.21497 0.520899,-0.21497 z"
style="stroke-width:0.26458332"
id="path911"
inkscape:connector-curvature="0" />
<path
d="m 51.247431,131.49342 v -0.83509 h 0.253559 v 2.14423 h -0.253559 v -0.23151 q -0.07993,0.1378 -0.202571,0.20533 -0.121268,0.0661 -0.292145,0.0661 -0.279741,0 -0.45613,-0.22324 -0.175011,-0.22324 -0.175011,-0.58705 0,-0.3638 0.175011,-0.58704 0.176389,-0.22324 0.45613,-0.22324 0.170877,0 0.292145,0.0675 0.122645,0.0661 0.202571,0.20395 z m -0.86403,0.53881 q 0,0.27975 0.114377,0.4396 0.115756,0.15847 0.316949,0.15847 0.201194,0 0.316949,-0.15847 0.115755,-0.15985 0.115755,-0.4396 0,-0.27974 -0.115755,-0.43821 -0.115755,-0.15985 -0.316949,-0.15985 -0.201193,0 -0.316949,0.15985 -0.114377,0.15847 -0.114377,0.43821 z"
style="stroke-width:0.26458332"
id="path913"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Cutoff"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text856"
transform="translate(2.6458335,-1.0583333)">
<path
d="m 61.386194,111.33968 v 0.29352 q -0.14056,-0.13091 -0.300412,-0.19568 -0.158475,-0.0648 -0.33762,-0.0648 -0.352778,0 -0.540191,0.21636 -0.187413,0.21497 -0.187413,0.62287 0,0.40652 0.187413,0.62287 0.187413,0.21498 0.540191,0.21498 0.179145,0 0.33762,-0.0648 0.159852,-0.0648 0.300412,-0.19568 v 0.29076 q -0.146072,0.0992 -0.310059,0.14883 -0.162608,0.0496 -0.344509,0.0496 -0.467155,0 -0.735873,-0.28525 -0.268717,-0.28664 -0.268717,-0.78135 0,-0.4961 0.268717,-0.78135 0.268718,-0.28663 0.735873,-0.28663 0.184657,0 0.347265,0.0496 0.163987,0.0482 0.307303,0.14607 z"
style="stroke-width:0.26458332"
id="path890"
inkscape:connector-curvature="0" />
<path
d="m 61.781691,112.62952 v -0.93431 h 0.253559 v 0.92467 q 0,0.21911 0.08544,0.32935 0.08544,0.10886 0.256315,0.10886 0.205328,0 0.323839,-0.13091 0.11989,-0.13091 0.11989,-0.35691 v -0.87506 h 0.253559 v 1.54341 h -0.253559 v -0.23703 q -0.09233,0.14056 -0.214974,0.20947 -0.121268,0.0675 -0.282498,0.0675 -0.265962,0 -0.403765,-0.16536 -0.137804,-0.16537 -0.137804,-0.4837 z m 0.638032,-0.97151 z"
style="stroke-width:0.26458332"
id="path892"
inkscape:connector-curvature="0" />
<path
d="m 63.850126,111.257 v 0.43821 h 0.522277 v 0.19706 h -0.522277 v 0.83785 q 0,0.18879 0.05099,0.24254 0.05237,0.0537 0.210839,0.0537 h 0.26045 v 0.21222 h -0.26045 q -0.293522,0 -0.405143,-0.10887 -0.111621,-0.11024 -0.111621,-0.39963 v -0.83785 h -0.186035 v -0.19706 h 0.186035 V 111.257 Z"
style="stroke-width:0.26458332"
id="path894"
inkscape:connector-curvature="0" />
<path
d="m 65.305335,111.87298 q -0.20395,0 -0.322461,0.15985 -0.118512,0.15848 -0.118512,0.43546 0,0.27699 0.117134,0.43684 0.118511,0.15848 0.323839,0.15848 0.202571,0 0.321083,-0.15986 0.118511,-0.15985 0.118511,-0.43546 0,-0.27423 -0.118511,-0.43408 -0.118512,-0.16123 -0.321083,-0.16123 z m 0,-0.21497 q 0.330729,0 0.51952,0.21497 0.188791,0.21498 0.188791,0.59531 0,0.37896 -0.188791,0.59532 -0.188791,0.21497 -0.51952,0.21497 -0.332108,0 -0.520899,-0.21497 -0.187413,-0.21636 -0.187413,-0.59532 0,-0.38033 0.187413,-0.59531 0.188791,-0.21497 0.520899,-0.21497 z"
style="stroke-width:0.26458332"
id="path896"
inkscape:connector-curvature="0" />
<path
d="m 68.164764,111.09439 v 0.21084 h -0.242535 q -0.136426,0 -0.190169,0.0551 -0.05237,0.0551 -0.05237,0.19844 v 0.13642 h 0.417546 v 0.19706 H 67.67969 v 1.34635 h -0.254937 v -1.34635 h -0.695909 v 1.34635 h -0.254937 v -1.34635 h -0.242535 v -0.19706 h 0.242535 v -0.10748 q 0,-0.2577 0.119889,-0.37483 0.119889,-0.11851 0.380339,-0.11851 h 0.239778 v 0.21084 h -0.242534 q -0.136426,0 -0.19017,0.0551 -0.05236,0.0551 -0.05236,0.19844 v 0.13642 h 0.695909 v -0.10748 q 0,-0.2577 0.11989,-0.37483 0.119889,-0.11851 0.380338,-0.11851 z"
style="stroke-width:0.26458332"
id="path898"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="Res"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text860"
transform="translate(1.5875001,-1.0583333)">
<path
d="m 74.585576,112.14035 q 0.08957,0.0303 0.173633,0.12953 0.08544,0.0992 0.170876,0.27285 l 0.282498,0.56224 h -0.299034 l -0.263205,-0.52779 q -0.101975,-0.2067 -0.198438,-0.27423 -0.09508,-0.0675 -0.260449,-0.0675 h -0.303168 v 0.86954 h -0.278364 v -2.05741 h 0.628385 q 0.352778,0 0.526411,0.14745 0.173633,0.14745 0.173633,0.44511 0,0.1943 -0.09095,0.32246 -0.08957,0.12816 -0.261827,0.17777 z m -0.697287,-0.86403 v 0.73036 h 0.350021 q 0.201194,0 0.303169,-0.0923 0.103353,-0.0937 0.103353,-0.27423 0,-0.18052 -0.103353,-0.27148 -0.101975,-0.0923 -0.303169,-0.0923 z"
style="stroke-width:0.26458332"
id="path883"
inkscape:connector-curvature="0" />
<path
d="m 76.754608,112.26988 v 0.12403 h -1.16582 q 0.01654,0.26182 0.157096,0.39963 0.141938,0.13642 0.394119,0.13642 0.146072,0 0.282498,-0.0358 0.137804,-0.0358 0.272851,-0.10748 v 0.23977 q -0.136425,0.0579 -0.279741,0.0882 -0.143316,0.0303 -0.290766,0.0303 -0.369315,0 -0.585667,-0.21498 -0.214974,-0.21497 -0.214974,-0.58153 0,-0.37896 0.20395,-0.60082 0.205328,-0.22325 0.552593,-0.22325 0.311437,0 0.49196,0.2012 0.181901,0.19981 0.181901,0.54432 z m -0.253559,-0.0744 q -0.0028,-0.20809 -0.117133,-0.33211 -0.112999,-0.12402 -0.300413,-0.12402 -0.212218,0 -0.340375,0.11989 -0.12678,0.11989 -0.146072,0.33762 z"
style="stroke-width:0.26458332"
id="path885"
inkscape:connector-curvature="0" />
<path
d="m 78.154695,111.60705 v 0.23977 q -0.107487,-0.0551 -0.223242,-0.0827 -0.115756,-0.0276 -0.239779,-0.0276 -0.188791,0 -0.283876,0.0579 -0.09371,0.0579 -0.09371,0.17363 0,0.0882 0.06752,0.13918 0.06752,0.0496 0.271474,0.0951 l 0.08682,0.0193 q 0.270096,0.0579 0.383095,0.16399 0.114377,0.10473 0.114377,0.29352 0,0.21497 -0.170877,0.34037 -0.169498,0.12541 -0.467155,0.12541 -0.124023,0 -0.259071,-0.0248 -0.133669,-0.0234 -0.282498,-0.0717 v -0.26182 q 0.14056,0.073 0.276986,0.11024 0.136426,0.0358 0.270096,0.0358 0.179145,0 0.275607,-0.0606 0.09646,-0.062 0.09646,-0.17363 0,-0.10335 -0.07028,-0.15847 -0.0689,-0.0551 -0.304546,-0.10611 l -0.08819,-0.0207 q -0.235644,-0.0496 -0.340375,-0.15159 -0.104731,-0.10335 -0.104731,-0.28249 0,-0.21773 0.15434,-0.33625 0.15434,-0.11851 0.438216,-0.11851 0.14056,0 0.264584,0.0207 0.124023,0.0207 0.228754,0.062 z"
style="stroke-width:0.26458332"
id="path887"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="VCF"
transform="scale(0.99826066,1.0017424)"
style="font-style:normal;font-weight:normal;font-size:11.81254005px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.10742557"
id="text864">
<path
d="m 63.383713,101.57508 -3.28767,-8.611387 h 1.217015 l 2.728189,7.250177 2.733957,-7.250177 h 1.211247 l -3.281902,8.611387 z"
style="stroke-width:1.10742557"
id="path876"
inkscape:connector-curvature="0" />
<path
d="m 75.68652,93.626995 v 1.22855 Q 75.0982,94.3076 74.42913,94.036512 q -0.663302,-0.271089 -1.413121,-0.271089 -1.476568,0 -2.260994,0.905551 -0.784427,0.899784 -0.784427,2.607065 0,1.701513 0.784427,2.607064 0.784426,0.899787 2.260994,0.899787 0.749819,0 1.413121,-0.27109 0.66907,-0.27109 1.25739,-0.819036 v 1.217016 q -0.611392,0.41528 -1.297765,0.62293 -0.680605,0.20764 -1.44196,0.20764 -1.955299,0 -3.080028,-1.19394 -1.124729,-1.199716 -1.124729,-3.270371 0,-2.076423 1.124729,-3.270367 1.124729,-1.199711 3.080028,-1.199711 0.772891,0 1.453496,0.207643 0.686373,0.201874 1.286229,0.611391 z"
style="stroke-width:1.10742557"
id="path878"
inkscape:connector-curvature="0" />
<path
d="m 77.497622,92.963693 h 4.948808 v 0.980533 h -3.783704 v 2.537851 h 3.414562 v 0.980533 h -3.414562 v 4.11247 h -1.165104 z"
style="stroke-width:1.10742557"
id="path880"
inkscape:connector-curvature="0" />
</g>
<g
aria-label="LPF
BPF
HPF
"
style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
id="text868">
<path
d="m 85.230777,111.89769 h 0.278364 v 1.82314 h 1.001834 v 0.23427 h -1.280198 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path927"
inkscape:connector-curvature="0" />
<path
d="m 87.080104,112.12644 v 0.77308 h 0.350022 q 0.194304,0 0.300412,-0.1006 0.106109,-0.10059 0.106109,-0.28663 0,-0.18466 -0.106109,-0.28525 -0.106108,-0.1006 -0.300412,-0.1006 z m -0.278363,-0.22875 h 0.628385 q 0.345888,0 0.522277,0.15709 0.177767,0.15572 0.177767,0.45751 0,0.30455 -0.177767,0.46027 -0.176389,0.15571 -0.522277,0.15571 h -0.350022 v 0.82683 h -0.278363 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path929"
inkscape:connector-curvature="0" />
<path
d="m 88.504996,111.89769 h 1.182357 v 0.23426 h -0.903994 v 0.60634 h 0.815799 v 0.23427 h -0.815799 v 0.98254 h -0.278363 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path931"
inkscape:connector-curvature="0" />
<path
d="m 85.247244,124.12288 v 0.75379 h 0.446484 q 0.224621,0 0.332108,-0.0923 0.108865,-0.0937 0.108865,-0.28525 0,-0.19293 -0.108865,-0.28388 -0.107487,-0.0923 -0.332108,-0.0923 z m 0,-0.84611 v 0.62011 h 0.412033 q 0.20395,0 0.303169,-0.0758 0.100597,-0.0772 0.100597,-0.23426 0,-0.15572 -0.100597,-0.23289 -0.09922,-0.0772 -0.303169,-0.0772 z m -0.278364,-0.22876 h 0.711068 q 0.318327,0 0.490582,0.1323 0.172254,0.13229 0.172254,0.3762 0,0.18879 -0.08819,0.30041 -0.08819,0.11162 -0.259071,0.13918 0.205327,0.0441 0.318326,0.18466 0.114378,0.13918 0.114378,0.34864 0,0.27561 -0.187414,0.42582 -0.187413,0.1502 -0.5333,0.1502 H 84.96888 Z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path933"
inkscape:connector-curvature="0" />
<path
d="m 87.18201,123.27677 v 0.77308 h 0.350021 q 0.194304,0 0.300413,-0.1006 0.106108,-0.1006 0.106108,-0.28663 0,-0.18466 -0.106108,-0.28526 -0.106109,-0.10059 -0.300413,-0.10059 z m -0.278364,-0.22876 h 0.628385 q 0.345888,0 0.522277,0.1571 0.177767,0.15572 0.177767,0.45751 0,0.30454 -0.177767,0.46026 -0.176389,0.15572 -0.522277,0.15572 H 87.18201 v 0.82682 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path935"
inkscape:connector-curvature="0" />
<path
d="m 88.606901,123.04801 h 1.182357 v 0.23427 h -0.903993 v 0.60634 h 0.815798 v 0.23426 h -0.815798 v 0.98254 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path937"
inkscape:connector-curvature="0" />
<path
d="m 84.835245,133.75985 h 0.278364 v 0.84336 h 1.01148 v -0.84336 h 0.278364 v 2.05741 h -0.278364 v -0.97978 h -1.01148 v 0.97978 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path939"
inkscape:connector-curvature="0" />
<path
d="m 87.235788,133.98861 v 0.77307 h 0.350021 q 0.194304,0 0.300413,-0.10059 0.106109,-0.1006 0.106109,-0.28663 0,-0.18466 -0.106109,-0.28526 -0.106109,-0.10059 -0.300413,-0.10059 z m -0.278364,-0.22876 h 0.628385 q 0.345888,0 0.522277,0.1571 0.177767,0.15572 0.177767,0.45751 0,0.30454 -0.177767,0.46026 -0.176389,0.15572 -0.522277,0.15572 h -0.350021 v 0.82682 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path941"
inkscape:connector-curvature="0" />
<path
d="m 88.660679,133.75985 h 1.182357 v 0.23427 h -0.903993 v 0.60633 h 0.815799 v 0.23427 h -0.815799 v 0.98254 h -0.278364 z"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
id="path943"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

+ 93
- 0
plugins/community/repos/PG-Instruments/res/fonts/OFL.txt View File

@@ -0,0 +1,93 @@
Sudo is Copyright (c) 2009-2016, Jens Kutilek (http://www.kutilek.de/).

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

BIN
plugins/community/repos/PG-Instruments/res/fonts/Sudo.ttf View File


+ 92
- 0
plugins/community/repos/PG-Instruments/src/PGEcho.cpp View File

@@ -0,0 +1,92 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

#define BUFFER_SIZE 65536 * 2
#define BUFFER_MASK (BUFFER_SIZE - 1)

struct PGEcho : Module
{
enum ParamIds
{
TIME_PARAM,
FEEDBACK_PARAM,
NUM_PARAMS
};
enum InputIds
{
INPUT,
NUM_INPUTS
};
enum OutputIds
{
OUTPUT,
NUM_OUTPUTS
};

int reader;
int writer;
int offset;
float buffer[BUFFER_SIZE];
PGEcho() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
reader = 0;
offset = BUFFER_SIZE >> 1;
writer = offset;
for(int i = 0; i < BUFFER_SIZE; i++)
buffer[i] = 0.0f;
}
void step() override
{
int echoOffset = (int)(params[TIME_PARAM].value * BUFFER_SIZE);
if (echoOffset != offset)
{
offset = echoOffset;
writer = (reader - offset) & BUFFER_MASK;
}
float input = inputs[INPUT].value;

outputs[OUTPUT].value = input + buffer[reader];
buffer[writer] = input + buffer[writer] * params[FEEDBACK_PARAM].value;
reader++;
writer++;
reader &= BUFFER_MASK;
writer &= BUFFER_MASK;
}
};

struct PGEchoWidget : ModuleWidget
{
PGEchoWidget(PGEcho *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGEcho.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(30, 100), Port::INPUT, module, PGEcho::INPUT));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(70, 100), module, PGEcho::TIME_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(110, 100), module, PGEcho::FEEDBACK_PARAM, 0.0f, 1.0f, 0.5f));
addOutput(Port::create<PJ301MPort>(Vec(150, 100), Port::OUTPUT, module, PGEcho::OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGEcho) {
Model *modelPGEcho = Model::create<PGEcho, PGEchoWidget>("PG-Instruments", "PGEcho", "PG Echo", DELAY_TAG);
return modelPGEcho;
}

+ 96
- 0
plugins/community/repos/PG-Instruments/src/PGOctPanner.cpp View File

@@ -0,0 +1,96 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

#define NUM_PANNERS 8
#define LEFT_MARGIN 20
#define TOP_MARGIN 60
#define SPACING 36

struct PGOctPanner : Module
{
enum ParamIds
{
ENUMS(LEVEL_PARAM, NUM_PANNERS),
ENUMS(PAN_PARAM, NUM_PANNERS),
NUM_PARAMS
};
enum InputIds
{
ENUMS(INPUT, NUM_PANNERS),
NUM_INPUTS
};
enum OutputIds
{
LEFT_OUTPUT,
RIGHT_OUTPUT,
NUM_OUTPUTS
};
PGOctPanner() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
}
void step() override
{
float left = 0.0f;
float right = 0.0f;
for(int i = 0; i < NUM_PANNERS; i++)
{
float input = inputs[INPUT + i].value;
float panning = params[PAN_PARAM + i].value;
float level = params[LEVEL_PARAM + i].value;
float l, r;
pan(input, panning, level, l, r);
left += l;
right += r;
}
outputs[LEFT_OUTPUT].value = left;
outputs[RIGHT_OUTPUT].value = right;
}
void pan(float input, float panning, float level, float &left, float &right)
{
left = cosf(panning * M_PI / 2.0f) * input * level;
right = sinf(panning * M_PI / 2.0f) * input * level;
}
};

struct PGOctPannerWidget : ModuleWidget
{
PGOctPannerWidget(PGOctPanner *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGOctPanner.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

for(int i = 0; i < NUM_PANNERS; i++)
{
addInput(Port::create<PJ301MPort>(Vec(LEFT_MARGIN, TOP_MARGIN + SPACING * i), Port::INPUT, module, PGOctPanner::INPUT + i));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(LEFT_MARGIN + 40, TOP_MARGIN + SPACING * i), module, PGOctPanner::PAN_PARAM + i, 0.0f, 1.0, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(LEFT_MARGIN + 80, TOP_MARGIN + SPACING * i), module, PGOctPanner::LEVEL_PARAM + i, 0.0f, 1.0f, 0.7f));
}
addOutput(Port::create<PJ301MPort>(Vec(LEFT_MARGIN + 120, TOP_MARGIN + SPACING), Port::OUTPUT, module, PGOctPanner::LEFT_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(LEFT_MARGIN + 120, TOP_MARGIN + SPACING * 2), Port::OUTPUT, module, PGOctPanner::RIGHT_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGOctPanner) {
Model *modelPGOctPanner = Model::create<PGOctPanner, PGOctPannerWidget>("PG-Instruments", "PGOctPanner", "PG Oct Panner", ATTENUATOR_TAG);
return modelPGOctPanner;
}

+ 92
- 0
plugins/community/repos/PG-Instruments/src/PGPanner.cpp View File

@@ -0,0 +1,92 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

struct PGPanner : Module
{
enum ParamIds
{
PAN_PARAM,
NUM_PARAMS
};
enum InputIds
{
INPUT,
PAN_INPUT,
NUM_INPUTS
};
enum OutputIds
{
LEFT_OUTPUT,
RIGHT_OUTPUT,
NUM_OUTPUTS
};
enum LightIds
{
RUNNING_LIGHT,
NUM_LIGHTS
};
float panning = 0.5f;
PGPanner() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS)
{
onReset();
}
void onReset() override
{
}
void onRandomize() override
{
}
void step() override
{
panning = params[PAN_PARAM].value;
float mono = inputs[INPUT].value;
float panInput = inputs[PAN_INPUT].value;
float pan = panning + panInput;
float leftGain = cosf(pan * M_PI / 2.0f) * mono;
float rightGain = sinf(pan * M_PI / 2.0f) * mono;
outputs[LEFT_OUTPUT].value = leftGain;
outputs[RIGHT_OUTPUT].value = rightGain;
}
};

struct PGPannerWidget : ModuleWidget
{
PGPannerWidget(PGPanner *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGPanner.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addParam(ParamWidget::create<RoundLargeBlackKnob>(Vec(20, 40), module, PGPanner::PAN_PARAM, 0.0f, 1.0, 0.5f));
addInput(Port::create<PJ301MPort>(Vec(26, 100), Port::INPUT, module, PGPanner::INPUT));
addInput(Port::create<PJ301MPort>(Vec(26, 160), Port::INPUT, module, PGPanner::PAN_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(12, 220), Port::OUTPUT, module, PGPanner::LEFT_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(42, 220), Port::OUTPUT, module, PGPanner::RIGHT_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGPanner) {
Model *modelPGPanner = Model::create<PGPanner, PGPannerWidget>("PG-Instruments", "PGPanner", "PG Panner", ATTENUATOR_TAG);
return modelPGPanner;
}

+ 98
- 0
plugins/community/repos/PG-Instruments/src/PGQuadPanner.cpp View File

@@ -0,0 +1,98 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

#define NUM_PANNERS 4
#define LEFT_MARGIN 20
#define TOP_MARGIN 100
#define SPACING 36

struct PGQuadPanner : Module
{
enum ParamIds
{
ENUMS(LEVEL_PARAM, NUM_PANNERS),
ENUMS(PAN_PARAM, NUM_PANNERS),
NUM_PARAMS
};
enum InputIds
{
ENUMS(INPUT, NUM_PANNERS),
NUM_INPUTS
};
enum OutputIds
{
LEFT_OUTPUT,
RIGHT_OUTPUT,
NUM_OUTPUTS
};
//float panning[NUM_PANNERS] = { 0.5f, 0.5f, 0.5f, 0.5f };
PGQuadPanner() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
}
void step() override
{
float left = 0.0f;
float right = 0.0f;
for(int i = 0; i < NUM_PANNERS; i++)
{
float input = inputs[INPUT + i].value;
float panning = params[PAN_PARAM + i].value;
float level = params[LEVEL_PARAM + i].value;
float l, r;
pan(input, panning, level, l, r);
left += l;
right += r;
}
outputs[LEFT_OUTPUT].value = left;
outputs[RIGHT_OUTPUT].value = right;
}
void pan(float input, float panning, float level, float &left, float &right)
{
left = cosf(panning * M_PI / 2.0f) * input * level;
right = sinf(panning * M_PI / 2.0f) * input * level;
}
};

struct PGQuadPannerWidget : ModuleWidget
{
PGQuadPannerWidget(PGQuadPanner *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGQuadPanner.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

for(int i = 0; i < NUM_PANNERS; i++)
{
addInput(Port::create<PJ301MPort>(Vec(LEFT_MARGIN, TOP_MARGIN + SPACING * i), Port::INPUT, module, PGQuadPanner::INPUT + i));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(LEFT_MARGIN + 40, TOP_MARGIN + SPACING * i), module, PGQuadPanner::PAN_PARAM + i, 0.0f, 1.0, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(LEFT_MARGIN + 80, TOP_MARGIN + SPACING * i), module, PGQuadPanner::LEVEL_PARAM + i, 0.0f, 1.0f, 0.7f));
}
addOutput(Port::create<PJ301MPort>(Vec(LEFT_MARGIN + 120, TOP_MARGIN + SPACING), Port::OUTPUT, module, PGQuadPanner::LEFT_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(LEFT_MARGIN + 120, TOP_MARGIN + SPACING * 2), Port::OUTPUT, module, PGQuadPanner::RIGHT_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGQuadPanner) {
Model *modelPGQuadPanner = Model::create<PGQuadPanner, PGQuadPannerWidget>("PG-Instruments", "PGQuadPanner", "PG Quad Panner", ATTENUATOR_TAG);
return modelPGQuadPanner;
}

+ 253
- 0
plugins/community/repos/PG-Instruments/src/PGSEQ3.cpp View File

@@ -0,0 +1,253 @@
#include "dsp/digital.hpp"
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

#define NUM_SEQ_STEPS 16

struct PGSEQ3 : Module
{
enum ParamIds
{
CLOCK_PARAM,
RUN_PARAM,
RESET_PARAM,
STEPS_PARAM,
ENUMS(ROW1_PARAM, NUM_SEQ_STEPS),
ENUMS(ROW2_PARAM, NUM_SEQ_STEPS),
ENUMS(ROW3_PARAM, NUM_SEQ_STEPS),
ENUMS(GATE_PARAM, NUM_SEQ_STEPS),
NUM_PARAMS
};
enum InputIds
{
CLOCK_INPUT,
EXT_CLOCK_INPUT,
RESET_INPUT,
STEPS_INPUT,
NUM_INPUTS
};

enum OutputIds
{
GATES_OUTPUT,
ROW1_OUTPUT,
ROW2_OUTPUT,
ROW3_OUTPUT,
ENUMS(GATE_OUTPUT, NUM_SEQ_STEPS),
NUM_OUTPUTS
};

enum LightIds
{
RUNNING_LIGHT,
RESET_LIGHT,
GATES_LIGHT,
ENUMS(ROW_LIGHTS, 3),
ENUMS(GATE_LIGHTS, NUM_SEQ_STEPS),
NUM_LIGHTS
};

bool running = true;
SchmittTrigger clockTrigger;
SchmittTrigger runningTrigger;
SchmittTrigger resetTrigger;
SchmittTrigger gateTriggers[NUM_SEQ_STEPS];
/** Phase of internal LFO */
float phase = 0.f;
int index = 0;
bool gates[NUM_SEQ_STEPS] = {};

PGSEQ3() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS)
{
onReset();
}

void onReset() override
{
for (int i = 0; i < NUM_SEQ_STEPS; i++)
{
gates[i] = true;
}
}

void onRandomize() override
{
for (int i = 0; i < NUM_SEQ_STEPS; i++)
{
gates[i] = (randomUniform() > 0.5f);
}
}

json_t *toJson() override
{
json_t *rootJ = json_object();

// running
json_object_set_new(rootJ, "running", json_boolean(running));

// gates
json_t *gatesJ = json_array();
for (int i = 0; i < NUM_SEQ_STEPS; i++)
{
json_array_insert_new(gatesJ, i, json_integer((int) gates[i]));
}
json_object_set_new(rootJ, "gates", gatesJ);

return rootJ;
}

void fromJson(json_t *rootJ) override
{
// running
json_t *runningJ = json_object_get(rootJ, "running");
if (runningJ)
running = json_is_true(runningJ);

// gates
json_t *gatesJ = json_object_get(rootJ, "gates");
if (gatesJ)
{
for (int i = 0; i < NUM_SEQ_STEPS; i++)
{
json_t *gateJ = json_array_get(gatesJ, i);
if (gateJ)
gates[i] = !!json_integer_value(gateJ);
}
}
}

void setIndex(int index)
{
int numSteps = (int) clamp(roundf(params[STEPS_PARAM].value + inputs[STEPS_INPUT].value), 1.0f, (float)NUM_SEQ_STEPS);
phase = 0.f;
this->index = index;
if (this->index >= numSteps)
this->index = 0;
}

void step() override
{
// Run
if (runningTrigger.process(params[RUN_PARAM].value))
{
running = !running;
}

bool gateIn = false;
if (running)
{
if (inputs[EXT_CLOCK_INPUT].active)
{
// External clock
if (clockTrigger.process(inputs[EXT_CLOCK_INPUT].value))
{
setIndex(index + 1);
}
gateIn = clockTrigger.isHigh();
}
else
{
// Internal clock
float clockTime = powf(2.0f, params[CLOCK_PARAM].value + inputs[CLOCK_INPUT].value);
phase += clockTime * engineGetSampleTime();
if (phase >= 1.0f)
{
setIndex(index + 1);
}
gateIn = (phase < 0.5f);
}
}

// Reset
if (resetTrigger.process(params[RESET_PARAM].value + inputs[RESET_INPUT].value))
{
setIndex(0);
}

// Gate buttons
for (int i = 0; i < NUM_SEQ_STEPS; i++)
{
if (gateTriggers[i].process(params[GATE_PARAM + i].value))
{
gates[i] = !gates[i];
}
outputs[GATE_OUTPUT + i].value = (running && gateIn && i == index && gates[i]) ? 10.0f : 0.0f;
lights[GATE_LIGHTS + i].setBrightnessSmooth((gateIn && i == index) ? (gates[i] ? 1.f : 0.33) : (gates[i] ? 0.66 : 0.0));
}

// Outputs
outputs[ROW1_OUTPUT].value = params[ROW1_PARAM + index].value;
outputs[ROW2_OUTPUT].value = params[ROW2_PARAM + index].value;
outputs[ROW3_OUTPUT].value = params[ROW3_PARAM + index].value;
outputs[GATES_OUTPUT].value = (gateIn && gates[index]) ? 10.0f : 0.0f;
lights[RUNNING_LIGHT].value = (running);
lights[RESET_LIGHT].setBrightnessSmooth(resetTrigger.isHigh());
lights[GATES_LIGHT].setBrightnessSmooth(gateIn);
lights[ROW_LIGHTS].value = outputs[ROW1_OUTPUT].value / 10.0f;
lights[ROW_LIGHTS + 1].value = outputs[ROW2_OUTPUT].value / 10.0f;
lights[ROW_LIGHTS + 2].value = outputs[ROW3_OUTPUT].value / 10.0f;
}
};


struct PGSEQ3Widget : ModuleWidget
{
PGSEQ3Widget(PGSEQ3 *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGSEQ3.svg")));

addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addParam(ParamWidget::create<RoundBlackKnob>(Vec(18, 56), module, PGSEQ3::CLOCK_PARAM, -2.0f, 6.0f, 2.0f));
addParam(ParamWidget::create<LEDButton>(Vec(60, 61-1), module, PGSEQ3::RUN_PARAM, 0.0f, 1.0f, 0.0f));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(64.4f, 64.4f), module, PGSEQ3::RUNNING_LIGHT));
addParam(ParamWidget::create<LEDButton>(Vec(99, 61-1), module, PGSEQ3::RESET_PARAM, 0.0f, 1.0f, 0.0f));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(103.4f, 64.4f), module, PGSEQ3::RESET_LIGHT));
addParam(ParamWidget::create<RoundBlackSnapKnob>(Vec(132, 56), module, PGSEQ3::STEPS_PARAM, 1.0f, (float)NUM_SEQ_STEPS, (float)NUM_SEQ_STEPS));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(179.4f, 64.4f), module, PGSEQ3::GATES_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(218.4f, 64.4f), module, PGSEQ3::ROW_LIGHTS));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(256.4f, 64.4f), module, PGSEQ3::ROW_LIGHTS + 1));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(295.4f, 64.4f), module, PGSEQ3::ROW_LIGHTS + 2));

static const float portX[NUM_SEQ_STEPS] =
{
20, 58, 96, 135,
173, 212, 250, 288,
327, 366, 404, 442,
480, 519, 557, 596
};
addInput(Port::create<PJ301MPort>(Vec(portX[0]-1, 98), Port::INPUT, module, PGSEQ3::CLOCK_INPUT));
addInput(Port::create<PJ301MPort>(Vec(portX[1]-1, 98), Port::INPUT, module, PGSEQ3::EXT_CLOCK_INPUT));
addInput(Port::create<PJ301MPort>(Vec(portX[2]-1, 98), Port::INPUT, module, PGSEQ3::RESET_INPUT));
addInput(Port::create<PJ301MPort>(Vec(portX[3]-1, 98), Port::INPUT, module, PGSEQ3::STEPS_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(portX[4]-1, 98), Port::OUTPUT, module, PGSEQ3::GATES_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(portX[5]-1, 98), Port::OUTPUT, module, PGSEQ3::ROW1_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(portX[6]-1, 98), Port::OUTPUT, module, PGSEQ3::ROW2_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(portX[7]-1, 98), Port::OUTPUT, module, PGSEQ3::ROW3_OUTPUT));

for (int i = 0; i < NUM_SEQ_STEPS; i++)
{
addParam(ParamWidget::create<RoundBlackKnob>(Vec(portX[i]-2, 157), module, PGSEQ3::ROW1_PARAM + i, 0.0f, 10.0f, 1.0f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(portX[i]-2, 198), module, PGSEQ3::ROW2_PARAM + i, 0.0f, 10.0f, 0.0f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(portX[i]-2, 240), module, PGSEQ3::ROW3_PARAM + i, 0.0f, 10.0f, 0.0f));
addParam(ParamWidget::create<LEDButton>(Vec(portX[i]+2, 278-1), module, PGSEQ3::GATE_PARAM + i, 0.0f, 1.0f, 0.0f));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(portX[i]+6.4f, 281.4f), module, PGSEQ3::GATE_LIGHTS + i));
addOutput(Port::create<PJ301MPort>(Vec(portX[i]-1, 307), Port::OUTPUT, module, PGSEQ3::GATE_OUTPUT + i));
}
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGSEQ3) {
Model *modelPGSEQ3 = Model::create<PGSEQ3, PGSEQ3Widget>("PG-Instruments", "PGSEQ3", "PG-SEQ-3", SEQUENCER_TAG);
return modelPGSEQ3;
}

+ 119
- 0
plugins/community/repos/PG-Instruments/src/PGStereoEcho.cpp View File

@@ -0,0 +1,119 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

#define HALF_BUFFER_SIZE 65536
#define BUFFER_SIZE HALF_BUFFER_SIZE * 2
#define BUFFER_MASK (BUFFER_SIZE - 1)

struct PGStereoEcho : Module
{
enum ParamIds
{
TIME_PARAM,
OFFSET_PARAM,
FEEDBACK_PARAM,
NUM_PARAMS
};
enum InputIds
{
LEFT_INPUT,
RIGHT_INPUT,
NUM_INPUTS
};
enum OutputIds
{
LEFT_OUTPUT,
RIGHT_OUTPUT,
NUM_OUTPUTS
};

int reader;
int leftWriter;
int rightWriter;
int offset;
int rightOffset;
float leftBuffer[BUFFER_SIZE];
float rightBuffer[BUFFER_SIZE];
PGStereoEcho() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
reader = 0;
offset = BUFFER_SIZE >> 1;
rightOffset = 0;
leftWriter = offset;
rightWriter = offset;
for(int i = 0; i < BUFFER_SIZE; i++)
{
leftBuffer[i] = 0.0f;
rightBuffer[i] = 0.0f;
}
}
void step() override
{
int timeParam = (int)(params[TIME_PARAM].value * BUFFER_SIZE);
int offsetParam = (int)(params[OFFSET_PARAM].value * HALF_BUFFER_SIZE);
if (timeParam != offset || offsetParam != rightOffset)
{
offset = timeParam;
rightOffset = offsetParam;
leftWriter = (reader - offset) & BUFFER_MASK;
rightWriter = (reader - offset - rightOffset) & BUFFER_MASK;
}
float input;

input = inputs[LEFT_INPUT].value;
outputs[LEFT_OUTPUT].value = input + leftBuffer[reader];
leftBuffer[leftWriter] = input + leftBuffer[leftWriter] * params[FEEDBACK_PARAM].value;
input = inputs[RIGHT_INPUT].value;
outputs[RIGHT_OUTPUT].value = input + rightBuffer[reader];
rightBuffer[rightWriter] = input + rightBuffer[rightWriter] * params[FEEDBACK_PARAM].value;
reader++;
leftWriter++;
rightWriter++;
reader &= BUFFER_MASK;
leftWriter &= BUFFER_MASK;
rightWriter &= BUFFER_MASK;
}
};

struct PGStereoEchoWidget : ModuleWidget
{
PGStereoEchoWidget(PGStereoEcho *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGStereoEcho.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(30, 100), Port::INPUT, module, PGStereoEcho::LEFT_INPUT));
addInput(Port::create<PJ301MPort>(Vec(30, 140), Port::INPUT, module, PGStereoEcho::RIGHT_INPUT));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(70, 100), module, PGStereoEcho::TIME_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(110, 100), module, PGStereoEcho::FEEDBACK_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(70, 140), module, PGStereoEcho::OFFSET_PARAM, 0.0f, 1.0f, 0.0f));
addOutput(Port::create<PJ301MPort>(Vec(150, 100), Port::OUTPUT, module, PGStereoEcho::LEFT_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(150, 140), Port::OUTPUT, module, PGStereoEcho::RIGHT_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGStereoEcho) {
Model *modelPGStereoEcho = Model::create<PGStereoEcho, PGStereoEchoWidget>("PG-Instruments", "PGStereoEcho", "PG Stereo Echo", DELAY_TAG);
return modelPGStereoEcho;
}

+ 108
- 0
plugins/community/repos/PG-Instruments/src/PGStereoPingPongEcho.cpp View File

@@ -0,0 +1,108 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

#define HALF_BUFFER_SIZE 65536
#define BUFFER_SIZE HALF_BUFFER_SIZE * 2
#define BUFFER_MASK (BUFFER_SIZE - 1)

struct PGStereoPingPongEcho : Module
{
enum ParamIds
{
TIME_PARAM,
FEEDBACK_PARAM,
NUM_PARAMS
};
enum InputIds
{
INPUT,
NUM_INPUTS
};
enum OutputIds
{
LEFT_OUTPUT,
RIGHT_OUTPUT,
NUM_OUTPUTS
};

int reader;
int writer;
int writer2;
int offset;
float buffer[BUFFER_SIZE];
PGStereoPingPongEcho() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
reader = 0;
offset = BUFFER_SIZE >> 1;
writer = offset;
writer2 = BUFFER_SIZE - 1;
for(int i = 0; i < BUFFER_SIZE; i++)
{
buffer[i] = 0.0f;
}
}
void step() override
{
int timeParam = (int)(params[TIME_PARAM].value * BUFFER_SIZE);
if (timeParam != offset)
{
offset = timeParam;
writer = (reader - offset) & BUFFER_MASK;
writer2 = (reader - offset * 2 - 1) & BUFFER_MASK;
}
float input;

input = inputs[INPUT].value;
outputs[LEFT_OUTPUT].value = input * 0.7f + buffer[reader] + buffer[writer];
outputs[RIGHT_OUTPUT].value = input * 0.7f + buffer[reader] + buffer[writer2];
buffer[writer] = input + buffer[writer] * params[FEEDBACK_PARAM].value;
buffer[writer2] = input + buffer[writer2] * params[FEEDBACK_PARAM].value / 2.0f;
reader++;
writer++;
writer2++;
reader &= BUFFER_MASK;
writer &= BUFFER_MASK;
writer2 &= BUFFER_MASK;
}
};

struct PGStereoPingPongEchoWidget : ModuleWidget
{
PGStereoPingPongEchoWidget(PGStereoPingPongEcho *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGStereoPingPongEcho.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(30, 100), Port::INPUT, module, PGStereoPingPongEcho::INPUT));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(70, 100), module, PGStereoPingPongEcho::TIME_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(110, 100), module, PGStereoPingPongEcho::FEEDBACK_PARAM, 0.0f, 1.0f, 0.5f));
addOutput(Port::create<PJ301MPort>(Vec(150, 100), Port::OUTPUT, module, PGStereoPingPongEcho::LEFT_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(150, 140), Port::OUTPUT, module, PGStereoPingPongEcho::RIGHT_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGStereoPingPongEcho) {
Model *modelPGStereoPingPongEcho = Model::create<PGStereoPingPongEcho, PGStereoPingPongEchoWidget>("PG-Instruments", "PGStereoPingPongEcho", "PG Stereo Ping Pong Echo", DELAY_TAG);
return modelPGStereoPingPongEcho;
}

+ 130
- 0
plugins/community/repos/PG-Instruments/src/PGStereoVCF.cpp View File

@@ -0,0 +1,130 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

struct PGStereoVCF : Module
{
enum ParamIds
{
FREQUENCY_PARAM,
RESONANCE_PARAM,
NUM_PARAMS
};
enum InputIds
{
LEFT_INPUT,
RIGHT_INPUT,
CUTOFF,
NUM_INPUTS
};
enum OutputIds
{
LEFT_LOWPASS_OUTPUT,
RIGHT_LOWPASS_OUTPUT,
LEFT_BANDPASS_OUTPUT,
RIGHT_BANDPASS_OUTPUT,
LEFT_HIGHPASS_OUTPUT,
RIGHT_HIGHPASS_OUTPUT,

NUM_OUTPUTS
};
float buf0[2];
float buf1[2];
float buf2[2];
float buf3[2];
float feedback;
PGStereoVCF() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
for(int i = 0; i < 2; i++)
buf0[i] = buf1[i] = buf2[i] = buf3[i] = 0.0f;
}
void step() override
{
calculateFeedback();
float calcCutoff = getCalculatedCutoff();
for(int i = 0; i < 2; i++)
{
float input;
if (i)
input = inputs[RIGHT_INPUT].value;
else
input = inputs[LEFT_INPUT].value;
buf0[i] += calcCutoff * (input - buf0[i] + feedback * (buf0[i] - buf1[i]));
buf1[i] += calcCutoff * (buf0[i] - buf1[i]);
buf2[i] += calcCutoff * (buf1[i] - buf2[i]);
buf3[i] += calcCutoff * (buf2[i] - buf3[i]);
if (i)
{
outputs[RIGHT_LOWPASS_OUTPUT].value = buf3[i];
outputs[RIGHT_BANDPASS_OUTPUT].value = buf0[i] - buf3[i];
outputs[RIGHT_HIGHPASS_OUTPUT].value = inputs[RIGHT_INPUT].value - buf3[i];
}
else
{
outputs[LEFT_LOWPASS_OUTPUT].value = buf3[i];
outputs[LEFT_BANDPASS_OUTPUT].value = buf0[i] - buf3[i];
outputs[LEFT_HIGHPASS_OUTPUT].value = inputs[LEFT_INPUT].value - buf3[i];
}
}
}
void calculateFeedback()
{
feedback = params[RESONANCE_PARAM].value + params[RESONANCE_PARAM].value / (1.0f - getCalculatedCutoff());
}
float getCalculatedCutoff()
{
return fmax(fmin(params[FREQUENCY_PARAM].value + inputs[CUTOFF].value, 0.99f), 0.01f);
}
};

struct PGStereoVCFWidget : ModuleWidget
{
PGStereoVCFWidget(PGStereoVCF *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGStereoVCF.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(20, 100), Port::INPUT, module, PGStereoVCF::LEFT_INPUT));
addInput(Port::create<PJ301MPort>(Vec(20, 140), Port::INPUT, module, PGStereoVCF::RIGHT_INPUT));
addInput(Port::create<PJ301MPort>(Vec(20, 180), Port::INPUT, module, PGStereoVCF::CUTOFF));

addParam(ParamWidget::create<RoundBlackKnob>(Vec(50, 100), module, PGStereoVCF::FREQUENCY_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(90, 100), module, PGStereoVCF::RESONANCE_PARAM, 0.0f, 0.99f, 0.5f));

addOutput(Port::create<PJ301MPort>(Vec(130, 100), Port::OUTPUT, module, PGStereoVCF::LEFT_LOWPASS_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(130, 140), Port::OUTPUT, module, PGStereoVCF::LEFT_BANDPASS_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(130, 180), Port::OUTPUT, module, PGStereoVCF::LEFT_HIGHPASS_OUTPUT));

addOutput(Port::create<PJ301MPort>(Vec(160, 100), Port::OUTPUT, module, PGStereoVCF::RIGHT_LOWPASS_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(160, 140), Port::OUTPUT, module, PGStereoVCF::RIGHT_BANDPASS_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(160, 180), Port::OUTPUT, module, PGStereoVCF::RIGHT_HIGHPASS_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGStereoVCF) {
Model *modelPGStereoVCF = Model::create<PGStereoVCF, PGStereoVCFWidget>("PG-Instruments", "PGStereoVCF", "PG Stereo VCF", ATTENUATOR_TAG);
return modelPGStereoVCF;
}

+ 95
- 0
plugins/community/repos/PG-Instruments/src/PGVCF.cpp View File

@@ -0,0 +1,95 @@
#include "Template.hpp"

namespace rack_plugin_PG_Instruments {

struct PGVCF : Module
{
enum ParamIds
{
FREQUENCY_PARAM,
RESONANCE_PARAM,
NUM_PARAMS
};
enum InputIds
{
INPUT,
CUTOFF,
NUM_INPUTS
};
enum OutputIds
{
LOWPASS_OUTPUT,
BANDPASS_OUTPUT,
HIGHPASS_OUTPUT,
NUM_OUTPUTS
};
float buf0;
float buf1;
float buf2;
float buf3;
float feedback;
PGVCF() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, 0)
{
buf0 = buf1 = buf2 = buf3 = 0.0f;
}
void step() override
{
calculateFeedback();
float calcCutoff = getCalculatedCutoff();
buf0 += calcCutoff * (inputs[INPUT].value - buf0 + feedback * (buf0 - buf1));
buf1 += calcCutoff * (buf0 - buf1);
buf2 += calcCutoff * (buf1 - buf2);
buf3 += calcCutoff * (buf2 - buf3);
outputs[LOWPASS_OUTPUT].value = buf3;
outputs[BANDPASS_OUTPUT].value = buf0 - buf3;
outputs[HIGHPASS_OUTPUT].value = inputs[INPUT].value - buf3;
}
void calculateFeedback()
{
feedback = params[RESONANCE_PARAM].value + params[RESONANCE_PARAM].value / (1.0f - getCalculatedCutoff());
}
float getCalculatedCutoff()
{
return fmax(fmin(params[FREQUENCY_PARAM].value + inputs[CUTOFF].value, 0.99f), 0.01f);
}
};

struct PGVCFWidget : ModuleWidget
{
PGVCFWidget(PGVCF *module) : ModuleWidget(module)
{
setPanel(SVG::load(assetPlugin(plugin, "res/PGVCF.svg")));
addChild(Widget::create<ScrewSilver>(Vec(15, 0)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0)));
addChild(Widget::create<ScrewSilver>(Vec(15, 365)));
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(30, 100), Port::INPUT, module, PGVCF::INPUT));
addInput(Port::create<PJ301MPort>(Vec(30, 140), Port::INPUT, module, PGVCF::CUTOFF));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(70, 100), module, PGVCF::FREQUENCY_PARAM, 0.0f, 1.0f, 0.5f));
addParam(ParamWidget::create<RoundBlackKnob>(Vec(110, 100), module, PGVCF::RESONANCE_PARAM, 0.0f, 0.99f, 0.5f));
addOutput(Port::create<PJ301MPort>(Vec(150, 100), Port::OUTPUT, module, PGVCF::LOWPASS_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(150, 140), Port::OUTPUT, module, PGVCF::BANDPASS_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(150, 180), Port::OUTPUT, module, PGVCF::HIGHPASS_OUTPUT));
}
};

} // namespace rack_plugin_PG_Instruments

using namespace rack_plugin_PG_Instruments;

RACK_PLUGIN_MODEL_INIT(PG_Instruments, PGVCF) {
Model *modelPGVCF = Model::create<PGVCF, PGVCFWidget>("PG-Instruments", "PGVCF", "PG VCF", ATTENUATOR_TAG);
return modelPGVCF;
}

+ 32
- 0
plugins/community/repos/PG-Instruments/src/Template.cpp View File

@@ -0,0 +1,32 @@
#include "Template.hpp"

RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGSEQ3);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGPanner);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGQuadPanner);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGOctPanner);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGVCF);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGStereoVCF);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGEcho);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGStereoEcho);
RACK_PLUGIN_MODEL_DECLARE(PG_Instruments, PGStereoPingPongEcho);

RACK_PLUGIN_INIT(PG_Instruments) {
RACK_PLUGIN_INIT_ID();

RACK_PLUGIN_INIT_WEBSITE("https://github.com/imekon/PG-Instruments");
RACK_PLUGIN_INIT_MANUAL("https://github.com/imekon/PG-Instruments/README.md");

// Add all Models defined throughout the plugin
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGSEQ3);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGPanner);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGQuadPanner);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGOctPanner);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGVCF);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGStereoVCF);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGEcho);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGStereoEcho);
RACK_PLUGIN_MODEL_ADD(PG_Instruments, PGStereoPingPongEcho);

// Any other plugin initialization may go here.
// As an alternative, consider lazy-loading assets and lookup tables when your module is created to reduce startup times of Rack.
}

+ 6
- 0
plugins/community/repos/PG-Instruments/src/Template.hpp View File

@@ -0,0 +1,6 @@
#include "rack.hpp"

using namespace rack;

// Forward-declare the Plugin, defined in Template.cpp
#define plugin "PG-Instruments"

+ 3
- 0
plugins/community/repos/Southpole/.gitmodules View File

@@ -0,0 +1,3 @@
[submodule "eurorack"]
path = eurorack
url = https://github.com/AndrewBelt/eurorack

+ 29
- 0
plugins/community/repos/Southpole/.travis.yml View File

@@ -0,0 +1,29 @@
language: cpp
cache:
directories:
- /tmp/Rack
before_cache:
- rm -fr /tmp/Rack/plugins/sdr
osx_image: xcode9.2
os:
- linux
- osx
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
install:
- if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get install git libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libgl1-mesa-dev libglu1-mesa-dev zlib1g-dev libasound2-dev libgtk2.0-dev unzip cmake3 libudev-dev; fi
before_script:
- git clone https://github.com/VCVRack/Rack.git /tmp/Rack || cd /tmp/Rack && git pull
- cd /tmp/Rack
- git submodule update --init --recursive
- if [ $TRAVIS_OS_NAME == linux ]; then export CC=gcc-7 && CXX=g++-7; fi
- make -j 8 dep > /dev/null
- make -j 8
- rm -rf /tmp/Rack/plugins/sdr || true
- cp -r $TRAVIS_BUILD_DIR /tmp/Rack/plugins/sdr
script:
- cd /tmp/Rack/plugins/sdr && VERSION=0.0.0 make dist

+ 137
- 0
plugins/community/repos/Southpole/CHANGELOG.txt View File

@@ -0,0 +1,137 @@


-- 0.5.4 ----

- Cornrows X
- As complete implementation of Braids / macro oscillator as possible
- so far not available features in the Audible Instruments version
have been activated and broken out as controls:
AD-envelope, bit crusher, scale quantizer, tuning
- or implemented as menu options: AUTO, VCA, FLAT, Paques
- old Cornrows has been deactivated for now at the cost of 2HP more (lmk if you want it back)
- i know Plaits is cooler now but this will get you quite far as stand-alone synth voice

- Ftagn: No Filter
- transgressive module for your nihilistic no-input patches at the noise show
- stereo - neither left nor right channel do anything at all
- patch example:
- pair with timing module set to 4'33 and reverb for a modular rendition of John Cage's 4'33
- (somebody had to do it)

- Pulse: Pulse Generator
- inspired by standard lab pulse generators (minus offset function)
- main purpose is to convert triggers to gates
- clock through sends 1ms triggers - clean your clock
- range selectable (1s / 10s)
- when clocked, duration/delay are quantized to "musically relevant" intervals

- Rakes: Stereo Resonator
- inspired by the Ableton Resonator effect
- 6 stereo comb filters
- V/OCT inputs quantized to SEMI tones or FREE
- FINE detuning works with opposite sign on L/R channels
- small values produce Haas effect (stereo widening)
- individual GAINs
- best used together with a chord generator patched into the V/OCT inputs
- looking forward to your dub techno tracks

- Snake
- implemented persistency for buss
- cleaned up logic

- Etagère
- selectable white panel (to better match cf modular mixer modules)

- SNS
- New generative modes:
- Fibonacci, Random, Linear
- change Fill to trigger generation of new pattern
- Turing Machine style output mode
- steps are interpreted as bits and converted to stepped voltage at the output.


-- 0.5.3 ----

- Parasites skins + libary:
- access to Parasites firmwares by Matthias Puech https://mqtthiqs.github.io/parasites/
- based on Aepelzens Parasites / (P)arable Instruments
- indicated by more Lovecraftian font and logo to differentiate from original firmwares
- Smoke (Clouds): Smoke, Espectro, Ritardo, Camilla, Oliverb, Resonestor
- Splash: Splash, Two Bumps, Two Drunks

- Mutable Instruments skins
- rename Humo back to Smoke
(don't want too many new names - should be ok to use original names for alternative modes / parasites)
- skins for all modes
- add back VU meter

- Annuli
- add skin for Disastrous Peace easter egg mode

- Riemann
- chord generator based on Neo-Riemannian Tonnetz analysis
- inspired by NE Tonnetz Sequent, Navichord app, o_C Automatonnetz
(and my incapability to compose / improvise diatonic music)
- Traversal via perfect fifth (P5/V) per volt and major triad per volt (M3/V) inputs
- Major/minor, Augmented/diminished chord groups
- 3 - 7 parts per chord (from standard triads to thirteenth chords)
- Parts mostly display for now, outputs after last part output root note
- Switch for suspensions (sus4) close to fifth-axis
- Transpose rotates within octave
- Outputs in V/oct
- Tonic output (T) for tonic drone
- Voicing inc/decreases octaves to the right/left sequentially by part
(small settings to the right give chord inversions)

- Etagère
- swap LP/HP position
- update cosmetics

- Deux Etagères
- convenience stereo version of Etagère

- Gnome
- improved internal gain staging and mixing behavior
- crossfading between oscillator and sub-oscillator
- improved range for PWM behavior
- VCF resonance gain-compensation
- updated skin cosmetics (closer to original color scheme...)

- SNS
- CLK/RST thru added for easier chaining of multiple SNS

- Snake
- introduce 16 internal busses 0-F with 10 lines per buss
- cosmetics, separate 2x5 lines
- fix muting on unplugging / buss change

- Falls
- Attenumixverter, inspired by Fonitronik Cascade
- empty inputs provide offset voltages
- empty outputs mix into output below

- Aux
- 2 stereo effect send/return loops
- with cross feedback (same or swapped stereo channels)
- mute button for input (to listen to those sweet reverb tails)
- bypass button for fx (in case you went wild with the feedback pots)

-- 0.5.2 ----

- Gnome: complete synth voice based on Fundamental modules

- Snake: multicore (experimental!) introduces a small delay!
if in doubt check the difference signal of in and output.
a particular port is locked by the instance where the cable gets plugged first (green light).
this signal is then available at all other instances (red light).

- Humo (standard Clouds): new skins for the alternate modes: Espectro, Ritardo, Camilla

- Sssh: 4 copies of the noise/S+H section from Kinks, normalized

- Fuse: fixes to gate/trigger behavior

- Blank panels: 1HP, 2HP, 4HP, 8HP, 16HP, 42HP - nothing special for now but watch this space

-- 0.5.1.1 ----

+ 20
- 0
plugins/community/repos/Southpole/LICENSE.md View File

@@ -0,0 +1,20 @@
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.

See http://creativecommons.org/licenses/MIT/ for more information.

+ 74
- 0
plugins/community/repos/Southpole/Makefile View File

@@ -0,0 +1,74 @@
SLUG = Southpole
VERSION = 0.6.0

FLAGS += \
-DTEST \
-I./eurorack \
-Wno-unused-local-typedefs

# SOURCES += $(wildcard src/*.cpp)
SOURCES += src/Southpole.cpp
SOURCES += src/DSPUtilities.cpp
SOURCES += src/VAStateVariableFilter.cpp

SOURCES += src/Abr.cpp
SOURCES += src/Balaclava.cpp
SOURCES += src/Bandana.cpp
SOURCES += src/Blanks.cpp
SOURCES += src/Falls.cpp
SOURCES += src/Ftagn.cpp
SOURCES += src/Aux_.cpp
SOURCES += src/But.cpp
#SOURCES += src/Bytes.cpp
SOURCES += src/DeuxEtageres.cpp
SOURCES += src/Etagere.cpp
SOURCES += src/Fuse.cpp
SOURCES += src/Gnome.cpp
SOURCES += src/Piste.cpp
SOURCES += src/Pulse.cpp
SOURCES += src/Rakes.cpp
SOURCES += src/Riemann.cpp
SOURCES += src/Snake.cpp
SOURCES += src/Sns.cpp
SOURCES += src/Sssh.cpp
SOURCES += src/Wriggle.cpp

SOURCES += src/Splash.cpp
SOURCES += eurorack/stmlib/utils/random.cc
SOURCES += eurorack/stmlib/dsp/atan.cc
SOURCES += eurorack/stmlib/dsp/units.cc
SOURCES += eurorack/tides/generator.cc
SOURCES += eurorack/tides/resources.cc

#SOURCES += src/Cornrows.cpp
SOURCES += src/CornrowsX.cpp
SOURCES += eurorack/braids/macro_oscillator.cc
SOURCES += eurorack/braids/analog_oscillator.cc
SOURCES += eurorack/braids/digital_oscillator.cc
SOURCES += eurorack/braids/resources.cc
SOURCES += eurorack/braids/quantizer.cc

SOURCES += src/Annuli.cpp
SOURCES += eurorack/rings/dsp/fm_voice.cc
SOURCES += eurorack/rings/dsp/string_synth_part.cc
SOURCES += eurorack/rings/dsp/string.cc
SOURCES += eurorack/rings/dsp/resonator.cc
SOURCES += eurorack/rings/resources.cc
SOURCES += eurorack/rings/dsp/part.cc

SOURCES += src/Smoke.cpp
SOURCES += eurorack/clouds/dsp/correlator.cc
SOURCES += eurorack/clouds/dsp/granular_processor.cc
SOURCES += eurorack/clouds/dsp/mu_law.cc
SOURCES += eurorack/clouds/dsp/pvoc/frame_transformation.cc
SOURCES += eurorack/clouds/dsp/pvoc/phase_vocoder.cc
SOURCES += eurorack/clouds/dsp/pvoc/stft.cc
SOURCES += eurorack/clouds/resources.cc

# Add files to the ZIP package when running `make dist`
# The compiled plugin is automatically added.
DISTRIBUTABLES += $(wildcard LICENSE*) res

RACK_DIR ?= ../..
include $(RACK_DIR)/plugin.mk


+ 205
- 0
plugins/community/repos/Southpole/README.md View File

@@ -0,0 +1,205 @@
# Southpole VCV Rack Modules 0.6.0

![All](./doc/sp-main-0_6_0.png)


A personal collection of modules I've always wanted for my workflow.

- Some of the modules are simply reskins of the existing Audible Instruments VCV Rack versions of Mutable Instruments eurorack modules.
- The skins are inspired by hardware micro versions of various MI modules.
- Some skins are additonal modes of firmware with appropriate labels for knobs and ports to make usage easier.
- Some skins do not exist yet in hardware.
- Some modules did not yet exist in VCV Rack versions.
- Some modules are new.

- [Mutable Instruments](https://mutable-instruments.net/)
- [Audible Instruments](https://github.com/VCVRack/AudibleInstruments/)

- Extra "Southpole Parasites" for parasites firmware based modules are on a separate branch


## Building

Compile Rack from source, following the instructions at https://github.com/VCVRack/Rack.

After checking out in the `plugins/` directory, get external dependencies with

git submodule update --init --recursive

There is a build script

./scripts/make_all.sh

WARNING: Overwrites existing Southpole directories from eg. a regular download, inspect script before use

## Modules copied from Audible Instruments

### Cornrows X - Macro Oscillator

- Based on [Braids](https://mutable-instruments.net/modules/braids), [Manual](https://mutable-instruments.net/modules/braids/manual/)

- Extended as follows
- As complete implementation of Braids / macro oscillator as possible
- so far not available features in the Audible Instruments version have been activated and broken out as controls: AD-envelope, bit crusher, scale quantizer, tuning
- Implemented as menu options: AUTO, VCA, FLAT, Paques
### Splash - Tidal Modulator / Lambs - Wavetable Oscillator

- Based on [Tides](https://mutable-instruments.net/modules/tides), [Manual](https://mutable-instruments.net/modules/tides/manual/)

- Based on [Sheep](https://mutable-instruments.net/modules/tides/firmware/) (Tides alternative firmware)

### Smoke - Texture Synthesizer
Based on [Clouds](https://mutable-instruments.net/modules/clouds), [Manual](https://mutable-instruments.net/modules/clouds/manual/)

- Smoke, extra skins for additional modes: Espectro, Ritardo, Camilla

### Annuli - Resonator
- Based on [Rings](https://mutable-instruments.net/modules/rings), [Manual](https://mutable-instruments.net/modules/rings/manual/)
- extra skin for Disastrous Peace mode

### Bandana - Quad VC-polarizer
- Based on [Blinds](https://mutable-instruments.net/modules/blinds), [Manual](https://mutable-instruments.net/modules/blinds/manual/)

### Balaclava - Quad VCA
- Based on [Veils](https://mutable-instruments.net/modules/veils), [Manual](https://mutable-instruments.net/modules/veils/manual/)

## New modules

### Aux - 2 stereo effect send/return loops

- with cross feedback (same or swapped stereo channels)
- mute button for input (to listen to those sweet reverb tails)
- bypass button for fx (in case you went wild with the feedback pots)

### Abr - Manual A/B Switch

- Inverse of But, either input A or B goes to output
- Sums of inputs set to A or B provided

### Blanks

- Nothing special right now, but watch this space
- 42HP useful if you want to recreate a 84HP row common in hardware

### But - Manual A/B Buss

- Inspired by [DJ Steevio's modular method](https://www.youtube.com/watch?v=x6hJa2lRRgM)
- Either input A or B go to the output and the A/B busses
- Two summed identical outputs for A and B buss are provided.

### Deux Etagères

- convenience stereo version of Etagère

### Etagère - EQ Filter

- Inspired by [Shelves](https://mutable-instruments.net/modules/shelves), [Manual](https://mutable-instruments.net/modules/shelves/manual/)

- Does not fully reproduce all characteristics of Shelves!
- Biquad filters copied from RJModules Filters

### Falls - Attenumixer

- Attenumixverter, inspired by Fonitronik Cascade
- empty inputs provide offset voltages
- empty outputs mix into output below
- Range switch +/-1 or +/-10

### Ftagn: No Filter

- transgressive module for your nihilistic no-input patches at the noise show
- stereo - neither left nor right channel do anything at all

### Fuse - Synchronized one-shot triggers

- Intended to build a "queue next pattern" system like on groove boxes / drum machines
- Helps fire synchronized events in 4/4 based music if you can't count like me
- Can be used to launch triggers (or beat-long gates) ONCE at a given beat on a 16 step counter
- Arm triggers/gates manually or via inputs
- For example, clock with bars, trigger to mute the kick for exactly 4 bars, trigger 4 bar later to drop

### Piste - Drum Processor

- One-stop module to turn oscillators into drums / percussion, or process existing drums to taste
- Inspired by [Bastl Skis](http://www.bastl-instruments.com/modular/skis/)
- Input gain + eq + overdrive because sometimes basic processing is all that's needed
- 2 independent decay envelopes (eg. body and accent) the sum of which is applied to input signal via internal VCA
- 2nd envelope is scaled to 1st
- Triggers are scalable
- Mute input / trigger veto intended for choke groups (eg. open hihat mutes closed hihat)

### Pulse: Pulse Generator

- main purpose is to convert triggers to gates
- clock through sends 1ms triggers - clean your clock
- range selectable (1s / 10s)
- when clocked, duration/delay are quantized to "musically relevant" intervals

### Rakes: Stereo Resonator

- inspired by the Ableton Resonator effect
- 6 stereo comb filters
- V/OCT inputs quantized to SEMI tones or FREE
- FINE detuning works with opposite sign on L/R channels
- small values produce Haas effect (stereo widening)
- individual GAINs
- best used together with a chord generator patched into the V/OCT inputs

### Riemann

- chord generator based on Neo-Riemannian Tonnetz analysis
- inspired by NE Tonnetz Sequent, Navichord app, o_C Automatonnetz (and my incapability to compose / improvise diatonic music)
- Traversal via perfect fifth (P5/V) per volt and major triad per volt (M3/V) inputs
- Major/minor, Augmented/diminished chord groups
- 3 - 7 parts per chord (from standard triads to thirteenth chords)
- Parts mostly display for now, outputs after last part output root note
- Switch for suspensions (sus4) close to fifth-axis
- Transpose rotates within octave
- Outputs in V/oct
- Tonic output (T) for tonic drone
- Voicing inc/decreases octaves to the right/left sequentially by part (small settings to the right give chord inversions)

### SNS - Euclidean Sequencer

- I know. but this one looks cool and has a few additional features:
- Up to 32 steps
- Accents: nested euclidean sequence on main sequence
- Rotate sequence and accents
- Up to 32 pads (silent steps)
- All inputs scaled to each other in what i think is a sensible way - great for LFO modulation of inputs
- CLK/RST thru for easy chaining
- Turing mode to translate pattern into CV a la Turing Machine

### Snake

- 16 internal busses 0-F with 10 lines per buss to bridge large distances or generally tidy up the patch
- First connection to input locks input (green led - red on all other instances)
- Works best with slow signal. In case of parallel processin check difference between original and bussed signal by means of inverting summer and scope

### Sssh - Noise / S+H

- 4x noise / S+H - inspired by the lowest section from [Kinks](https://mutable-instruments.net/modules/kinks/)
- Triggers are normalled from top to bottom
- Inputs are normalled to noise
- Noises are four calls to generator (not a copy)

### Wriggle - Spring Model

- Follows input with a given stiffness and damping of the spring
- Mass normalized to one
- Output can be scaled/offset
- Designed to implement "Woggle CV" (works best at LFO rates)

### Gnome - Synth Voice

- An all-in-one module inspired by [MFB Nanozwerg](http://mfberlin.de/en/modules/nanozwerg_pro_e/)
- Because sometimes you just need the basics and want to get started fast
- The submodules are mostly copied from the Fundamental modules with some omissions and additions:
- VCO: analog part of Fundamental VCO, morphing
- Sub-OSC 1/2 Oct / Noise
- LFO from Fundamental LFO, morphing + S+H
- ADSR from Fundamental ADSR
- Biquad VCF with resonance gain-compensation


BIN
plugins/community/repos/Southpole/doc/sp-all-2018-01-22.png View File

Before After
Width: 781  |  Height: 384  |  Size: 153KB

BIN
plugins/community/repos/Southpole/doc/sp-all-2018-01-30.png View File

Before After
Width: 2044  |  Height: 764  |  Size: 549KB

BIN
plugins/community/repos/Southpole/doc/sp-all-2018-02-06.png View File

Before After
Width: 1262  |  Height: 763  |  Size: 309KB

BIN
plugins/community/repos/Southpole/doc/sp-all-2018-02-23.png View File

Before After
Width: 1591  |  Height: 763  |  Size: 546KB

BIN
plugins/community/repos/Southpole/doc/sp-all-2018-03-15.png View File

Before After
Width: 1351  |  Height: 1143  |  Size: 642KB

BIN
plugins/community/repos/Southpole/doc/sp-main-0_6_0.png View File

Before After
Width: 1351  |  Height: 761  |  Size: 492KB

+ 46
- 0
plugins/community/repos/Southpole/eurorack/README.md View File

@@ -0,0 +1,46 @@
Mutable Instruments' Eurorack Modules.

* [Blinds](http://mutable-instruments.net/modules/blinds): Quad VC-polarizer.
* [Braids](http://mutable-instruments.net/modules/braids): Macro-oscillator.
* [Branches](http://mutable-instruments.net/modules/branches): Dual Bernoulli gate.
* [Clouds](http://mutable-instruments.net/modules/clouds): Texture synthesizer.
* [Ears](http://mutable-instruments.net/modules/ears): Contact microphone.
* [Edges](http://mutable-instruments.net/modules/edges): Quad chiptune digital oscillator.
* [Elements](http://mutable-instruments.net/modules/elements): Modal synthesizer.
* [Frames](http://mutable-instruments.net/modules/frames): Keyframer/mixer.
* [Grids](http://mutable-instruments.net/modules/grids): Topographic drum sequencer.
* [Kinks](http://mutable-instruments.net/modules/kinks): Utility module - rectifier, analog logic, S&H, noise.
* [Links](http://mutable-instruments.net/modules/links): Utility module - buffer, mixer.
* [Peaks](http://mutable-instruments.net/modules/peaks): Dual trigger converter.
* [Rings](http://mutable-instruments.net/modules/rings): Resonator.
* [Ripples](http://mutable-instruments.net/modules/ripples): Liquid 2-pole BP, 2-pole LP and 4-pole LP filter.
* [Shades](http://mutable-instruments.net/modules/shades): Triple attenuverter.
* [Shelves](http://mutable-instruments.net/modules/shelves): EQ filter.
* [Streams](http://mutable-instruments.net/modules/streams): Dual dynamics gate.
* [Tides](http://mutable-instruments.net/modules/tides): Tidal modulator.
* [Veils](http://mutable-instruments.net/modules/veils): Quad VCA.
* [Volts](http://mutable-instruments.net/modules/volts): +5V power module.
* [Warps](http://mutable-instruments.net/modules/warps): Meta-modulator.
* [Yarns](http://mutable-instruments.net/modules/yarns): MIDI interface.

License
=======

Code (AVR projects): GPL3.0.

Code (STM32F projects): MIT license.

Hardware: cc-by-sa-3.0

By: Olivier Gillet (olivier@mutable-instruments.net)

Guidelines for derivative works
===============================

**Mutable Instruments is a registered trademark.**

The name "Mutable Instruments" should not be used on any of the derivative works you create from these files.

We do not recommend you to keep the original name of the Mutable Instruments module for your derivative works.

For example, your 5U adaptation of Mutable Instruments Clouds can be called "Foobar Modular - Particle Generator".

+ 0
- 0
plugins/community/repos/Southpole/eurorack/__init__.py View File


+ 22
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/LICENSE View File

@@ -0,0 +1,22 @@
Except when noted otherwise, all code is copyright Olivier Gillet and is
released under the MIT License with the following notice:

Copyright 2013 Olivier Gillet.

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.

+ 2
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/README.md View File

@@ -0,0 +1,2 @@
FSK Bootloaders for AVR.
See LICENSE for licensing information.

+ 0
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/__init__.py View File


+ 120
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/audio_stream_writer.py View File

@@ -0,0 +1,120 @@
#!/usr/bin/python2.5
#
# Copyright 2013 Olivier Gillet.
#
# Author: Olivier Gillet (ol.gillet@gmail.com)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
#
# Streaming .wav file writer.

import copy
import numpy
import struct

_DATA_CHUNK_HEADER_SIZE = 8
_FMT_CHUNK_DATA_SIZE = 16
_FMT_CHUNK_HEADER_SIZE = 8
_RIFF_FORMAT_DESCRIPTOR_SIZE = 4

_UNSIGNED_CHAR_TO_FLOAT_SCALE = 128.0
_FLOAT_TO_UNSIGNED_CHAR_SCALE = 127.0


class AudioStreamWriter(object):
def __init__(self, file_name, sample_rate, bitdepth=16, num_channels=1):
self._sr = sample_rate
self._file_name = file_name
self._sample_rate = sample_rate
self._bitdepth = bitdepth
self._num_channels = num_channels
self._f = file(file_name, 'wb')
self._num_bytes = 0
self._write_header(False)
@staticmethod
def quantize(signal, bitdepth):
"""Convert an array of float to an array of integers.

Args:
signal: numpy array. source signal.
bitdepth: int. size of the integer in bits.

Returns:
array of integers.
"""
norm = numpy.abs(signal).max()

# Normalization or clipping.
scaled_signal = copy.copy(signal)
if norm > 1.0:
logging.warning('Some samples will be clipped.')
# Clip samples above 1 and below -1.
scaled_signal[scaled_signal < -1] = -1
scaled_signal[scaled_signal > 1] = 1

if bitdepth == 8:
scaled_signal = (scaled_signal + 1.0) * _FLOAT_TO_UNSIGNED_CHAR_SCALE
scaled_signal = numpy.array(scaled_signal, dtype=numpy.uint8)
else:
scale = (1 << (bitdepth - 1)) - 1
# pylint: disable-msg=C6407
scaled_signal = scaled_signal * scale
scaled_signal = numpy.array(scaled_signal, dtype='i%d' % (bitdepth / 8))

return scaled_signal
def _write_header(self, restore_position):
f = self._f
total_size = _RIFF_FORMAT_DESCRIPTOR_SIZE
total_size += _FMT_CHUNK_HEADER_SIZE + _FMT_CHUNK_DATA_SIZE
total_size += _DATA_CHUNK_HEADER_SIZE + self._num_bytes
current_position = f.tell()
f.seek(0)
f.write('RIFF')
f.write(struct.pack('<L', total_size))
f.write('WAVEfmt ')
bitrate = self._sample_rate * self._num_channels * (self._bitdepth / 8)
bits_per_sample = self._num_channels * (self._bitdepth / 8)
f.write(struct.pack(
'<LHHLLHH',
16,
1,
self._num_channels,
self._sample_rate,
bitrate,
bits_per_sample,
self._bitdepth))
f.write('data')
f.write(struct.pack('<L', self._num_bytes))
if restore_position:
f.seek(current_position)
def append(self, signal):
if signal.dtype == numpy.uint8 or signal.dtype == numpy.int16:
assert self._bitdepth == signal.dtype.itemsize * 8
scaled_signal = signal
else:
scaled_signal = self.quantize(signal, self._bitdepth)

if scaled_signal.ndim == 1:
assert self._num_channels == 1
else:
assert self._num_channels == scaled_signal.shape[1]
scaled_signal.tofile(self._f)
self._num_bytes += scaled_signal.nbytes
self._write_header(True)

+ 101
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/crc32.h View File

@@ -0,0 +1,101 @@
/*-
* COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or
* code or tables extracted from it, as desired without restriction.
*
* First, the polynomial itself and its table of feedback terms. The
* polynomial is
* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
*
* Note that we take it "backwards" and put the highest-order term in
* the lowest-order bit. The X^32 term is "implied"; the LSB is the
* X^31 term, etc. The X^0 term (usually shown as "+1") results in
* the MSB being 1
*
* Note that the usual hardware shift register implementation, which
* is what we're using (we're merely optimizing it by doing eight-bit
* chunks at a time) shifts bits into the lowest-order term. In our
* implementation, that means shifting towards the right. Why do we
* do it this way? Because the calculated CRC must be transmitted in
* order from highest-order term to lowest-order term. UARTs transmit
* characters in order from LSB to MSB. By storing the CRC this way
* we hand it to the UART in the order low-byte to high-byte; the UART
* sends each low-bit to hight-bit; and the result is transmission bit
* by bit from highest- to lowest-order term without requiring any bit
* shuffling on our part. Reception works similarly
*
* The feedback terms table consists of 256, 32-bit entries. Notes
*
* The table can be generated at runtime if desired; code to do so
* is shown later. It might not be obvious, but the feedback
* terms simply represent the results of eight shift/xor opera
* tions for all combinations of data and CRC register values
*
* The values must be right-shifted by eight bits by the "updcrc
* logic; the shift must be unsigned (bring in zeroes). On some
* hardware you could probably optimize the shift in assembler by
* using byte-swap instructions
* polynomial $edb88320
*
*
* CRC32 code derived from work by Gary S. Brown.
*/

#include <avr/pgmspace.h>

static prog_uint32_t crc32_tab[] PROGMEM = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
};

uint32_t crc32(uint32_t crc, const void *buf, uint32_t size) {
const uint8_t *p;

p = static_cast<const uint8_t*>(buf);
crc = crc ^ ~0UL;

while (size--)
crc = pgm_read_dword(crc32_tab + ((crc ^ *p++) & 0xFF)) ^ (crc >> 8);

return crc ^ ~0UL;
}

+ 0
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/__init__.py View File


+ 55
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/decoder.cc View File

@@ -0,0 +1,55 @@
// Copyright 2013 Olivier Gillet.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//
// Simpler/flatter version of the STM FSK bootloader.

#include "avr_audio_bootloader/fsk/decoder.h"

namespace avr_audio_bootloader {

/* static */
bool Decoder::previous_sample_;

/* static */
uint16_t Decoder::duration_;

/* static */
uint8_t Decoder::swallow_;

/* static */
DecoderState Decoder::state_;

/* static */
uint8_t Decoder::expected_symbols_;

/* static */
uint8_t Decoder::preamble_remaining_size_;

/* static */
uint16_t Decoder::sync_blank_size_;

/* static */
uint8_t Decoder::symbol_count_;

/* static */
uint8_t* Decoder::packet_;

/* static */
uint16_t Decoder::packet_size_;

/* static */
uint16_t Decoder::packet_count_;

} // namespace avr_audio_bootloader

+ 180
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/decoder.h View File

@@ -0,0 +1,180 @@
// Copyright 2013 Olivier Gillet.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//
// AVR FSK bootloader - inspired by its STM32F counterpart

#ifndef AVR_AUDIO_BOOTLOADER_FSK_DECODER_H_
#define AVR_AUDIO_BOOTLOADER_FSK_DECODER_H_

#include <avr/pgmspace.h>

namespace avr_audio_bootloader {

const uint16_t kPause = 16;
const uint16_t kOne = 8;
const uint16_t kZero = 4;
const uint16_t kOneZeroThreshold = (kOne + kZero) >> 1;
const uint16_t kPauseOneThreshold = (kPause + kOne) >> 1;

const uint16_t kMaxSyncDuration = 500; // Symbols
const uint8_t kPreambleSize = 32;
const uint16_t kPacketSize = SPM_PAGESIZE;

enum DecoderState {
DECODER_STATE_SYNCING,
DECODER_STATE_DECODING_PACKET,
DECODER_STATE_PACKET_RECEIVED,
DECODER_STATE_ERROR_SYNC,
DECODER_STATE_END_OF_TRANSMISSION
};

class Decoder {
public:
Decoder() { }
~Decoder() { }
static inline void Init() {
packet_count_ = 0;
}
static inline void Sync() {
previous_sample_ = false;
duration_ = 0;
swallow_ = 4;

state_ = DECODER_STATE_SYNCING;
sync_blank_size_ = 0;
expected_symbols_ = 0xff;
preamble_remaining_size_ = kPreambleSize;
}

static inline void set_packet_destination(uint8_t* p) {
packet_ = p;
}

static inline DecoderState PushSample(bool sample) {
if (previous_sample_ == sample) {
++duration_;
} else {
previous_sample_ = sample;
uint8_t symbol = 0;
if (duration_ >= kPauseOneThreshold) {
symbol = 2;
} else if (duration_ >= kOneZeroThreshold) {
symbol = 1;
} else {
symbol = 0;
}
if (swallow_) {
symbol = 2;
--swallow_;
}
PushSymbol(symbol);
duration_ = 0;
}
return state_;
}

static inline void ParseSyncHeader(uint8_t symbol) {
if (!((1 << symbol) & expected_symbols_)) {
state_ = DECODER_STATE_ERROR_SYNC;
return;
}
switch (symbol) {
case 2:
++sync_blank_size_;
if (sync_blank_size_ >= kMaxSyncDuration && packet_count_) {
state_ = DECODER_STATE_END_OF_TRANSMISSION;
return;
}
expected_symbols_ = (1 << 0) | (1 << 1) | (1 << 2);
preamble_remaining_size_ = kPreambleSize;
break;
case 1:
expected_symbols_ = (1 << 0);
--preamble_remaining_size_;
break;
case 0:
expected_symbols_ = (1 << 1);
--preamble_remaining_size_;
break;
}
if (preamble_remaining_size_ == 0) {
state_ = DECODER_STATE_DECODING_PACKET;
packet_size_ = 0;
packet_[packet_size_] = 0;
symbol_count_ = 0;
}
}

static void PushSymbol(uint8_t symbol) {
switch (state_) {
case DECODER_STATE_SYNCING:
ParseSyncHeader(symbol);
break;
case DECODER_STATE_DECODING_PACKET:
if (symbol == 2) {
state_ = DECODER_STATE_ERROR_SYNC;
} else {
packet_[packet_size_] |= symbol;
++symbol_count_;
if (symbol_count_ == 8) {
symbol_count_ = 0;
++packet_size_;
if (packet_size_ == kPacketSize + 4) {
++packet_count_;
state_ = DECODER_STATE_PACKET_RECEIVED;
} else {
packet_[packet_size_] = 0;
}
} else {
packet_[packet_size_] <<= 1;
}
}
break;

case DECODER_STATE_PACKET_RECEIVED:
case DECODER_STATE_ERROR_SYNC:
case DECODER_STATE_END_OF_TRANSMISSION:
break;
}
}

private:
static bool previous_sample_;
static uint16_t duration_;
static uint8_t swallow_;
static DecoderState state_;
static uint8_t expected_symbols_;
static uint8_t preamble_remaining_size_;
static uint16_t sync_blank_size_;
static uint8_t symbol_count_;
static uint8_t* packet_;
static uint16_t packet_size_;
static uint16_t packet_count_;
};

} // namespace avr_audio_bootloader

#endif // AVR_AUDIO_BOOTLOADER_FSK_DECODER_H_

+ 199
- 0
plugins/community/repos/Southpole/eurorack/avr_audio_bootloader/fsk/encoder.py View File

@@ -0,0 +1,199 @@
#!/usr/bin/python2.5
#
# Copyright 2013 Olivier Gillet.
#
# Author: Olivier Gillet (ol.gillet@gmail.com)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
#
# Fsk encoder for converting firmware .bin files into .

import numpy
import optparse
import zlib

from avr_audio_bootloader import audio_stream_writer


class FskEncoder(object):
def __init__(
self,
sample_rate=48000,
pause_period=32,
one_period=8,
zero_period=4,
packet_size=256):
self._sr = sample_rate
self._pause_period = pause_period
self._one_period = one_period
self._zero_period = zero_period
self._packet_size = packet_size
self._state = 1
def _encode(self, symbol_stream):
symbol_stream = numpy.array(symbol_stream)
counts = [numpy.sum(symbol_stream == symbol) for symbol in range(3)]
durations = [self._zero_period, self._one_period, self._pause_period]
total_length = numpy.dot(durations, counts)
signal = numpy.zeros((total_length, 1))
state = self._state
index = 0
for symbol in symbol_stream:
d = durations[symbol]
signal[index:index + d] = state
state = -state
index += d
assert index == signal.shape[0]
self._state = state
return signal
def _code_blank(self, duration):
num_symbols = int(duration * self._sr / self._pause_period) + 1
return self._encode([2] * num_symbols)
def _code_packet(self, data):
assert len(data) <= self._packet_size
if len(data) != self._packet_size:
data = data + '\x00' * (self._packet_size - len(data))

crc = zlib.crc32(data) & 0xffffffff

data = map(ord, data)
crc_bytes = [crc >> 24, (crc >> 16) & 0xff, (crc >> 8) & 0xff, crc & 0xff]
bytes = [0x55] * 4 + data + crc_bytes
symbol_stream = []
for byte in bytes:
mask = 0x80
for _ in range(0, 8):
symbol_stream.append(1 if (byte & mask) else 0)
mask >>= 1
return self._encode(symbol_stream)

def code(self, data, page_size=1024, blank_duration=0.06):
yield numpy.zeros((1.0 * self._sr, 1)).ravel()
yield self._code_blank(1.0)
if len(data) % page_size != 0:
tail = page_size - (len(data) % page_size)
data += '\xff' * tail
offset = 0
remaining_bytes = len(data)
num_packets_written = 0
while remaining_bytes:
size = min(remaining_bytes, self._packet_size)
yield self._code_packet(data[offset:offset+size])
num_packets_written += 1
if num_packets_written == page_size / self._packet_size:
yield self._code_blank(blank_duration)
num_packets_written = 0
remaining_bytes -= size
offset += size
yield self._code_blank(1.0)


def main():
parser = optparse.OptionParser()
parser.add_option(
'-s',
'--sample_rate',
dest='sample_rate',
type='int',
default=40000,
help='Sample rate in Hz')
parser.add_option(
'-b',
'--pause_period',
dest='pause_period',
type='int',
default=64,
help='Period (in samples) of a blank symbol')
parser.add_option(
'-n',
'--one_period',
dest='one_period',
type='int',
default=16,
help='Period (in samples) of a one symbol')
parser.add_option(
'-z',
'--zero_period',
dest='zero_period',
type='int',
default=8,
help='Period (in samples) of a zero symbol')
parser.add_option(
'-p',
'--packet_size',
dest='packet_size',
type='int',
default=256,
help='Packet size in bytes')
parser.add_option(
'-g',
'--page_size',
dest='page_size',
type='int',
default=64,
help='Flash page size')
parser.add_option(
'-k',
'--blank_duration',
dest='blank_duration',
type='int',
default=8,
help='Duration of the blank between pages, in ms')
parser.add_option(
'-o',
'--output_file',
dest='output_file',
default=None,
help='Write output file to FILE',
metavar='FILE')
options, args = parser.parse_args()
data = file(args[0], 'rb').read()
if len(args) != 1:
logging.fatal('Specify one, and only one firmware .bin file!')
sys.exit(1)

output_file = options.output_file
if not output_file:
if '.bin' in args[0]:
output_file = args[0].replace('.bin', '.wav')
else:
output_file = args[0] + '.wav'

encoder = FskEncoder(
options.sample_rate,
options.pause_period,
options.one_period,
options.zero_period,
options.packet_size)
writer = audio_stream_writer.AudioStreamWriter(
output_file,
options.sample_rate,
16,
1)

blank_duration = options.blank_duration * 0.001
for block in encoder.code(data, options.page_size, blank_duration):
if len(block):
writer.append(block)


if __name__ == '__main__':
main()

+ 3
- 0
plugins/community/repos/Southpole/eurorack/avrlib/README View File

@@ -0,0 +1,3 @@
AVRil, a C++ template library for AVR microcontrollers.

This library is released under a GPL3.0 license.

+ 0
- 0
plugins/community/repos/Southpole/eurorack/avrlib/__init__.py View File


+ 36
- 0
plugins/community/repos/Southpole/eurorack/avrlib/adc.cc View File

@@ -0,0 +1,36 @@
// Copyright 2009 Olivier Gillet.
//
// Author: Olivier Gillet (ol.gillet@gmail.com)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//
// Interface to the onboard ADC converter, and analog multiplexer.

#include "avrlib/adc.h"

namespace avrlib {

/* static */
uint8_t Adc::admux_value_ = ADC_DEFAULT << 6;

/* static */
uint8_t AdcInputScanner::current_pin_;

/* static */
uint8_t AdcInputScanner::num_inputs_;

/* static */
int16_t AdcInputScanner::state_[8];

} // namespace avrlib

+ 199
- 0
plugins/community/repos/Southpole/eurorack/avrlib/adc.h View File

@@ -0,0 +1,199 @@
// Copyright 2009 Olivier Gillet.
//
// Author: Olivier Gillet (ol.gillet@gmail.com)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//
// Interface to the onboard ADC converter, and analog multiplexer.

#ifndef AVRLIB_ADC_H_
#define AVRLIB_ADC_H_

#include <avr/io.h>

#include "avrlib/avrlib.h"

namespace avrlib {

enum AdcReference {
ADC_EXTERNAL = 0,
ADC_DEFAULT = 1,
ADC_INTERNAL = 3
};

enum AdcAlignment {
ADC_RIGHT_ALIGNED = 0,
ADC_LEFT_ALIGNED = 1
};

IORegister(ADCSRA);

typedef BitInRegister<ADCSRARegister, ADSC> AdcConvert;
typedef BitInRegister<ADCSRARegister, ADEN> AdcEnabled;

class Adc {
public:
Adc() { }
static inline void Init() {
set_prescaler(7); // 128 -> 156kHz ADC clock.
Enable();
}
static inline void set_prescaler(uint8_t factor) {
ADCSRA = (ADCSRA & ~0x07) | (factor & 0x07);
}
static inline void set_reference(AdcReference reference) {
admux_value_ = (admux_value_ & 0x3f) | (reference << 6);
}
static inline void set_alignment(AdcAlignment alignment) {
admux_value_ &= 0xc0;
if (alignment == ADC_LEFT_ALIGNED) {
admux_value_ |= 0x20;
}
}
static inline void Enable() {
AdcEnabled::set();
}
static inline void Disable() {
AdcEnabled::clear();
}
static inline int16_t Read(uint8_t pin) {
StartConversion(pin);
Wait();
return ReadOut();
}
static inline void StartConversion(uint8_t pin) {
ADMUX = admux_value_ | (pin & 0x07);
AdcConvert::set();
}
static inline void Wait() {
while (AdcConvert::value());
}
static bool ready() {
return !AdcConvert::value();
}
static inline int16_t ReadOut() {
uint8_t low = ADCL;
uint8_t high = ADCH;
return (high << 8) | low;
}
// Only works when the ADC is left aligned
static inline uint8_t ReadOut8() {
return ADCH;
}

private:
static uint8_t admux_value_;
DISALLOW_COPY_AND_ASSIGN(Adc);
};

// Class that cycles through all the analog pins and read their value. Compared
// to Adc::Read(), this class is wait-free as it doesn't block on the
// ADSC bit value.
class AdcInputScanner {
public:
enum {
buffer_size = 0,
data_size = 16,
};
AdcInputScanner() { }
static void Init() {
Adc::Init();
current_pin_ = 0;
Adc::StartConversion(0);
}
static inline void set_num_inputs(uint8_t num_inputs) {
num_inputs_ = num_inputs;
}
static inline int16_t Read(uint8_t pin) {
return state_[pin];
}
static inline uint8_t Read8(uint8_t pin) {
return static_cast<uint16_t>(state_[pin]) >> 8;
}

static uint8_t current_pin() {
return current_pin_;
}
static int16_t Sync(uint8_t pin) {
Adc::Wait();
int16_t value = Adc::Read(pin);
Adc::StartConversion(current_pin_);
return value;
}
static void Scan() {
Adc::Wait();
state_[current_pin_] = Adc::ReadOut();
++current_pin_;
if (current_pin_ >= num_inputs_) {
current_pin_ = 0;
}
Adc::StartConversion(current_pin_);
}
private:
static uint8_t current_pin_;
static uint8_t num_inputs_;
static int16_t state_[8];
DISALLOW_COPY_AND_ASSIGN(AdcInputScanner);
};

template<int pin>
struct AnalogInput {
enum {
buffer_size = 0,
data_size = 16,
};
static void Init() { }
static int16_t Read() {
return Adc::Read(pin);
}
};

template<int id>
class MuxedAnalogInput {
public:
enum {
buffer_size = 0,
data_size = 16,
};
static void Init() { }
static int16_t Read() {
return Adc::Read(current_pin_);
}
static void set_pin(uint8_t current_pin) {
current_pin_ = current_pin;
}

private:
static uint8_t current_pin_;
};

/* static */
template<int id>
uint8_t MuxedAnalogInput<id>::current_pin_ = 0;

} // namespace avrlib

#endif // AVRLIB_ADC_H_

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save