<div>
                    Hi all,
                </div><div><br></div><div>We are doing a piece in our laptop orch that uses Hid input from the keyboard and mouse. The group does not have matching machines. All but 1 are Macs, with the OS ranging from 10.6.x to 10.8.2. The code (pasted below) works on the windows machine and the 10.6 and 10.8 Macs, but not on any of the machines running OS 10.7.4.</div><div><br></div><div>Thoughts?</div><div><br></div><div>Thanks,</div><div>Jeff</div>
                <div><div><br></div><div><span style="background-color: rgb(255, 255, 255); ">--</span></div><span style="background-color: rgb(255, 255, 255); ">Jeff Albert</span><div style="background-color: rgb(255, 255, 255); ">Assistant Professor (Extraordinary) of Music Industry Studies</div><div style="background-color: rgb(255, 255, 255); ">Loyola University New Orleans</div><div style="background-color: rgb(255, 255, 255); ">Office: Communications/Music Complex 428P</div><div style="background-color: rgb(255, 255, 255); ">Office Phone: (504) 865-2606</div><div style="background-color: rgb(255, 255, 255); ">Google Voice: (504) 315-5167</div><div style="background-color: rgb(255, 255, 255); "><a href="mailto:jvalbert@loyno.edu" style="color: rgb(0, 106, 227); ">jvalbert@loyno.edu</a></div><div style="background-color: rgb(255, 255, 255); "><a href="http://www.loyno.edu/~jvalbert" style="color: rgb(0, 106, 227); ">http://www.loyno.edu/~jvalbert</a></div><div><br></div><div><br></div><div><p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// ----------------------------------------------------------------</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// Mouse Bow (v1)</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// by Jeff Lipscomb (February 9, 2010)</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// The keyboard controls the pitch of this instrument,</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//    while the mouse controls both the loudness and the timbre.</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// Clicking any button will turn the note on,</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//    while unclicking that button will turn it off.</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// The SPEED of the left-right motion controls how loud the note is</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//    (the faster the motion, the louder it will be.)</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// The up-down position of the mouse on the screen controls how</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//    bright/complex the note's timbre will be.</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//    (the higher up, the more brighter it will be.)</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// (push key that wasn't mapped for a really cool sound, like '~')</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// ----------------------------------------------------------------</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// some tuning and timbre-related variables</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">600</span>.<span style="color: #de9210">0</span> => <span style="color: #0433ff">float</span> cFrq;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">18</span>.<span style="color: #de9210">07</span> => <span style="color: #0433ff">float</span> nDiv;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">2</span>.<span style="color: #de9210">01</span> => <span style="color: #0433ff">float</span> mRat;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">950</span>.<span style="color: #de9210">0</span> => <span style="color: #0433ff">float</span> hFlt;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">400</span>.<span style="color: #de9210">0</span> => <span style="color: #0433ff">float</span> lFlt;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// initialize and test for a mouse</p>
