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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

698 MUSICAL ApPLICATIONS OF MICROPROCESSORS<br />

if longer. After all events in the statement are processed, the current shortest<br />

will be the actual shortest, which is then passed as an argument to the Level 2<br />

ECB scanner routine.<br />

Level 4 Routines<br />

The preceding has described a functionally complete direct digital<br />

music synthesis system that is quite usable as is. However, even higher-level<br />

programming can be added to further ease its use and reduce the amount <strong>of</strong><br />

typing effort needed to encode a score. In a nutshell, Level 4 programming<br />

accepts a string <strong>of</strong> "extended NOTRAN" statements as input and produces a<br />

longer string <strong>of</strong> "basic NOTRAN" statements as output. This Output string<br />

is then run through the synthesis program (Levels 1-3) as a separate operation.<br />

The details <strong>of</strong> Level 4 programming will not be described, but perhaps<br />

a discussion <strong>of</strong> some ideas and possibilities will give a hint <strong>of</strong> what could be<br />

accomplished.<br />

One easy-to-incorporate enhancement would be a key signature capability.<br />

A new control statement would be added whereby the user could specify<br />

the key in which the music was written. Note statements then could be<br />

coded without explicit sharps and flats except where necessary. The Level 4<br />

processor would provide all <strong>of</strong> the accidentals in the output score. It might be<br />

necessary to provide a semipermanent override capability, however, to cover<br />

atonal and highly modulated scores. As mentioned before, other redundancies<br />

such as octave selection could also be removed with similar facilities.<br />

A somewhat more complex enhancement would be a transposition<br />

facility. Orchestral scores, for example, are written for instruments that<br />

actually sound pitches different from what the score says (and the player<br />

thinks). A B-flar trumpet, for example, sounds B-flat when the player reads<br />

and fingers C. The rrumpet part <strong>of</strong> the score, therefore, has been adjusted so<br />

that the correct pitches are played. With transposition capability, one could<br />

declare that voice 3, for example, was a B-flat voice and therefore directly use<br />

notes from a B-flat instrument score.<br />

Sophisticated sequence control could also be added. Simple repeats and<br />

jumps are obvious but a subroutine capability can allow many weird and<br />

wonderful things to be done. Like a s<strong>of</strong>tware subroutine, a musical subroutine<br />

can be written once and then called by name whenever it is needed.<br />

Power comes from the fact that a subroutine can in turn call another one and<br />

so on. Thus, very complex sequences can be built up from a relatively small<br />

number <strong>of</strong> statements. Much <strong>of</strong> the usefulness <strong>of</strong> s<strong>of</strong>tware subroutines is due<br />

to the ability to pass arguments that then alter the action <strong>of</strong> the routine in a<br />

specific way for that particular call. Arguments such as key signature, pitch<br />

register, tempo, and voicing would allow great variety in the expression <strong>of</strong> a<br />

musical subroutine without rewriting it. Some really nice effects can be<br />

accomplished if a single voice line can be subroutined independent <strong>of</strong> other<br />

simultaneous voice lines.

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

Saved successfully!

Ooh no, something went wrong!