 const byte HEAD_MIN = 0;
 const byte HEAD_MAX = 82;
 
+// frequency range (A0 through B4)
+const int FREQUENCY_MIN = 27;
+const int FREQUENCY_MAX = 494;
+
 // number of drives
 const byte DRIVE_COUNT = 3;
 
-// starting step control pin
+// starting direction pin
 const byte STARTING_PIN = 2;
-// we assume step control pins occur on evens and direction pins occur on odds
-// (so for drive 1, step control is pin 4 and direction is pin 5)
-
-// head directions (by drive):
+// we assume direction pins occur on evens and step pins occur on odds
+// (so for drive 0, direction is pin 2 and step is pin 3)
+
+// all of the following arrays need to be initialized with DRIVE_COUNT items...
+// this could maybe be avoided with enums or something
+
+// head directions (by drive)
 byte directions[] = {
   LOW,
   LOW,
   LOW
 };
 
-// active periods (by drive):
+// active periods (by drive)
 int periods[] = {
   0,
   0,
   0
 };
 
-// head positions (by drive):
+// head positions (by drive)
 byte positions[] = {
   0,
   0,
   0
 };
 
-// elapsed ticks (by drive):
+// elapsed ticks (by drive)
 // used to know when to step
 int ticks[] = {
   0,

  }
}

// steps a head
void step(byte drive) {
  byte d = getDirectionPin(drive);
  byte s = getStepPin(drive);

  return STARTING_PIN + (drive * 2) + 1;
}


