<div>
                    Thanks, that worked. Is there a way to get chuck to list the hids present, like --probe does with audio interfaces?
                </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>
                 
                <p style="color: #A0A0A8;">On Tuesday, September 18, 2012 at 8:19 PM, Spencer Salazar wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div>Hey Jeff,</div><div><br></div><div>One issue that popped up on 10.7 is that builtin trackpads would show</div><div>up twice in the list of available mouse devices, and only the second</div><div>one (index #1) would actually produce input. So changing the device</div><div>number to 1 when opening the mouse will probably fix it for 10.7</div><div>users, as it does on my (10.7) machine.</div><div><br></div><div>Its curious that this is not an issue on 10.8, though. Weird.</div><div><br></div><div>spencer</div><div><br></div><div><br></div><div>On Wed, Sep 19, 2012 at 1:14 AM, Jeff Albert <<a href="mailto:jvalbert@loyno.edu">jvalbert@loyno.edu</a>> wrote:</div><blockquote type="cite"><div><div>Hi all,</div><div><br></div><div>We are doing a piece in our laptop orch that uses Hid input from the</div><div>keyboard and mouse. The group does not have matching machines. All but 1 are</div><div>Macs, with the OS ranging from 10.6.x to 10.8.2. The code (pasted below)</div><div>works on the windows machine and the 10.6 and 10.8 Macs, but not on any of</div><div>the machines running OS 10.7.4.</div><div><br></div><div>Thoughts?</div><div><br></div><div>Thanks,</div><div>Jeff</div><div><br></div><div>--</div><div>Jeff Albert</div><div>Assistant Professor (Extraordinary) of Music Industry Studies</div><div>Loyola University New Orleans</div><div>Office: Communications/Music Complex 428P</div><div>Office Phone: (504) 865-2606</div><div>Google Voice: (504) 315-5167</div><div><a href="mailto:jvalbert@loyno.edu">jvalbert@loyno.edu</a></div><div><a href="http://www.loyno.edu/~jvalbert">http://www.loyno.edu/~jvalbert</a></div><div><br></div><div><br></div><div>// ----------------------------------------------------------------</div><div><br></div><div>// Mouse Bow (v1)</div><div><br></div><div>// by Jeff Lipscomb (February 9, 2010)</div><div><br></div><div>//</div><div><br></div><div>// The keyboard controls the pitch of this instrument,</div><div><br></div><div>//    while the mouse controls both the loudness and the timbre.</div><div><br></div><div>// Clicking any button will turn the note on,</div><div><br></div><div>//    while unclicking that button will turn it off.</div><div><br></div><div>// The SPEED of the left-right motion controls how loud the note is</div><div><br></div><div>//    (the faster the motion, the louder it will be.)</div><div><br></div><div>// The up-down position of the mouse on the screen controls how</div><div><br></div><div>//    bright/complex the note's timbre will be.</div><div><br></div><div>//    (the higher up, the more brighter it will be.)</div><div><br></div><div>//</div><div><br></div><div>// (push key that wasn't mapped for a really cool sound, like '~')</div><div><br></div><div>// ----------------------------------------------------------------</div><div><br></div><div>//</div><div><br></div><div>// some tuning and timbre-related variables</div><div><br></div><div>600.0 => float cFrq;</div><div><br></div><div>18.07 => float nDiv;</div><div><br></div><div>2.01 => float mRat;</div><div><br></div><div>950.0 => float hFlt;</div><div><br></div><div>400.0 => float lFlt;</div><div><br></div><div><br></div><div>// initialize and test for a mouse</div><div><br></div><div>Hid hi;</div><div><br></div><div>HidMsg msg;</div><div><br></div><div>0 => int device;</div><div><br></div><div>if( me.args() ) me.arg(0) => Std.atoi => device;</div><div><br></div><div>if( !hi.openMouse( device ) ) me.exit();</div><div><br></div><div><br></div><div>// UGen guts</div><div><br></div><div>SinOsc mod => SinOsc car => ADSR e => LPF f1 => HPF f2 => Chorus c => JCRev</div><div>r => dac;</div><div><br></div><div>e.set( 10::ms, 5::ms, .85, 10::ms );</div><div><br></div><div>e.keyOff();</div><div><br></div><div><br></div><div>// initial parameters for the UGens</div><div><br></div><div>cFrq => car.freq;</div><div><br></div><div>cFrq * mRat => mod.freq; //1.07aa</div><div><br></div><div>hFlt => f1.freq;</div><div><br></div><div>lFlt => f2.freq;</div><div><br></div><div>1000.0 => mod.gain;</div><div><br></div><div>0.0 => e.gain;</div><div><br></div><div><br></div><div>// sync is for an FM instrument</div><div><br></div><div>2 => car.sync;</div><div><br></div><div><br></div><div>// initializing variables for controlling function</div><div><br></div><div>int base;</div><div><br></div><div>float a0;</div><div><br></div><div>float a1;</div><div><br></div><div>float a2;</div><div><br></div><div>float a3;</div><div><br></div><div>int count;</div><div><br></div><div><br></div><div>// initialize keyboard array</div><div><br></div><div>// MIDI pitch numbers are assigned to most of the keys</div><div><br></div><div>// which are represented by their ASCII numbers</div><div><br></div><div>int kb[112];</div><div><br></div><div>49 => kb[90];  // z</div><div><br></div><div>50 => kb[88];  // x</div><div><br></div><div>51 => kb[67];  // c</div><div><br></div><div>52 => kb[86];  // v</div><div><br></div><div>53 => kb[66];  // b</div><div><br></div><div>54 => kb[78];  // n</div><div><br></div><div>55 => kb[77];  // m</div><div><br></div><div>56 => kb[44];  // ,</div><div><br></div><div>57 => kb[46];  // .</div><div><br></div><div>58 => kb[47];  // /</div><div><br></div><div>59 => kb[65];  // a</div><div><br></div><div>60 => kb[83];  // s</div><div><br></div><div>61 => kb[68];  // d</div><div><br></div><div>62 => kb[70];  // f</div><div><br></div><div>63 => kb[71];  // g</div><div><br></div><div>64 => kb[72];  // h</div><div><br></div><div>65 => kb[74];  // j</div><div><br></div><div>66 => kb[75];  // k</div><div><br></div><div>67 => kb[76];  // l</div><div><br></div><div>68 => kb[59];  // ;</div><div><br></div><div>69 => kb[81];  // q</div><div><br></div><div>70 => kb[87];  // w</div><div><br></div><div>71 => kb[69];  // e</div><div><br></div><div>72 => kb[82];  // r</div><div><br></div><div>73 => kb[84];  // t</div><div><br></div><div>74 => kb[89];  // y</div><div><br></div><div>75 => kb[85];  // u</div><div><br></div><div>76 => kb[73];  // i</div><div><br></div><div>77 => kb[79];  // o</div><div><br></div><div>78 => kb[80];  // p</div><div><br></div><div>79 => kb[49];  // 1</div><div><br></div><div>80 => kb[50];  // 2</div><div><br></div><div>81 => kb[51];  // 3</div><div><br></div><div>82 => kb[52];  // 4</div><div><br></div><div>83 => kb[53];  // 5</div><div><br></div><div>84 => kb[54];  // 6</div><div><br></div><div>85 => kb[55];  // 7</div><div><br></div><div>86 => kb[56];  // 8</div><div><br></div><div>87 => kb[57];  // 9</div><div><br></div><div>88 => kb[48];  // 0</div><div><br></div><div><br></div><div>// initialize tuning function</div><div><br></div><div>// for a 10-TET tuning scheme instead of 12-TET</div><div><br></div><div>fun float midiTune( int x )</div><div><br></div><div>    {</div><div><br></div><div>        return cFrq * Math.pow( 2.0, ( x - 69 ) / nDiv );</div><div><br></div><div>    }</div><div><br></div><div><br></div><div>//the keyboard detect function</div><div><br></div><div>fun void thePits()</div><div><br></div><div>{</div><div><br></div><div>    Hid hi2;</div><div><br></div><div>    HidMsg msg2;</div><div><br></div><div><br></div><div><br></div><div>    0 => int device2;</div><div><br></div><div><br></div><div><br></div><div>    if( me.args() ) me.arg(0) => Std.atoi => device2;</div><div><br></div><div><br></div><div><br></div><div>    if( !hi2.openKeyboard( device2 ) ) me.exit();</div><div><br></div><div><br></div><div><br></div><div>    while( true )</div><div><br></div><div>    {</div><div><br></div><div>        hi2 => now;</div><div><br></div><div><br></div><div><br></div><div>        while( hi2.recv( msg2 ) )</div><div><br></div><div>        {</div><div><br></div><div>            if( msg2.isButtonDown() )</div><div><br></div><div>            {</div><div><br></div><div>                midiTune( kb[msg2.ascii] ) => a3;</div><div><br></div><div>                a3 * mRat => a2;</div><div><br></div><div>                set( base, a0, a1, a2, a3 );</div><div><br></div><div>            }</div><div><br></div><div>        }</div><div><br></div><div>    }</div><div><br></div><div>}</div><div><br></div><div><br></div><div>//sporking out the keyboard function</div><div><br></div><div>spork ~ thePits();</div><div><br></div><div><br></div><div>// custom function controls parameters of note</div><div><br></div><div>set( base, a0, a1, a2, a3 );</div><div><br></div><div><br></div><div>// infinite loop</div><div><br></div><div>while( true )</div><div><br></div><div>{</div><div><br></div><div><br></div><div>    // time advances when the mouse does something</div><div><br></div><div>    hi => now;</div><div><br></div><div><br></div><div><br></div><div>    // determines how to respond when mouse does something</div><div><br></div><div>    while( hi.recv( msg ) )</div><div><br></div><div>    {</div><div><br></div><div>        if( msg.isMouseMotion() )</div><div><br></div><div>        {</div><div><br></div><div>            // X-Axis controls how loud the note is</div><div><br></div><div>            if( msg.deltaX )</div><div><br></div><div>            {</div><div><br></div><div>                Std.fabs( msg.deltaX ) * .0083 - .0083 => a1; //sets gain</div><div><br></div><div>                set( base, a0, a1, a2, a3 );</div><div><br></div><div>            }</div><div><br></div><div>            // Y-Axis controls how bright the note is</div><div><br></div><div>            if( msg.deltaY )</div><div><br></div><div>            {</div><div><br></div><div>                Std.fabs( -msg.deltaY * .0083 + a0 ) => a0; //sets index</div><div>(brightness)</div><div><br></div><div>                set( base, a0, a1, a2, a3 );</div><div><br></div><div><br></div><div><br></div><div>            }</div><div><br></div><div>        }</div><div><br></div><div><br></div><div><br></div><div>        else if( msg.isWheelMotion() )</div><div><br></div><div>        {</div><div><br></div><div>            // for now the mouse wheel controls pitch</div><div><br></div><div>            if( msg.deltaY )</div><div><br></div><div>            {</div><div><br></div><div>                msg.deltaY * .8333 + a2 => a2; //sets carrier freq</div><div><br></div><div>                set( base, a0, a1, a2, a3 );</div><div><br></div><div>            }</div><div><br></div><div>        }</div><div><br></div><div><br></div><div><br></div><div>        else if( msg.isButtonDown() )</div><div><br></div><div>        {</div><div><br></div><div>            // pressing button presses the "bow" into the "string"</div><div><br></div><div>            msg.which => base;</div><div><br></div><div>            count++;</div><div><br></div><div>            if( count == 1 ) e.keyOn();</div><div><br></div><div>            10::ms => now;</div><div><br></div><div>            set( base, a0, a1, a2, a3 );</div><div><br></div><div><br></div><div><br></div><div>        }</div><div><br></div><div><br></div><div><br></div><div>        else if( msg.isButtonUp() )</div><div><br></div><div>        {</div><div><br></div><div>            // lifting button also lifts "bow" from the "string"</div><div><br></div><div>            msg.which => base;</div><div><br></div><div>            count--;</div><div><br></div><div>            if( !count )</div><div><br></div><div>            {</div><div><br></div><div>                e.keyOff();</div><div><br></div><div>                0.0 => a1; // just making sure each note starts from 0dB</div><div><br></div><div>            }</div><div><br></div><div>        }</div><div><br></div><div>    }</div><div><br></div><div>}</div><div><br></div><div><br></div><div><br></div><div>fun void set( int base, float v0, float v1, float v2, float v3 )</div><div><br></div><div>{</div><div><br></div><div>    //changes pitches</div><div><br></div><div>    v3 => car.freq;</div><div><br></div><div><br></div><div><br></div><div>    //changes mod freq</div><div><br></div><div>    v2 => mod.freq;</div><div><br></div><div><br></div><div><br></div><div>    //gain</div><div><br></div><div>    v1 => e.gain;</div><div><br></div><div><br></div><div><br></div><div>    //mod index</div><div><br></div><div>    ( 500 * ( v0 + 1 ) ) => mod.gain;</div><div><br></div><div>}</div><div><br></div><div><br></div><div><br></div><div>_______________________________________________</div><div>chuck-users mailing list</div><div><a href="mailto:chuck-users@lists.cs.princeton.edu">chuck-users@lists.cs.princeton.edu</a></div><div><a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a></div></div></blockquote><div>_______________________________________________</div><div>chuck-users mailing list</div><div><a href="mailto:chuck-users@lists.cs.princeton.edu">chuck-users@lists.cs.princeton.edu</a></div><div><a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>