Angel Harp (is the Weirdest Instrument)

It was a joke, back in September. A goofy idea, amidst a brainstorming session of merely silly ideas. It’s a heavenly harp! And when you turn it upside-down, it becomes a Devil Harp! Ha, ha.

The YouTube trailer would probably look something like this:

I hacked Angel Harp together in my spare time. Four long months! The plan was to finish by Halloween of 2011, but it took considerably longer than expected. The synthesis was completed in one week, the sound effects in another week. Standing on the shoulders of Twang, Angel Harp produces somewhat-realistic tones (like an actual harp! Complex filtering!) And it has 3+ dozen strings, for serious plucking power!

And, the graphics… Let’s talk about that.

Once the Halloween deadline became improbable, I decided to hack each feature until it was “good enough.” If any feature became an eyesore, then I’d revisit it — either for version 1.0, or a future release. The clouds were redone a couple times. I had grand plans for the harp itself, using an (awful, buggy) harp modeling tool; in a future version, you can draw your own harps, and skin them with fancy materials, I think.

Angel Harp! Heaven!

Continue reading

Filtered Noise Sequencer

Here’s something fun — I made a 16-step sequencer in Flash, that plays filtered noise (or sine waves, when the filter is narrow):

Filtered Noise Sequencer

Drag and resize the blue blocks to change the filter frequency and width.

This sequencer is not using expensive bandpass filters. The oscillators are sine waves, which are frequency modulated with white noise. It may not sound inherently musical, but you can produce great hihats, bass thuds, and airy pitched noises.

Here’s the source code. (Requires Flash CS5 to compile.) Have fun!

Braindead Monkeys album #6

You dag-blasted crazy apes!!!

Braindead Monkeys: Space Donut

The Braindead Monkeys: Space Donut

After a 4-year hiatus, Space Donut arrives! It’s their strongest album to date. Lots of head-nodding jams, and lots of smiles.

Recommended tracks:

  • #3: Parody of a popular 80’s cartoon
  • #4: TERRORISM! “The United States is currently at war with everything…”
  • #7: Nintendo (NES) + marching band
  • #5, #13, #18: Delicious electro jamstep

Grab a banana and an electric drill, and enjoy!

A Replacement for Spotlight

Spotlight has a glut of nice features, but it still doesn’t satisfy me. I have nearly 2 million files on my hard drive. Depending on what I’m working on (and my caffeine-to-blood ratio), hundreds of files may be updated every minute. Then Spotlight tries to index the drive at inopportune moments, then Ableton Live can’t access files because the drive is busy, and the music grinds to a halt, and …. well, I had to take Spotlight behind the shed, and put it down.

There are many ways to disable Spotlight. I don’t remember which combination worked for me, but the end result is that mdutil doesn’t run on this machine anymore, and my menu bar is devoid of a Spotlight icon. (Also I disabled Quick Look, since its indexing also caused problems.)

But I still want to search my files. My solution was to create an automated job that runs once a day, and saves the path of every file into a big text document. Then I created a little command-line alias called search, which prints any file paths that match a search term. Here’s how to do it:

Continue reading

Vector Fonts in Flash

I’ve always liked the visual style of old vector games. I may integrate this style into my site, so I experimented with this tonight.

I borrowed the font used in Major Havoc and created several new classes to support this. First, here’s how it looks:

Play with the .swf . Click the screen to set the keyboard focus (I’ll debug Selection.setFocus() later.) Type letters. Press backspace to clear the screen.

Each letter is placed randomly, and has a GlowFilter applied (an attempt to simulate the look of old CRTs) with random colors and settings therein.

Here are the classes being used:

  • vector.ShapeSegment (either a single line segment, or a bezier curve)
  • vector.Shape (a continuous path of several ShapeSegments)
  • vector.Symbol (a collection of Shapes)
  • vector.font.Havoc defines the Symbols for each letter of the Havoc font, using delimited strings. Here’s the string for the “A” character: “0,1; 0,0.5; 0.5,0; 1,0; 1,1 / 0,0.5; 1,0.5 “. Note that each letter is drawn on a coordinate space ranging from (0,0) to (1,1). The “/” character divides the coordinates into two Shapes (a separate Shape is needed to draw the bar through the center of the “A”).
  • vector.font.BaseVectorFont parses the strings contained in Havoc, and returns Symbols.

Symbol, Shape, and ShapeSegment each have a draw() method that requires a MovieClip (to draw in), and a flash.geom.Matrix (to govern the position/size of each vector entity).

Currently this code is all locked down, not for any malicious reason… But I’d let my framework & libraries mature a bit before I start accepting feedback. If you’d like to poke through my code, then I can open up my SubVersion repository; let me know if there’s interest.

Up next: 3D