Posted in Android on February 7th, 2009 by Christopher Souvey – Be the first to comment
I finally got sick of waiting for RC33. I looked up online how to download and install it manually. I downloaded the file off Google’s servers, renamed it, and plugged in my phone. Before I could copy the file to my phone, T-Mobile pushed the update to me
. Amazing coincidental timing? Or perhaps Google tracking my search for RC33, testing my internet speed, predicting when I would finish downloading it, and having T-Mobile’s servers push the update to my phone (that would be really cool
).
There have already been a ton of reviews published online, so I’m not going to go into a ton of detail. Latitude is cool, but not useful yet since none of my friends use it. Voice Search is cool and works well, but I don’t know if I’ll ever actually use it. Nearly every app I had installed had updates available in the Market (since the Market now informs you), so I spent 15 minutes or so updating them all (I wish it had autoupdate).
However, there was one thing that wasn’t in any of the change logs and that I haven’t seen in any of the major reviews: the camera. The camera application seems to have improved tremendously. In the past, for me (perhaps this was an isolated issue, since I’ve never met anyone else with a G1), the camera had an absolutely awful refresh rate and updated very slowly (lagged, blurred, etc). Now, it looks beautifully smooth. It also seems to take less blurry and better pictures, but that could be a placebo after noticing the other change. Perhaps this is as a result of some changes being made to allow for Cupcake’s video recording (which I had wondered about due the remarkably bad frame-rate of previous versions).
The update process was easy and painless. The only hiccup I experienced was that the update froze on the Android boot screen (with the small logo and text) for about 5 minutes. I’m not sure if this was a glitch or part of the update procedure, but it seems to be running great now!
Posted in Musical on February 7th, 2009 by Christopher Souvey – Be the first to comment
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.
Posted in Musical, Technology on January 22nd, 2009 by Christopher Souvey – Be the first to comment
I just released a semi-minor update to Musical with a much requested feature. The 2-octave stacked keyboard is now mapped to the physical keyboard. This means that the keyboard is now “multitouch” (well… you can play more that one note at once at least, although its more difficult on the keyboard than the screen).
The reason I was able to release this is because I finally gave up on Dell after they shipped me a new SSD… for my laptop… which they have (see last post) and borrowed another machine to use for developing. I’m currently in Tahoe with a friend for a weekend of skiing (I’m posting this from my laptop tethered to my G1), and about 4 hours after we left, FedEx finally delivered my laptop. Again, thanks Dell—a little late. Hopefully I’ll be able to release some more updates this weekend, but it depends on how good the skiing is (it’s supposed to be pretty bad—icy and it might rain/snow).
And finally, Musical has hit 500 reviews! It’s currently at 507 reviews (4.16/5), 33456 downloads, and 15043 installs.
Side note: Google is planning on releasing the Market in “Germany, Austria, Czech Republic, Netherlands, and Poland in the coming weeks”. If anyone wants to waste 10 minutes or so, I would love to be able to translate the very limited amount of text in the app to other languages… otherwise I’ll have to either limit it to the English speaking locations or use the dreaded machine translation.
Posted in Failure, Technology on January 19th, 2009 by Christopher Souvey – Be the first to comment
Those of you who have been keeping up with my blog know that about 3 weeks ago my Dell laptop completely died and wiped its SSD (I had backups, so nothing was lost). Despite my pestering, Dell refused to just send me a new SSD to install myself and instead required me to send in my entire laptop. The laptop was supposed to have been back last week. I have received no updates at all, and their chat support hasn’t been able to do anything but assure me it will be back soon.
I finally received a package from Dell. It was in a box smaller than my computer. I opened it up, and there is a refurbished SSD. No instructions, no invoice, no return label… just a small bag with an SSD.
Dell, you have just blown my mind. You refuse to send me an SSD, then 3 weeks later, you send me one, after you have already taken my computer (making it a completely useless gesture)! Finally, you included nothing but the SSD. What am I supposed to do with it? Am I supposed to install it in my laptop that I don’t have and then return the old SSD that I don’t have with the shipping label you didn’t send?
Thanks Dell… (I’m writing this to take up time as I wait in the 60 person line for chat support-I’m number 26 now)
Posted in Musical on January 4th, 2009 by Christopher Souvey – 3 Comments
I just broke 25,000 downloads of my Android application, Musical! Here are my current statistics according to the Developer Console:
- Downloads: 25015 total
- Active Installs: 11344 (45%)
- Reviews: 409
- Rating: 4.07/5
Posted in Life, Musical, Technology on January 4th, 2009 by Christopher Souvey – Be the first to comment
My laptop’s SSD died a few days ago (completed wiped itself), so I’m going to be taking a break from developing Musical until Dell fixes it (I’ve arranged a repair and the box should be arriving soon). I super lucked out though and have a 100% up to date backup (I didn’t lose a single thing). I was going to try out Windows 7, so I made a full backup of my SSD to an external HD and then wiped the SSD to install Windows 7. A few hours later, the SSD was gone (and, as much as I’d like to blame it on Windows 7, I don’t think it’s possible). Since I did all of my Android development on that machine, I’m just going to wait until Dell fixes it, then restore my backup. If Dell takes an outrageous time (which is completely possible–they already mixed up my phone number with a random business customer also in Santa Cruz and tried to schedule a repair to fix a cable on my Latitude notebook… nice try Dell), I’ll have to setup one of my other laptops with the Android SDK. Whatever happens though, I will post updates here on my blog. The frustrating thing, is that I got a SSD based laptop because of my terrible HD luck (every hard drive I’ve ever had in a laptop has corrupted itself)–apparently my plan worked out great…it only lasted a few months before completely destroying everything (although it was also my first Dell laptop, having previously used IBM ThinkPads and HP consumer notebooks, so I can always blame it on Dell). Thanks Dell!
Posted in Musical on December 27th, 2008 by Christopher Souvey – Be the first to comment
I just released another update for Musical (my Android application) with a couple quick (but significant) changes:
The unstable grand piano has been converted into a stable 3-octave piano. The disabled octaves will be re-enabled once Google updates Android’s sound API
- The pop-ups and disclaimers on the piano have been removed (it should be reasonably stable now)
- A 2-octave piano (pictured) has been added, which shows 2 octaves at once (the regular piano shows 1 octave and requires scrolling)
- Musical now quietly checks for updates when you open it (thus the new required Internet permission)
Posted in Art, Technology on December 21st, 2008 by Christopher Souvey – Be the first to comment
Posted in Android, Musical on December 16th, 2008 by Christopher Souvey – 7 Comments
It’s just just over a month since I first uploaded Musical to the Android Market. Since then I’ve gotten 17,500 downloads (over 8000 active installs), 318 reviews (for an average of 4/5 stars), and emails from over 40 users.
In the process I’ve learned quite a bit about how the Market operates and more importantly, about dealing with its users. The following is a collection of notes, helpful tips, and my thoughts on the Android Market…
read more »
Posted in Musical on November 30th, 2008 by Christopher Souvey – 3 Comments

I recently released some updates for my Android music application (“Musical”) and decided to post some screenshots and semi-technical explanations.
The pitch pipe (pictured on the right) lets you play any starting pitch (from C4 to C5) either by holding your finger on the screen or by blowing into the bottom of the phone. Because Android does not support true live audio analysis the play-by-blowing feature is limited and the volume by breath control is at very low resolution and with a bit of delay (it is only using a periodic sampling of input amplitude). Android also does not allow live generation of audio (playing audio from a memory stream), so the pitch pipe works by stringing together and looping “prerecorded” sine waves of various frequencies.

The piano (pictured above) is multi-octave (although the bottom octave does not work–Android’s midi synthesizer will not play notes that low) and can be played with your fingers. It is not multitouch, as Android on the G1 does not currently support multitouch (although the hardware technically supports it, it is disabled and there is no public API). Switching octaves is accomplished by dragging the keyboard or the “current window” in the upper mini-keyboard. Notes vary based on how long they are held down (longer hold = longer note) and although multiple keys cannot be pressed at once, multiple notes can be playing at once (it is polyphonic). The piano “activity” (a screen in Android) plays the notes via SoundPool (an unsupported, unstable, and mostly undocument sound API–but the only one with a fast enough response time) and plays a series of premade midi files using Android’s built-in synthesizer (as there is no way to directly access the synthesizer in code to play a specific note). Because it uses SoundPool, it is currently rather unstable and sometimes locks up and crashes (the audio stack overloads). Hopefully when the next version of the SDK comes out, Google will provide a finalized SoundPool and better support for generating live sounds.
To download the latest version, just search for “Musical” in the Android Market on your G1.