Saturday, April 15, 2006

Progress Report 7: did we make it?

This month and 15 has flown by. But it would have gone by with or without the goal.

In this post I get to judge whether or not the goal was achieved.

Here is the goal as stated on March 1st: a distributable working prototype of a simple system available by April 15th.

First, could we distribute what we have done? Technically yes. We can send it out and anyone can run it.

Second, does it work? Again, technically yes: What we have is a pitch detector that takes in sound and displays integers 1 through 12 depending on the note you sing or play. It works surprisingly reliably though I believe that we can do more optimizing. And it works in real time. It is actually pretty fun to sing and watch the integers change by 2 if you move by a whole note or by one if you move by a half note. And it is fun to see the note that you sing.

Third, is it a simple system? Definitely.

So actually, I think that I ought to be able to look at what we have done and feel pretty proud. Intellectually I know that it was a real challenge and that we rose to it and learned a ton. And I am proud. I'm actually amazed that we wrote a working program in this foreign language that was Java. And the physics behind pitch detection turned out to be a lot more interesting and complex than I had thought. But we did it.

However: while we technically met the goal and did a lot of good work, the spirit of the goal was not met. I didn't just want the program to be distributable. I wanted it to be something we would be proud to distribute. We're not there yet. Denis succeeded in putting together a simple little GUI that start a method and read in a note and display it. I succeeded in making a simple pitch detector that can take input from a sound card and process that input and end up with musical notes. But when we put it together something didn't work. The GUI wouldn't refresh the field in which it was supposed to display the note until the loop providing new notes was over. Even if we fed it info inside the loop and even if we tried to force it to refresh (using commands suggested by generous Java Guru Sam Baird). So what is the current real time feedback? It is commandline text output. Not too impressive.

I think that I have a lead on why it isn't working and what to do about it. This week's project will be to learn all that I can about threads and events and how different objects can talk to, listen to, and interrupt each other. Maybe we can figure it all out.

Bart (thanks Bart, you're the only person that I know actually reads the blog regularly. Your feedback helps give this thing meaning.), in a comment appended to my last blog, asked what next. Now that we have started this project I want to complete it. To me that means 2 things:
  1. I hope to see this progress to the point where we can be proud of it as a quality addition to this world. I see quality as being measured by three metrics: robustness, "funness", and depth. Robustness means that it needs to work well and under a variety of circumstances. It needs to become dependable. Funness means that you will want to spend time using the program because you like using it. For pure pleasure as well as for any higher reasons. Depth means that you can make it a tool for your own use and extend it for the use of others. It means that users can add value to the product over time so that in the end the product has more value than we could have given it alone.
  2. I want to know that a million families have used this program. It is really one of those things that I can't understand not having. We just need to make it known and accessible.

I recognize that those are ambitious goals. I believe they are achievable. But I don't know it. That wedge between belief and knowledge is part of what is going to make this a fascinating ride.

Finally, let me acknowledge my true gratitude to Gina. The pitch detector did not get completed in the target one hour per day. Not even close over this last week. She has been a remarkable support and friend through all this. Thank you Gina. Thank you so much.

Thanks for reading.

Doug

4 Comments:

Anonymous Anonymous said...

Doug, I have been reading your blog. It is one the highlights of my week, really. You inspire me. I'm sure there are quite a few others as well. Keep up the amazing work and please keep writing so we can all vicariously enjoy the ride :) !

Love,

Rick & Ale

Sunday, April 16, 2006 8:02:00 AM  
Blogger Douglas H. said...

Rick, thanks. That means a lot.

Love

Doug

Sunday, April 16, 2006 5:08:00 PM  
Anonymous Anonymous said...

Same here. . .reading faithfully!

Janssen

Monday, April 17, 2006 2:32:00 PM  
Blogger Douglas H. said...

Thanks Janssen! OK. I'll stop worrying about whether this gets read.

BTW, when you leave a comment the blog site automatically sends me an email saying that a comment was left so I can respond. That way I don't have to check the page to see a comment.

In the same way, you can ask to be notified when the blog is updated so that you never have to check it to find out if something new was posted.

Tuesday, April 18, 2006 9:39:00 AM  

Post a Comment

<< Home