Blog  |   Puzzles  |   Books  |   About

KrazyDad meets Quartz Composer

December 8th, 2006

After having used a Windows machine for my principal desktop machine for the past 7 years, I am glad to say I’m back to using a Mac for my main machine, as I did for most of the 90s. One of my favorite tools on my new Mac is Quartz Composer, which makes it possible for me to make some amazing eye candy with far less effort than it took back when I was using OpenGL and C++ in the Windows environment.

Here’s a three-dimensional version of the Whitney Music Box animation that I whipped up this morning. You’ll find a bigger collection of Quartz Composer files by yours truly here:

KrazyDad’s Quartz Composer files

Here are a few of my favorites:
SunburstSunburst
WhitneyBalls
Tiled Zoom (slideshow)


Most of these can be used as screen savers (drop them into your library/ScreenSavers folder), but some of them will have performance problems on slower macs and oversized monitors.

INTERESTED IN LEARNING QUARTZ COMPOSER? If you’re in Los Angeles, check out the class at Machine Project.

WINDOZE PEOPLE NOTE: These screen savers are for Mac people only! Sorry, dudes! Besides, I’m sure you are much to busy clearing spyware off of your machine to mess around with this stuff…

MAC PEOPLE NOTE: I know some of you have been waiting patiently for me to port my existing kaleidoscope screen savers to the Mac. Over the next few weeks, I’ll be porting some of them (but not all of them) to Quartz Composer, so check the above directory for new additions. Unfortunately, Quartz Composer currently does not handle interactions between adjacent particles, which makes it very hard to simulate the physics of a real kaleidoscope (in which the particles tumble against each other).

Tuba!!!

December 8th, 2006

An amazing tuba solo which includes electric-guitar like effects.

Sudoku Whiteboard

December 4th, 2006

Barbara Katz sent me this link to a whiteboard that has been preprinted with a Sudoku grid, suitable for solving the puzzles here on my site.

Coooooool….

New digs for jbum @ Yahoo!

November 29th, 2006

Mosaic: Spiral Mandala

I’m pleased to report I’m now working at Yahoo! Music in Santa Monica, doing AJAX and Flash programming, among other things. After admiring the numerous improvements at Yahoo over the past couple of years (and even cowriting a book about one of their smarter acquisitions), it is great to be actually contributing to a company that truly desires to make the Internet experience a better (and more social) activity.

“So why not that other company?” you may ask. The answer is related to my own personal convictions about what truly drives the web, and it ain’t silicon. I’ve held these convictions for a while now.

Back when I was working on the Palace avatar chat system in the mid-90’s, we put in a set of tables for playing chess. I scripted the chess sets so that players got pieces they could move around, but I did not script an actual chess engine (even though I was working on chess engines as a hobby at the time). Why is this? Was it because I didn’t have enough time? That was true enough, but no, I actually felt that a chess engine was inappropriate for that social space. A chess set does not require a chess engine to play chess. It requires two (count ’em) two people. These people can play chess, or they can use the table to play some other game of their own devising — they can move the pieces around to make silly shapes, or make towers that fall over. The rules of chess legality that are built into chess engines would deny these kinds of creative and social activities, and turn each chess table into a boring solitaire game.

Yes, the engine that ultimately drives the Internet is people and Yahoo! gets this at a fundamentally deep level. Observing Yahoo! from afar – who they’ve been hiring, what they’ve been acquiring, I’ve seen this. Now I can observe it from within, and more importantly, participate!

The Mid Air 25-Key Wireless USB MIDI controller: A review

November 19th, 2006

M-Audio Mid Air 25
First released for $180 in 2002, the M-Audio Oxygen8 was a breakthrough. This 2-octave USB MIDI controller with eight programmable knobs appealed to a broad audience. Desktop musicians liked it because it had a small footprint and could fit in the limited space on their desks, next to their PC keyboard. Mobile musicians liked it because it wasn’t much bigger than their laptops, and eliminated the need for an external MIDI adapter. Synthesists liked it because they needed more knobs to tweak the filters and envelopes in programs like Reason and Oddity. VJs liked it because it was a great portable MIDI control surface, and guitarists liked it because it was an inexpensive way to delve into MIDI.

The Chinese-made Oxygen spawned a few imitators, most notably some other Chinese-made keyboards from a company called Evolution. At the time, I purchased one of those clones, the Evolution Mk-425c because it was about the same price as an Oxygen8, and featured 12 additional programmable buttons. M-Audio promptly bought out Evolution’s product line in 2003, swiftly swallowing up their competition.

Since then, M-Audio has released a few incremental improvements to the Oxygen8, rubberizing the knobs and control wheels to give them a better feel, and improving the software. They have also released a slew of similar keyboard controllers, expanding their product line to 21 keyboard controllers. You can see ’em here.

INTRODUCING THE MID AIR 25

The Mid Air 25 is essentially yet another incremental improvement to the Oxygen8. It is also a 2-octave USB MIDI controller with eight programmable knobs. There is one significant difference: it’s wireless. The Mid Air 25 transmits on the 2.4Ghz spectrum over a 30 foot range to a receiver. The receiver can either be connected directly to your musical gear, via a MIDI cable, or it can plug into your laptop via USB.

Like the Oxygen8, the Mid Air 25 features a larger cousin, the Mid Air 37, which has an additional octave, and would work nicely as a performance instrument, given a shoulder strap. Sadly, neither of these instruments include mounts for straps (they really should!) but you can work around this by screwing in straplocks on either side.

I tested a review model of the Mid Air 25 to see if the wireless feature added any additional latency, and more importantly to see what impact using a wireless MIDI controller would have on my workflow.

FIRST IMPRESSIONS

When I first received the Mid Air 25, I tried to get it working without reading the manual or installation guide. I started ripping staples out of the side of the box (not a good idea!) before noticing that the top of the box had a carrying handle. Hopefully, you won’t make the same mistake. The box contained the Keyboard controller, the wireless receiver, a DC power supply cable, a USB cable, a short installation guide, and a CD-ROM.

I was a little bemused by the DC power supply cable at first. “Wireless, eh?” I thought, but then I realized that the receiver would need a power supply. So I hooked up the power supply to the receiver. I connected the receiver, via a MIDI cable, to my trusty (and relatively ancient) Roland SC-33 Sound Canvas synthesizer, and connected the SC-33 to an amplifier.

The keyboad initially felt a little light, but the addition of 6 AA batteries (required for wireless operation – those electrons have to come from somewhere!) quickly cured that problem.

I powered on the keyboard and two LEDs lit up on the receiver. A green one and a blinking yellow one. I plonked on the keys and voila! Absolutely nothing, but the mysterious yellow LED kept blinking. My first instinct was to check the volume on my amp, and on the SC 33. Nope, nothing wrong there, so I checked the receiver and noticed a little switch on the side which has 3 positions. One has a little picture of a MIDI plug (the current setting), the middle position says “AUTO” and the right position has a picture of a MIDI plug with waves emanating from it, presumably waves of wireless goodness. So I switched to the rightmost setting, plonked on some keys and voila! Actual music, sans wires.

M-Audio Mid Air 25 (receiver)

If you haven’t figured it out already, the aforementioned switch is to change the input of the receiver from the wireless keyboard to a direct MIDI connection (via a supplied MIDI-in socket in the receiver). When set to “AUTO”, it automatically detects which input to use, which seems to be the ideal setting.

O, WIRELESS JOY

Having the power to produce keyboard music without being connected to anything proved to be quite thrilling. I practiced spinning around on one foot while playing short little arpeggios, and it worked quite nicely, except for a bit of dizziness. Jumping up and down while playing also worked pretty well. “Damn!” I thought, “If only this baby came with a shoulder strap!”

I also tried getting progressively farther away from the receiver, to see what would happen, and as expected, around 25-30 feet (depending on the obstacles), I noticed some significant latency and dropped notes. After about 30 feet, the connection gets lost altogether, and you have to walk about 10 feet closer to get it back again.

Within 30 feet, with a clear line of sight connection, the wireless connection seemed to work quite well, even the modulation wheel, pitch bend and knobs (which send far more data than the piano keys) worked apparently flawlessly.

Continuing my experiment to use the Mid Air 25 without reading the manual, I found myself able to use the Pitch Wheel, the Modulation Wheel, the Octave Shift buttons, the Sustain button (nice!) and the Program Change up/down buttons. By default, the data-entry slider worked as a MIDI volume control, which was a nice feature. When you are 20 feet away from your sound-generating hardware, it’s nice to be able to turn the volume down.

I noticed that a number of the piano keys had labels printed over them, but at first, using them eluded me. I eventually figured those out with the help of the manual. These knobs allow you to transpose the keyboard, assign MIDI channel, and produce custom MIDI messages, among other things.

The knobs are rubberized and have a very nice feel to them (especially compared to the thinner plastic knobs on my older Evolution Mk-425c controller). By default, the knobs controlled various features on my SoundCanvas, including the amount of reverb, and chorus effect.

Eventually I got around to connecting the Mid Air 25’s receiver to my laptop, via the supplied USB cable. My PC (which runs Windows XP) was able to recognize it as a MIDI device, and there was no need to install the driver from the CD-ROM. The 25 page user manual on the CD-ROM, however, was quite useful, especially for the knob preset charts in the back.

LATENCY TESTING

The keyboard, in addition to transmitting MIDI data wirelessly, also has a MIDI-out socket in the back, so I thought it would be interesting to do a more scientific test to see if the wireless connection introduces any latency. I connected the keyboard directly to my SoundCanvas, via a MIDI cable, and then recorded the sound of me striking notes with the handle of a butter knife. The stainless steel handle produces a loud click which showed up in the subsequent recording. By examining the sound wave in Audacity (a freeware sound editor), I could measure the time between when my fingertip hit the key, and the attack of the actual sound wave produced by the SoundCanvas. I performed the same test with the wireless connection to see if there was any significant difference.

I found that in both cases the latency was about the same – a delay of about .020 to .024 seconds, as shown in screen capture here:

I was able to increase the wireless latency to .030 by introducing various barriers, such as encasing the receiver inside a crockpot. This latency increases even more if you get farther than 30 feet away from the receiver. I assume the extra latency is due to the need for additional error correction when there is a weak or noisy signal.

In general, I think the Mid Air 25’s latency is very good, as long as you don’t push things by putting the receiver too far away.

TARGET AUDIENCE? WHAT TARGET AUDIENCE?

As an adult male with some serious gearlust, I often find that my enthusiasm for new hardware is highest just before purchasing, and then wanes after a few hours after purchase, unless the particular bit of gear is truly exceptional. I am sad to report that my enthusiasm for the Mid Air 25 followed the typical pattern — after a few hours of wireless joy, I began to wonder what the real benefits of adding wireless capability to a MIDI controller really were. Bear in mind that the Mid Air 25, at $250 retail, costs about one hundred dollars more than the very similar Oxygen 8 v2 (which costs $150 retail). Basically, you are paying one hundred extra dollars for the wireless capability (plus the cost of the 6 AA batteries).

As a standalone performance instrument, the Mid Air 25 isn’t really a clear winner. It doesn’t mount onto my regular rig, and it doesn’t have a shoulder strap. Since my regular setup already has numerous cables, subtracting a single cable from this setup doesn’t really buy me much.

I am an actual keyboard player, not a guitarist, so I prefer having a full sized keyboard that I can play with both hands, and that is what I use for my regular performance rig.

I do enjoy having a small form-factor on my desktop however, for laying down the occasional synth track, or playing with other MIDI-controlled software.

However, my desktop computing platform is also somewhat heavily wired. My current keyboard, mouse, monitor, sound modules, and computer tower all have various wires emanating from them. And all this time, I haven’t exactly been crying out for less wires (just a faster CPU and more memory). Plus, I have to be honest – I sit fairly close to the tower of my desktop computer. Using the Mid Air 25, I haven’t really eliminated a wire, I’ve simply moved it from the keyboard to the receiver, which is still going to sit relatively close to me, plugged into my tower.

The most obvious target market for a wireless MIDI controller that sits on a table, I think, is performers or DJs who wish to keep some of their gear offstage. Personally, I think having much of your gear onstage is part of the charm of electric music performance, but I suppose there are a few souls who will find the current crop of Mid Air products a godsend. I’m just not one of them.

THE PROS

  • All the features that made the original Oxygen8 nice.
  • 8 rubberized knobs with a nice feel.
  • Attactive dark blue color.
  • One less wire!

THE CONS

  • Costs $100 more than non-wireless version.
  • Requires 6 AA batteries.
  • No shoulder strap.
  • 2 Octaves only.
  • Limited MIDI control options, compared to a full-sized dedicated controller.

CONCLUSION

The original Oxygen8 from M-Audio was a breakthrough product. The Mid Air 25 is more like an incremental improvement, basically adding a wireless connection to the same set of features. Since the keyboard requires a receiver, which is ultimately connected with a cable, you are not really saving yourself a cable. You’re just moving a cable farther away (and using 6 batteries to achieve this convenience). Is this incremental improvement worth an extra hundred dollars? For me, the answer is no, but you may feel otherwise.

Prinsengalerij

November 15th, 2006

Of the many unusual words one can type into Google, my current favorite is prinsengalerij, which produces a veritable cornucopia of portraits like these:

I knew the Internet had a long tail, but I had no idea it also had a goofy pointy hat!

Who are these distinguished looking men with their elegant hats? Rosicrucians? Masons? High officials of the Illuminati? No, they are princes in the annual spring carnival festivities in the Netherlands & Belgium. Many of these galleries feature prinsen going back a fair number of years, in a few cases to the late 19th century. The image on the upper left dates from 1901.

I wish I could use CafePress to make wallpaper out of these guys…

Lego NXT versus classic Mindstorms

November 13th, 2006

Lego Mindstorms NXT

I’ve been playing with my new Lego NXT system over the weekend. So, what’s good, not so good, and so-so?

First the good. These NXT features are a definite improvement over the older Mindstorms

  • More memory
  • Faster CPU
  • More sophisticated OS / Firmware
  • Ability to store named programs and files
  • Bluetooth
  • Ability to play snippets of sampled audio.
  • Motors have built-in rotation sensors (they can act as servos)
  • Motors have built in gear-down (more torque)
  • Better mounting for motors and sensors
  • Ultrasonic Sensor included (very cool – detects distance to nearest objects)
  • Sound sensor included
  • 4 sensor ports (instead of 3)
  • Software works on both PCs and Macs
  • Software UI is a big improvement

Now, the bad:

  • The cables

    The cables are similar to, but not identical to RJ-12 telephone cables. They can’t be stacked like the old Mindstorms cables, a technique which could be used to put multiple motors or touch sensors on a single port.

    Since the cables are unique, you have to either buy them from Lego, or hack them together yourself.

    I’m pretty sure I’m going to be needing replacements pretty soon, since the plastic connectors are going to snap from constant reuse.

    Also the cables are bulkier and less flexible than the old cables – you have to build your bot to work around this.

  • Sound sensor does not perform as originally advertised

    It does not appear to support frequency detection or reverse FFT, as you might have presumed from the marketing blurb which says it responds to “sound patterns and tones” – it’s just basic amplitude detection. I’ve noticed the more recent blurbs on Amazon have removed this language. Of course, it’s still an improvement over the old Mindstorms, which did not include a sound sensor.

  • Only one touch sensor included. This is offset by the inclusion of the sound and ultrasonic sensors.
  • No external rotation sensor (my students often used these to build steering wheels)

Finally, the so-so:

  • No infrared.

    I suspect most home PCs don’t have bluetooth built-in. If you don’t have bluetooth, you have to use the provided USB cable to download software. This makes for a more reliable connection than the old infrared method (and no cross-talk, which was a problem in my classes), but you end up constantly unplugging and replugging the USB cable as you test your robot. The big “download & run” button is dangerous because your robot is likely to zoom away and yang on the USB cable (the slightly harder-to-find “download and don’t run” button is the one you should use with USB). Fortunately, you can get a USB/Bluetooth adapter for as cheap as 7 bucks on Amazon.

  • No studded parts included.

    When I imagine a typical lego brick, I think of a 3 x 2 studded brick. Lego IS studs, to my mind, so it’s odd to see a kit from Lego that is completely devoid of studded parts. There’s a reason for this: In general, building without studded parts makes for a stronger and collision-resistant robot. However, peg & beam construction makes robot building more difficult for many of the younger kids I have taught. If you’re teaching young kids with Mindstorms, as I have done, you’ll want to make sure you have a hefty supply of studded parts.

  • Bulkier motors and sensors.

    This is good in that the sensors can form a more structural piece of a robot (a sensor could be a whole arm or forearm of a humanoid robot), but it makes it impossible to build more compact robots.

Lego NXT. It’s what’s for xmas.

November 10th, 2006

Lego Mindstorms NXT
This Christmas, if you are the parent of a 10-17 year old kid, and you buy your kid an expensive gadget that isn’t the item shown above, say an mp3 player, or a video game console, or even another type of robot, then you will have missed out on an excellent chance to not suck as a parent.

What is pictured here is a Lego Mindstorms NXT system, and the difference between this and that Nintendo Wii or that iPod that your kid is asking for, is that the Nintendo and the iPod will make your child a consumer of technology.

The Lego NXT system will make your child a creator of technology – a skill far more rare, far more in demand, and ultimately far more valuable. It’s not just a single robot but a construction set for making and programming thousands of robots and other kinds of intelligent machines.

I’ve taught numerous classes for kids at Art Center that use the older generation of Lego Mindstorms (which are also great), and I have seen firsthand what a wonderful experience building and programming your own robots can be for kids. They are one of the very few opportunities kids get to develop applied math skills in a fun and interesting way.

Despite the rumors you may have heard about Lego shortages, there are still plenty of NXT systems at amazon, and elsewhere. Get thee hence and purchase one for your kid. Or yourself for that matter. My kids aren’t getting their dirty mitts on mine.

In a related story, robots think humans taste like bacon!. So you might want to encourage your kid to build only vegetarian robots…

Happy holidays. :)

A year of sunsets

November 7th, 2006

A year of sunsets

Flickr has a lot of sunset photographs. Too many, some would say.

To build this graph I collected just a few of them, by searching for photos that have been tagged “Sunset”.

I collected only 100 photos from the hundreds posted each day of the preceding 365 days, so that the photos are evenly distributed across the past year. There are over 35,000 photos shown in the graph.

I positioned each photo horizontally according to the day it was taken, and vertically according to the hour it was taken.

By making each photo translucent, I created a “hot spot” which shows when the most photos were taken, each day of the past year.

The bright band shows the approximate time of sunset for each day. You can see that as the year progresses, the time of the sunset changes.

The deepest dip in the band corresponds to the summer solstice (about June 22), and the highest part of the band corresponds to the winter solstice (about December 22).

This is the second time I’ve graphed the curve of the sunsets using Flickr sunsets. The first time, over a year ago, I used all the photos then available, which produced a more inconsistent looking graph:

Tag Graph: Sunsets by time

Mystery Tags

Can you can figure out what tag was used to make this next graph? (click on it to find out)

What is the mystery tag?

And here’s another mystery tag with a characteristic time signature – can you guess what it is?

What is the mystery tag?

Fieldtrip to APEX

November 6th, 2006

APEX Electronics is a technology junksurplus yard, just a few minutes from my home in lovely Sun Valley. This past weekend, the southern california chapter of Dorkbot made a field trip up there.

I always miss the Dorkbot events, because they happen on Saturday afternoons, when I’m teaching high school kids at Art Center. Fortunately, Eecue from blogging.la did an extensive blog entry and photo gallery of the trip, which I am enjoying vicariously.

Sweet!