Saturday, June 10, 2006

Learning

I keep on reading these essays by Paul Graham. He's beginning to convince me that I should invest is learning some other computer languages. Lisp and Python. One of the things I loved most about physics as I was first learning it was that it gave me new ways to think about the world. Statistics was another subject that did that for me. Learning Java (not that I've learned it, but that I've been in the process of learning it) has done the same thing for me and I think that new modes of thinking that I have been forced to adopt have even been useful in my physics research. Even if I never program seriously in either language, learning them could still be valuable for this reason. But everything takes time. So we'll see.

To a certain extent what you have in this life is what is in your mind. When you lie down at night and close your eyes that's what you have. So if it is filled with interesting things to think about and memories of time with people you love and beautiful places and so on that's worth something. So if learning Lisp will make my mind a more interesting place then I want to do it.

Over the past few days I found out that making the computer sing middle C was much easier than I thought. (Cool! I can make typing result in music!) So that is done. And I quickly found out how to make the notes on the staff dynamic thanks to Sam Baird's help (he actually sent me sample code with a professional looking staff and notes and everything). So the programming goals stated may be turn out to be too easy for this 45 day period. The other half of the goal (meaning sales) I haven't even begun working on.

One thing I am working on is rewriting the pitch detector. (I think it is a little buggy and that I can make it more stable. It seems to make an error about one in every 10 estimates. More if there is a lot of acoustic noise obscuring the signal or if the signal is outside of the sweetspot, and less if you have a loud clear note in the sweet spot.) I've been trying to rewrite it in the image of a good Java program, an exercise which has been a little frustrating. I haven't figured out ways to increase modularity and simplify the thinking behind the code without slowing down the program. But I guess that currently speed isn't the main concern so much as the quality of the result. So it should be worth it to try and simplify the code and sacrifice some speed if it means a code that gives the right answer more often even if it is a bit slower.

0 Comments:

Post a Comment

<< Home