 
 void turn(int halfturns, float pitch, bool dir) {
     int fullspeedsteps = (halfTurnSteps * halfturns) - (accelSteps * 2);
+    // leave this without durationTurn adjustments
     int pulse = pitchToPulse(pitch);
     int startstoppulse = max(maxPulse, pulse);
     digitalWrite(dirPin, dir);


long _durationgliss(int duration, float startpitch, float endpitch, bool dir,
        bool recentre, bool accel, bool decel, int sustainstart, int sustainend) {
    int startpulse = pitchToPulse(startpitch);
    int endpulse = pitchToPulse(endpitch);
    int endsustainpulse = pitchToPulse(endpitch - 1);
    int accelsteps = accelSteps * accel;
    int decelsteps = accelSteps * decel;
    unsigned long glissTime = ((duration - sustainstart) * 1000L) -

#define maxPulse     2300
#define durationGlissMult 0.935
#define durationGlissDiff 160

// pitch correction
#define durationTurnMul 0.945
#define durationTurnAdd 2.4
#define glissAdd       -0.5

/*************************
 * communication commands
