Sunday, April 13, 2008

Web Site Update

Nimajin website
I've been busy. Not making any money, but busy. When the jobs aren't pouring in it's time to concentrate on marketing. So I'm prospecting and networking. And I've updated the Nimajin website. It looks much more professional now. I've added a resume and portfolio so people can learn more about me. I'm not real happy with the site yet - it concentrates on my past and not my future. So it'll change again.
The future is not real clear to me now. I like to be associated with science and communications. My intention to concentrate on media processing and content recognition is still attractive to me, but I'm not finding much interest from others. I think it's mostly because of my lack of communication. I'll work on that. Some friends say I've got to jump on the web services bandwagon to make a living. Improving people's advertising or bookkeeping is very useful, but not as incredibly fascinating to me as making a machine able to draw a floor plan of my house from photographs or making it able to fly me through town from surveillance camera input. I know what it'll take to do these and I'll keep working on them, but it'd be great to have some sponsorship so I could afford some more time to work on them.
I think this happens to a lot of people. There's not enough commercial value to our ambitions of making machines more intelligent, so over time we have to abandon our efforts and go where the money is. I'm still holding on!
That isn't really where I wanted to go with this post, but heck I'll post anything. My goal is to perkily point out how great the new web site is and how ready I am to go an extra mile, learn more new technology and build anything you can think of. What I really love is making people happy.

Monday, January 28, 2008

Tune Searching

You know when you remember a bit of melody, but can't place the song? I've got an idea to create a website to accept input of musical notation and find out what the song is and return information, MP3's and sheet music. So all we need is a simple notation input, a database of notation for all songs in history, rights to use the notation, a fast and smart matching algorithm, a web front end, and we've got a music search site!

Input:
  • Maybe make the PC's qwerty keyboard act like a musical keyboard
  • Capture from a midi device
  • Put a musical keyboard on the screen & let them click on it
  • Accept input from microphone and decode the essentials to notation
  • Show their input on screen in some form of notation
  • Allow playback so they can interactively adjust it until it sounds right to them
  • Include some way to adjust the tempo (slider)
  • Include some way to adjust the spacing (timing of each note), like stretching it or a slider
  • Include something to adjust the timbre / instrument they hear on playback

Database:
  • Once the input is in, convert it to some kind of text or binary
  • Encode the database in the same format and search
  • We'll get snippets as input and it'll be timed wrong, out of key and notes will be wrong
  • We'll want closest matches

A brief look for 'music search' returns nothing. All music search is by artist, song name etc, even for sheet music. It seems somebody tried something like what I want years ago at ThemeFinder - I don't understand what input they're asking for. I found out about Abc notation, which stores notation as text, and has software that can play midi and generate musical notation. More looking. 'tunesearch' gives Richard Robinson's Tunebook Search and JC's ABC Tune Match at trillian.mit.edu. They all seem related to ThemeFinder.

Then I found Musipedia. Musipedia is almost what I was planning. It lets you input by keyboard, by drawing notes, tapping in the rythm or by humming, singing or whistling. All the stuff I thought of except the editing. And ugly and kludgy. I tried it. I suck at keyboards and didn't take the time to put in Pachelbel's Canon well enough that I recognized it on playback. It was - almost. Of course it didn't match that to anything I knew. When I whistled it, the closest thing it found that I knew was The Doors' 'People Are Strange'! It didn't find Elvis' 'Hound dog' by me tapping either. I think it's database is limited. The database is like a wiki though - anybody can add more tunes. This is a great idea. Maybe it's search is the problem. I'm disappointed. Musipedia is based on a prize-winning retrieval mechanism by Rainer Typke. I bought his book.

Musipedia included a Google ad from Midomi. At Midomi you to sing into your microphone and it finds a match for what you sing. In contrast to Musipedia, this site is slick, and it works. It helped me get my microphone level correct. When I sang 'I'm Leaving On A Jet Plane' (after doing some talking first) it knew it. It uses more than one rendition of a song to make a match. It encourages people to sing songs that they know and it uses these in its database. It seems to be getting lots of karaoke people.

I don't know if these guys are making money because they're both covered with Google ads. Musipedia could use some polish and Midomi needs instrumental input. So should I persue my idea?

Thursday, January 17, 2008

The Future is Coming!

Software UI is coming to look and act more like Star Trek control consoles.

The iPhone's UI looks like Star Trek graphics. Check out the black background and brightly coloured icons, all behind a glossy glass surface.
Office 2007 is starting to look like that and all of the WPF examples too.


But the really big deal is that Star Trek consoles are touch screens. They are operated by tapping on them. The iPhone operates by tapping, pinching, dragging, flicking, etc. The Microsoft Surface is so like a Star Trek console. It's a big, bright touch console. We are there!


