// Simple Sonified Desktop Example in ChucK // Perry R. Cook, originally April 2011 // For Sonification Book by // Hermann, Hunt, Neuhoff, Eds. // Modified for ICAD Sonification in ChucK Workshop, June 2012 Shakers desktop => Pan2 panner => dac; 0 => desktop.preset; // Maraca sound 1.0 => desktop.noteOff; 0.5 => panner.pan; Shakers scrollbar => dac; 7 => scrollbar.preset; // sleigh bell sound 1.0 => scrollbar.noteOff; Hid hiMouse; HidMsg msgMouse; 0 => int mouseDevice; 0 => int butt; if (! hiMouse.openMouse(mouseDevice)) <<< "Error: couldn't use mouse!" >>>; [0.0, 0.0] @=> float features[]; 1 => int notDone; while (notDone) { hiMouse => now; while (hiMouse.recv(msgMouse)) { if (msgMouse.isMouseMotion()) { msgMouse.scaledCursorX => features[0]; msgMouse.scaledCursorY => features[1]; } if (msgMouse.isButtonDown()) 1 => butt; else if (msgMouse.isButtonUp()) 0 => butt; } // if (butt & features[0] > 0.545 & features[0] < 0.565) { if (butt) { <<< "Scrolling: ", features[0], features[1] >>>; 1.0 => desktop.noteOff; 1.0 => scrollbar.noteOn; 0.95 => scrollbar.decay; 10000.0 - (9990.0*features[1]) => scrollbar.freq; } else { <<< "Desktop: ", features[0], features[1] >>>; 2.0 * (features[0]-0.5) => panner.pan; 1.0 => desktop.noteOn; 10.0 + 5000*(1.0-features[1]) => desktop.freq; 0.9 => desktop.decay; } }