• Click here for a list of all my projects.
  • Click here for Touchlib info. Source code here.
  • Click here for our multitouch community site.

Saturday, June 30, 2007

Genome Work Log

  • Made it possible to rename modules
  • added rename to gui for Tracks and Modules

Todo:

  • Rename for song markers
  • Work on dialog boxes - song overwrite warning, edit warnings..

Labels:

Sunday, June 24, 2007

Genome Work Log

  • Improved interface for modifying patterns in the main song view. Now it properly clips/deletes overlapping song patterns when dragging and resizing.
  • It's now possible to edit the song tempo.

Next:

  • Rename / Overwrite dialogs

Getting closer! There's a few more general interface fixes to do then I want to work on .WAV export and adding some new modules so I can actually make some songs with Genome and I can post some samples.

Labels:

Thursday, June 21, 2007

Genome Work Log

  • Made New/Open Song/Save Song work on all menus
  • Added default settings. All modules now load a preset called 'default' from their library on creation. This also means you can easily customize your default settings..

Labels:

Monday, June 18, 2007

SVN Changes

XVarg has made some changes to the SVN structure to to allow for branches. To update your working copy you can use the 'switch' command. The path has changed from ..svn/multitouch/ to ..svn/trunk/

Saturday, June 16, 2007

touchlib build

I posted a current build of touchlib here. This is completely untested and I have been making some changes to the code, so I have no idea if I have introduced any bugs. I am only posting this since several people have asked for it. I won't be able to test things out until sometime this week (if I am lucky)

Also, if you were wondering what the 5point-avi.xml configurations were for, there are some test movies in the SVN. You can download them from: http://touchlib.googlecode.com/svn/multitouch/tests/

Genome Work Log

  • Added context menus to main song view (for 'add track') and for track info area (delete/rename)
  • made it possible to delete tracks (wasn't before)
  • fixed: double click to add new song markers between other markers

Next up:

  • make 'open song' work on other menus
  • implement a 'rename' dialog box
  • implement an 'overwrite - yes / no?' dialog box
  • add tempo box

Difused Illumination test

I tried out the diffused illumination method yesterday. Results were pretty encouraging - I got reliable touches without having to press hard like I did with the FTIR. Also you can use any part of your finger or hand to trigger it (or other objects such as a pointer or paintbrush..). I think this is the approach I will go with for the next table I build.

Labels: , ,

Wednesday, June 13, 2007

Touchlib in nuigroup wiki

The nuigroup.com wiki is embarrassingly sparse right now. I made an effort to get some basic documentation for touchlib in there. Two pages of note:

If you're a touchlib user, feel free to add your knowledge to the Wiki. There's lots of people who are interested in the technology who need your help getting up to speed.

Labels:

Monday, June 11, 2007

Genome Work Log

Got a few more things done on Genome this weekend:
  • Added Mute/Solo operations to tracks in main song view
  • Converted Library format to XML
  • Saved song Looping state
  • Displayed Marker names
  • Fixed keyboard operations for labels (cut, paste, copy)
  • Fixed a crash bug when switching back to the main song view

Next up:

  • Need a shortcut to add a section label between two labels
  • Need to be able to rename section labels and song tracks
  • Songview context menu (for creating tracks)
  • Track context menu (for delete / rename)

Labels:

Sunday, June 10, 2007

Diffused Illumination vs FTIR

This post is just a quick recap for those that haven't been following all the discussions. What I am terming 'diffused illumination' is shining an infrared light source through the screen (either behind the screen with the camera and projector or behind the user as you might be able to do using daylight as your light source). The screen also acts as your diffuser which causes any objects behind it to appear blurry. Only objects very close to the screen can be resolved. Diffused illumination illuminates the whole hand and there are a couple different ways you can analyze the image - you can use some kind of shape based approach to pick out the fingers or try something like the approach illustrated in a past blog post. This is the technique employed by the CityWall and Microsoft's Surface. The advantage of the Diffused Illumination approach is that you can use things other than fingers such as pencils, brushes or pointers. The dryness of your fingers doesn't matter and dragging operations should work a lot better. Also it lends itself to using fiducial tags which are markers you can apply to objects that can be recognized by the system and tracked. This is how Microsoft's Surface can track cell phones, credit cards, juice cups, etc. Tags also lend themselves to board games with tangible peices. Diffused illumination may also be more tolerant to bright environments and is probably the only technique that can work in daylight. DI is also a lot easier to make - you can just buy an infrared light source. No need to solder LED's or calculate resistor values. I still need to do some more testing (I should be getting a new infrared light source later this week) so I will post how it works out.

Labels:

Thursday, June 07, 2007

Fiducial detection, first hack


I took my first stab at adding fiducial detection to touchlib today. I cam up with a simple algorithm that takes advantage of OpenCV's tree of contours (cvFindContours) which we are already using for blob detection right now. Basically it first detects whether a blob is square (which tells touchlib that this is a fiducial and not a finger press) then it adds up the detected shapes inside that square using a formula to get a unique identifier.

Labels:

Wednesday, June 06, 2007

Diffused Illumination


I've started taking a look at what would be necessary to start implementing support in touchlib for what I am hereby naming the 'diffused illumination' approach. Someone else proposed Rear Illuminated but it can also be front illuminated so we need a name that works for both. The picture is a test run doing a 'front illuminated' setup. I just pointed my screen towards the window and recorded a test movie. I've developed a simple algorithm that I think will work well for front and rear illuminated setups (front illuminated setups just need an extra step to invert the colors). Basically the algorithm is to blur the image then subtract the blurred image from the original. I believe this is how Photoshop's high pass filter works. I then also blur the image again to get rid of noise. What you are left with is the parts of the image that are sharp and in focus and the blurry parts are removed, which is exactly what we want.

Labels: ,

Saturday, June 02, 2007

Genome progress

I've circled back around to working on my music app Genome. Recently I've added in song section labels. These are basically time markers that allow you to easily select and drag around sections of the song. They also allow you to loop a section of the song and cue up other sections of the song to play when the current section completes, so in essence it allows you to mix things up live like Ableton. I also started incorporating XML into some of the modules as a way to store data. This will allow me to extend things without breaking the file format and also allow the main parts of the song to be exported (could be useful somehow. ;) Still tons left to do, but I'm making good progress.

Labels: