Happily, software synthesis is making bit of a comeback, thanks to more powerful processors. The Motorola DSP56001 digital signal processing (DSP) chip, for example, running at 25 MHz, can synthesize a simple model of a guitar at 44.1 KHz in real time. At present, the DSP56001 costs about as much as a good meal, but its price is dropping precipitously and its speed is going up on the order of a factor of two in the next revision.
Because the DSP chip is a general-purpose processor with extensions for signal processing, it is much easier to program than most prior music synthesis engines. While the controlling software for the Samson Box represents perhaps more than a hundred man-years of software effort, the DSP-based synthesis software on the NeXT Computer has absorbed only a few man-years so far, and to reach the same degree of completeness would require considerably less total effort.
For a given cost, DSP chips provide much more synthesis power than the general-purpose processor chips found in most personal computers. However, the current software development tools for DSP chips are inferior. In current computer systems, the DSP56001, for example, is still integrated as a ``second computer'' requiring its own assembly language, quirks and pitfalls, assembler, compiler, loader, debugger, and user-managed interprocessor communication. Programmers rarely use the C language compiler for the 56001, for example, because the generated assembly code is too voluminous and slow for most DSP applications, where the whole point is to get fast execution in a small amount of memory. As a result, signal processing code is generally written manually in an arcane assembly language. Due to the language barrier, separate development tools, and general difficulty of programming DSP chips, there has been no significant resurgence of software synthesis research using DSP chips as an implementation vehicle. The Silicon Graphics Indigo workstation has an imbedded DSP56001, but users are not provided a way to program it. On the NeXT Computer, where programming the DSP56001 is supported, the DSP is serving primarily as a built-in synthesizer with a set of canned patches to choose from. Hardly anyone takes on programming the DSP; perhaps they feel life is too short to learn a whole new development environment just to write a few unit generators.