Category Archives: Phil

Phil 10.4.12

8:00 – 4:00 FP

  • Cleaning up and packing the project and hardware for move.
  • Got a new GWT in Action. and let Dong and Mike know about it
  • Hmm. There’s a thing called Restlets. Looking into that.
  • Started a throttler for the sound JSON writer.
  • Looks like I start AMPERE on the 11th. Reserved a truck for the 7th-8th. Penske reservation number is 30588476. (06/07/2012 at 8:00 AM, 8685 Washington Blvd, Penske Baltimore, Jessup, MD 20794)

Phil 5.31.12

8:00 – 4:30FP

Phil 5.30.12

7:30 – 4:30, 6:30 – 8:30 FP

  • Put together all my semester info for reimbursement.
  • Working on the tone structure for the fingers.
  • Here’s a nice chord that works:
    • thumbIO.setContactNote(52);
    • indexIO.setContactNote(55);
    • middleIO.setContactNote(60);
    • ringIO.setContactNote(64);
    • pinkyIO.setContactNote(67);
  • Adding some PC-side data throttling so that we don’t overwhelm the Arduino
    • Setting up the sandbox to play with buffer management.
  • Brought over one of the other PhD students to look at the system and see what kind of study/paper can be done with it

Phil 5.29.12

7:30 – 4:30FP

  • Adding in more sounds.
  • Looks like the contact sound is never enabled.
  • Sounds are all fixed and working. If too many characters come in, the Arduino crashes, but it seems pretty robust. I’m going to give each finger a different pitch tomorrow. For now, hit and movement sounds are off.

Interview at 10:00. Here’s hoping that I find out who it’s with and where it is before I have to leave. Yay. I have an address and contact info.

Phil 5.25.12

8:00 – 5:00 FP

  • Added set and get byte methods to DataElement.
  • Tested sounds. Things are working much better. Nice job, Tom!
  • Working through note change/on/off logic in sim – done
  • The midi boards need to have power cycled to get a reset?
  • PAD lab meeting
  • Got the collision sound working reliably. Calling it a day.
    • >>{“nm”:f1Ht,”vol”:128,”nt”:84,”instrument”:116}<< // hit
    • >>{“nm”:f1Ct,”vol”:128,”nt”:72,”instrument”:59}<< // contact
    • >>{“nm”:f1Mv,”vol”:128,”nt”:60,”instrument”:20}<< // move

10:00 phone interview

Phil 5.24.12

8:00 – 9:30, 2:30-4:00 FP

  • Probably going to take a few hours to go to Salisbury today. Tom needs the time to make the electronics work anyway.
  • Adding the note on/off code to SoundWrapper
    • Use pitch to set up note changes
    • If a new note comes in (either as a new note or from pitch), then we need to turn the old not off, then add a new JSON string that turns the new note on.
    • Start thinking about polyphony.

Phil 5.23.12

8:00 – 4:00 FP

  • Back from the mini-vacation, which was fine until it became horrible.
  • Working with Tom on getting sounds to behave. It turns out that a single channel/instrument can be polyphonic, which is very cool, but it means that you have to turn a note on and off. I adjusted the SoundDataObject.update() method so that a JSON element of {"nt":72} will play middle C, while {"nt":-72} will turn it off. Setting {"nt":0} will trigger a reset of the Midi for that finger. Or at least it should. Reset isn’t working. Tom thinks it may be a mislabeled pin.
  • Cool thing for the day: https://live.leapmotion.com/. It strikes me that the Leap could be used as the basis for a finger chasing robot.

Phil 5.18.12

8:00 – 2:00 FP

  • Leaving early to prep for a long weekend of riding around the Delmarva. I’ll be back on Wednesday. Texting to my cell (410.300.7293) is probably the best way to get ahold of me
  • Now that the framework is in place, adding in multiple sounds per finger.
  • Got some sounds kind of working, but there may be some state problems. For example, I can turn the amp volume down, but only once. After that, sounds don’t seem to play, even though the volume is back up. Since everything can be testedthrough the serial console, I handed things off to Tom to see what he can do while I’m out.

Phil 5.17.12

8:30 – 4:30 FP

  • Going to see if all the code I wrote yesterday actually works…
  • Everything compiles and appears to be working. I’m going to increase the hysteresis on pitch so it doesn’t update continuously.
  • Note that an individual sound that gets two sets of information in between a send will only send the last one. That means that on the Arduino side, a command like ‘sustain’ has to have an implicit ‘start’. Maybe sustain should just have no start required?
  • Having a bit of trouble with the hysteresis function. It’s triggering on transitions between +0 and -0. Added an equals(double a, double b, double precision) to SoundWrapper to fix this. Better, but not entirely fixed. Ah – I was clamping the value for pitch and volume inside the toJsonStr() method, so the edge conditions would set newJSON = TRUE. Moved the clamp to inside the set().
  • Ordered a cool case and power supply for the electronics
  • Added a mapFloatToInt() method in DataElement so we can transpose the values from the sim to the midi easier. The code was looking *very* messy.

OH

  • Updated my resume
  • Interview for Jessie

Phil 5.16.12

8:00 – 4:30 FP

  • The communications test ran all night and was still working and responsive when I came in. Time to make some sounds!
  • Fixing up the messages, and eliminating redundant/unneeded info in the Json packet – all done, and the data transfer seems much happier
  • Added clamping to keep volume and pitch from getting out of hand.
  • Moving the hardware initialization from SoundDataObject to SoundController. I think I’ll also explicitly set up the sound objects, at least for now.

Phil 5.15.12

8:00 – 4:30 FP

  • Working on the SoundController class. Going to try out the basic mechanisms in the sandbox before trying them on the arduino.
  • Got the JSON key/value search working. Now I need to organize all the unique sound objects.
  • SoundController class is working in the sandbox
  • Meeting over at UMBC to go over SIGCHI
  • Have SoundController on the arduino and am currently testing.  If all fingers are updating data, the communication gets bandwidth limited. This is ok to work out the sounds, particularly on a finger-by-finger basis, but it will need to be optimized to keep the refresh rate up.

Phil 5.14.12

8:00 – 4:00 FP

  • It’s Bike To Work Week. I’ll need to ride in one day when it’s not raining.
  • Continuing to add SoundWrapper to FingerIO
  • Hmm. The SoundWrappers think that there is always a new sound. Ok, fixed.
  • Decoupled the reads and writes, putting everything on timers.
  • Since I now have 15 unique JSON messages specifying sound per finger, I’m setting up the Sound handling on the arduino side to maintain and assign the data.

Phil 5.11.12

8:00 – 2:30 FP

  • Working on finger sound management
  • Building the Hysterisis class – done
  • Building sound class: volume, id, sound state, ..?
  • Adding SoundWrapper into FingerIO

Phil 5.10.12

8:00 – 2:00 FP

  • Came in this morning to happily running communication 🙂
  • Sound design
    • Finger moving forward
    • Finger moving backwards
    • initial contact
    • sustained contact
    • release
    • Hysterisis box or something similar to slow down the amount of calls to the sound class
    • I think I need individual messages for each finger
      • {“nm”:f1, “cmd”:start, “srl”:2, “nt”:3, “vol”:0.7, “chnl”:4} // normal command
      • {“nm”:none} // nothing new, keep on doing the same thing for all fingers
  • Restructuring FingerIO to contain the logic for producing the above JSON strings

2:00 – 4:30 ESSO

  • VISIBILITY meeting