Aspects of dynamics and control

A summation of the most frequently asked questions as aspects for using the robot piano player

Robot Piano Player: Rhea

For the robot piano player series rhea:

Limits on dynamics

There are two limits the automaton and the piano, which can be differ from type to type.

Automaton limits

  • theoretically it can play up to 2048 different dynamics each key, which are mapped to 127 velocity steps during calibration.
  • in practice due limits an inaccuracies of coils, mechanics, etc. these are reduced (not measured)
  • most analysis software mapping 127 velocity steps to 15 volume; pppp, ppp, ... etc.

Piano and listening

  • one key has a dynamic measured 20 dB
  • a person can distinguish in steps of 1 dB (optimal conditions: 0,5 dB)
  • one key needs 20 steps, which ca. 6 times less than 127
  • only a resolution of 20 is needed (2048 theoretically)
  • The whole piano has 88 keys to gain full dynamics: additional max 38 dB
  • realistic one key to all adds 30 dB from one key to all played
  • sum of piano dynamics 50 dB dynamics at most

We do not hear only dynamics, but also changes in timbre of the sound, so we are more accurate in hearing which results that the 127 steps are a good base to work on. an Also each strike sounds different, depending on the state of hammer key and vibration of the strings from previous strikes... So don't expect repeatable results in timbre on fast passages.

For each piece Rhea can be adjusted to be map the values. A common adjustment is for MIDI velocities is:

  • Vel 0: no sound only key pressed
  • Vel 10: lowest garantied sound possible
  • Vel 100: loudest sound
  • Vel 127: Loudest sound + timbre distortions


Since the control computer is a linux computer, every interface it supports can be used including Ethernet (IP UDP/TCP), serial, MIDI over interface, files, ... applications and can be used to additional play video projection, sounds, soundfiles, etc. . The main application driving the piano is Puredata, so Pd patches can be used to extend the system.

Most common used control use cases are listed here:

Realtime Control

  • MIDI Notes, also over OSC
  • OSC with a free definable synthax (special cases) to play many pianos or additional values over Ethernet UDP or TCP, Serial

Playing from files

  • Playing MIDI-Files Midi Standard files should be supported, with using parallel MIDI-Players.

  • Playing Text files with events per line:

    <time to previous event> <note-number> <velocity> [duration optional (ms)]

    velocity and optional duration can be floating point numbers

  • Generation from PD-Patches with play control