Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling Take Control ebooks.

 

 

Pick an apple! 
 
Syslogd Overwhelming Your Computer?

If your Leopard (Mac OS X 10.5) system is unexpectedly sluggish, logging might be the culprit. Run Activity Monitor (Applications/Utilities/ folder), and click the CPU column twice to get it to show most to least activity. If syslogd is at the top of the list, there's a fix. Syslogd tracks informational messages produced by software and writes them to the asl.db, a file in your Unix /var/log/ directory. It's a known problem that syslogd can run amok. There's a fix: deleting the asl.db file.

Launch Terminal (from the same Utilities folder), and enter these commands exactly as written, entering your administrative password when prompted:

sudo launchctl stop com.apple.syslogd

sudo rm /var/log/asl.db

sudo launchctl start com.apple.syslogd

Your system should settle down to normal. For more information, follow the link.

Visit Discussion of syslogd problem at Smarticus

 
 

MIDI and the Macintosh - Part I

Send Article to a Friend

by Shekhar Govind -- govind@utxvm.cc.utexas.edu
Technical editing by Craig O'Donnell -- dadadata@world.std.com and Nick Rothwell -- cassiel@cassiel.demon.co.uk

This Mac-MIDI musical offering is organized in three movements, an introduction and discussion of MIDI, a look at MIDI software on the Macintosh, and finally, some information on MIDI hardware, some of it specific to the Mac. We'll look at each movement in a separate issue of TidBITS, so make sure to check out the next two issues.

1. Introduction to MIDI

The Antecedents
The Effects
How MIDI Works
MIDI and General MIDI
Further Readings

2. MIDI software for the Macintosh

Applications Software
Additional System Software
Gooey Crimes

3. MIDI Hardware

Interface
Macs
Controllers
Samplers and Synthesizers
Coda

Introduction to MIDI -- Picture yourself as a musician, composing and arranging each part of, say a quartet, printing the sheet music, playing, and flawlessly recording (in CD quality, of course) the entire performance. Did we mention you could do all this by yourself on your Mac? You are the publisher, the composer, the band, the conductor, and the sound engineer - all rolled into one. As Zonker Harris would say "Imagine!" If you'd rather live the scenario than imagine it, step into the world of MIDI where you can spend as little as $600 or so for software, an interface, and a used synthesizer, or as much as $50,000 for a complete MIDI-based production studio.

The MIDI specification (MIDI stands for Musical Instrument Digital Interface) enables synthesizers, sequencers, personal computers, drum machines, etc. to interconnect through a standard protocol via an inexpensive serial hardware interface. Even though the operating system within each device may be different, MIDI gives musicians "plug and play" synth-computer communication as easily as LocalTalk lets Mac owners connect a few Macs and a laser printer. Any MIDI-savvy musical instrument can connect to a Mac (or for that matter, to any other PC) with a MIDI interface attached to the serial port. With so-called "sequencing" software running on the Mac, a musical piece played on the instrument will be faithfully "recorded" on the Mac for editing and playback. (As explained later, the sequencer does not record the audio sound; it records performance information only.)

The Antecedents -- It is important to remember that MIDI was created to simplify live performances. During the 1981 fall convention of the Audio Engineering Society, Dave Smith and Chet Wood, two engineers from the synthesizer manufacturer Sequential Circuits (creators of the popular Prophet-5 synthesizer) proposed an industry standard for an electronic musical instrument interface. The idea was that performers should not have to create custom cables and devices to connect synthesizers. Instead, they should be able to "plug and play" with units from different manufacturers. (This was not the case before, when Moog synthesizers could not talk to ARP 2600s and neither would talk to Buchla Music Boxes.) Dubbed the Universal Synthesizer Interface (USI), this draft proposal was modified by the techies of various synthesizer manufacturers (Oberheim, Roland, Korg, Yamaha, and others of their ilk). A consensus was orchestrated on the revised proposal and in late 1982 (drum-rolls please) the first set of universal MIDI specifications was adopted.

The Effect -- MIDI turned into an unanticipated success, rocketing sales in the synthesizer category to the top of the musical instrument industry within a few years. New companies like Opcode and Digidesign appeared overnight in what had previously been a sedate and technophobic industry. In the early 1970s the best-selling synthesizer keyboard (the MiniMoog) sold only about 12,000 units, and in the late 1970s the best seller (the Korg Poly6) sold some 100,000 units; the best seller during the dawn of the MIDI age, the Yamaha DX7, combined new sounds and MIDI to sell at least triple the previous record (exact numbers are hard to find).

How MIDI Works -- MIDI translates a predefined set of performance events at one instrument, called the master controller, into digital messages that are sent to other devices over a low-speed serial link operating at 31.25 kbps - about twice the speed of a v.32bis modem. To make it easy to keep musical information going where it should, these events are encoded on any of 16 independent logical channels within the MIDI data stream.

A synthesizer receiving this incoming data stream responds by playing music. Imagine playing a series of half-note C major chords on Middle C on a DX7 synthesizer wired to one or more other synthesizers. In this case, the receiving MIDI device plays a matching chord in perfect synchronization with the DX7. But (and this is a big but) the receiving instrument may use a different instrument sound, or "patch" (a patch being a particular synth voice - grand piano, hot guitar, sax, viola, what have you), depending on its settings. The chord is the same, but the generated sounds within each synthesizer may differ. In other words, MIDI keeps track of the performance events, and not the audio sounds. Further, a MIDI keyboard can control a number of sound-producing synthesizers without any computers involved, and without any recording of the digital data.

As an example, consider a DX7 wired up to a Sound Canvas which is in turn wired to a Proteus. (Sound Canvas and Proteus are "sound modules" or electronic musical instruments with a synthesizer's sounds/circuitry but without the keyboard.) The musician plays a half-note C4 series on the DX7 keyboard (which could be patched to sound like a piano.) Notes, timing, and other performance information is transmitted to the keyboard-less Sound Canvas and Proteus sound modules (which could be patched as, say an organ and strings respectively).

Schematically, it would look like:

    DX7 - MIDI cable -> Sound Canvas - MIDI cable -> Proteus (master)
  plays C4                plays C4                     plays C4
  as piano                as organ                     as strings

The two sound modules play the same chord as the DX7; but the actual sounds generated within each module use a different instrument sound, or patch.

People did pre-MIDI data recording and editing with special hardware. Some of the most sophisticated pre-MIDI systems came from Sequential and Oberheim and consisted of keyboards, drum machines and a hardware recorder (called a "sequencer") connected by proprietary data links and cabling. Around the same time Fairlight and PPG offered integrated systems controlled by a piano keyboard, keypad, and CRT.

Here is an example of a simple Mac-based MIDI setup. A MIDI keyboard (we'll stick with the DX7) interfaces to a Mac serial port with a $60 MIDI interface and two MIDI cables, one from the keyboard's MIDI output to the interface input, and one from the interface output to the keyboard's MIDI input. The MIDI data links are unidirectional to keep everything simple and inexpensive. Schematically, MIDI data travels like this:

 DX7 output>->MIDI cable 1>->interface in
                             interface port<->serial cable<->Mac port
 DX7 input<--<MIDI cable 2<-<interface out

The two MIDI data links convert to a bidirectional serial signal inside the MIDI interface.

Consider this. You launch an inexpensive sequencer program like Opcode's EZVision and tell it to record incoming MIDI data. When you play a note on the synth, a message is sent to the Mac identifying the key, how hard you struck it, for what duration held it down, etc. The software stores this information. Once you play the music and all performance information has been recorded, you can edit individual musical events on the screen in much the same way you edit text in a word processor.

To reiterate, a MIDI sequencer file is only performance information, not the sounds themselves. The universal standardization of MIDI has made it possible to use software sequencers instead of the earlier proprietary hardware sequencers.

If the sequencer software is a high-end package, sheet music can be displayed on screen, and printed from the MIDI "sequence" file. The MIDI performance data can be edited, looped, reversed, the tempo can be changed for playback, and the entire piece can be transposed to different keys. In short, the data can be processed separately and in a more innovative manner compared to anything in the audio domain. Finally, the file may be resent as MIDI commands back to the synth for flawless playback.

One showcase MIDI music CD is "Switched-on Bach 2000." Wendy Carlos's re-recording for the 25th anniversary of the hit classic(al) album "Switched-on Bach" was produced on a Mac IIfx. Wendy Carlos owns a stunning array of advanced synth gear, however, so remember that the Mac isn't making the sounds; the synthesizers are.

MIDI and General MIDI -- MIDI commands are 8-bit binary serial messages with 16 encoded channels. A master keyboard, one cable, and a slave device make up the simplest possible MIDI network. Once a computer is connected to the MIDI network, messages can be captured by a sequencing program and saved as a Standard MIDI file, a cross-platform standard. This means that MIDI music is, to a certain extent, device-independent. A Standard MIDI file played on Synth A and recorded on a Mac can play back on Synth B which is connected to a PC clone.

While most synths respond to the complete set of MIDI commands, a few older (and cheaper) models don't. Many of the latest generation of synths understand "General MIDI," a new subset of MIDI specifications from the MIDI Manufacturers' Association. In a nutshell, General MIDI specifies a few hundred consistent instrument sounds which all General MIDI synthesizers can play.

Why the need for General MIDI? Well, to start with, for years and years, synth manufacturers invented their own "map" of sounds, or voices. As an example, a Roland synth and a Korg synth would both have a Grand Piano as one of the instruments they could emulate. However, the "address" of the Grand Piano in the ROM would be different for the two synths - or put another way, the two synths would assign different patch numbers to the Grand Piano sound.

Furthermore, one synth might have 48 different Grand Piano sounds and another might have four. An expensive synth might have 256 pre-programmed patches and a cheap one, 32.

This free-for-all made it impossible to take a fully-orchestrated MIDI file from a Korg M1, load it into a computer, and play the music as the composer intended on a Proteus from E-Mu. You'd get music all right, but instead of violins during the intro, you might hear a flute. For the music to sound as originally intended, someone would have to revoice (or "repatch") the arrangement for the new output device.

So we lied to you a little bit before. MIDI files aren't strictly device-independent when it comes to playing the original sounds. General MIDI solves this because within a certain subset of MIDI, it specifies instruments which all synthesizers can share. Of course, any manufacturer is free to go beyond General MIDI.

To use MIDI in multimedia, and to put MIDI chips on sound cards, there has to be agreement on what sound is assigned to which patch number. Remember, MIDI is tone-deaf and doesn't know a Hammond Organ from a Tam-Tam. MIDI just broadcasts signals such as: "Yo! Synth on Channel 1! Set Patch 45! Now play these chords!" Unfortunately, with complex orchestrations, the results can be unintentionally hilarious. A piece of well-crafted music ends up sounding more like the Portsmouth Sinfonia, Spike Jones, or Peter Schickele.

General MIDI also answers a question that's a shade more esoteric - "What do I do with the drumkit?" (Musicians who play live would probably phrase this as "What the h*** do I do with the drummer?") In MIDI, a couple of drumkits may be contained in a single patch with individual drums and cymbals assigned to different notes on the piano keyboard. For example, a drum patch on your keyboard might map C2 to bass drum, C#2 to a rim shot, D2 to a snare drum, E# to a china cymbal etc.. (Yes, you can play drums from the keyboard!) Different drumkits could be different patches. You might have:

      Patch #     Type of Drumkit
         45       light jazz kit
         46       rock kit
         47       electronic rock kit
         48       orchestral percussion

A synth needs to listen for drum commands on a given MIDI channel so that the notes come out as hi-hat and snare instead of as flugelhorn notes. We have already discussed that General MIDI specifies a standard patch number for a particular instrument (including drums). But which of the 16 possible channels could possibly be broadcasting the drum events? Well, prior to General MIDI there was no default channel number for drums that everyone agreed on. Now there is - Channel 10 is reserved for drums.

In a certain sense, General MIDI restricts MIDI in that it makes demands of the instruments to conform to a limited set of sounds and a minimum capability. It is not necessarily the future of MIDI and synthesis; it is merely the lowest common denominator for people who want to orchestrate music for a predefined palette of sounds. General MIDI music can be ported as MIDI files and will continue to sound similar on different hardware setups (for example, for multimedia applications) without requiring patch remapping.

The MIDI specification can be purchased from International MIDI Association (which is just that - a worldwide MIDI user group) with offices at:

International MIDI Association
1185 Hartsook Street
North Hollywood, CA 91607

Other technical information about MIDI is available on the Internet via FTP from, among other places, <ucsd.edu> and <louie.udel.edu>.

Further Readings -- Don't be lulled into a false sense of complacency. Like any computer communications language, MIDI becomes complex once you move beyond a simple setup with a couple of synths and a Mac. (Just as integrating Macintoshes into a PC network is more challenging than setting up a couple of computers at home with System 7 File Sharing.)

For further edification, you may want to delve into some MIDI reference books. Steve De Furia has authored (and coauthored) several informative general and Mac-specific MIDI books. Keyboard Magazine has published several useful volumes and "Special Focus Guides" for a detailed look at MIDI and synth basics. Craig Anderton's readable "MIDI for Musicians" is a classic. Most libraries (and fine bookstores) offer at least a dozen other publications about using MIDI and creating MIDI software. Like most things technical, MIDI is a moving target and new books appear each year.

Tune in next week for a look at MIDI software for the Macintosh.

 

Fujitsu ScanSnap Scanners — Save your business time and money
with our easy-to-use small ScanSnap Scanner line. Eliminate
paper piles by scanning documents, business cards, and receipts.
Visit us at: <http://www.ez.com/sstb>