Recently in software Category

gorillas in ABS midst

| No Comments | No TrackBacks
tiny joe young

This is a test 3D print of an actual 3D scanned specimen!  It's been scaled down :)

"hard pressed..."

| No Comments | No TrackBacks
photo by Liz Hafalia for the SF chronicle

Julian Guthrie wrote a very nice chronicle article about my role within the CAS avee department, and more specifically, my involvement in the snow machine automation.
Here's a PDF as well:  snow_article_tosh.pdf

Cycling '74 (creators of max/msp) asked for a bit more here, and here is the original imlichent post!
Enhanced by Zemanta

Autodesk Design Night March 7th

| No Comments | No TrackBacks
design_night.jpg Who wants to hold our hand!?
"I just wanna hold your hand" is the participatory light show!

Capacitive touch proto w/EL panel feedback

| No Comments | No TrackBacks

Keeping it TRON, and learning from mistakes!

This is a proof of concept, demonstrating video control via capacitive touch sensors with electroluminescent feedback.  The MCU interacts with an ATMEL QT1111, while PWM controlling the high voltage EL panel through a fet and triac.  In turn it talks serial with our computer, serving out some blown-out HD video.

The atmel qt1111 can sense up to 11 inputs and is configurable for up to 10mm of sense gap.  Here we are transmitting through 6mm of tempered glass, and finally, have gotten a fast response time...which needs some background explanation:

We've used this set-up before for a previous install.  The propeller MCU speaks SPI with the qt1111, then prints the result over serial to the CPU.  This was simple and elegant, and it worked--though a bit laggy.  But at the time, we had little time to improve code.  So it was installed as is.  Flash forward to now:  another capacitive touch interactive.  This time, we can't have the lag.  All of the embedded software settings on the atmel IC were teaked, as were the noise reduction resistors and sense capacitors.  But still, we had a 1-2 second detection time.  We needed more like 100ms.  The "Print" function was dropped for a byte transmission on a whim, and low and behold, we have the speed.  The entire time, I thought it was the qt1111 that needed work, when really, the Print function on the MCU side was the time hog!  And well in hindsight, it hurts to make that nullifying realization-- for what good reason was I using print?    

Times like this, its nice to step-back and remember that it wasn't the only assigned project, but one of many.  Small details like this can have very large impacts, and if you aren't completely focused, or stretched to thin (ahem, i claim this option), than you'll feel the consequences. 

Incidentally, we'll be updating the embedded code to the previous install.  And though it's only really a "firmware update," it feels good to know that the problem has been solved.


smttoaster.jpg

the QT1111 surviving the black and decker toaster-oven!




Enhanced by Zemanta


"48 hours of holding hands!"

31 ideas, 80 people, 48 hours to design, build and code a project--only 5 to make the festival.  It culminated in a 5 minute presentation/demonstration within Intersection for the Arts.  Fortunately, project "i just wanna hold your hand" made it into october 20th festival!

It was an eye-opening weekend of talent and new possibilities.  And, a lot of hand holding!  More to come in the future...

Here's the project presentation and description by Ellen Keith, Yael Braha, Mark Roth, Tosh Chiang and Jasdeep Garcha

Conducting energy through people to stimulate tangible public interactions.

By interacting with one another people are able to transform their environment through play. Two metal hands are mounted to the wall. When two or more individuals complete the circuit they provoke audio-visual responses. The level of interactivity is determined by the flow of electricity through the individuals. The interaction can be tailored per installation; the core tool is the Arduino, and in this case we've experimented with Processing projections to activate blank city walls. storefronts, or pavement. This design allows for expansion as well as meaningful data collection. Also, we just like making people hold hands.




Enhanced by Zemanta

handy OS X command line tricks

| No Comments | No TrackBacks

apparently, this is the only photo i have of a computer!

There's nothing secret or new about the following list, and a lot of it pulls from unix.  It's certainly not all encompassing!  If I can remember to, I'll keep updating this entry with the nifty bits.  Also, its really hard to remember these, without needing to use them!  If you're really into apple secrets, check out secrets! 

