 
 // Static descriptions of the waveforms for each channel
 struct WaveformBank {
-  // Pointer to the start of the waveform table, for each channel (channels may
-  // share the same table)
+  // Pointer to the start of the waveform table, for each channel. (Channels
+  // may share the same table.)
   uint16_t *channel_waveform[NUM_CHANNELS];
 
-  // Starting offset (phase) into the table, for each channel
-  // (The actual array is stored outside of this struct, since in many cases it
-  // will be shared between many (if not all) banks.)
+  // Starting offset (phase) into the table, for each channel. (The actual
+  // array is stored outside of this struct, since it may be shared between
+  // multiple banks.)
   size_t *channel_offset;
 };
 


void loop() {
  // Kind of silly to have to poll, but otherwise we'd need to forgo the
  // Arduino serial library and things will get much more complicated.
  if (Serial.available()) {
    handle_cmd();
  }

// On the timer interrupt, we determine the current waveform bank and start
// sending the sample for channel 0.
void TC_Sampler_Handler() {
  // Access the TC to deassert (acknowledge) the IRQ
  TC_GetStatus(TC_SAMPLER, TC_SAMPLER_CHANNEL);

  g_current_sample_bank = g_current_bank;
