Close

x

A project log for Synthetic piano

Notes

lion-mclionheadlion mclionhead 05/31/2026 at 19:180 Comments

As lions pivoted away from ever owning a concert grand, notes grew for how to construct the best possible synthetic recreation of a concert grand.  There should be some attempt at it before spending the money on a real one.  The Yamaha CP sound has been good enough for the last 20 years to never get around to it.

The 1st problem is creating a synthetic una corda sound.  It's not really possible with any kind of post processing.  Additional sounds no-one else sythesizes are the dampers rubbing, sympathetic resonance.  Damper sounds would be quite difficult to generate with samples.  They interact with the string vibration.  A clean sample of a damper with no string vibration wouldn't match the sound of  damping a vibrating string.

Robert Estrin connected real steinway D actions, probably made of spare parts from scrapped pianos, to https://www.modartt.com/ Modartt pianoteq.  That is an algorithmic synthesizer instead of a sampler.  He never mentioned what sensor went into the action.

The leading sampler is now pianoverse.  It used to be synthology Ivory.  They're all VST plugins which require a GUI.  Modartt is the only one with a dedicated Linux VST plugin.

They're all binary only.  The problem with binary only solutions is they don't work after a few years, even if they're perpetual.  The manetainers disappear.  Past versions of Linux are no longer being archived, hardware is being forced into obsolescence, so you can't perpetually have the 1 system that worked with the binary.

There are ways to just capture all the possible sounds & use them in a source compiled sampler.  The cost of obtaining the original samples could be easier to justify if their destination is permanent ownership in another program.  At minimum, it's 88 notes x 64 velocities x 2 una corda positions.  It would probably compress the samples in a neural network. 

There are ways to hook a Windows VST plugin into Linux through wine,

https://github.com/osxmidi/LinVst

The fastest way to get started would be to hook a CP33 as a keyboard controller into Modartt on a Linux box just for that, with its own monitor, keyboard & mouse.  Lions are in the same situation they were in 30 years ago, with the only good solutions being expensive binaries.   30 years ago, mp3 encoding required a $200 encoder & photo editing was $300.

-----------------------------------------------------------------------------

Lions previously tried using optical sensors in an action mockup.  It had a very temperamental & unstable alignment.

The typical mechanism now has 3 carbon dots hitting a PC board in different positions of the key travel.  They detect acceleration, velocity, damper position.  The Yamaha CP series probably has the best synthetic actions.  Helas MIDI doesn't encode the acceleration.  That would probably take some hacking to expose.

The sound actually was affected by how quickly you released the key &  where in the keypress you accelerated.  Whether the goal of the action should be to eliminate such effects or enhance them has been debated for all keyboard instruments.  With a binary only synthesizer, the effects would require capturing all the possible outputs from the synthesizer with some kind of tone changes & making a sampler that blended the tone changes.

 It would not be possible to create an acceleration based tone changer with samples & lions have no practical example of tone quality changing with acceleration.

-----------------------------------------------------------------------------------------------------------------------------------------

The 3rd problem is the controllability.  Lions have never been able to control loudness on electric actions as well as a Steinway, all the way from the K3 to the CP series.  The CP's have an exponential growth in loudness with velocity, exploding suddenly at around 3/4 of maximum velocity.  The 80's synthesizers had very little response to velocity in any range.  It's believed some kind of MIDI translation table might solve this problem.  It might also be caused by a change in samples at certain velocities.  That would be solved by a software synthesizer.

-----------------------------------------------------------------------------------------------

The initial workflow would involve capturing all the MIDI codes in parallel with the stock PCM audio.  Then the MIDI codes would be converted to a PCM audio file offline.  Timestamps would be adjusted to match the PCM audio.  This wouldn't require any hacking.  It could use the stock binary.  Just getting una corda & sympathetic resonanace would be an incremental improvement.

Realtime synthesis would be a later goal & that would require hacking to run without a GUI. 

Discussions