I was playing with the Flash Player 10 audio API and made a little guitar toy using Karplus-Strong synthesis.
One thing I noticed about the Ludum Dare Flash entries was that most of them were done with flixel. For the competition, I decided not to use it because I didn’t want to learn a new library in the same 48 hours I had to make a game.
Anyway, I’ve finally gotten around to trying flixel out. I cast around a bit for a game idea that I thought would suit flixel’s strengths. It’s a game with 3 tracks where rocks come at you and you have to switch tracks to dodge them.
Unfortunately, it’s not really fun. The graphics were also a pain. Rocks I can do; the drill took me at least twice as long.
When I first told my friend about Double Pong, he thought that it would be a game of Pong with two paddles perpendicular to each other, controlled with one input. When I was thinking about a small project to re-familiarize myself with ActionScript, I decided to make his version.
After finding out about the lively Nintendo DS homebrew scene, I was determined to make something of my own. But first, I wanted to make something small to familiarize myself with the relevant libraries.
As a fan of both robots and kittens, I of course thought of Robot Finds Kitten, the “zen simulation” that has been ported to a multitude of platforms. I found an existing DS version of RFK, but its controls were sluggish, spurring me to write my own.
I used devkitPro and the PAlib text and input libraries to make Robot Finds Kitten.
One of the assignments for my Visual Story class was to create a short film that told a story without dialogue. My role in the group was sound designer; I also composed the soundtrack for the film.
PyMotion is a framework for creating visual music based on John Whitney’s principle of “differential motion”. In differential motion, a set of identical elements moves along the same path with different speeds. If the first element moves at speed x, then the second element will move at speed 2x, the third at 3x, and so on. The result is motion with patterns that appear and dissolve at regular intervals.
For PyMotion, I used Python and PyGame, the Python port of the SDL library. I wrote the program in Leo, a literate programming editor that uses trees to structure code.
The framework of PyMotion is contained in the variable-speed ticker, and in the element-handling functions. The variable-speed ticker allows one to implement global accelerations and decelerations independent of framerate. The element-handling functions consist of functions to create arrays of elements in various configurations, and functions to move arrays of elements according to various rules.
- Straight line
- Along the perimeter of a circle
- Radially inward or outward while moving in a circle
- Sinusoidal oscillation
- Polar-coordinate rose motion, as described in John Whitney’s book, Digital Harmony
I used the framework to create one piece of visual music. I have not included screenshots because the heart of differential motion is motion, and screenshots do not adequately capture it. To view the piece on a Windows machine, download the zip file below, unzip it, and run pymotion.exe. To view the piece on any other machine, you will first need to install Python and PyGame. Then download the zip file, navigate to the /python/source directory, and enter python pymotion.py to run it.
This is the script for a short film for my Digital Cinema class. The theme of the assignment was “clones.”
I’ve put together several of my MIDI compositions, including in-progress versions of the songs. Download the songs.