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.

influences too like interrupts from the network interface or mouse movements or<br />

something that triggers a window redraw. The operating system coordinates all<br />

this to produce an accurate final result but the path and time taken to do so can<br />

vary tremendously.<br />

An analogy to the s<strong>of</strong>tware system might be a construction site with individual<br />

workers, trucks and other equipment, and outside forces like deliveries and<br />

weather, all working independently. At the same time they are seriously<br />

interdependent for getting materials, sequencing tasks, and so forth. The time to<br />

finish the building is statistical with an average and (typically large) variance.<br />

One way that s<strong>of</strong>tware synthesis deals with the uncertainty is through the use <strong>of</strong><br />

buffers between components. If an upstream component is held up, for example, it<br />

got interrupted for a screen redraw, the buffer following it can still supply data to<br />

the next component downstream. If that buffer should run out, then the next<br />

buffer in the chain keeps the data flowing. If all <strong>of</strong> the buffers run out, then one<br />

hears a click or program interruption. Larger buffers allow for greater variance in<br />

processing times before defects are heard but at the expense <strong>of</strong> a greater delay<br />

(latency) through the sequence <strong>of</strong> steps.<br />

Another way to cut down on variance in a processing step is to utilize only a<br />

fraction <strong>of</strong> its theoretical power. A synthesis routine for example might have data<br />

structures defined for 100 voices. For all to be active simultaneously, it might<br />

need, say, 70% <strong>of</strong> available CPU cycles and 80% <strong>of</strong> available memory access<br />

bandwidth. Almost any event in the system would disrupt this for a time thus<br />

requiring the following buffer to take over and after the disruption, the buffer<br />

would refill slowly. However if only 50 were playing, larger disruptions could be<br />

tolerated and equally important, the buffer would more quickly refill afterward.<br />

The performance <strong>of</strong> s<strong>of</strong>tware-based systems can be improved most effectively by<br />

using an operating system specifically designed for audio processing instead <strong>of</strong> a<br />

general purpose one like Linux or Mac OS or Windows XXX. Since that's not an<br />

option at the moment, elimination <strong>of</strong> extraneous tasks (you don't really need a<br />

stock ticker running while playing do you?) is probably next most effective<br />

followed by using the fastest processor and largest memory one can afford.<br />

Another issue in the debate regards hardware vs s<strong>of</strong>tware sound quality.<br />

S<strong>of</strong>tware synthesis still must take a lot <strong>of</strong> computational shortcuts in order to<br />

produce a reasonable number <strong>of</strong> voices on present PCs and this adversely affects<br />

sound quality. On the other hand, applications like recording or unaltered sample<br />

playback or mixing, which are really just data movement, won't suffer from<br />

computational shortcuts and so can sound excellent. Computers make wonderful<br />

recording systems!<br />

I'm sure everybody has noticed that the number and rate <strong>of</strong> introduction <strong>of</strong><br />

s<strong>of</strong>tware synthesis products is many times that <strong>of</strong> hardware. Indeed it seems like

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

Saved successfully!

Ooh no, something went wrong!