 }
 
 void turnUntilNext(float pitch, bool dir) {
-    // leave this without durationTurn adjustments
     int pulse = pitchToPulse(pitch);
     int startstoppulse = max(maxPulse, pulse);
+    int accelsteps = map(pitch, 48, 72, accelSteps-10, accelSteps+10);
     digitalWrite(dirPin, dir);
     delayMicroseconds(pulseWidth);
-    for (int i=0; i<accelSteps; i++) {
-        oneStep(map(i, 0, accelSteps, startstoppulse, pulse));
+    for (int i=0; i<accelsteps; i++) {
+        oneStep(map(i, 0, accelsteps, startstoppulse, pulse));
         if (alarmState) return;
     }
     sendReady();

    int glisssteps = (halfTurnSteps * halfturns) - (accelSteps * 2);
    int startpulse = pitchToPulse(startpitch + glissAdd);
    int endpulse = pitchToPulse(endpitch + glissAdd);
    digitalWrite(dirPin, dir);
    delayMicroseconds(pulseWidth);
    for (int i=0; i<accelSteps; i++) {
        oneStep(map(i, 0, accelSteps, max(maxPulse, startpulse), startpulse));
        if (alarmState) return;
    }
    for (int i=0; i<glisssteps; i++) {
        oneStep(map(i, 0, glisssteps, startpulse, endpulse));
        if (alarmState) return;
    }
    for (int i=0; i<accelSteps; i++) {
        oneStep(map(i, 0, accelSteps, endpulse, max(maxPulse, endpulse)));
        if (i>(accelSteps - decelLook) && digitalRead(sensorPin)) break;
        if (alarmState) return;
    }

        oneStep(pulse);
        if (alarmState) return;
    }
    for (int i=0; i<accelsteps; i++) {
        oneStep(map(i, 0, accelsteps, pulse, startstoppulse));
        if (i>(accelSteps - decelLook) && digitalRead(sensorPin)) break;
        if (alarmState) return;
    }
