commit 68670c8380b908949527e90668c1e193f4b2306a
parent 260966400a8cf6a555b89ebc53ce68a68f6ec237
Author: Adam M <aemalone@gmail.com>
Date: Fri, 9 Aug 2019 21:04:53 -0500
Merge branch 'laundrypoly' of https://github.com/freddyz/computerscare-vcv-modules into laundrypoly
Diffstat:
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/ComputerscareLaundrySoup.cpp b/src/ComputerscareLaundrySoup.cpp
@@ -286,17 +286,17 @@ void ComputerscareLaundrySoup::process(const ProcessArgs &args) {
}
}
}
+ //this always assumes 16 channel poly output. It is a waste if the user doesnt want poly
outputs[TRG_OUTPUT+i].setChannels(16);
outputs[FIRST_STEP_OUTPUT+i].setChannels(16);
if (inputs[CLOCK_INPUT + i].isConnected()) {
for(int ch = 0; ch < 16; ch++) {
- outputs[TRG_OUTPUT + i].setVoltage((currentTriggerIsHigh && activeStep[i]) ? 10.0f : 0.0f);
- outputs[FIRST_STEP_OUTPUT + i].setVoltage((currentTriggerIsHigh && atFirstStep) ? 10.f : 0.0f);
+ outputs[TRG_OUTPUT + i].setVoltage((currentTriggerIsHigh && activePolyStep[i][ch]) ? 10.0f : 0.0f);
+ outputs[FIRST_STEP_OUTPUT + i].setVoltage((currentTriggerIsHigh && atFirstStepPoly[ch]) ? 10.f : 0.0f);
}
}
else {
-
for(int ch = 0; ch < 16; ch++) {
outputs[TRG_OUTPUT + i].setVoltage((globalGateIn && activePolyStep[i][ch]) ? 10.0f : 0.0f,ch);
outputs[FIRST_STEP_OUTPUT + i].setVoltage((globalGateIn && atFirstStepPoly[ch]) ? 10.f : 0.0f,ch);
diff --git a/src/dtpulse.cpp b/src/dtpulse.cpp
@@ -421,31 +421,33 @@ LaundrySoupSequence::LaundrySoupSequence() {
}
LaundrySoupSequence::LaundrySoupSequence(std::string expr) {
std::vector<Token> defaultStack;
+ std::vector<Token> calculatedTokens;
defaultStack.push_back(Token("Error", "error", -1));
if (expr != "") {
Parser p = Parser(expr);
p.setForLaundry();
if (p.inError || !p.tokenStack.size()) {
- tokenStack = defaultStack;
+ calculatedTokens = defaultStack;
inError = true;
}
else {
- tokenStack = p.tokenStack;
+ calculatedTokens = p.tokenStack;
inError = false;
}
}
else {
- tokenStack = defaultStack;
+ calculatedTokens = defaultStack;
inError = false;
}
+ LaundrySoupSequence(calculatedTokens);
+}
+LaundrySoupSequence::LaundrySoupSequence(std::vector<Token> tokens) {
+ tokenStack = tokens;
pulseSequence = makePulseSequence(tokenStack);
workingPulseSequence = duplicateIntVector(pulseSequence);
numSteps = (int) pulseSequence.size();
readHead = -1;
}
-LaundrySoupSequence::LaundrySoupSequence(std::vector<Token> tokens) {
-
-}
void LaundrySoupSequence::print() {
printf(" Laundry tokenStack:\n");
printTokenVector(tokenStack);