For sound signal analysis and synthesis, many Digital Signal Processing (DSP) algorithms have to be developed, which are sometimes generally useful and other times are more specific to a given application. Implementing these algorithms usually requires a rather specialized programmer, and debugging and testing can be particularly difficult. Since the computation cost is high, fast, specialized array processors are often used. They are more efficient if the library calls provided by the manufacturer are invoked, but since the array processor technology is evolving very rapidly, one must sometimes maintain several DSP programs on several different machines. This is cumbersome, but can be simplified by adopting a uniform, coherent software approach.
UDI was written as a response to these problems. Code written using the UDI library is extremely readable, greatly easing the difficulty in trying to read other people's DSP code. UDI also has robust error checking and handling. In some cases, debugging can be done without using a source code debugger. UDI has been designed to be easily portable and extensible.