Page  485 ï~~Felix - the DIEM multiple DSP box - still in progress Steffen Brandorff Danish Institute of Electroacoustic Music - DIEM Musikhuset Aarhus DK-8000 Denmark Tel. +45 8931 8160 Fax +45 8931 8166 sbrand@daimi.aau.dk Ole Caprani Peter Moller-Nielsen Morten Lave Computer Science Computer Science TC Electronics University of Aarhus University of Aarhus Grimhojvej 3 DK-8000 Aarhus DK-8000 Aarhus DK-8220 Brabrand ocaprani@daimi.aau.dk pmn@daimi.aau.dk tel. +45 8626 2800 Abstract At ICMC 1993 in Tokyo the first prototype of Felix was shown. Since then it has been thoroughly revised and the first prototype has been discarded. A new, more truly parallel design is now under way and is described in this article. The new design takes the demands of music software as its point of departure, as opposed to the former design, that had been developed mainly from a hardware point of view. The developing group has changed and new areas of expertise have been included. The Felix concept The word "Felix" is not an acronym. It is the Latin word for "happy", and this is the aim of its development: the happy musician performing interactive computer music pieces. The notion of "Dream Machine" has been used, but of course we should be dreaming of music, not machines - as stated by Johannes Goebel [Goebel 1991]; still the term the "happy machine" - Felix - has been coined as a dream of a machine for many musics. Early influences on the Felix concept have been described before [Steffensen et al. 1993]. Too often live performances have taken place in nerve-wrecking environments, complicated, bulky and somtimes unreliable. The opposite is represented by the typical effects box - although of limited scope - it is stable, portable, very simple to set up and with just a few buttons to press before you are actually doing your "thing". The effects box, also, is a thing you can control by turning dials or via MIDI pedals and controls. One such effects box is the "M5000 Digital Audio Mainframe" from TC Electronics. It has been conceived as a general purpose machine, although it serves most owners as a high quality digital reverb and a compressor box. It is a 2 unit 19" rack box with a LCD display and a few buttons. For further details see [Steffensen et al. 1993] or your local dealer of professional audio equipment. Felix-1 The first attempt was to try to force development. TC Electronics had already developed a Motorola DSP 5600x processor based digital reverb board for the M5000, interfacing to their audiobus (TDM/4 type bus for audio signals), and we tried to build a structure of multiple floating point processors on top of this. This design has been described in the Proceedings of the ICMC 1993 [Steffensen et al. 1993]. After realisation of a prototype, the project was put before an evaluation group. It was considered acceptable for programming, but not optimal. One main problem was the DSP5600x being a bottleneck. A second design process had to start. Felix-2 The second development group tries to take a system view, considering the general demands of DSP software. The new design is being developed during multiple discussions at system level. This is opposed to the clear cut audio hardware point of view used in synthesizers and in Felix-I and a corresponding software demand for a general purpose machine. The software community tends to value a general purpose supercomputer over a dedicated hardware design because of its robustness to changes and developments in hardware etc. But price is an issue. Millionaires can buy a Cray. We want to build something affordable. The group has been most active in ICMC PROCEEDINGS 1995 485 485

Page  486 ï~~analysis of existing systems and possible scenarios for the use of the Felix box. Interactive Performance has stayed in focus, although it is anticipated that Felix should be useful for studio use. Lessons learnt from ISPW and Kyma However widespread as a system, the lesson taught by the IRCAM ISPW system seems quite clearly cut. The choice of the NeXT platform was a bold move to a computer with a superior concept for sound. The choice of the i860 seemed right at the time, as it is an extremely powerful chip, but it has proved to be a real bottleneck. Very few people master programming it, and also in many other application fields it seems to have presented programmers with a lot of complications. The death of the NeXT and the i860's difficulties undermined the otherwise very impressive IMW endeavour. We also conducted a fairly thorough investigation of the Kyma system. It has been a major inspiration, especially in that its software design is very clearly laid out and well defined. Still, quite a few "secrets" remain in the interaction between Kyma and the underlying Smalltalk programming language. We do not intend to clone Kyma, but build a system for live performance. Description of the new project group. The group has a special quality: we are not forced by any external powers to produce results at any fixed deadline. We do not build any merit-making mechanisms into the development - it is simply an interest-driven activity for the people involved. Everybody uses part of his professional research time to realize this project. The group includes people, who have earlier worked with parallel processing, operating systems, implementation of specialized algorithms in silicon on VLSI chips, audio processing hardware and software. Everyone in the group has some connection to music and music-making, and the goal of the project has been made clear through discussions of scenarios of the use of a Felix board. Scheduling algorithms for interactive computer music performance We have put a lot of effort into trying to understand the demands for scheduling of algorithms used by composers of interactive computer music. This of course is not possible, as you cannot anticipate all that composers will actually want to do. Still it is possible to get an idea as to what kind of algorithms composers are likely to put to work on such a machine. An oscillator, a filter, or a FFT can be considered a unit - an "operation" on such a machine, and you must decide what strategy to take in scheduling these "operations". Usually operating system designers speak of heavyweight processes (like applications) and lightweight processes (threads), but here one might speak of ultralightweight processes, or "mosquito-weight" processes. A substantial part of the scheduling of these can be done at compile time. Most changes can be parameter changes via control input (MIDI etc.) Typical DSP chips have a lot of internal registers, and the penalty in switching from one process to another is therefore relatively high. At the same time it is difficult to develop a pre-emptive multitasking kernel [Dalsgaard, J.F. 1993] switching fast enough to make a viable solution for DSP processes/operations. The conclusion of the group has been, as in FTS [Puckette, 1991], that complex preemptive multitasking has to be discarded. Instead, all algorithms must define a building block that takes less than one sample period to finish. That way quite complicated algorithms can be implemented, and the original objective upheld. The burden is on the compiler, not on the operating system. Felix-2 Hardware At the time of writing a second prototype is under construction at TC Electronics. It has been found that 6 powerful DSP-chips can be put onto a EuropeCard size board that will fit into a double slot of the M5000. This second attempt will present a very general hardware with many open options of configuration. Since the Felix-l, a successor chip from Analog Devices has been introduced, the ADSP-2106x SHARC chip. It is an extremely powerful (120MIPS) 32-40 bit floating point DSP with 2-4 Mb RAM on chip, and the design gives the option for connecting 6 chips on a serial link of 40Mb/s - a natural "six-pack" with a built in high speed local bus. A full article will be available as handout upon request at the presentation at the ICMC 1995. References Dalsgaard Nielsen, Jens F.: KRNL, a multitasking operating system for IBM PC., Aalborg University, Denmark 1993, unpublished. (jdn@control.auc.dk) Goebel, Johannes: My Dream (Machine?), Computer Music Journal 15:4, 1991, p. 47ff Puckette, Miller: FlTS: A Real Time Monitor for Multiprocessor Music Synthesis, Computer Music Journal 15:3, 1991, p. 58 ff Steffensen, K., Slipsager, B., Folmer M & Brandorif, S.: DIEM Multi DSP Box for live performance, Proceedfings of the ICMC 1993, p. 409ff. 486 6ICMC PROCEEDINGS 1995