<p style="margin: 0px; font-family: Monaco; ">Hid hi;</p>
<p style="margin: 0px; font-family: Monaco; ">HidMsg msg;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">0</span> => <span style="color: #0433ff">int</span> device;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">if</span>( <span style="color: #0433ff">me</span>.args() ) <span style="color: #0433ff">me</span>.arg(<span style="color: #de9210">0</span>) => Std.atoi => device;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">if</span>( !hi.openMouse( device ) ) <span style="color: #0433ff">me</span>.exit();</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// UGen guts</p>
<p style="margin: 0px; font-family: Monaco; ">SinOsc mod => SinOsc car => ADSR e => LPF f1 => HPF f2 => Chorus c => JCRev r => <span style="color: #0433ff">dac</span>;</p>
<p style="margin: 0px; font-family: Monaco; ">e.set( <span style="color: #de9210">10</span>::<span style="color: #0433ff">ms</span>, <span style="color: #de9210">5</span>::<span style="color: #0433ff">ms</span>, .<span style="color: #de9210">85</span>, <span style="color: #de9210">10</span>::<span style="color: #0433ff">ms</span> );</p>
<p style="margin: 0px; font-family: Monaco; ">e.keyOff();</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// initial parameters for the UGens</p>
<p style="margin: 0px; font-family: Monaco; ">cFrq => car.freq;</p>
<p style="margin: 0px; font-family: Monaco; ">cFrq * mRat => mod.freq; <span style="color: #729e12">//1.07aa</span></p>
<p style="margin: 0px; font-family: Monaco; ">hFlt => f1.freq;</p>
<p style="margin: 0px; font-family: Monaco; ">lFlt => f2.freq;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">1000</span>.<span style="color: #de9210">0</span> => mod.gain;</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">0</span>.<span style="color: #de9210">0</span> => e.gain;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// sync is for an FM instrument</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">2</span> => car.sync;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// initializing variables for controlling function</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">int</span> base;</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(4, 51, 255); ">float<span style="color: #000000"> a0;</span></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(4, 51, 255); ">float<span style="color: #000000"> a1;</span></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(4, 51, 255); ">float<span style="color: #000000"> a2;</span></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(4, 51, 255); ">float<span style="color: #000000"> a3;</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">int</span> count;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// initialize keyboard array</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// MIDI pitch numbers are assigned to most of the keys</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// which are represented by their ASCII numbers</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">int</span> kb[<span style="color: #de9210">112</span>];</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">49</span> => kb[<span style="color: #de9210">90</span>];  <span style="color: #729e12">// z</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">50</span> => kb[<span style="color: #de9210">88</span>];  <span style="color: #729e12">// x</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">51</span> => kb[<span style="color: #de9210">67</span>];  <span style="color: #729e12">// c</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">52</span> => kb[<span style="color: #de9210">86</span>];  <span style="color: #729e12">// v</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">53</span> => kb[<span style="color: #de9210">66</span>];  <span style="color: #729e12">// b</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">54</span> => kb[<span style="color: #de9210">78</span>];  <span style="color: #729e12">// n</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">55</span> => kb[<span style="color: #de9210">77</span>];  <span style="color: #729e12">// m</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">56</span> => kb[<span style="color: #de9210">44</span>];  <span style="color: #729e12">// ,</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">57</span> => kb[<span style="color: #de9210">46</span>];  <span style="color: #729e12">// .</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">58</span> => kb[<span style="color: #de9210">47</span>];  <span style="color: #729e12">// /</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">59</span> => kb[<span style="color: #de9210">65</span>];  <span style="color: #729e12">// a</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">60</span> => kb[<span style="color: #de9210">83</span>];  <span style="color: #729e12">// s</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">61</span> => kb[<span style="color: #de9210">68</span>];  <span style="color: #729e12">// d</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">62</span> => kb[<span style="color: #de9210">70</span>];  <span style="color: #729e12">// f</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">63</span> => kb[<span style="color: #de9210">71</span>];  <span style="color: #729e12">// g</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">64</span> => kb[<span style="color: #de9210">72</span>];  <span style="color: #729e12">// h</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">65</span> => kb[<span style="color: #de9210">74</span>];  <span style="color: #729e12">// j</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">66</span> => kb[<span style="color: #de9210">75</span>];  <span style="color: #729e12">// k</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">67</span> => kb[<span style="color: #de9210">76</span>];  <span style="color: #729e12">// l</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">68</span> => kb[<span style="color: #de9210">59</span>];  <span style="color: #729e12">// ;</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">69</span> => kb[<span style="color: #de9210">81</span>];  <span style="color: #729e12">// q</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">70</span> => kb[<span style="color: #de9210">87</span>];  <span style="color: #729e12">// w</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">71</span> => kb[<span style="color: #de9210">69</span>];  <span style="color: #729e12">// e</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">72</span> => kb[<span style="color: #de9210">82</span>];  <span style="color: #729e12">// r</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">73</span> => kb[<span style="color: #de9210">84</span>];  <span style="color: #729e12">// t</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">74</span> => kb[<span style="color: #de9210">89</span>];  <span style="color: #729e12">// y</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">75</span> => kb[<span style="color: #de9210">85</span>];  <span style="color: #729e12">// u</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">76</span> => kb[<span style="color: #de9210">73</span>];  <span style="color: #729e12">// i</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">77</span> => kb[<span style="color: #de9210">79</span>];  <span style="color: #729e12">// o</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">78</span> => kb[<span style="color: #de9210">80</span>];  <span style="color: #729e12">// p</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">79</span> => kb[<span style="color: #de9210">49</span>];  <span style="color: #729e12">// 1</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">80</span> => kb[<span style="color: #de9210">50</span>];  <span style="color: #729e12">// 2</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">81</span> => kb[<span style="color: #de9210">51</span>];  <span style="color: #729e12">// 3</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">82</span> => kb[<span style="color: #de9210">52</span>];  <span style="color: #729e12">// 4</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">83</span> => kb[<span style="color: #de9210">53</span>];  <span style="color: #729e12">// 5</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">84</span> => kb[<span style="color: #de9210">54</span>];  <span style="color: #729e12">// 6</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">85</span> => kb[<span style="color: #de9210">55</span>];  <span style="color: #729e12">// 7</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">86</span> => kb[<span style="color: #de9210">56</span>];  <span style="color: #729e12">// 8</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">87</span> => kb[<span style="color: #de9210">57</span>];  <span style="color: #729e12">// 9</span></p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #de9210">88</span> => kb[<span style="color: #de9210">48</span>];  <span style="color: #729e12">// 0</span></p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// initialize tuning function</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// for a 10-TET tuning scheme instead of 12-TET</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">fun</span> <span style="color: #0433ff">float</span> midiTune( <span style="color: #0433ff">int</span> x )</p>
<p style="margin: 0px; font-family: Monaco; ">    {</p>
<p style="margin: 0px; font-family: Monaco; ">        <span style="color: #0433ff">return</span> cFrq * Math.pow( <span style="color: #de9210">2</span>.<span style="color: #de9210">0</span>, ( x - <span style="color: #de9210">69</span> ) / nDiv );</p>
<p style="margin: 0px; font-family: Monaco; ">    }</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//the keyboard detect function</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">fun</span> <span style="color: #0433ff">void</span> thePits()</p>
<p style="margin: 0px; font-family: Monaco; ">{ </p>
<p style="margin: 0px; font-family: Monaco; ">    Hid hi2;</p>
<p style="margin: 0px; font-family: Monaco; ">    HidMsg msg2;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; ">    <span style="color: #de9210">0</span> => <span style="color: #0433ff">int</span> device2;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; ">    <span style="color: #0433ff">if</span>( <span style="color: #0433ff">me</span>.args() ) <span style="color: #0433ff">me</span>.arg(<span style="color: #de9210">0</span>) => Std.atoi => device2;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; ">    <span style="color: #0433ff">if</span>( !hi2.openKeyboard( device2 ) ) <span style="color: #0433ff">me</span>.exit();</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">        </p>
<p style="margin: 0px; font-family: Monaco; ">    <span style="color: #0433ff">while</span>( <span style="color: #0433ff">true</span> ) </p>
<p style="margin: 0px; font-family: Monaco; ">    { </p>
<p style="margin: 0px; font-family: Monaco; ">        hi2 => <span style="color: #0433ff">now</span>; </p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">        </p>
<p style="margin: 0px; font-family: Monaco; ">        <span style="color: #0433ff">while</span>( hi2.recv( msg2 ) ) </p>
<p style="margin: 0px; font-family: Monaco; ">        { </p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #0433ff">if</span>( msg2.isButtonDown() ) </p>
<p style="margin: 0px; font-family: Monaco; ">            { </p>
<p style="margin: 0px; font-family: Monaco; ">                midiTune( kb[msg2.ascii] ) => a3;</p>
<p style="margin: 0px; font-family: Monaco; ">                a3 * mRat => a2;</p>
<p style="margin: 0px; font-family: Monaco; ">                set( base, a0, a1, a2, a3 );</p>
<p style="margin: 0px; font-family: Monaco; ">            }</p>
<p style="margin: 0px; font-family: Monaco; ">        }</p>
<p style="margin: 0px; font-family: Monaco; ">    }</p>
<p style="margin: 0px; font-family: Monaco; ">}</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">//sporking out the keyboard function</p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">spork</span> ~ thePits();</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// custom function controls parameters of note</p>
<p style="margin: 0px; font-family: Monaco; ">set( base, a0, a1, a2, a3 );</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); ">// infinite loop</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(4, 51, 255); ">while<span style="color: #000000">( </span>true<span style="color: #000000"> ) </span></p>
<p style="margin: 0px; font-family: Monaco; ">{</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">    </span>// time advances when the mouse does something</p>
<p style="margin: 0px; font-family: Monaco; ">    hi => <span style="color: #0433ff">now</span>;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">        </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">    </span>// determines how to respond when mouse does something</p>
<p style="margin: 0px; font-family: Monaco; ">    <span style="color: #0433ff">while</span>( hi.recv( msg ) )</p>
<p style="margin: 0px; font-family: Monaco; ">    { </p>
<p style="margin: 0px; font-family: Monaco; ">        <span style="color: #0433ff">if</span>( msg.isMouseMotion() ) </p>
<p style="margin: 0px; font-family: Monaco; ">        {</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">            </span>// X-Axis controls how loud the note is</p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #0433ff">if</span>( msg.deltaX ) </p>
<p style="margin: 0px; font-family: Monaco; ">            { </p>
<p style="margin: 0px; font-family: Monaco; ">                Std.fabs( msg.deltaX ) * .<span style="color: #de9210">0083</span> - .<span style="color: #de9210">0083</span> => a1; <span style="color: #729e12">//sets gain</span></p>
<p style="margin: 0px; font-family: Monaco; ">                set( base, a0, a1, a2, a3 );</p>
<p style="margin: 0px; font-family: Monaco; ">            }</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">            </span>// Y-Axis controls how bright the note is</p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #0433ff">if</span>( msg.deltaY )</p>
<p style="margin: 0px; font-family: Monaco; ">            {</p>
<p style="margin: 0px; font-family: Monaco; ">                Std.fabs( -msg.deltaY * .<span style="color: #de9210">0083</span> + a0 ) => a0; <span style="color: #729e12">//sets index (brightness)</span></p>
<p style="margin: 0px; font-family: Monaco; ">                set( base, a0, a1, a2, a3 );</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">            </p>
<p style="margin: 0px; font-family: Monaco; ">            } </p>
<p style="margin: 0px; font-family: Monaco; ">        }</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; ">        <span style="color: #0433ff">else</span> <span style="color: #0433ff">if</span>( msg.isWheelMotion() ) </p>
<p style="margin: 0px; font-family: Monaco; ">        { </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">            </span>// for now the mouse wheel controls pitch</p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #0433ff">if</span>( msg.deltaY ) </p>
<p style="margin: 0px; font-family: Monaco; ">            { </p>
<p style="margin: 0px; font-family: Monaco; ">                msg.deltaY * .<span style="color: #de9210">8333</span> + a2 => a2; <span style="color: #729e12">//sets carrier freq</span></p>
<p style="margin: 0px; font-family: Monaco; ">                set( base, a0, a1, a2, a3 );</p>
<p style="margin: 0px; font-family: Monaco; ">            }</p>
<p style="margin: 0px; font-family: Monaco; ">        }</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">       </p>
<p style="margin: 0px; font-family: Monaco; ">        <span style="color: #0433ff">else</span> <span style="color: #0433ff">if</span>( msg.isButtonDown() ) </p>
<p style="margin: 0px; font-family: Monaco; ">        {</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">            </span>// pressing button presses the "bow" into the "string"</p>
<p style="margin: 0px; font-family: Monaco; ">            msg.which => base;</p>
<p style="margin: 0px; font-family: Monaco; ">            count++;</p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #0433ff">if</span>( count == <span style="color: #de9210">1</span> ) e.keyOn();</p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #de9210">10</span>::<span style="color: #0433ff">ms</span> => <span style="color: #0433ff">now</span>;</p>
<p style="margin: 0px; font-family: Monaco; ">            set( base, a0, a1, a2, a3 );</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">            </p>
<p style="margin: 0px; font-family: Monaco; ">        }</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">                          </p>
<p style="margin: 0px; font-family: Monaco; ">        <span style="color: #0433ff">else</span> <span style="color: #0433ff">if</span>( msg.isButtonUp() ) </p>
<p style="margin: 0px; font-family: Monaco; ">        { </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">            </span>// lifting button also lifts "bow" from the "string"</p>
<p style="margin: 0px; font-family: Monaco; ">            msg.which => base;</p>
<p style="margin: 0px; font-family: Monaco; ">            count--;</p>
<p style="margin: 0px; font-family: Monaco; ">            <span style="color: #0433ff">if</span>( !count ) </p>
<p style="margin: 0px; font-family: Monaco; ">            { </p>
<p style="margin: 0px; font-family: Monaco; ">                e.keyOff();</p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">                </span><span style="color: #de9210">0</span><span style="color: #000000">.</span><span style="color: #de9210">0</span><span style="color: #000000"> => a1; </span>// just making sure each note starts from 0dB</p>
<p style="margin: 0px; font-family: Monaco; ">            }</p>
<p style="margin: 0px; font-family: Monaco; ">        }</p>
<p style="margin: 0px; font-family: Monaco; ">    }</p>
<p style="margin: 0px; font-family: Monaco; ">}</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">        </p>
<p style="margin: 0px; font-family: Monaco; "><span style="color: #0433ff">fun</span> <span style="color: #0433ff">void</span> set( <span style="color: #0433ff">int</span> base, <span style="color: #0433ff">float</span> v0, <span style="color: #0433ff">float</span> v1, <span style="color: #0433ff">float</span> v2, <span style="color: #0433ff">float</span> v3 )</p>
<p style="margin: 0px; font-family: Monaco; ">{ </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">    </span>//changes pitches</p>
<p style="margin: 0px; font-family: Monaco; ">    v3 => car.freq;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">    </span>//changes mod freq</p>
<p style="margin: 0px; font-family: Monaco; ">    v2 => mod.freq;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">    </span>//gain </p>
<p style="margin: 0px; font-family: Monaco; ">    v1 => e.gain;</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; ">    </p>
<p style="margin: 0px; font-family: Monaco; color: rgb(114, 158, 18); "><span style="color: #000000">    </span>//mod index </p>
<p style="margin: 0px; font-family: Monaco; ">    ( <span style="color: #de9210">500</span> * ( v0 + <span style="color: #de9210">1</span> ) ) => mod.gain;</p>
<p style="margin: 0px; font-family: Monaco; ">}</p>
<p style="margin: 0px; font-family: Monaco; min-height: 17px; "><br></p></div></div>