Click on the tab for the category you are interested in, and select a project to display details.
Update since March 2011: Flash programmer, employed by Nitrome Ltd. (nitrome.com).
The Project section is not currently being updated.

Skills

Programming Languages:
  • Flash ActionScript 2 and 3
  • C / C++
Web Programming:
  • PHP / mySQL
  • JavaScript
  • (X)HTML / XML
  • CSS

List of Projects

2010 Dec
Mobile game
Woody Games / Nokia

2010 Jun
Mobile game
Woody Games / Nokia

2010 Apr
Mobile game
Woody Games

2008
Flash game
web (free)

2007
Flash game
 

2001
PC game
Deibus / Take 2

Piano Bar

A free Flash game for the web, featured on hundreds of Flash game websites and highly rated by players.



Try the game directly here, or from Newgrounds website for a larger window size (needs Flash Player).


Achievements

Design | Programming | Music

ActionScript 3 / XML

The game is based on a home made music sequencer, similar to the MIDI system.
The principle is to have each note recorded individually as a reference (as an .mp3 or .wav), then mixed in a sequence according to the song, recreating the music in real time.
Each song is saved as an XML document, musical notes in the form of data with information such as timing, index, and duration.

The system allows different tracks to be recorded seperately, and mixed together when playing the song.
Each song in the game is using two tracks; one is the accompaniment that plays in the background, the other one is the melody, made silent in the game but still visible on the score, used as a guide by the player whose task is to play it as accurately as possible.

The system allows the Free Play option too, recording a track, seeing the music score being written in real time, and playing it back.

Note: Accompaniment tracks for the songs were originally created by playing the notes on the keyboard just like the player does, usually in two seperate tracks later mixed together (as it would not be easy to play more than one note at a time on the computer keyboard, albeit still possible), then processed through a quantization function for rhythm accuracy - automatically placing each note exactly where it should be on the beat.