From 76ceb02bd1e1f92197ce8e07c988bd0dd0929e4d Mon Sep 17 00:00:00 2001 From: AdamPorcineFudgepuppy <> Date: Sun, 14 Jul 2024 14:10:50 -0500 Subject: [PATCH] reverse y so positive is up visually. compoly mode labels --- src/ComputerscareComplexTransformer.cpp | 6 +++++- src/ComputerscareDebug.cpp | 2 +- src/ComputerscareNomplex.cpp | 16 ++++++++++------ src/complex/ComplexWidgets.hpp | 7 ++++--- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/ComputerscareComplexTransformer.cpp b/src/ComputerscareComplexTransformer.cpp index a0f8827..3e62ae6 100644 --- a/src/ComputerscareComplexTransformer.cpp +++ b/src/ComputerscareComplexTransformer.cpp @@ -65,10 +65,14 @@ struct ComputerscareComplexTransformer : ComputerscareComplexBase { getParamQuantity(COMPOLY_CHANNELS)->resetEnabled = false; configParam(MAIN_OUTPUT_MODE,0.f,3.f,0.f,"Main Output Mode"); - configParam(MAIN_INPUT_MODE,0.f,3.f,0.f); + configParam(MAIN_INPUT_MODE,0.f,3.f,0.f,"Main Input Mode"); configParam(MAIN_SCALE_INPUT_MODE,0.f,3.f,0.f); configParam(MAIN_OFFSET_INPUT_MODE,0.f,3.f,0.f); + configInput>(MAIN_INPUT, "Main"); + configInput>(MAIN_INPUT + 1, "Main"); + + configOutput>(COMPOLY_MAIN_OUT_A, "f(z)"); configOutput>(COMPOLY_MAIN_OUT_B, "f(z)"); diff --git a/src/ComputerscareDebug.cpp b/src/ComputerscareDebug.cpp index 9cbee4b..85d016a 100644 --- a/src/ComputerscareDebug.cpp +++ b/src/ComputerscareDebug.cpp @@ -417,7 +417,7 @@ struct DebugViz : TransparentWidget { for (int i = 0; i < 8; i++) { xx[i]=module->logLines[2*i]; - yy[i]=module->logLines[2*i+1]; + yy[i]=-module->logLines[2*i+1]; colorsToDraw[i]=module->logLines[2*i]/3; } } diff --git a/src/ComputerscareNomplex.cpp b/src/ComputerscareNomplex.cpp index 2e3838c..eede929 100644 --- a/src/ComputerscareNomplex.cpp +++ b/src/ComputerscareNomplex.cpp @@ -27,8 +27,10 @@ struct ComputerscareNomplexPumbers : ComputerscareComplexBase POLAR_IN_POLAR_OUT_MODE, COMPLEX_CONSTANT_A, COMPLEX_CONSTANT_B, + AB_MODE, COMPLEX_CONSTANT_U, COMPLEX_CONSTANT_V, + UV_MODE, NUM_PARAMS }; enum InputIds @@ -95,11 +97,13 @@ struct ComputerscareNomplexPumbers : ComputerscareComplexBase configParam(POLAR_IN_RECT_OUT_MODE,0.f,3.f,0.f,"Polar Output 1 Mode"); configParam(POLAR_IN_POLAR_OUT_MODE,0.f,3.f,0.f,"Polar Output 2 Mode"); - configParam(COMPLEX_CONSTANT_A,-10.f,10.f,0.f,"Complex A"); - configParam(COMPLEX_CONSTANT_B,-10.f,10.f,0.f,"Complex B"); + configParam(COMPLEX_CONSTANT_A,-10.f,10.f,0.f,"X Input Offset"); + configParam(COMPLEX_CONSTANT_B,-10.f,10.f,0.f,"Y Input Offset"); + configParam(AB_MODE,0.f,1.f,0.f,"AB Mode"); configParam(COMPLEX_CONSTANT_U,-10.f,10.f,0.f,"Complex U"); configParam(COMPLEX_CONSTANT_V,-10.f,10.f,0.f,"Complex V"); + configParam(UV_MODE,0.f,1.f,1.f,"UV Mode"); configOutput>(RECT_IN_RECT_OUT, "Rectangular Input"); configOutput>(RECT_IN_RECT_OUT + 1, "Rectangular Input"); @@ -180,8 +184,8 @@ struct ComputerscareNomplexPumbers : ComputerscareComplexBase int realInputCh=inputChannelIndices[0]; int imInputCh=inputChannelIndices[1]; - float x = inputs[REAL_IN].getVoltage(realInputCh)*realTrimKnob + realOffsetKnob + xyParamX; - float y = inputs[IMAGINARY_IN].getVoltage(imInputCh)*imaginaryTrimKnob + imaginaryOffsetKnob + xyParamY; + float x = inputs[REAL_IN].getVoltage(realInputCh)*realTrimKnob + xyParamX; + float y = inputs[IMAGINARY_IN].getVoltage(imInputCh)*imaginaryTrimKnob + xyParamY; float r = std::hypot(x,y); float arg = std::atan2(y,x); @@ -274,12 +278,12 @@ struct ComputerscareNomplexPumbersWidget : ModuleWidget addInput(createInput(Vec(leftInputX, rectInSectionY), module, ComputerscareNomplexPumbers::REAL_IN)); - addParam(createParam(Vec(leftInputX, rectInSectionY).plus(offsetRelPos), module, ComputerscareNomplexPumbers::REAL_INPUT_OFFSET)); + addParam(createParam(Vec(leftInputX, rectInSectionY).plus(offsetRelPos), module, ComputerscareNomplexPumbers::COMPLEX_CONSTANT_A)); addParam(createParam(Vec(leftInputX, rectInSectionY).plus(trimRelPos), module, ComputerscareNomplexPumbers::REAL_INPUT_TRIM)); addInput(createInput(Vec(rightInputX, rectInSectionY), module, ComputerscareNomplexPumbers::IMAGINARY_IN)); - addParam(createParam(Vec(rightInputX, rectInSectionY).plus(offsetRelPos), module, ComputerscareNomplexPumbers::IMAGINARY_INPUT_OFFSET)); + addParam(createParam(Vec(rightInputX, rectInSectionY).plus(offsetRelPos), module, ComputerscareNomplexPumbers::COMPLEX_CONSTANT_B)); addParam(createParam(Vec(rightInputX, rectInSectionY).plus(trimRelPos), module, ComputerscareNomplexPumbers::IMAGINARY_INPUT_TRIM)); cpx::CompolyPortsWidget* outRect1 = new cpx::CompolyPortsWidget(Vec(output1X, rectInSectionY+40),module,ComputerscareNomplexPumbers::RECT_IN_RECT_OUT,ComputerscareNomplexPumbers::RECT_IN_RECT_OUT_MODE); diff --git a/src/complex/ComplexWidgets.hpp b/src/complex/ComplexWidgets.hpp index d03981e..4b11ab5 100644 --- a/src/complex/ComplexWidgets.hpp +++ b/src/complex/ComplexWidgets.hpp @@ -81,8 +81,9 @@ namespace cpx { if(module) { float complexA = module->params[paramA].getValue(); float complexB = module->params[paramA+1].getValue(); + int complexMode = module->params[paramA+2].getValue(); - origComplexValue = Vec(complexA,complexB); + origComplexValue = Vec(complexA,-complexB); origComplexLength=origComplexValue.norm(); if(origComplexLength < 0.1) { @@ -115,10 +116,10 @@ namespace cpx { newZ = pixelsDiff.div(originalMagnituteRadiusPixels).mult(origComplexLength); module->params[paramA].setValue(newZ.x); - module->params[paramA+1].setValue(newZ.y); + module->params[paramA+1].setValue(-newZ.y); } else { if(module) { - newZ = Vec(module->params[paramA].getValue(),module->params[paramA+1].getValue()); + newZ = Vec(module->params[paramA].getValue(),-module->params[paramA+1].getValue()); } else { newZ = Vec(-10 + 20* random::uniform(),-10 + 20* random::uniform()); }