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:
- 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.
- 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):
- For Binary Pedals: The microcontroller reads the
switch state. It applies basic debouncing logic to prevent false
triggers and translates the state directly to discrete boundary values:
fully open generates a value of
0, and fully closed generates127. - For Continuous Pedals: The ADC converts the
continuous analog voltage (typically 0V to 3.3V or 5V) into a digital
integer. The firmware calibrates this range, accounting for mechanical
dead zones at the top and bottom of the pedal stroke. It then scales
this digital integer linearly or along a slight logarithmic curve to fit
the standard 7-bit MIDI data range of
0to127.
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:
- Status Byte (
0xBn): Indicates a Control Change event on MIDI channeln(0–15). - Controller Number (
0x43): Designates Controller 67 (hexadecimal43), assigned by the MIDI 1.0 specification for Soft Pedal. - Data Value (
0x00to0x7F): Represents the position of the pedal.
Under the original MIDI standard:
- Values
0to63represent the pedal in the Off position. - Values
64to127represent the pedal in the On position.
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:
- Filter Cutoff Attenuation: The engine applies a low-pass filter to dampen higher harmonics, simulating how the acoustic piano hammers strike fewer strings or hit them with a softer, ungrooved portion of the felt.
- Sample Switching or Crossfading: Advanced digital pianos do not rely solely on equalization; they crossfade between standard multi-velocity samples and dedicated una corda sample sets recorded with the physical pedal engaged.
- Volume and Attack Modification: The engine slightly reduces overall output gain and softens the attack transient to match the muted mechanical response of an acoustic una corda mechanism.