Musical FAQs (Tuner? Multitouch? Grand Piano?)

I seem to get the same questions and complains over and over again, so I’ve decided to write a up a post to clear them up (apologies in advance if this seems bitter–its not intended to be… I just want to stop the spread of misinformation).

Why doesn’t Musical have multitouch?  I’ve seen videos! The G1 does support multitouch!

I’ve been getting a lot of comments recently about multitouch for Musical. Musical will never have multitouch on the G1.  There.  I said it. I am aware that the G1′s screen supports primitive multitouch and that those with root access (and JF1.4) can take advantage of it. However, this multitouch will NEVER (I repeat… never) be sufficient for playing a multitouch piano. This is not a software limitation–it is a hardware limitation with the G1′s physical screen. Multitouch on the G1 will never be useful for much more than gestures (pinching, scrolling, etc).  According to the blog of the developer of JF1.4, which allows multitouch on the G1 (Luke Hutchison):

  • Only supports 2 fingers (so still no chords, and not really that much better)
  • Fails completely when fingers are close together (and on a piano, they will be as close as they could be)
  • When the 1st finger is lifted but the second is not, the second finger turns into the first finger (so it doesn’t tell you when you release them and the keys would get mixed up)
  • “The G1′s screen is a much better device for multi-touch scaling than it is for multi-touch rotation or more general multi-touch input, because the distance between the two touch-points in multi-touch can be measured a lot more reliably than the actual position of the points.”

Why isn’t there a tuner? The G1 has a mic, and Shazam is able to figure out the whole song!  Why can’t figure out even one note???

As I have said many times, the G1 does not support live audio input.  There is no way to analyze the sound coming into the microphone (except for getting very low resolution and basic volume/amplitude information).  Shazam does not perform live audio analysis.  It records 10 seconds or so of audio, uploads it to Shazam’s server, then downloads the name of the song which their server calculated from the uploaded recording.  The only current way to get pitch information from audio is to record a sample, and then analyze it after the fact.  It is impossible to analyze audio as it is being played (although according to the internet, the mythical cupcake revisions will remedy this).

Why is there no grand piano? 3 octaves isn’t enough!

Android currently provides no way to directly play midi notes (javax.sound.midi is not available on Android).  The only way to play midi sounds on command (at a reasonable speed) is by preloading midi files into memory and then playing those.  Unfortunantly, the only API that will work for this is not yet complete, undocumented, and unstable.  Based on my testings, loading more then 3 octaves of sounds into memory at once makes the application extremely unstable and prone to crashes.  When I initially released the application, I provided a full grand piano.  My rating immediately began to plummet as my inbox filled with complaints about the keyboard being slow and crashing frequently.  So I quickly chopped out all the octaves but the middle 3 and reuploaded the new version.  The market rating began to rise again.  Unfortunately, the emails about crashes were quickly replaced with emails that 3 octaves wasn’t enough.  For now (hopefully an update in the near future will remedy this), its either flexibility or stability.  I (and the extremely negative reviews I recieved) decided that a keyboard that could always play 3 octaves was better than a keyboard that could sometimes (due to crashing) play all of them.

Leave a Reply