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