   digitalWrite(multiplexCPin, LOW);
   delayMicroseconds(propagationDelay);
 
-  // Mode depth
-  int value = analogRead(multiplexInputPin1);
-
-  // Amplitude envelope attack
-  value = analogRead(multiplexInputPin2);
-  synth.setAmpEnvAttack(fscale(1, 1023, 1, 2000, value, -5));
-
-  // Filter cutoff
-  value = analogRead(multiplexInputPin3);
-  if (value != p3) {
-   p3 = value;
-   float freq = fscale(1, 1023, 200, 8000, p3, -3);
-   synth.setFilterFrequency(freq);
-  }
-
-  // Preset selector
-  value = readSelectorPin(multiplexInputPin4);
-
   readInputKeyRow(39);
 
+  if (frameCount % frameStep == 0) {
+    // Mode depth
+    int value = analogRead(multiplexInputPin1);
+
+    // Amplitude envelope attack
+    value = analogRead(multiplexInputPin2);
+    synth.setAmpEnvAttack(fscale(1, 1023, 1, 2000, value, -5));
+
+    // Filter cutoff
+    value = analogRead(multiplexInputPin3);
+    if (value != p3) {
+     p3 = value;
+     float freq = fscale(1, 1023, 200, 8000, p3, -3);
+     synth.setFilterFrequency(freq);
+    }
+
+    // Preset selector
+    value = readSelectorPin(multiplexInputPin4);
+  }
+
 
   /**
    * Multiplexer pin 1


  readInputKeyRow(60);

  // Mode selector
  value = readSelectorPin(multiplexInputPin1);

  // Filter envelope release
  value = analogRead(multiplexInputPin2);
  synth.setFilterEnvelopeRelease(fscale(1, 1023, 1, 2000, value, -5));

  // Sustain pedal?
  value = analogRead(multiplexInputPin3);

  // Sampler velocity
  value = analogRead(multiplexInputPin4);


  /**
   * Multiplexer pin 4

  digitalWrite(multiplexAPin, HIGH);
  delayMicroseconds(propagationDelay);

  readInputKeyRow(53);

  if (frameCount % frameStep == 1) {

    // Synth osc 2 voice
    int value = readSelectorPin(multiplexInputPin1);
    if (value != p1) {
      p1 = value;

      switch (p1) {
        case 0:
          synth.setWaveForm2(WAVEFORM_NOISE);
          break;

        case 1:
          synth.setWaveForm2(WAVEFORM_SINE);
          break;

        case 2:
          synth.setWaveForm2(WAVEFORM_TRIANGLE);
          break;

        case 3:
          synth.setWaveForm2(WAVEFORM_SAWTOOTH);
          break;

        case 4:
          synth.setWaveForm2(WAVEFORM_SQUARE);
          break;
      }
    }

    // Filter envelope sustain.
    value = analogRead(multiplexInputPin2);
    synth.setFilterEnvelopeSustain(fscale(1, 1023, 0.0, 1.0, value, 0));

    // LFO Waveform
    value = readSelectorPin(multiplexInputPin3);
    synth.setLFOWaveform(value);

    // Sampler selector
    value = readSelectorPin(multiplexInputPin4);
  }


  /**
   * Multiplexer pin 3
   */
  digitalWrite(multiplexBPin, HIGH);
  delayMicroseconds(propagationDelay);

  readInputKeyRow(74);

  if (frameCount % frameStep == 2) {

    // Transpose
    int value = analogRead(multiplexInputPin1);
    synth.setTranspose(map(value, 1, 1022, -12, 12));

    // Amplitude envelope sustain
    value = analogRead(multiplexInputPin2);
    synth.setAmpEnvSustain(fscale(1, 1023, 0.0, 1.0, value, 0));

    // Filter envelope amount
    value = analogRead(multiplexInputPin3);
    synth.setFilterEnvelopeAmount(fscale(1, 1023, -1.0, 1.0, value, 0));

    // Master volume
    value = analogRead(multiplexInputPin4);
    if (value != p7) {
     p7 = value;

     synth.setMasterVolume((float)p7 / 1023 * 0.8);
    }
  }


