 void durationturn(int duration, float pitch, bool dir, bool recentre) {
     unsigned long stopTime;
     unsigned long startTime = millis();
-    int pulse = pitchToPulse(pitch);
+    int pulse = pitchToPulse((pitch * durationTurnMul) + durationTurnAdd);
     int startstoppulse = max(maxPulse, pulse);
     digitalWrite(dirPin, dir);
     delayMicroseconds(pulseWidth);


void turn(int halfturns, float pitch, bool dir) {
    int fullspeedsteps = (halfTurnSteps * halfturns) - (accelSteps * 2);
    int pulse = pitchToPulse(pitch);
    int startstoppulse = max(maxPulse, pulse);
    digitalWrite(dirPin, dir);


void gliss(int halfturns, float startpitch, float endpitch, bool dir) {
    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++) {
