scanner hacking: linear multitouch

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:

http://vimeo.com/5765795

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! :slight_smile: 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 :slight_smile:

1 Scanner spectroscopy: prism separates light onto a scan head for
cheap/DIY real-time spectroscopy of various substances/materials.

no way!!?? :wink:

[quote author=“arturo”]> 1 Scanner spectroscopy: prism separates light onto a scan head for

cheap/DIY real-time spectroscopy of various substances/materials.

no way!!?? ;)[/quote]

Yeah! I still want to do that, but I don’t have a prism handy. If I can find one, maybe I’ll salvage an old computer together and let it sit outside… collecting the spectra of daylight over time. I’d like to see a picture of sunlight over the period of a day :slight_smile:

Hi, I’m trying to run these examples but I’m encountering some problems…
I’m on a Mac OS 10.6.8, running Ubuntu 11.10 on Virtual Box.
I installed openFrameworks v.0.07 and tried to run your examples on Code::Blocks, following the steps you wrote to SANE developers for the drivers installers.
The first example runs without problems, because it doesn’t use oF classes.
The others don’t work, maybe because of some differences with the version you used. So I tried installing versions 0.06 and 0.062 but there are problems with some libraries so they do not work.
Next I tried to put the code of your first example in some emptyExample of version 0.07 but it doesn’t recognize some variables, although things like sane version are printed to the console, so I guess that the include is working but I’m not linking correctly the library -lsane.
Another way that I’ve tried was to include oF classes from the only example that’s working but I don’t know how to do it: I tried including mainOf and putting the directories of the main classes but it’s not working.
I know that almost 3 years are passed so maybe you don’t remember enough… Anyway any advice is appreciated…
Thanks,
Giorgio