I've been wanting to experiment with scanners as a high-resolution, realtime input interface... it turns out there is too much internal buffering in most scanner hardware that causes a lot of latency (250 - 500 ms). But I got something kind of working anyway:
I experimented with "linear multitouch" (used for music in systems like the continuum keyboard
), and scanning with feedback.
To get the scanner input, I had to switch over to Linux. It's actually easier to set up Open Frameworks on Ubuntu than it is on Windows... thanks Arturo! Once there, I used the SANE library
(Scanner Access Now Easy). There were some tricks I had to figure out, which I emailed the SANE developers list about
. If you have a USB scanner and Ubuntu, and want to try something similar, check out that post.
I've posted the source for a few demos, including an ofxSane.h (which has some parameters specific to my scanner, but might serve as a helpful skeleton): http://kylemcdonald.net/linear-multitouch/saneDemos.zip
Since these don't really work for realtime input... now I just have to think of somewhere they would work! :) Two other issues: the DOF is incredibly shallow, and this isn't a model I can continuously scan with. At the highest resolution and page length, it takes maybe 2 minutes and then there is a pause between acquisition cycles. If I had a scanner with a bigger DOF, I'd install it in a riverbed and watch the fish migrate :)