• Posts
  • RSS
  • ◂◂RSS
  • Contact

  • Blinky Lights

    October 21st, 2018
    contra, jammer, music  [html]
    My rhythm stage setup now has a lot of settings: toggles for piano, jawharp, bass winds, high and low drums, high and low footbass, plus which instrument I've set my jammer buttons to (accordion, sax, etc). I've been using my computer screen to show status for each of these settings, in text-only shorthand:
            dh             acc
      fh    dh             acc
      fh                   acc
      fh                   sax
    
    That's saying I:
    1. turned on high drums
    2. turned on high footbass
    3. turned off high drums
    4. switched buttons from accordion to sax
    My laptop isn't easy to see when I'm playing, though, so I wanted some little LEDs to show status. I asked for suggestions and ended up going with the Blinkstick Strip:

    I have the lights set at 20% brightness for now; I find that at full brightness they're painful to look at. Stages are usually reasonably dark, so this seems about right. They're still too bright for my camera to do a good job with, though.

    For most of this project I've been using as low level a Mac API as possible because I want to minimize latency, this isn't needed with status lights. It comes with a python interface (blinkstick-python) and I wrote a little UDP wrapper (blinksticknet) which I've now updated my central code to use (jammermidilib.h:set_light). The protocol is just four byte udp packets: one byte for which light, then one byte each for red, green, and blue channels. Here's what this looks like end to end:

    (The thing I'm demonstrating at the beginning is that for me left foot I can have it make any combination of drums / no drums and bass / no bass. I'm representing this with one light that can be red or not, and blue or not, with purple for when they're both on at once.)

    Comment via: google plus, facebook

    Recent posts on blogs I like:

    EDT with updating double counts

    I recently got confused thinking about the following case: Calculator bet: I am offered the opportunity to bet on a mathematical statement X to which I initially assign 50% probability (perhaps X = 139926 is a quadratic residue modulo 314159). I have acce…

    via The sideways view October 12, 2021

    Meditations on newborns

    [Content: death.]I wrote most of this a couple of months ago when Nora was a newborn, but the first few months are not that conducive to finishing blog posts. New babies put you into a liminal period, both in your own experience and in how others treat yo…

    via The whole sky October 3, 2021

    The value of in-house expertise

    An alternate title for this post might be, "Twitter has a kernel team!?". At this point, I've heard that surprised exclamation enough that I've lost count of the number times that's been said to me (I'd guess that it's more tha…

    via Posts on Dan Luu September 29, 2021

    more     (via openring)


  • Posts
  • RSS
  • ◂◂RSS
  • Contact