22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

744 MUSICAL ApPLICATIONS OF MICROPROCESSORS<br />

development at the University <strong>of</strong> California at San Diego (UCSD). CARL is<br />

really a set <strong>of</strong> related programs that are normally configured ro run under the<br />

UNIX operating system. This large time-sharing operating system runs<br />

most efficiently on VAX and PDP-ll computers but has also been successfully<br />

implemented on the more powerful 16-bit microcomputers using<br />

68000, 16032, and 80286 microprocessors. Virtually all <strong>of</strong> the programs are<br />

written in the C language, which means that straightforward conversion to a<br />

different computer using UNIX is at least theoretically possible. The record<br />

and playback programs that operate the AIDIA conversion system, however,<br />

must be in assembly language so they would have to be rewritten for a<br />

different processor. All <strong>of</strong> the programs, including C language source code,<br />

may be licensed for a very nominal copying fee and by agreeing to some<br />

simple acknowledgment conditions.<br />

One <strong>of</strong> the leading features <strong>of</strong> the UNIX operating system is an<br />

elegantly simple "tree-structured" directory system for disk data files. Since<br />

UNIX is a time-sharing operating system, each user has a separate branch <strong>of</strong><br />

the directory. Likewise, each project being worked on can be a branch <strong>of</strong>f the<br />

user branch and so forth. Directory links allow the same file to appear in<br />

different directories, thus avoiding multiple copies. Unfortunately, sound<br />

files are usually too big to be efficiently handled by the built-in UNIX file<br />

system. Also, substantial delays may sometimes be encountered during<br />

sequential access, which would be unacceptable during playback and<br />

recording operations. This problem is solved by defining a separate,<br />

simplified directory system for sound files, which is dedicated to a separate<br />

rigid disk drive. By using algorithms that favor physically sequential<br />

allocation <strong>of</strong> sound files and by using large block sizes, the CSOUND<br />

directory system meets the real-time acccess and high-speed data transfer<br />

required for digitized sound recording and playback.<br />

At UCSD, for example, a 300M byte removable pack disk drive is used<br />

for sound file storage. Space is allocated in units <strong>of</strong> cylinders that are about<br />

300K bytes each. For most operations, sound files are dynamic in size, but<br />

the A-to-D record program requires that the file length be specified in<br />

advance so that the written file is known to be physically sequential on the<br />

disk. Samples are stored in sound files as 16-bit, twos-complement integers<br />

called shoytsams in CARL terminology. For stereo, shortsams are stored<br />

alternately in the file. In fact, the system handles up to four channels <strong>of</strong><br />

sound data. Two sample rates are typically used; a 49,152 sis (= 3 X 2 14 ) rate<br />

for final results and one-third that rate for pteliminary runs. At the higher<br />

rate, a 300 M byte disk pack holds about 43 minutes <strong>of</strong> monaural sound.<br />

Elsewhere in the system, particularly within CMUSIC and the other sampleprocessing<br />

programs, samples are manipulated as single-precision 32-bit<br />

jloatsa1!lJ. The use <strong>of</strong> floating-point arithmetic is virtually mandated when a<br />

high-level language such as C is used and does not greatly reduce<br />

computation speed on the large computers typically used to run UNIX.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!