commit 4246f8690104101b27142650f3098f5ae3faadc4
parent ac200b090ec73ab8b0c32674d756fc30b79041d0
Author: Adam M <aemalone@gmail.com>
Date: Sun, 15 Mar 2020 16:36:54 -0500
Change generation algorithm to trig, make density knob work
Diffstat:
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/ComputerscareHorseADoodleDoo.cpp b/src/ComputerscareHorseADoodleDoo.cpp
@@ -24,17 +24,22 @@ struct HorseSequencer {
void makeAbsolute() {
std::vector<int> newSeq;
std::vector<int> thisOct;
- newSeq.push_back(1);
newSeq.resize(0);
- DEBUG("valuu:%f", pattern);
- for (int i = 0; i < 16; i++) {
+ /*for (int i = 0; i < 16; i++) {
int dex = ((int)std::floor(pattern * primes[i]) + otherPrimes[i]) % 16;
- //DEBUG("i:dex:%i",dex);
thisOct = octets[dex];
//vector1.insert( vector1.end(), vector2.begin(), vector2.end() );
newSeq.insert(newSeq.end(), thisOct.begin(), thisOct.end());
//absoluteSequence.push_back(dex < 8 ? 0 : 1);
+ }*/
+ for(int i = 0; i < numSteps; i++) {
+ float val = 0.f;
+ for(int k = 0; k < 4; k++) {
+ val+=std::sin(primes[((i+1)*(k+1))%16]*pattern + otherPrimes[(otherPrimes[0]+i)%16]);
+ }
+ newSeq.push_back(val < (density-0.5)*4*2 ? 1: 0);
+
}
printVector(newSeq);
absoluteSequence = newSeq;
@@ -178,7 +183,6 @@ struct ComputerscareHorseADoodleDoo : Module {
if (clocked) {
seqVal = seq.tickAndGet();
- DEBUG("step after tick:%i",seq.currentStep);
for (int ch = 0; ch < numChannels; ch++) {
atFirstStepPoly[ch] = (seq.currentStep == 0);
}
@@ -253,7 +257,7 @@ struct ComputerscareHorseADoodleDooWidget : ModuleWidget {
addOutput(createOutput<PointingUpPentagonPort>(Vec(outputX, outputY), module, ComputerscareHorseADoodleDoo::TRIGGER_OUTPUT));
addOutput(createOutput<PointingUpPentagonPort>(Vec(outputX, outputY + dy), module, ComputerscareHorseADoodleDoo::EOC_OUTPUT));
- addOutput(createOutput<PointingUpPentagonPort>(Vec(outputX, outputY + dy * 2), module, ComputerscareHorseADoodleDoo::REST_OUTPUT));
+ addOutput(createOutput<PointingUpPentagonPort>(Vec(outputX, outputY + dy * 2), module, ComputerscareHorseADoodleDoo::CV_OUTPUT));
}