Real piano

A place to discuss Playground's main curriculum, the Bootcamp.
FlatPanda
Posts: 95
Joined: Fri Jan 03, 2020 11:56 am

Re: Real piano

Post by FlatPanda » Tue Apr 21, 2020 2:11 am

Disclaimer: I'm not associated with PGS in any form, I'm just a paying customer, who happens to be a software engineer and an audio-enthusiast. And these are my 2¢.

Pitch detection is hard. Really, really, really difficult to do it correctly. You need:
- a very good input (a good microphone, a well tuned instrument)
- a good detector (the cheapest, optimised for electric guitars are starting at 200-300$)
- for piano it gets more complicated, if you want to detect chords, etc.

To do the software side correctly: it's a nightmare. To do the hardware side: it's expensive (and would skyrocket the support requests, that "this-this-and-this does not work"). I totally see, why PGS originally didn't implement this feature, and why they have shivers from it in any future iteration. I can only guess, how competitor softwares (FlowKey, Yousician) do it, and my guess is: poorly.

Hell, even with a perfectly working USB connection, if I hit a triad, and one of the keys is slightly (I measured: 20ms) off, it won't be picked up as a proper chord. Can you imagine all the magic, which has to go into a pitch to midi converter (that's the official term for the gadget, which here is discussed), hardware and software wise?

Think about this: you must play an A minor triad in first inversion (C-E-A) after a C major triad in root position (C-E-G) in the same octave. These share two keys. How do you think the pitch to midi converter can decide whether the C and E keys have been released and played again or they are just held? (Assuming good dynamics in your play, so you are not smashing the keys when you are playing the second triad ;) ). It's a very, very difficult problem to solve.

P.S.: if you are looking at the major open source software for composing music (MuseScore), they don't even have a feature, where you can live-record into a blank sheet from a midi-attached piano and get everything correct (chords, rhythm, etc.). That software is made for creating scores! And it wouldn't even work as many expect with a midi-connection. What would go haywire with pitch detection added into the mix?

User avatar
sw1tch73ch
Posts: 539
Joined: Tue Oct 18, 2016 1:23 pm

Re: Real piano

Post by sw1tch73ch » Tue Apr 21, 2020 4:13 pm

The current best tech for converting an acoustic to MIDI is essentially an 88 pickup system similar to the six pickups used on an electric guitar. Basically, every set of strings (up to three strings per key) have a pickup. When that set of strings are struck, the pickup activates. Even that isn't a perfect solution because of sympathetic string vibration.

The solution most manufacturers of Acoustic Pianos with MIDI use is an optical/mechanical detection of key presses with velocity.

To record the acoustic piano and convert those sounds to MIDI you would need special "close mic" setups that exclude other sounds. Imagine someone singing along with their piano with an open mic, like on an iPad or Laptop. You will be getting all the room noise, TVs and children and dogs and other sounds all filtering in that the computer then has to process. Looking at the readily available pitch to MIDI apps, they are generally Monophonic - meaning one note at a time. Another issue is the latency. You want the Playground Sessions App to recognize when you play a note RIGHT THEN. These apps are really mostly Near Real Time. But not real time enough for grading your timing. Especially when you play polyphonic sequences.

One of the biggest complaints of the "other" apps is how bad the pitch recognition is. Now the people having troubles will be the most likely to make comments, so I don't really know how prevalent that issue is, or if it is just a few that have trouble. I don't want to pay for an app to find out it doesn't really work for acoustics, and in my case I have a "real" MIDI digital piano, so I don't need pitch detection.
== Just keep playing. Just keep playing. Just keep playing, playing, playing! ==

-- jbs --

Post Reply