// -----------------------------------------------------------------
 //  Simulates a pluck by replace all the values in the queue with
 //  a value from -0.5 to 0.5
 // -----------------------------------------------------------------
 public void pluck() {
   Random rand = new Random();
   for (int i = 0; i < frequency; i++) {
     chord.dequeue();
     double randomNum = -0.5 + rand.nextDouble();
     chord.enqueue(randomNum);
   }
 }
 // -----------------------------------------------------------------
 //  Dequeues, takes the average of it and the sample, then multiplies
 //  by .944 to create an energy decay factor
 // -----------------------------------------------------------------
 public void tic() {
   try {
     double note = chord.dequeue();
     double newnote = ((note + chord.first()) * 0.994) / 2;
     chord.enqueue(newnote);
   } catch (NullPointerException exception) {
     System.out.println("Empty array");
   }
 }
 // -----------------------------------------------------------------
 //  Constructor takes a frequency to build around
 // -----------------------------------------------------------------
 public GuitarString(double frequency) {
   this.frequency = frequency;
   final int sampleRate = 44100;
   int capacity = (int) Math.round(44100 / frequency);
   chord = new BoundedQueue<Double>(capacity);
   for (int i = 0; i < capacity; i++) {
     chord.enqueue((double) 0);
   }
 }
 // -----------------------------------------------------------------
 //  Returns the first value in the queue
 // -----------------------------------------------------------------
 public double sample() {
   return chord.first();
 }