commit dc4c3278587086ee638bbfe399a210eb45f74946
parent 12ca3ac3d871017edf5ed88ddb96c865d4c7f08a
Author: Adam Malone <1319733+freddyz@users.noreply.github.com>
Date: Fri, 9 Aug 2019 15:35:37 -0500
polyphonic eoc output for soup, broken dtpulse with attempt to make new LaundrySoup constructor that accepts tokens
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);