Use 'serial' to connect a usb/serial ftdi modem etc...:  screen /dev/tty.YOURDEVICE BAUD ...substitute BAUD with, well, the baud rate and YOURDEVICE, with what you find using: ls /dev/tty.*

use 'nc' aka netcat to send/receive tcp/udp commands
i.e. nc -u 192.168.1.55 700 

Forgot to sudo and got denied?  Simply hit 'sudo !!' 

'pmset -g' lists you the power management settings, and pmset can change them all

need to make a user admin over the terminal?: 
sudo dseditgroup -o edit -a usernametoadd -t user admin 
sudo dseditgroup -o edit -a usernametoadd -t user wheel

use 'top' to see more than 'ps'

'crontab -e' well, kinda obvious...

osx version?  'sw_vers' will give you a little, 'system_profiler' all of it

want to read only the last 20 lines of a log file?: 'tail -c 20 system.log'
read xkcd? 'open http://uni.xkcd.com/' ;)

need to invent an admin?  Use single-user mode and:
    /sbin/fsck -y
    /sbin/mount -uaw
    rm /var/db/.AppleSetupDone
    reboot
    ...this let's you own, really any os x machine, though its not fun to go through the apple welcome stuff again...

    how much battery is left? 'ioreg -l | grep Capacity'
    ioreg has a plethora of info and is worth running without the pipe.   If you need to find out any other peripheral info in ioreg, you can change the grep option.

    i'll add more soon!
    Enhanced by Zemanta

    ...eventually, these lights program you!

    A max/msp project listing has been created here.  It gives a quickie description of how the attraction works.  The LED's pictured above are what illuminate the 1989 and 1906 alamo square skyline.  However, the photo does not give justice to their intensity.  I oft found myself siren-eyed from watching them pulsate!



    Enhanced by Zemanta

    exhibit tremor control

    | No Comments | No TrackBacks
     
    "looks different at night?"

    So its over.  Everything is installed, everything works, and works pretty well!  It felt like winning tetris.  The team came together and crafted custom code, hardware, audio, lighting effects, parallelograms & trapezoids--so much stuff!  Time to rest now :)


    a revision 1 of a capacitive touch board.


    the shakehouse exit portal where much of my time was spent.


    developing on a 42" monitor at my bench...

    Kinect Rover, MAX/MSP & Midi Triggers

    | No Comments | No TrackBacks
    "just in the nick of time, failure"

    One evening a friend asked if i'd be attending a musical event.  I guffawed and said, "of course not!"  The next day, I checked the site and noticed that my name had been attached to the event as someone who would: operate a robot through the catalyst of kinect.  Well, I hadn't recalled "officially" signing up for this, but with a week to go, proceeded in a focused manner.

    The first step was finding Ryan Challinor's synapse for OS X 10.6.  Synapse takes the kinect and provides UDP output/input.  This includes a cool monitor window, as well as skeleton tracking.  The only hard part part for me, was upgrading to OS X snow leopard, which I'd resisted due to the number of "wonky industrial" programs I have on my machine.  

    After that, it was a short manner of using the udpsend/receive objects to port everything into MAX/msp.  With that done, the sky is the limit.  But for my purposes, I just ensured that I could track the skeleton based on hits, or by "constant tracking" (in which you must prompt for the kinect data every two seconds or so).  i'll attach the patch for those interested.

    The robot itself is nothing fantastic.  Its a simple bot built off of an arduino pro 5V, sparkfun motor controller, and an 802.11b based xbee for data tx/rx, and a super cheap 2.4ghz wireless camera with audio.  It beeps too, and has had a few varieties of sensor interfaced :)

    In short order, the Kinect outputs data to MAX/MSP, which then uses the serial object to access the CPU's xbee, which transmits data back and forth with the xbee modem on the rover.  The rover arduino interprets the commands, and then moves.  In this way, kinect gestures could be used to control the robot!  Also, you can see where you're going, via the rover's wireless camera.

    BUT IT BROKE ONE HOUR PRIOR TO THE EVENT!

    Rather, I broke it by violating a simple rule:  ALWAYS USE A PROTECTIVE DIODE!  So with everything broken, the rover would not work for the evening.  Instead I augmented the patch so that gestures would play a midi piano; stepping right increased the scale, stepping left decreased the scale.  The nice bit was that the users got to see the skeleton version of themselves.  The sad thing, is that I found out how shotty the midi interface on my sampler is (as I tried to do this first and could only get sporadic results!)

    The attached patch will take synapse data and make it more usable in the max/msp environment.  It's an earlier version, and is certainly ugly.  You'll need to program the col object with the lines of text posted after the patch. 

    MAX PATCH:

    <pre><code>
    ----------begin_max5_patcher----------
    4729.3oc4cs0biiar9YO+JPbcdXlS40F23sb1JmJUk+AI47RxVtnjfr3ZIRc
    HormYSk82dvMJQJKR.IBSRYWyt1xTjfM95FMZzciF+qubysyx9Nq3VveD7O.
    2by+5K2bi7RhKbi9uu41Mwee953B4sc67rMaXok2dm56JYeuTc8UwoOw.kqR
    J.kYfejsKGrMtb0en5NWlkVlFugIu6+bdR75pugeayWkj9zi4r4kJZAA8P2C
    uCPCiD+B4AE+By+I3WzOUxBYKkM6W+IDppoR2sIIcMqTRqnZu4hjeS9lQXdC
    s+dy1UVcyPwE+2e4KhebmkXAuElwxqd2pFq7GaYp9vsIBXBb6LNvb6dx9rfg
    fHeIJfknP2fPT+w.7EfAy1UVlk1JFzryehtneHUwn224ZuKh6rK1ruftD9I6
    U9q4Mh1KXK6fKeorVUWkRjbXRXm8ajCXtWBfz1f8BdeYMevdd77m4eDDmt.T
    TFWtqXeONmUvex3xjrz5baofLND01n5yBC8oDE30pRh5jQcDqA3FNNZOZCbe
    Ig8p.T2jsfYBNkBOXknT+gSrTJjDP6EbFLsfy4YobQyzRPNaIm7WYBR8jcde
    hafTjRB0qeRn9SKHsZb++qIrLPzcivNAJifZoSbufR5zBJySdZU4xrrRCPYj
    uraSgNBL8gJvjzKvDNAAymSYlTaFoPQB12IfIBghb.ZBilfnIa8rrWM.mgdR
    3DSbyzPba+oNXjNLbBBm7EIsv.ZhfHeWNEDBR7TyAA6EbNwlVeMaoM5MoXhR
    uYji.SDxEC08mdfoE5M8TfIAG3zYzog8BK8ldXoMZM0fIlfbzjPT0jZdndgl
    zoGZZgRShutWG5ng4Qpg4zdY2NjLwraOKuHyjM6pES6tIygPWLHGOsPxUr3E
    Fc0gRjzG5HK1It.GGIOkVl8zSqYc5ozS1OpakoZnXneK9I7DXlGUMJ1uMeKZ
    Ajgh7GGuNtgUlmwIWHzRmqdVhSdMbcV.pS2qGcZa+vu2te7R7udqVU6q7yrZ
    VWGrjOXMwwKazHJvab7YuSwUkGtbEtB0yfG50Gb0+pGWq72iqfU85eTAa4Rg
    0fQBVOsBxcoaim+L.J9mILu1utTDjp8JtjuDD0oBy.G36AxXOvFp7BCMvERf
    QZuODD0GAvnq+w0dDGhpgQJskAg8.UCgW+np1gtNBU0q5KHnOnJ5yqxxPcPz
    TPmAckg3qdckQJGViUtdouheAgj9aZYH4CvfZhKQUse15kgkgzqdTsJXMtAU
    8Cw82txPuOupJCPA1aVYn+0uYkHTX2RLmYJqnhUlRL7Rk+B9.rLbUtV3HX0S
    mBPgn9.qgeD7tguKgUrxtHUtNdovZzmWskdZmoqLP2f1xH3Uu1Rs.Ck.cg3G
    0Op+heQnq9Q0Tk1MWgp5Yv6kmMhvW+npNSKbCpRTo1ZOQUxmWUkT0pmPTeaT
    URGGUkmUXAOgPhNtU9Vr2APAzwINd47lkAdnJmYer3YF+szwVlPv2uPlNVYE
    HlnVUV26p.Tv0uRGerN21bTT8ToJGB0GO+4e8a2q19eWAqPsGsP8wiV9W+N+
    uJ+4bErRTqRC0qXkB+LGTOeoFxPqhoG5pe4DZskXOemDRu.sxx9rbBe5GEkk
    tBUU5HPv9X3qu2GEckNBUC0NzB1m.k56+INjdpDEKzlH54Gb0qojp27Etwue
    gJwtdZV40eX5oHrCQ0.kpgdZU40u6rpx8cGgpvf9aToO9SbD8TIcrU1T5St5
    0TFnRycGMOsud2qfH8P5y65O8OCnPGhpdQJG+i5STR8t9iRZ0dawQnpNkFQ8
    IHodgehilmZFq.aBlmWzG.MkFxqqyy+9QTGH8g9.noD6RTU2Z8xmFdW+VpWs
    40bCpRzsVu7oA8SbdOPU635.ahkGcrRRrNC+kXCS931rhGmks3GfGj6D0Z+c
    0178nKI2G0GcMw9T+nKIpC.0tz9JsvwW63lae8B43q0nAq5RqSRYyy1kVVeu
    uc5n2Yy+egRBJY.kib870af91DEbfa.QNLTn+152ifdR8BpEEXB9dutFcf6+
    VYDOEKUf5b0CSHlKUfH5Uz79mGJfiNCTXjlmdCqnH9I1aFd7vaJFTVpx4BSV
    .E5fq4TRQdCbRnhDd8rCfOOu0nSXBpExKjIo++KLXCxQFfzO6PpuBlvtsCg3
    fIenNDs9sD.xvVo+tC+tO9+SUXOUIvF0uSPBS6+3JhyUAIscRlvR+ZFGH3FB
    APtt9m5QTKFP4sTbUlQ2FNgGI8OmVXpDL68nnLDpc6op3RgocI5DPFmRBaaR
    NohO3XYDcUJzCppQtjtDQZwou3wBOb9.lPcArPWYhjl41JXP+fNccUgYxyGa
    dBaO70YIwtpHyQiBLmWqFbg26m.dNeE8fG96Er7hGhegwd3uvJdtLa6CKSRm
    upnb2xkO7rv90xGjyhTbe42OsgsDGORopHh3Us25PUyDeJ.jFLolZYd1ZCqR
    teNP.Aw5QPJSdi5Z4xtvABT8UK3BIKdj2pbR4w3xx7D93D0YOvM6gnatkw0f
    rXeYlRApNBZ2Bh2sHICveqkWzoRfdYkpYkzSR2p4utnhkUmT35UOBpVlrl8B
    e3WSmldys0qxSvCk2Iesgog0HYNR9z5r4Oqg7pKtPTprOiFIaKK8vCHuiF+n
    4cljdr+dq+hi2st7wSCOM+9kwyYs9vmjmdysOkmrHKUPDMdRwkqdc7gH5pWP
    c5VdGowaOwCWlksdVb9KIEIyVyZvI3howoIahKYkIJ5AC2+bIa1lmnz.t+Zr
    zXdarpXdtPMP8lR8MubhuYA6kj4rWSVTtR1VGPqFGtG0jbZL.pw06ZfzQ16k
    Ux3hp0+t1w81hKfd0Q95gRuYht2LppdC1XbE4H53DBOsTI6Nnk4lJcLNFp1D
    +LS.WfPnrdHV+ldiJ9kqyhkVIo9PCj3hAXbXsnZ0E.icK.iGF.9+924R89cB
    qEIOkxgq9AmHcttnlAUEpvtPSO+VgS7k.mngANm+i4qY+NfZPR0IPJV47dTj
    TmqenQHM3pDRGJIT8BhTVnXg.Jb5hlreaQ77e2zHx.UGVUp3odU+rsN79fH2
    cGdTllXHG1gnnZaEbyC6ngSWAE9Dk7F2tIUar16KbNUnB5nsrUBdCzQaE5Pi
    8bpCLzgUCPsG5vSWnqiAx5.yftGfuGPtGPu+br36NGaCHV48Tjx5ZDjXB0IQ
    tE0oWuBrHcQm1VAVBY5JvJIkNQtlfU6hRU4lb0Oac0Zj1WuVGSMT6apJ+5hV
    71SfEGVetvghsrTWYGQ78mFjJx1kOuBBpj+AnFcpErhxjz8tq3ebfaCZ16Wk
    rXQS2CH4CIK1JcAp5gA+hUr0KhtwVP2B0pSM5lXCcSmVz8aY+sP2gSJ59Djy
    ooawpClPzsXoe1Q29SK7FaKcGLsvaeakuilVzM7bnazjgtkSWZEgSlV.tsx2
    nIGUirjpckPh9hbx+rhIVei5QGeko.tbxW4SqylEuVGUp8MbiWW815xCjWaG
    +N+yzG9YYPk+SO9D2D1cob6TSRWlA.+D.72DGA4yi2UvJ.kqX.tAr++6RxYK
    VyRepbk7vJ9QIqheikY4+PPq.cXtkGd4yX.Q3o.Kyy1.9q+HMdaA6NPQFu4h
    KEGs47lOkeKLvqhKHdIy2kmKdjWhWui2Hw4r6+mo0HyingeVtJk+jjd+6EGN
    1z0mh5qxdErLNW9p1rqnDrI6E8MIaOPRJHFrHQXZNWZE7U9euYy2Ds.WF5om
    X47udURIf8BmntG.9KJ1r7cf7f20f1dCV7yhK2EssIN8G.kztnqxALwAVrLi
    wXK.KyxO7xAKXkJp7dMqg+ebrl+Ub4v0+fSny4xK4YqUOmrmWTdTWWdbxKRK
    MIgH3s06f2AVm8JuOugEmVb3IWjA32gn0X4GgAdM4NMy0sCc+J5Uvgelw1Fu
    NQvGpHAEuf+HIh9mBj38kjzcUPRwVNEvWbC3qax33T7Lwmk.5LFml+Fmr9+3
    M5hJ4FdKrkK7K.UwJgD+MW.GbX+Ir+k8+.vM+5WyxWun92KPKRy6oXdNikd3
    l3nvCKXaKW8n3vlV2w+IU2lybxdUglh90Nkb9LNP8Td1NdaK5JYKkWU1FfjM
    7APxWaVJmwJFeH9RNRk2Y+DJ9yp690UYqqZvY6VtjkKT+puAY6JtqJQMQaC9
    JWtgSsfsr7hrzepXU7V9WUJV7Jm6sDjlwePljOpdruIVmjtIa8AERVhmNV8R
    N7z2exjXAEdQ6LJUMSTkPsT8N6wyqsrfbjNgXG1rfjnRaGhdCMP6NAZ8mVoA
    Y8gSvAIM9IpcybiSJnVyieLZZkkj0gq+KmmxjZnQel4EEzYJFihFGnYG2Bmc
    lRYxlI7UqaZS0.FkOKO0.mR1Fs4o2J0yJZVIGP7guB+l3W2I9gVUm3iBseeE
    c3qhE4mF3VkNyB4Ch+lMLHQuZuwwcwzTmkK5ZEyI5F1raQQSqcA46jpRjm5f
    GOBagpRj23npzgaKYrZSuSPN4vq.qSk5dsE5gQSwMQ1PrCNzQEgR0GW4nNUu
    BwSqYdJ31D69YbvpbGjn1bKTR2PBbRk4wwa2xNbPK6ZDoJkr6REUT33ngxcS
    AiBU1tpOcPgvNmCt4Hz8yv1zmFGtbSeHb35Gu9cGNYr49iE5Hi7Fm4hOu8gQ
    KEWMswHD6O0gI5iN7dbnCGMR0p74YalwWqB3AsqMjqVG8dro8U1ppAIDNnS0
    BmdpCxXMEqr3U.DUzBPUAo.TUFJ.6KaEfpZZAXeYl.reCdCNTOJ.6mv10pd0
    EbHe0oCI0KpqYiBnW6K+IDcFpdk7v8pPUGm65+nhm13BpckesKH4cMthhEpu
    vdddyqznYNHCz7RxFpducYx2kKQ9XFRuTsaDtrPOU.9ZPy9I1XopD3FEYd+0
    gCdmUE2yy.CU8fg3awVED68dOqx681+DWc3EZwt+DMsprdaXk4Yh83B78vQ.
    JU7DUVzGf5dmoMwbAXaKX8cX0Ypyvabn9n7Np6ZNvjZ0Y6VrkqMdgxVI9+P7
    OQNTqutjirpJKBncZ8EBNoB5fZOycY6dS0tfR60mNcVV3jpOy487tASD6QAS
    2y4iKzmMt5C6PXm0rjQxKhm0zjsbfBq3+Xr8qkiCIJ2W.IW9p4njQZK5uH60
    TKjULbZ0DTqFP1PY4Ytuy0VpTuH32n4rwdyIV3q1s8xg2pyrdWAuJWTPpW21
    Oa3ENsfWwpptb.t5.IzKzE.bjGoVXotL70O5Cj3qpBrPoQt.cCiBdSnXNazM
    bZgtR6Z6s5Wbfa.XhNxYzd.vASK.VjKRWN9FpWKYPfKv2.sCM6k5gIVIrpel
    OnOVRvP2fuHT+wWuOTJHpNbxwshIm4QugNTG98.goSKDdYV9qw4KtbLVWGzw
    PmnDVefGzOgXxGIkvUmHG0ORx6A9hw8GemVt8o5zCVFxIYUTuV8M+PcSudAN
    uVoSuV4L+PkRuVcO+PEUuiCnXGW2yu7XF54o7YiJgS7TAMrshetKNtzP08+q
    7kzbelp3qGuwSzb22rgSZrocZaylHJHrG1tIucqlb5sYxaj0rklTuOSTkviS
    0to2ahBaMPMfzDJZBRUnfv56421np.uQfpPFoJ+QfpLxACBFVpJDaEGLZDnJ
    ibvP3HPUF4fgnAlp7sgCFRFApxLGjNBTkYN3.quJBZEGLXDnJybvvQfpLyAG
    X8UhDlyLGLBMBTkQNXDdDnJibvnAVekHzNl4f9gi.UYjC5GMBTkYKYF3YmEt
    G1BNHcDnJybPuQfpLxA8GXKjE9VxBNHbDnJybPzHPUl4fCrtcuHa3fd9i.UY
    jC5ELBTkQNn2.OiC0pUS3gFApxLGDNBTkQNHcXmcVpdLx.QcjcECBMEZhlfC
    OMEXfl7iFdZx2DMEN7zjmIZJX3oIpIZxe3oIhIZxa3oISJy8oCOMYRU9Q1bM
    HzjIE493Q.mLFZjgcYxd1fSvIGIIOMbFxn0X0xqfCrw4XqV19.aCE1JanvCr
    8lVFsM+IIUMr11IK0IloJz.6iJHdBJri7lf5EhrJtjng0CUQ1v9hF30FCsZ7
    GDNAYevg03kiAgIA+KvlfJGMr.kUACYfiPSjms3Dd3Dnrwcm3g0CdX6L8bfi
    vsUlHL4rPeX0DPCldYclGZ5QSTazD3MvRSSvLFzyehx6LqIXXmtyJhJXXUYF
    PrFnFx0EOEW+BwF8AHh+HPUlmGdXcatczj2HfTFCtGcLjpHFoJzzyshCrJcj
    c5zo9i.UYN3rQi.UYNYRHi.UYTV2OXDnJpwD5ZfcBafUSAFPmd5EBvi.+yyX
    JURGApx2HUAGApJvXBDOF5PCMRUigbUjQo8gNEvsJfCQCc5xaiOEv8JLH7+3
    e+k+C.e5.AC
    -----------end_max5_patcher-----------
    </code></pre>

    -------------------------------------------

    joints.txt:
    1, /torso_trackjointpos 1;
    2, /head_trackjointpos 1;
    3, /leftknee_trackjointpos 1;
    4, /leftfoot_trackjointpos 1;
    5, /leftelbow_trackjointpos 1;
    6, /lefthand_trackjointpos 1;
    7, /rightknee_trackjointpos 1;
    8, /rightfoot_trackjointpos 1;
    9, /rightelbow_trackjointpos 1;
    10, /righthand_trackjointpos 1;




    Enhanced by Zemanta

    fountain, automation and programming

    | No Comments | No TrackBacks
    ]

    ...a blurb for now, as this is under development, though deployed:

    COMPONENTS:
    -16 pop jets
    -6 laminar jets
    -2.1 1000w PA
    -1 plc 
    -1 Midi to digital showcontroller
    -1 mac mini
    -max/msp
    -4 vfd's
    -DAW & midi synthesizer (for programming)


    ...the first thing people notice are the laminar, or "leap" jets (built and installed by the awesome people @ Sundance Water Design).  In fact, a spectator inquired as to wether or not an emulsion had been added to the water.  But the way it really works is quite simple.  An inline cartridge of tubes attaches to a flow controlled inlet--thus diminishing turbulence (ripple and bubbles) and making the water clear.  As it exits, the water is deflected by a solenoid-controlled beam of water.  This beam "splits" the clear water and deflects it back into the basin.  When the solenoid engages, the splitter water stops, and the clear, laminar water, shoots out of the basin.  In effect, its like a replacing the voltage in a transistor with water (water controlled water)!  It's all very hypnotizing to watch.

    After the hydraulic aspects were installed, the next step was/is integrating the audio, additional control systems, and actual programming.  The automation is working via max/msp and GUI, and is still being developed.  The programming to trigger the jets is done via MIDI.  Midi scores are created via max/msp & synthesizer, and are merged with the audio via Protools.  The audio and midi files are then bumped to the mac mini, which shoots the midi triggers to the MediaMation MOE--which can be very cranky.

    The MOE is a fantastic device, and it's easy to see why its used:  its a versatile showcontroller that can be programmed via web browser.  Anyone can set it up with a basic understanding of what they are doing.  Navigation, IO assignments, logic, serial control, pwm, events, routing, etc--all done by drop boxes and pop-up windows.  The tediousness of it all is incredibly trying; if only one could upload a control script or code!  But, as I found out, you sorta can.  The controller arrived with MIDI control CH #0, manipulating the Variable Frequency Drive, which controls the height of the water.  Unfortunately the synthesizer slider control is set in stone at #1, so, piece of cake right?  Opened up the browser, deleted (like an idiot) the trigger and re-assigned it to #1.  But I couldn't.  The web browser would not let me assign the channel as it had been programmed!?

    So, instead i went to the JAVA based utility program, which allows you to pull the 5 or six config files from the MOE, and edit within a GUI.  In this case, the utility would also not allow me to make the necessary reversion/edit (and this had nothing to do with permissions).  So, instead I went straight to the config file, hand edited it with the logical substitutions and reloaded the code.  Bam, perfect.  But, for a good while, I was seriously freaking out about having "lost" automated height control.   

    After that, there was some max/msp object juggling to get midiout with control values and single vs. multiple track midi.     

    Now, its just nailing the fringe aspects of the automation and programming 5 more songs.  Normally I focus on the infrastructure of a system, whereas here, I'm also in the position of programmer/content creator, which gives this project a heavy load, but makes me incredibly devoted to it.

    In fact, DMX may soon be integrated into the system! 

     ...to be continued

    Enhanced by Zemanta

    About this Archive

    This page is an archive of recent entries in the software category.

    robots is the previous category.

    Find recent content on the main index or look in the archives to find all content.