Monday, April 24, 2006

Hello World at 24.6hz

I've written the first mockup version of the picture to sound conversion software in python. Since my lasers still haven't come (GRRR!) I've written a simulated wall to project my sound driven beam onto. I'm surprised how crisp the image looks (speakers may blur it or make it worse... don't know yet, but I think I can compensate for that regardless) at reasonable refresh rates and resolutions. I've projected "hello, world" at 256*30 with a 3 pixel horizontal granularity, getting 24.6hz refresh rate. Here is the original image:



and here is the final image:



I've written a library that takes an image as input and spits out a sound file as output. The software graphs laser position vs time, by associating a scan speed (and hence positions) with each pixel's brightness. When all the pixels have been converted to positions, the software converts the graph from a position reference to a time reference. This is done at a customisable granularity, so clarity and contrast in the image can be swapped for scan speed to keep refresh rates up. This should have some interesting effects when applied to full-screen conversions, and allows for other optimizations like dynamic detail changing to achieve best accuracy at a given framerate.

I can't wait for my lasers to arrive so I can test this out practically, but given the small movement of speakers I think I'm going to arrange a lense system to magnify its effect. The system should still have infinite focus though, even with lenses in it. Among my other ideas for these software controlled scanners are software/intelligent keystoning and deformation mapping to allow good projections on bumpy surfaces.

0 Comments:

Post a Comment

<< Home