diff --git a/Lanes.ino b/Lanes.ino index 083cf2f..b7d5c6b 100644 --- a/Lanes.ino +++ b/Lanes.ino @@ -23,6 +23,8 @@ bool ClockState = false; int PpQN = 24; float Clock = 120; float ClockTick = 1/((Clock * PpQN)/60); +unsigned long ClockTime = 0; +unsigned long LastStepTime = 0; long Lane1Pos, Lane2Pos, Lane3Pos, Lane1Time, Lane2Time, Lane3Time = 0; //Lanes are 4 dimentions 0 = Step Time, 1 = Step Voltage, 2 = Curve type (Linear, Expo, Log, Sine, etc) 3 = Curve Parameter. @@ -47,11 +49,25 @@ void setup() { Lane2[j][i] = Lane3[i][j] = 0; } } + + analogWrite( Lane1Pin, Lane1[1][0]); + } void loop() { delay(1); - + unsigned long currentTime = millis(); + + if ((currentTime - LastStepTime) > ClockTick){ + ClockTime++; + LastStepTime = currentTime; + } + + if ((ClockTime - Lane1Time) > Lane1[0][Lane1Pos]){ + Lane1Pos = (Lane1Pos + 1) & B00001111; + Lane1Time = ClockTime; + analogWrite(Lane1Pin, Lane1[1][Lane1Pos]); + } } \ No newline at end of file