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

Friday, August 31, 2007

Adobe AIR extensions for CS3

Kudos to Adobe for releasing some extensions for CS3 to produce .AIR files right from within the IDE. This greatly simplifies the process of creating AIR files (before you had to jump through a number of hoops such as installing the Flex SDK, etc..). For those that don't know, AIR is adobe's solution for doing desktop apps/widgets, similar to the Java runtime.

In relation to Touchlib, I think packaging the multitouch flash apps as an .AIR file is the way to go. AIR also has a very nice built in ability to display fully browsable web pages, making a multitouch browser in flash possible.. I suspect Adobe will also be adding some other powerful features to AIR which could help make it attractive for developing simple, graphical desktop apps.

Labels: , ,

Tuesday, August 28, 2007

Genome Work Log

Just want to reiterate how awesome the Juce framework is. I wish that I knew about it when I started Genome. Porting my code to juce is going pretty well. I've got a basic app window and menu bar showing up now and I finished getting my code to compile again after doing some much needed reorganization and housecleaning - mainly just fixing up inconsistent file naming and changing the directory structure, though with over 200 source files is still a considerable chore. Porting my main Controller class (the class the controls the GUI's for all the modules) to Juce has proved easier than expected since Juce and Irrlicht both work pretty similar in the GUI department. I'm almost to the point where I can start rewriting the main GUI components such as the song view, module view and the tracker interface.. Genome already will have a few things that it didn't have before such as keyboard shortcuts for menu items, a resizable interface, juce's audio and midi managers, and Juce's much nicer GUI widgets. Plus it should be portable to other platforms with far fewer issues.

Thursday, August 23, 2007

Genome Work Log


I've decided to move Genome to the Juce framework. The main reason is to provide a richer GUI. Juce provides a nice set of controls and compiles across Mac and Linux platforms. Also it supports SVG (scalable vector graphics) which is something I am very interested in supporting. Having a fully scalable UI can basically future proof it as displays continue to increase. Previously I have been using Irrlicht for it's GUI functions. Even though Irrlicht is primarily a 3d engine, it does have some fairly simple and easily expandable GUI functionality (and it is cross platform). However irrlicht is fairly limited in the 2d department and I would need to spend a decent amount of time to expand it's capabilities, not to mention adding some extra GUI widgets that it doesn't have. Juce looks great out of the box and already has a bunch of the gui widgets I would need. Juce also could potentially replace a number of other dependencies since it provides cross platform classes for threading, networking, audio io, midi, .WAV/.OGG/.FLAC io and more. Since it was used to develop Traktion, it is ideally suited for making a studio app with. Also, it will make porting to other platforms much more easy.

I am basically going to have to rewrite all genome's GUI code from scratch, which will be time consuming but I think it will be worth it. There are about a dozen major pieces of code that need to be re-written (for example, the main song view, the track view, etc). Fortunately I took great pains to keep all the GUI functionality separate from the guts of genome so all of the underlying stuff will remain untouched - it's purely a matter of making the front end work the same way. Genome should also benefit from me taking a step back and reorganizing things and doing it better the second time. I think most programs benefit from being re-written a few times (if you've got the time and resources).

Sunday, August 19, 2007

Genome Work Log

  • Fixed an issue where module controllers weren't getting deleted properly and some other bugs that were uncovered by that
  • Got bank / preset selection working for the SF2 player

To do:

  • Wav loading for the SF2 player

Labels: ,

Monday, August 13, 2007

Diffused Illumination

I finally got around to recording a video of the Multitouch screen I made for my employer, Archer Group. The table uses the Diffused Illumination technique and as you can see it's very sensitive. All in all I think the DI technique is the best since it's the easiest to accomplish and produces good results without too much trial and error. Other pics available here.

Sunday, August 12, 2007

Genome Work Log





  • Added ability to record your song output to .WAV (and other formats) using libsndfile. Now I start posting some Genome mp3's. I still need to work out some details for how this process will work.
  • Created a 'Task' class to make it easier to do multi-threaded operations. The .Wav recorder is an example of a Task.

To Do:

  • Continue adding more modules

Labels:

Friday, August 03, 2007

Genome Work Log




  • Added SF2 playing support via the great (and open source) Fluid Synth library. Still need to work out some things like giving it a GUI, and deciding whether to store the full .SF2 file in the song or just the path to the file. Also, it would be good to write a .WAV loader for Fluid since then I could use Fluid for all my sampler needs. Fortunately it looks like fluid was written with this in mind so it shouldn't be too hard.

It will be pretty awesome once sample playing is in there.

Labels:

Wednesday, August 01, 2007

Genome Work Log




Labels: