Macintosh and Sound Directions
In addition to traditional data sources such as networks and host connectivity services, scanners, OCRs, and keyboards; audio sources such as the telephone, prerecorded audio, and speech can now furnish data for use in the Macintosh environment. Apple supports sound through hardware - in the Apple sound chip (which ships with all modular Macintosh computers) -- and software - which will be available in the form of the Sound Manager, which "orchestrates" the sound activity within the CPUs. The MIDI Manager, a stand-alone product, is the first step toward making it easier for developers and end users to integrate, manipulate, and play back sound and music. With the MIDI Manager, MIDI data can be seamlessly integrated with the Macintosh operating system.
System Software 7.0, which was presented at Apple's WorldWide Developers Conference in May 1989 and is still in development, brings developers new general development features, including more efficient graphics and printing, direct communications between programs, and easier access to mainframes and databases. Multimedia developers will find that the future versions of the Macintosh operating system will provide greater support for their efforts. Sound Manager, which will replace the older Sound Driver in the new System Software 7.0, gives developers new features and options that require less programming effort (that is, sound will now be easily defined as a resource and will not need to be programmed). A new feature - the Real-Time Event Sequencer - will allow developers to synchronize different events (for example, sound and color appearing on the screen). A third sound feature - Macintosh Audio Compression and Expansion-which is part of the Sound Manager, provides a way to compress and expand large amounts of digitized audio data for efficient storage.
The following sections provide a general overview of the sound direction System Software 7.0 is presently taking. Documentation will be released simultaneously with the release of System Software 7.0, and although these features are presently in the development schedule, they may be subject to change.
The Sound Manager is a collection of routines that can be used to create sounds without knowledge of, or dependence on, the hardware available. Using the Sound Manager, assures applications of upward compatibility with future hardware and software releases; additionally, the Sound Manager will always take advantage of hardware advancements.
When a command is sent to the Sound Manager, it is actually a request. For example, if sound code written to play on a Macintosh II is being used on a Macintosh Plus or Macintosh SE (which have slower CPU clocks and less capable audio hardware), the Sound Manager will use synthesizers fitted best to those machines' abilities. Conversely, future Macintosh systems may have improved audio hardware, and that same code will be utilized by the Sound Manager to take full advantage of this hardware. All of this is transparent to the application, yet serves to make the application compatible with all Macintosh computers, present and future.
Real-Time Event Sequencer
The Real-Time Event Sequencer addresses the needs of sophisticated developers and the complexities of multimedia software. The event-sequencing routines allow easy and precise monitoring and control of events in the computer and in any peripheral device. They allow a developer to control all events whether or not they are audio.
An application can request services from the Event Sequencer by using the supplied routines. Routines are available to initialize, start, pause, and continue sequences of events, as well as to alter the key or tempo of sound-related events. An application can add tracks to or delete them from an existing sequence. In all of these cases, the timing specification can be based on either beats or milliseconds.
The Event Sequencer provides for synchronization of events in two slightly different ways. If the events are all sound related, the Event Sequencer passes commands directly to the Sound Manager at the specified time. If an event is not sound related, then the Event Sequencer passes a callback to the appropriate application at the specified time. The application must then determine what action to take. If a sequence includes both sound and nonsound events, then the Event Sequencer notifies both the Sound Manager and the interested application or applications.
The relationship between the Event Sequencer and the Sound Manager is similar to a client-server relationship: Whenever the Event Sequencer receives instructions to cue a sound-related event, it passes an appropriate request to the Sound Manager, which is responsible for seeing that the event actually occurs. The Event Sequencer obtains its timing information from the Time Manager, from an external clock (such as might be provided by the MIDI Manager), or from an application.
The audio events coordinated by the Event Sequencer can produce audio output on the internal speaker of the Macintosh; on speakers connected to the audio jack; or, in conjunction with the software-based MIDI Manager, on MIDI devices. Nonsound events are keyed by the application's code, which may draw graphics on the screen, control peripheral devices, or accomplish whatever else the application requires.
Macintosh Audio Compression and Expansion
More and more developers are using sound to enhance their applications. New multimedia applications will contribute to this trend, and sound will continue to become more important in Macintosh software; The space problem, however, is particularly acute for multimedia applications: One minute of single-channel music recorded with the fidelity you would expect from a commercial compact disc occupies 5.3 megabytes of disk space. One minute of sound digitized by the current lower-quality peripherals for the Macintosh occupies more than a megabyte of disk space. Even one minute of telephone-quality speech takes up more than half a megabyte on a disk. Since a large portion of the space occupied by a multimedia application is likely to be taken up by sound data, the complexity and richness of the application's sound component is limited.
Audio compression provides one way to minimize this problem, and Macintosh audio compression and expansion features help to reduce the enormous space required to store digitized audio data. These features are provided by a set of tools in the Sound Manager that enables Macintosh developers to provide more audio information in a given amount of memory space.
The new audio compression and expansion features are intended to provide capabilities that will enhance the content of multimedia applications by allowing developers to include more audio data. They should also relieve some distribution problems by reducing the number of disks required for shipping an application that relies heavily on sound. Macintosh Audio Compression and Expansion may make some new kinds of applications feasible, such as talking dictionaries and language-instruction software.
Macintosh Audio Compression and Expansion's functions are compatible with all currently supported Macintosh computers; the new features will work with all existing Macintosh sound hardware and will remain compatible with future versions of the Macintosh. Existing applications that use the Sound Manager's SndPlay trap to play digitized audio signals will be able to play compressed audio without modification or recompilation.
How It Works
The new features provide a software-only approach to audio compression. The Sound Manager supports compression in ratios of either 3:1 or 6:1 on all Macintosh CPUs. The principal audio compression and expansion functions of the Sound Manager are as follows:
- Compression - Compresses a buffer of digital audio data either in real time or for storage in a separate buffer.
- Expansion playback - Expands the compressed audio data in a small internal buffer and plays it back at the same time.
- Buffered expansion - Expands a specified buffer of compressed audio data and stores the result in a separate buffer.
The MIDI Manager provides your Macintosh personal computer with a highly flexible MIDI environment. Used with third-party compatible MIDI software, the tools included with the MIDI Manager provide a standardized means of dealing with the Apple MIDI interface and MIDI data.
The primary benefits of the MIDI Manager tool set include the following:
- Existence of one standard MIDI driver from Apple and compatibility with future versions of Apple hardware (developers no longer have to produce their own driver for individual MIDI applications)
- Ability to share MIDI data across multiple applications (MultiFinder compatible)
- Seamless integration of MIDI data into the Macintosh operating system
The MIDI Manager includes the following:
- MIDI Driver - Provides the first universal MIDI driver from Apple for assisting its developers in transferring data between the CPU and an external MIDI device.
- The MIDI Manager - Oversees interaction between the application software and the MIDI driver, and reads and writes MIDI data from the serial port.
- Patchbay - Interface that graphically portrays the connection of multiple serial ports for the purpose of sharing MIDI data among multiple applications in a MultiFinder environment.