diff --git a/Makefile b/Makefile index c0423d9..c677bc0 100644 --- a/Makefile +++ b/Makefile @@ -61,5 +61,17 @@ $(duktape): # $(SHA256) 6.13.0.tar.gz 183beeb3b720bfeab6cc8af12fbec0bf9fef2727684ac79289fd12d0dfee728b # cd dep && $(UNTAR) ../6.13.0.tar.gz +# # LLVM +# llvm := dep/lib/libllvm.a +# DEPS += $(llvm) +# $(llvm): +# $(WGET) "https://github.com/llvm/llvm-project/releases/download/llvmorg-8.0.1/llvm-8.0.1.src.tar.xz" +# $(SHA256) llvm-8.0.1.src.tar.xz 44787a6d02f7140f145e2250d56c9f849334e11f9ae379827510ed72f12b75e7 +# cd dep && $(UNTAR) ../llvm-8.0.1.src.tar.xz +# cd dep/llvm-8.0.1.src && mkdir -p build +# cd dep/llvm-8.0.1.src/build && $(CMAKE) .. +# cd dep/llvm-8.0.1.src/build && $(MAKE) +# cd dep/llvm-8.0.1.src/build && $(MAKE) install + include $(RACK_DIR)/plugin.mk diff --git a/src/Prototype.cpp b/src/Prototype.cpp index 59f01cb..dc727a6 100644 --- a/src/Prototype.cpp +++ b/src/Prototype.cpp @@ -83,6 +83,8 @@ struct Prototype : Module { block.knobs[i] = params[KNOB_PARAMS + i].getValue(); for (int i = 0; i < NUM_ROWS; i++) block.switches[i] = params[SWITCH_PARAMS + i].getValue() > 0.f; + float oldKnobs[NUM_ROWS]; + std::memcpy(oldKnobs, block.knobs, sizeof(block.knobs)); // Run ScriptEngine's process function { @@ -97,6 +99,11 @@ struct Prototype : Module { } } + // Params + for (int i = 0; i < NUM_ROWS; i++) { + if (block.knobs[i] != oldKnobs[i]) + params[KNOB_PARAMS + i].setValue(block.knobs[i]); + } // Lights for (int i = 0; i < NUM_ROWS; i++) for (int c = 0; c < 3; c++) diff --git a/tests/sandbox.js b/tests/sandbox.js new file mode 100644 index 0000000..14ce26d --- /dev/null +++ b/tests/sandbox.js @@ -0,0 +1,23 @@ + +config.frameDivider = 256 + +var knobPresets = [] +for (var i = 0; i < 6; i++) { + knobPresets[i] = [0, 0, 0, 0, 0, 0] +} +var lastI = 0 + +function process(block) { + for (var j = 0; j < 6; j++) { + knobPresets[lastI][j] = block.knobs[j] + } + for (var i = 0; i < 6; i++) { + if (block.switches[i]) { + for (var j = 0; j < 6; j++) { + block.knobs[j] = knobPresets[i][j] + } + lastI = i + } + block.switchLights[i][0] = (lastI == i) ? 1 : 0 + } +} \ No newline at end of file