I'm real happy about this. I've always loved the way the consoles looked in Star Trek. I want to be flicking chunks of code around in one of those one day. It makes me wonder whether all of the computer developers love Star Trek consoles too, or if the Star Trek set designers just correctly imagined the future.

Tuesday, January 15, 2008

Vista Spooler.xml

I was working away on my less than year old Vista PC with a 250 Gig hard drive when Windows tells me the disk is getting full! Windows is all like 'disk cleanup' and 'remove some programs'. Serious! Was it the VS2008 I just installed? No.
I used Silurian DiskSpaceChart to find out where all my disk was going. That's a typical disk usage pie chart thing that puts itself in the right menu. You can drill down through the large folders to find the large file. It's OK. It was the first thing I found for Vista.
So what I found was something writing continuously to C:/Windows/system32/spool/spooler.xml, at like 300 MB per minute! I tried to find out who was writing the file. Resource Monitor helpfully identified 'system'. Thanks. I didn't have SysInternals Process Monitor installed, and I didn't want to try while the machine was so sick, so I couldn't get any details on who was doing all that writing.
I rebooted into safe mode and deleted the file.
When I booted back the file was 33k and stayed that way. I think the file is a printer log and the problem is either my HP printer drivers for the 3390 or MS XPS. I recall running WireShark and seeing every machine with those 3390 drivers polling the printer status over the LAN every millisecond.

Sunday, December 16, 2007

Why Straight Lines?

Why should a visual recognition system expect straight lines? The arrangement of photoreceptors in the retina has no straight lines. Very little in nature that may be seen has straight lines. Primitive people do not build angular objects. Yet, I think straightness came from building things. What could be the first straight thing? Baskets? Arrows? Lines drawn in clay? Not even knife edges were straight. Maybe the horizon - out over the ocean. There is no survival value in building a recognition system within an animal upon a framework of straight lines. Except maybe for orientation to the horizon.
Why did Hubel and Wiesel concentrate on straight lines?
The things that are important to recognize are curved. In all directions. Food like berries, fruits, grasses and animals are all curved. The path upon which you walk. The trees over your head.
So can a recognition system be built upon collections of curves?

Monday, December 10, 2007

Artificial Intelligence: Answer the Questions

The point of AI is to get answers to questions.

In music:

  • What is that instrument?
  • Who is that artist?
  • What else have they done?
  • What is similar?
  • Has this been done before?
  • How is that sound made?
  • What are the words?
  • What is its name?
  • Where was this performed?

In images and video:

  • What is that thing?
  • Who made it?
  • What else have they made?
  • What is similar?
  • Where can I get one?
  • Who is that person?
  • What is it made from?
  • How old is it?
  • Who made it?
  • Can you show me more details?
  • How did they do that?

About things:

  • What are the parts?
  • How much does it cost?
  • Where can I get one?
  • How does it work?
  • Who made it?
  • Who's working on its development?

Then there are the 'what if' scenarios: Substitute this for that - what happens?

AI is so complex and deep that it is very easy to get lost in the implementation details. The details need to get worked out, but the point is to answer questions.

Thursday, September 20, 2007

Day 58 Telecom Inertia


In VON Magazine FMC Converges on Business, Ivar Plathe from OnRelay says that “The key for making [FMC] technology work is making the extension work seamlessly over a public network over a 3G, or CDMA network, which is really the hard part...”
I'll agree that's hard - I think what's making it difficult is using the old cellular protocols. I can't believe that when something is that hard, that anyone sticks with it! I think you're following a dead end Mr. Plathe. Good thing you've got people willing to pay.
In my mind the real solution is to run IP through the cell system. You've just got to run IP over a new layer 2 that can switch cell towers to follow the handset around. Mobile WiFi? 'The routing system says your phone is at this tower now.' I'm not sure, but isn't this what IMS is all about? That's hard too - I'm talking about infrastructure replacement - but when you're done you've got a real mobile IP network. Run IP over the cell system. Then you can use SIP to do everything you need for PBX functionality: proxying calls to multiple terminals, short numbering, transfers etc. And you'll have the standard protocols for mail, messaging, web, services, games, everything.
What's up with all this shoehorning new tech on top of old? Oh, billions of dollars worth of existing cell infrastructure! OnRelay's customers could be paying for development of a real mobile network instead of band-aiding an old system.
It's the same thing with VoIP gateways. Huge money in the gateway market. But why? You've IP'ed your internal phones, why connect outside over analog? Oh, standard numbering system, QOS, bandwidth. You could be spending that gateway and analog money on more bandwidth, a better RTP (let's have another post on that) and click-to-call. If you're all IP, your ISP should provide service for POTS interconnect.
All this legacy support is telecom inertia. If you want better than legacy, abandon it. Just git 'er done!