-class Oscillator
-{
-  // Class Member Variables
-  // These are initialized at startup
-  int outputPin;      // the number of the output pin
-  long OnTime;     // milliseconds of on-time
-  long Freq;    // frequency of side-tone
- 
-  // These maintain the current state
-  volatile int outputState;                // outputState used to set the output
-  volatile unsigned long previousMillis;    // will store last time output was updated
- 
-  // Constructor - creates a Oscillator 
-  // and initializes the member variables and state
-  public:
-  Oscillator(int pin, long on, long freq)
-  {
-  outputPin = pin;
-  pinMode(outputPin, OUTPUT);     
-    
-  OnTime = on;
-  FreqTime = freq;
-  
-  outputState = LOW; 
-  previousMillis = 0;
-  }
- 
-  void Update(unsigned long currentMillis)
-  {
-    if((outputState == HIGH) && (currentMillis - previousMillis >= OnTime))
-    {
-      outputState = LOW;  // Turn it off
-      previousMillis = currentMillis;  // Remember the time
-      digitalWrite(outputPin, outputState);  // Update the actual output
-    }
-    else if ((outputState == LOW) && (currentMillis - previousMillis >= FreqTime))
-    {
-      outputState = HIGH;  // turn it on
-      previousMillis = currentMillis;   // Remember the time
-      digitalWrite(outputPin, outputState);   // Update the actual output
-    }
-  }
-};
 
 // configuration switcher
 int Trinket     = 1;

int interToneLength = ditLength;
int interLetterLength = dahLength;
int interWordLength = 7 * ditLength;

// Key inputs
if (Board == Uno) {
  int ditPin = 2; // Uno 2 has hardware interrupt
  int dahPin = 3; // Uno 3 has hardware interrupt
}

// Trinket and Trinket Pro only have 1 hardware interrupt

    //always be the same interrupt routine
  
    ISR(PCINT_vect) {    
      if (iambic) {
        diDah(); // pin detection built into diDah()
      } else if {
        (digitalRead(ditPin)==0)  play(dit);
      } else if {
        (digitalRead(dahPin)==0)  play(dah);
      }
    }
  }

