After a couple of weeks spent trying to decipher the inner mysteries of QuickTime 2.0, Martin Russ devotes this month's Apple Notes to revealing the results...
Since Apple Notes first got hold of QuickTime 2.0, the Developer's Kit has been on the 'must see' list, but it has only been very recently that we actually managed to see an early beta release of it, thanks to a friendly Apple developer. Alongside the usual plethora of C code examples, there was the all‑important QuickTime Music Control Panel, which is the missing link between QuickTime and MIDI. The QuickTime 2.0 that comes as part of System 7.5 does not include this vital piece of software, and many MIDI users have been waiting to see how much functionality it provides (AppleLink had several desperate requests for it). Which is where the fun started.
Dropping the QuickTime Music Control Panel into the System Folder and rebooting finally gave access to the MIDI Controls, which initially proved to be a major disappointment. The dialogue box provides choices of Built‑in Synthesizer or two MIDI In ports. Selecting the built‑in internal synthesizer makes sense, since it allows the Roland set of samples to be used, as expected, but why MIDI In ports?
Since the Developer's Kit also includes the latest version of the MoviePlayer application, I launched that, so that I could investigate things further. The only reason that I could see for using the MIDI In ports was if you could drive the Mac's built‑in internal synthesizer from a MIDI source, but this seemed unlikely, since no previous sound synth plug‑in from Apple had allowed MIDI control, and anyway, QuickTime 2.0 is supposed to drive MIDI, not vice‑versa. With MIDI Manager running in the background, I opened the Patchbay to see what that said about the connection possibilities. On the left‑hand side, the usual Apple MIDI Driver icon showed the Printer and Modem ports, whilst on the righ‑hand side, a QuickTime icon had one output, and the QuickTime Music Control Panel appeared but provided no input or output ports. A few clicks quickly revealed that the labelling in the Control Panel is wrong — it should say MIDI Out, not In.
So the QuickTime Music Control Panel does exactly what you would expect: it allows you to select either the Mac's Built‑in internal sound synthesizer, which uses the Roland General MIDI (GM) sound sample set, or an external GM module. Connecting my GM module to the standard MIDI Interface on the Mac's modem port was easy — but what to play? The Developer's Kit does not include any sample QuickTime Music 'movies', so I had to make my own...
It's easier than it might sound, and this is where things start to get interesting for musicians who might like to add music to QuickTime movies. Using the 'Open' menu option in MoviePlayer 2.0, I found my folder of GM MIDI Files, and the highlighted button changed to 'Convert...' which showed that the MIDI Files had been recognised, and that the conversion routines to QuickTime Music format were present.
After selecting a MIDI File, the conversion process took a few seconds to process the file, and then the usual QuickTime play window opened, except that it had just the title bar and controls — no graphic content means no window, of course. Playing the 'movie' produced music from the GM module, whilst using the QuickTime Music Control Panel to change over to the built‑in internal synthesizer then gave a similar output from the Mac's own audio system.
I say 'similar' here because the Mac does have some limitations in comparison to a GM module. Firstly, the sound quality is definitely 8‑bit in character, with quite a lot of quantisation noise. Secondly, the polyphony is very limited. The documentation in the Kit suggested that QuickTime Music could produce up to eight audio channels, which normally means 8‑note polyphonic, but I have seen claims that the main limitation is processor speed and/or RAM size. On my humble Mac IIsi, the polyphony did seem to be eight notes, which resulted in lots of note‑stealing for most GM files. Even so, producing multitimbral sampled sounds from a MIDI File played back as part of a QuickTime movie is impressive, especially since the playback instrument samples are provided with QuickTime 2.0.
This effectively means that you can write a GM tune (bearing in mind the limited polyphony of the Mac's internal GM sound source) and import it as a MIDI File into the QuickTime environment, and then use it as the music track for a QuickTime movie, certain that it will sound much the same if it is played back via the Mac's own speaker, or a GM module connected via MIDI. Compared to the high data rate that conventional audio tracks require, this is amazing. It means that there are going to be a lot of Mac graphics and video producers who will want suitably customised MIDI Files. Incorporating a MIDI File as the music track for a QuickTime movie is quick and relatively easy — for a musician with a sequencer, a GM module, and a Mac to try it out on.
So what about the sounds themselves? Considering that the entire set of samples is squashed into 436Kb of 8‑bit storage, the quality is remarkably good. The special effects sounds are samples rather than the synthesized sounds that you find on some hardware GM modules. The mapping of the sounds is rather strange in places, with the 34 'Electric Bass Fingered' sound being used almost as a default. The 43 sounds chosen do cover most of the available timbres without leaving any gaping holes, though providing very little room for vari‑ation in sound. The developer's kit has several utilities which enable you to rework the GM sounds, so there may be scope for a little individuality. Of course, to anyone who has worked with the older 8‑bit computers from the '80s, like the Sinclair Spectrum or Commodore C64, QuickTime Music will sound wonderful!
The reason that I have concentrated here on preparing a MIDI File for importing into a QuickTime Movie via MoviePlayer 2.0 is that once it's converted, you don't have much scope for editing. I suspect that the conversion process merely takes the time‑stamped MIDI events in the MIDI File and re‑stamps them with the QuickTime internal timing system. Certainly, apart from re‑assigning instruments to tracks, and setting the overall volume, there are no other 'mixdown' type controls in MoviePlayer 2.0 — you can't even do basic things like mute a track or change its volume, for example. This means that you need to get the MIDI File correct before you convert it, because after that, it's playback only. More sophisticated editing controls may become available in future QuickTime Music applications, but I suspect that the 'Get the MIDI File right first' approach will be very popular.
There's more to QuickTime 2.0 than just GM playback. Apart from Video, Audio and Music (MIDI) tracks, you can have Timecode tracks too, which can make identifying the location of individual frames much easier, and allow you to refer back to the original source videotape. Text tracks allow annotation and sub‑titling. MPEG tracks allow you to use movies encoded using the MPEG video compression scheme.
MoviePlayer 2.0 is rather more than just a player utility. By cutting and pasting bits of other movies together, you can assemble your own movies. It also supports System 7.5's Drag and Drop, which enables you to drag text, pictures or movies from one window to another — just as if you had used the Clipboard. And when you're adding in a music track to an existing video track, you can use the 'Add Scaled' option to tweak the timing of the music so that it fits the length of the video — great for rushes.
QuickTime 2.0 provides many of the features that you associate with film or video production, and puts them onto your Mac's screen. Playing around with video can be a great way to learn about editing, as well as testing how music works with pictures. Because QuickTime is also available for Windows, the resulting Movies can be shown on any personal computer: Mac or PC. If you've always thought that working with moving pictures was too expensive, think again.
Having opened a MIDI File via the 'Convert...' option, the instrumentation can be chosen by selecting the track and clicking on the 'Instrument' button.
This is the Instrument Selection dialogue box. This enables the instrument to be selected from any available synthesizer, and is organised around the General MIDI categories.
If the QuickTime Music Control Panel is set to use the Mac's own built‑in internal Roland sample sounds, the 'synthesizer' pop‑up looks like this. The Mac automatically chooses the highest quality synthesizer — although the Control Panel only lets you choose one synthesizer at present.
If the QuickTime Music Control Panel is set to use a General MIDI module via the MIDI Manager and the Mac's serial ports, then the 'synthesizer' pop‑up looks like this. Again, the Control Panel only allows one selection at once, so this pop‑up is somewhat superfluous.
The 'category' pop‑up allows rapid selection of the type of sound required for the chosen instrument.
In order to produce customised General MIDI compatible MIDI Files which are suitable for QuickTime Music Files, you need to do two things: restrict the polyphony to eight notes or less, and use only those GM sounds which are available in the Mac's Roland samples. Although the sounds which aren't present in the sample set still make a sound, they are remapped from existing samples, which means that your music will sound very different on the Mac and GM module. By using the 'same' named sounds you should minimise the differences.
Trying to produce low‑polyphony music can be quite a challenge. Complex drum parts are one obvious place to edit: hi‑hat, bass and snare are probably all you can allow yourself. This leaves five notes for everything else, so doubled block chords are definitely out! With one note for melody and another for bass, this leaves three for accompaniment, which is probably wisest used as two‑note chords with one extra note for decoration.
The instrument sounds present in the Roland sample set are:
- 1 Acoustic Grand Piano
- 5 Rhodes.Piano
- 7 Harpsichord
- 8 Clavinet
- 12 Vibraphone
- 13 Marimba
- 17 Hammond Organ
- 21 Reed Organ
- 25 Nylon String Guitar
- 31 Distortion
- 34 Electric Bass Fingered
- 37 Slap Bass 1
- 41 Solo Violin
- 48 Timpani
- 49 String Ensemble 1
- 53 Aah Choir
- 56 Orchestra Hit
- 57 Trumpet
- 61 French Horn
- 66 Alto Sax
- 69 Oboe
- 72 Clarinet
- 74 Flute
- 76 Pan Flute
- 79 Whistle
- 82 Synth Lead 2 (sawtooth)
- 87 Synth Lead 7 (fifths)
- 89 Synth Pad 1 (fantasy)
- 90 Synth Pad 2 (warm)
- 91 Synth Pad 3 (polysynth)
- 105 Sitar
- 106 Banjo
- 114 Agogo
- 115 Steel Drum
- 118 Melodic Tom
- 120 Reverse Cymbal
- 123 Sea Shore
- 124 Bird Tweet
- 125 Telephone
- 126 Helicopter
- 127 Applause
- 128 Gun Shot
(The numbers are the General MIDI Program Change numbers.)
There are two drum kits: Standard and Room, with the remaining eight GM kits mapped to them. 24 drum sounds are provided in the Standard Kit , although the Room Kit only provides 15 sounds.
Tidying applications away into neat folders certainly keeps them under control — so much so that getting to a double‑clickable icon can become a chore! I have always been a devotee of labour‑saving gadgets, and the Alias is an excellent example of an under‑utilised widget that can actually make the Mac easier to use.
As the screenshot shows, I create aliases of the most frequently‑used application programs, and then drag the alias onto the Desktop. If you drop the icons near the main hard disk icon, they are relatively easy to get to — although I know of people who use the bottom of the screen rather than the top. If you're using System 7.5, the Launcher gives you the same sort of functionality, but in a separate window with larger icons — I prefer to save space and windows...
Choosing 'Info...' on a movie can provide details of its data structure. Here the Music Track instrumentation is shown.
QuickTime Music tracks are very compact in comparison to conventional digitised audio. This 17.1 Kilobyte file produces just over two minutes of music with a data rate of 127 bytes per second. Digital audio with eight bits per sample and a comparable audio bandwidth would require more than 100 times the storage and data rate.
Limited individual information on tracks is available. In this example, the fourth track contains 88 Note On/Off events and no MIDI Controller events. Note that the music can be played from the instrument selection dialogue box.
Here's the complete mapping of GM sounds and QuickTime 2.0 Instruments.
|1 Acoustic Grand Piano||1 Acoustic Grand Piano|
|2 Bright Piano||1 Acoustic Grand Piano|
|3 Electric Grand Piano||1 Acoustic Grand Piano|
|4 Honky‑Tonk Piano||1 Acoustic Grand Piano|
|5 Elec.Piano||5 Elec.Piano|
|6 Elec Piano (chorus)||5 Elec.Piano|
|7 Harpsichord||7 Harpsichord|
|8 Clavinet||8 Clavinet|
|9 Celeste||12 Vibraphone|
|10 Glockenspiel||12 Vibraphone|
|11 Music Box||12 Vibraphone|
|12 Vibraphone||12 Vibraphone|
|13 Marimba||13 Marimba|
|14 Xylophone||13 Marimba|
|15 Tubular Bells||13 Marimba|
|16 Dulcimer||13 Marimba|
|17 Drawbar Organ||17 Drawbar Organ|
|18 Percussive Organ||17 Drawbar Organ|
|19 Rock Organ||17 Drawbar Organ|
|20 Church Organ||17 Drawbar Organ|
|21 Reed Organ||21 Reed Organ|
|22 Accordion||21 Reed Organ|
|23 Harmonica||21 Reed Organ|
|24 Tango Accordion||21 Reed Organ|
|25 Nylon Str Guitar||25 Nylon Str Guitar|
|26 Steel Str Guitar||25 Nylon Str Guitar|
|27 Elec Guitar (jazz)||25 Nylon Str Guitar|
|28 Elec Guitar (clean)||25 Nylon Str Guitar|
|29 Elec Guitar (muted)||25 Nylon Str Guitar|
|30 Overdrive||31 Distortion|
|31 Distortion||31 Distortion|
|32 Harmonics||31 Distortion|
|33 Acoust Bass||34 Elec Bass (finger)|
|34 Elec Bass (finger)||34 Elec Bass (finger)|
|35 Electric Bass (pick)||34 Elec. Bass (finger)|
|36 FretlessBass||34 Elec Bass (finger)|
|37 Slap Bass 1||37 Slap Bass 1|
|38 Slap Bass 2||37 Slap Bass 1|
|39 Synth Bass 1||37 Slap Bass 1|
|40 Synth Bass 2||37 Slap Bass 1|
|41 Solo Violin||41 Solo Violin|
|42 Solo Viola||41 Solo Violin|
|43 Solo Cello||41 Solo Violin|
|44 Contrabass||41 Solo Violin|
|45 Trem Strings||49 Str Ensemble 1|
|46 Pizz Strings||25 Nylon Str Guitar|
|47 Orch Harp||25 Nylon Str Guitar|
|48 Timpani||48 Timpani|
|49 Str Ensemble 1||49 Str Ensemble 1|
|50 Str Ensemble 2||49 Str Ensemble 1|
|51 Syn Strings 1||49 Str Ensemble 1|
|52 Syn Strings 2||49 Str Ensemble 1|
|53 Choir Aahs||53 Choir Aahs|
|54 Voice Oohs||53 Choir Aahs|
|55 Syn Voice||90 Syn Pad 2 (warm)|
|56 Orchestra Hit||56 Orchestra Hit|
|57 Trumpet||57 Trumpet|
|58 Trombone||57 Trumpet|
|59 Tuba||57 Trumpet|
|60 MutedTrumpet||57 Trumpet|
|61 French Horn||61 French Horn|
|62 BrassSection||57 Trumpet|
|63 Synth Brass||57 Trumpet|
|64 SynthBrass 2||61 French Horn|
|65 Soprano Sax||66 Alto Sax|
|66 Alto Sax||66 Alto Sax|
|67 Tenor Sax||66 Alto Sax|
|68 Baritone Sax||66 Alto Sax|
|69 Oboe||69 Oboe|
|70 English Horn||69 Oboe|
|71 Bassoon||69 Oboe|
|72 Clarinet||72 Clarinet|
|73 Piccolo||74 Flute|
|74 Flute||74 Flute|
|75 Recorder||74 Flute|
|76 Pan Flute||76 Pan Flute|
|77 Bottle Blow||76 Pan Flute|
|78 Shakuhachi||76 Pan Flute|
|79 Whistle||79 Whistle|
|80 Ocarina||79 Whistle|
|81 Syn Lead 1 (square)||72 Clarinet|
|82 Syn Lead 2 (saw)||82 Syn Lead 2 (saw)|
|83 Syn Lead 3 (calliope)||76 Pan Flute|
|84 Syn Lead 4 (chiff)||76 Pan Flute|
|85 Syn Lead 5 (charang)||31 Distortion|
|86 Syn Lead 6 (voice)||53 Choir Aahs|
|87 Syn Lead 7 (5ths)||87 Syn Lead 7 (5ths)|
|88 Syn Lead 8 (bass/Lead)||34 Elec Bass (finger)|
|89 Syn Pad 1 (fantasy)||89 Syn Pad 1 (fantasy)|
|90 Syn Pad 2 (warm)||90 Syn Pad 2 (warm)|
|91 Syn Pad 3 (polysyn)||91 Syn Pad 3 (polysyn)|
|92 Syn Pad 4 (choir)||53 Choir Aahs|
|93 Syn Pad 5 (bowed)||34 Elec Bass (finger)|
|94 Syn Pad 6 (metallic)||34 Elec Bass (finger)|
|95 Syn Pad 7 (halo)||90 Syn Pad 2 (warm)|
|96 Syn Pad 8 (sweep)||90 Syn Pad 2 (warm)|
|97 SFX 1 (ice rain)||90 Syn Pad 2 (warm)|
|98 SFX 2 (soundtrack)||90 Synth Pad 2 (warm)|
|99 SFX 3 (crystal)||89 Syn Pad 1 (fantasy)|
|100 SFX 4 (atmosphere)||34 Elec Bass (finger)|
|101 SFX 5 (brightness)||89 Syn Pad 1 (fantasy)|
|102SFX 6 (goblins)||90 Syn Pad 2 (warm)|
|103 SFX 7 (echoes)||53 Choir Aahs|
|104 SFX 8 (space)||90 Syn Pad 2 (warm)|
|105 Sitar||105 Sitar|
|106 Banjo||106 Banjo|
|107 Shamisen||107 Shamisen|
|108 Koto||34 Electric Bass (finger)|
|109 Kalimba||13 Marimba|
|110 Bagpipes||21 Reed Organ|
|111 Fiddle||34 Elec Bass (finger)|
|112 Shanai||69 Oboe|
|113 Tinklebell||12 Vibraphone|
|114 Agogo||114 Agogo|
|115 Steel Drum||115 Steel Drum|
|116 Woodblock||13 Marimba|
|117 Taiko Drum||48 Timpani|
|118 Melodic Tom||118 Melodic Tom|
|119 Syn Drum||118 Melodic Tom|
|120 Reverse Cymbal||120 Reverse Cymbal|
|121 Fret Noise||34 Electric Bass (finger)|
|122 Breath Noise||76 Pan Flute|
|123 Sea Shore||123 Sea Shore|
|124 Bird Tweet||124 Bird Tweet|
|125 Telephone||125 Telephone|
|126 Helicopter||126 Helicopter|
|127 Applause||127 Applause|
|128 Gun Shot||128 Gun Shot|
The QuickTime 2.0 Developer's Kit comes with some examples of the sort of frame rates that you can expect on specific Macintosh models. Movies which are 320 x 240 pixels in size can be played back in 256 colours or thousands of colours at 15fps on a Mac IIfx, whilst on an LC475, the same Movie can play at 30fps. Any Quadra or PowerMac should be capable of playing the same Movie at 30fps at any colour depth (8, 16 or 24 bit)
- STATIC MOTION PICTURES
Whilst the rest of the computing world goes rushing along an MPEG video roller‑coaster, the Mac remains MPEG card‑less. Rumours of an impending release by Radius seem to have evaporated, and Apple are still due to launch soon (of course, by the time you read this, the Apple card may well be out). MPEG conversion facilities are built into QuickTime 2.0, but the hardware for Macs seems to have stalled. With MPEG‑based VideoCD, CD‑I FMV, and several other contenders for the 'full‑screen video on a computer' market all fighting it out on PCs, CDIs and other hardware platforms, the 'home multimedia' purchaser may well come to regard the Mac as a very minor platform.
- THE NEED FOR SPEED
After producing last year's 'must have' product with RAM Doubler, Connectix may have another winner waiting in the wings. Rumoured to be called Speed Doubler, it is designed to double the speed at which 68000 code is emulated on a PowerPC by looking for loops and frequently used sections of code, and then translating them into native PowerPC code and cacheing them.
World Wide Web addresses aren't always as inaccessible as you might think. Try 'http'ing to apple.com or claris.com. There again, the Internet Underground Music Archive at iuma.southern.com/IUMA/index_graphic.html) might make you think otherwise!