Page  371 ï~~The GRID Musical-Signal Processing System I. J. Taylor and B. F. Schutz Department of Physics and Astronomy, University of Wales College of Cardiff PO Box 913, Cardiff, CF2 3YB, Wales, UK Telephone: (+44) 1222 874000 Ext 6964 Fax: (+44) 1222 874056 email: ian@astro.cf.ac.uk ABSTRACT: This paper introduces an interactive signal-processing environment called GRID. GRID allows the creation of complex arrays of signal-processing algorithms by simply choosing the desired units from a toolbox and wiring them together. GRID'S easy-to-use interface enables non-programmers to apply advanced signal-processing algorithms to musical analysis problems. 1 Introduction: Easy-to-use signal-processing systems are a much sought-after product in the music world. GRID takes advantage of the window and pointing device user-interface commonly available on current workstations to provide a powerful and easy-to-use graphical data analysis environment. Signal processing algorithms are constructed by connecting together GRID processing elements (units) by cables to produce a data-flow diagram. Units are dragged from the Toolbox window and dropped onto the programming window (i.e. the GRID) and then connected together by dragging from a socket icon on one unit to a socket icon on another. If the connection is valid (i.e. if the type of data to be sent is acceptable by the receiving unit) a cable is then drawn between the two socket icons. Sending socket icons are on the right hand side of units, and receiving socket icons on the left. Thus, the user constructs a signal processing algorithm by drawing a block diagram of it. GRID was originally developed to provide a Quick-Look data-analysis system for the GEO 600 interferometric gravitational-wave detector. Recently, however, it has been extended by adding GRID units (i.e. signal-processing algorithms) which are suited to the analysis of musical signals. 2 GRID's Interface: GRID consists of a toolbox window (fig. 1) and a mainGRID window (fig. 2). W.. '3a \0wr.}.1}} 11 ss QvC: ss "G. 'a: v. "..... ham: " ".ti",tiv. LL tiw 1. as C 4'V. ' + "a{(a ', 4a s*. + OP + r'"'; {{vva @p........................................................ 2..:................ '.: 'mow.;:'?a "...:::;C;v J". '"}\ti:~?: tilt\::..,,, o d^ S -x 0 M I Ns ON, -------- ----- 4C a Z, L SSA' Ell,;,r,:.;;?t!iG'!;N,:?o\yiVi.{?;0;a\\;?aÂ~e;4?.lt: Mm 'Me)&SAINNANAA X.4. ate'. e} iq',.,, Pi 5t,'.;';:;;, '} Yet CC:. INS, Figure 1: GRID's toolbox window The toolbox consists of a collection of units that perform a function which is indicated by the text at the IC MC PROCEEDINGS 199537 371

Page  372 ï~~centre of the unit's icon. Units can be acquisition and storage functions (e.g. a sampler, a sound file importer/exporter etc.), signal-generator algorithms (e.g. sine wave generators), data-display functions (e.g. for graphical representation of the data) and signal-processing algorithms. The signal-processing algorithms are the essence of the GRID system. Currently, these consist of a set of basic algorithms, such as time/frequency-domain low-, high- and band-pass filters, a fast Fourier transform / inverse transform, a power spectrum routine and Burg's 'spectral estimator'. There are also units which allow the duplication of data and the addition, subtraction, multiplication or division of two streams of data. Figure 2: The main GRID window Furthermore, we have recently implemented an unsupervised self-organising artificial neural network called ART 2-A as a unit into GRID. It has been implemented with 'non-neural-network scientists' in mind so that it can be applied to music-recognition problems without users knowing the in-depth details of how the neural network works. Users simply have to set a few parameters, each with a well defined function, in order to use the network. Network size is automatically calculated by determining the size of the input pattern being received from the previous unit and then dynamically allocating output-layer nodes (using a linked list) to accommodate all of the desired input patterns. The mainGRID window is split into two sections, the mainGRID and a debugging information window. The mainGRID given here (top of fig. 2) shows an example of a simple GRID algorithm which generates a sine wave, applies a fast Fourier transform, produces a power spectrum and then displays this graphically. Another feature of some of the GRID units is that you can set their internal parameters (or options). These affect the way in which the unit processes the data. Such parameters (or options) can be edited by double-clicking the unit's icon with the right mouse button. This results in a pop-up window being displayed containing details about the types of properties which can be changed. The main attraction of this system is that it allows the user to have complete control over its operation. GRID has a full set of User and Programming manuals. If, for example, the user wanted to include an extra unit in the toolbox then the step-by-step programming manual shows precisely how to implement this. Templates are given for each type of unit, so the user simply has to insert the algorithm (written in C or C++) into the template and compile it. Once compiled the unit can be used in the same fashion as the other units. Many other units are planned to be included into the GRID toolbox in later versions of GRID e.g. other spectral estimators, Adaptive Line Enhancers, pitch determiners and timbre recognisers etc, many of which are currently under development. GRID requires that InterViews (a C++ interface to Xll), version 3.1 and a recent C++ compiler, e.g. GCC 2.4.5 or later, be installed on your computer. Reference: G. A. Carpenter, S. Grossberg and D. B. Rosen, "ART 2-A: An Adaptive Resonance algorithm for rapid category learning and recognition", Neural Networks, 1991, 4, 493-504. 372 2IC MC PROCEEDINGS 1995