Digital Piano Soft Pedal and MIDI CC 67 Mapping

This article explains how hardware digital pianos translate the physical depression of a soft pedal (una corda) into digital MIDI Control Change 67 (CC 67) data. It covers the electro-mechanical sensing methods, the translation of analog signals to standard 7-bit MIDI values, and how both internal sound engines and external software interpret this data to replicate the tonal softening of an acoustic grand piano.

Mechanical Detection: Switches vs. Continuous Sensors

The mapping process begins with the physical pedal mechanism located in the pedal board or lyre. Hardware digital pianos use one of two sensor types:

  1. Momentary Switch (Binary): Found in entry-level pianos or basic pedal units. The pedal operates as a simple on/off contact. When resting, the circuit remains open. When depressed past a specific mechanical threshold, the circuit closes.
  2. Continuous Potentiometer or Optical Sensor: Found in mid-range and professional models that support half-pedaling. These sensors measure the full travel distance of the pedal via variable resistance (potentiometer), magnetic flux (Hall-effect sensor), or light interruption (optical sensor).

Analog-to-Digital Conversion (ADC)

The piano's internal microcontroller continuously monitors the voltage across the pedal sensor via an Analog-to-Digital Converter (ADC):

MIDI CC 67 Message Generation

Once the pedal position is resolved to a 7-bit integer, the microcontroller formats the data into a standard three-byte MIDI Control Change message:

  1. Status Byte (0xBn): Indicates a Control Change event on MIDI channel n (0–15).
  2. Controller Number (0x43): Designates Controller 67 (hexadecimal 43), assigned by the MIDI 1.0 specification for Soft Pedal.
  3. Data Value (0x00 to 0x7F): Represents the position of the pedal.

Under the original MIDI standard:

Continuous-capable hardware sends the exact intermediate values (0 through 127) in real time as the pedal moves. External virtual instruments (VSTs) and sound modules designed to support continuous una corda use these intermediate numbers to calculate variable timbre shifts.

Internal Acoustic Emulation

When generating the MIDI message, the hardware's internal sound engine processes the CC 67 value simultaneously to modify the sound output: