Back some time in 1998, a friend I used to work with named Jeff Robbin approached me about a project he and Bill Kincaid were working on, which was called DAS at the time (not sure what that stood for, probably Digital Audio Something-or-other), but would eventually become SoundJam (and then SoundJam MP ), and would then eventually become iTunes (once Apple bought it). At the time, in my usual myopia, I thought "who the hell would want a Mac version of WinAmp ?!?", silly me... I had just had my first kid, and was winding down my work on the Java Runtime and JITc , and was transitioning over to the OS group , so I was pretty busy, and my job was secure and cushy, and I didn't feel like taking any risks. I was not interested, but told him that I'd be happy to play with the app once they had it working.

Their development continued, and they added disc burning to the app. At some point, Jeff and I were chatting about his disc burning feature, and he said he needed some way to inform the user that the burn was done. DAS being a sound-making app, he wanted a sound to alert the user, something simple. Since I'm a hobbiest musician, and had a recording setup, I told him I'd tinker around and see if I could some up with something.

At the time (this was mid-1999), my computer was a Mac PowerPC tower ( Blue and White PowerMac G3 ). Although a guitar player, I was dabbling in MIDI , primarily for drums and pads. I was big-time into the various extensions of General MIDI , as I wanted something fairly standard, and had settled on Yamaha's XG extensions , as they seemed the most rational and versatile, and I had bought a Yamaha MU90R on advice from a friend (Tom O'Brien). I had then purchased this PCI card for the tower called a Yamaha SW1000XG , which had a 64-voice XG chipset, essentially making it a souped-up Yamaha MU90R, but could transfer all the audio directly to the computer via PCI, staying completely in the digital realm. Nifty! For audio recording/capture, I was running SoundEdit 16 from (then) Macromedia, as well as Digital Performer from MOTU , and some ASIO drivers for the SW1000XG. I was also using this wacky freeware sequencer app called MIDIGraphy , written by a Japanese guy who used the handle Tontata, again recommended by Tom; it was just a straight-forward SMF file player with some limited editing capabilities. This was back in the OMS days ( Opcode MIDI System, Open MIDI System ; insert obligatory comments about the evils of Gibson buying Opcode and putting them out of business...), and there were OMS drivers for the SW1000XG.

I was looking for something "simple" that would grab the user's attention. I thought a simple sequence of notes, played with a clean-sounding instrument, would cut through the clutter of noise in a home or office. So I had two tasks: pick an instrument, and pick a sequence of notes. Simple, right? Yeah, says you; everyone's an armchair musician...

I was really into the sound of marimbas and kalimbas at the time, so I thought I'd try both of those. I also went through bank (after bank) of sounds built into the SW1000XG, auditioning instrument sounds, and found three other instrument sounds that I liked: a harp , a koto (Japanese zither), and a pizzicato string sound (that's the sound a violinist makes when plucking the string, rather than bowing it).

For the notes, I wanted a 3-note sequence, or perhaps 4 notes. I was going for simple, and didn't have much time to devote to being creative, so no fancy timing here, just sequenced notes. I wanted a happy feel, so notes from the major scale, focussing on I, III, IV, V, and VIII (the octave).

Now a normal person would have just started playing around on the keyboard. But I'm not normal, and decidedly not a keyboardist... So I went all "left brain" on this one (I'm normally used to avoiding that side of the brain when playing guitar or recording), and decided to write a program to generate the various permutations of the notes.

((3 5 8) (3 8 5) (5 3 8) (5 8 3) (8 3 5) (8 5 3))

If memory serves (and this part is a bit fuzzy, and I don't have the program or notes anymore), I used Macintosh Common Lisp (being a language junky and devoted to lisp-like dialects...) to write a quick-n-dirty Lisp program to permute the various combinations of notes from various sets I picked: I, III, V; I, IV, VIII; I, V, VIII; and I, III, V, VIII. The output of this program was a ( Lisp-style ) list of lists of numbers, e.g. for III, V, VIII it was something like, or some such. I then had another Lisp function that would print these out sequentially, in a more usable form, like so:

3 5 8 3 8 5 5 3 8 5 8 3 8 3 5 8 5 3

I was geeking out, I admit it. So sue me...

([3, 5, 8], [3, 8, 5], ...)

So now I had my note sequences, but I had to get it into a form that was suitable for the sequencer to actually play it. I toyed around with various mechanisms for converting a textual representation of notes to MIDI, but eventually I ended up using (if memory serves) a perl MIDI module called MIDI-Perl . I pasted my list of notes in, used some regular expression transformations, probably with BBEdit , to convert those to a perl array of arrays (ala). I used a loop to iterate over the arrays, using MIDI-Perl to write the notes out at fixed eighth-note timing, with the remainder of the measure between each sequence. The result was an .smf/.mid file ( Standard MIDI File ) that I could then open up in MIDIGraphy.

Once I had it playing in MIDIGraphy, I played around with tempo a bit, and rejected some of the permuted sequences that just didn't sound good at all. I then pasted it out four times, and put bank change events in, so that the result would be a continuous playback of the sequences for the five different instruments I had settled upon (Koto, Pizzicato strings, Marimba, Harp and Kalimba). After listening to the various instruments playing the various sequences, I eliminated some that didn't sound great, just deleting those ranged from the sequence. After doing this for a bit, I had a sequence that I thought comprised the best survey of instruments and note-sequences.

I then fired up SoundEdit 16, and set it to record from the SW1000XG's internal interface. I hit play in MIDIGraphy, and let it all roll. When it was done, I hit stop in SoundEdit 16, and saved the result. I then carved up the full-length recording into individual sections, one for each sequence and instrument, with names like: 358-kalimba, 358-pizzicato, 418-kalimba, 418-marimba, 481-kalimba, etc. This was tedious, and I probably could have geeked out some more and automated it somehow, but it's not like it too very long in all. I ended up eliminating the Koto, as I was not happy with the sound, so I ended up with 4 instruments and several note sequences, saved as AIFF files . Here is the complete list:

1358-harp.aiff 1358-kalimba.aiff 1358-pizzicatto.aiff 148-kalimba.aiff 148-marimba.aiff 158-kalimba.aiff 158-marimba.aiff 358-harp.aiff 358-kalimba.aiff 358-pizzicatto.aiff 418-kalimba.aiff 418-marimba.aiff 481-kalimba.aiff 481-marimba.aiff 518-kalimba.aiff 518-marimba.aiff 531-harp.aiff 531-kalimba.aiff 531-pizzicatto.aiff 581-kalimba.aiff 581-marimba.aiff 841-kalimba.aiff 841-marimba.aiff 851-kalimba.aiff 851-marimba.aiff 8531-harp.aiff 8531-kalimba.aiff 8531-pizzicatto.aiff

After listening to them all one final time, I liked the marimba sounds the best, and preferred the ascending sounds. I settled on 158-marimba.aiff as my favourite.

I then converted them to .snd ( SND, a Mac sound file format using 'snd ' resources) files, and shipped them off to Jeff. I told him my recommendation, and after listening to some, he agreed, so he thanked me, and said he would be using it. Next time I got a drop of the app from him, it was using that sound for the disc burn completion sound. I thought that was pretty cool. All in all, I probably spent a couple hours on it, time I was more than happy to give to a friend who was developing a music app.

SoundJam MP was released, sold reasonably well, but not anything spectacular. Some months later, and I hear from Jeff saying that Apple bought it (to later become iTunes), and Jeff, Bill and Dave Heller (also working on it) were hired along with it. Good for him! When Apple finally released it (in 2001), it still had the disc burning sound, which, again, I thought was pretty cool!

A couple years later, the installer team decided that they would use this same "completion" sound in the installer, for the sound that happens when an install completes.

Fast forward quite a few years, and the iPhone comes out. I was not involved in development of the iPhone, nor iOS , although I was unsuccessfully courted by the iPod software guy (Tony Fadell) right when I was considering the move to work on audio software (I went to the Pro Apps group at Apple instead). So imagine my surprise when the iPhone ships, and the default text message tone is... "158-marimba", now going by the clever (and not actually accurate, from a music theory perspective) name "Tri-Tone". Time goes by, and this sound becomes iconic, showing up in TV shows and movies, and becoming international short-hand for "you have a text message"...

Wow! Who'd have thought?

Here are some of the other sounds that could have been selected instead:

This browser does not support the HTML5 audio element or MP3 codec.

Copyright © 2013 Kelly Jacklin. All rights reserved.