| @@ -61,5 +61,17 @@ $(duktape): | |||||
| # $(SHA256) 6.13.0.tar.gz 183beeb3b720bfeab6cc8af12fbec0bf9fef2727684ac79289fd12d0dfee728b | # $(SHA256) 6.13.0.tar.gz 183beeb3b720bfeab6cc8af12fbec0bf9fef2727684ac79289fd12d0dfee728b | ||||
| # cd dep && $(UNTAR) ../6.13.0.tar.gz | # 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 | include $(RACK_DIR)/plugin.mk | ||||
| @@ -83,6 +83,8 @@ struct Prototype : Module { | |||||
| block.knobs[i] = params[KNOB_PARAMS + i].getValue(); | block.knobs[i] = params[KNOB_PARAMS + i].getValue(); | ||||
| for (int i = 0; i < NUM_ROWS; i++) | for (int i = 0; i < NUM_ROWS; i++) | ||||
| block.switches[i] = params[SWITCH_PARAMS + i].getValue() > 0.f; | 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 | // 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 | // Lights | ||||
| for (int i = 0; i < NUM_ROWS; i++) | for (int i = 0; i < NUM_ROWS; i++) | ||||
| for (int c = 0; c < 3; c++) | for (int c = 0; c < 3; c++) | ||||
| @@ -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 | |||||
| } | |||||
| } | |||||