7  Audio software

This chapter provides a brief introduction to some of the most widely used software application categories, concentrating primarily on professional contexts as opposed to consumer ones. It does not attempt to explain how to use them in detail, as there are numerous other books that do that task very well, but it introduces the key concepts.

7.1 Sequencers

7.1.1 Introduction

Sequencers are probably the most ubiquitous of audio and MIDI applications. A sequencer will be capable of storing a number of ‘tracks’ of MIDI and audio information, editing it and otherwise manipulating it for musical composition purposes. It is also capable of storing MIDI events for non-musical purposes such as studio automation. Some of the more advanced packages are available in modular form (allowing the user to buy only the functional blocks required) and in cut-down or ‘entry-level’ versions for the new user. Popular packages such as ProTools and Logic now combine audio and MIDI manipulation in an almost seamless fashion, and have been developed to the point where they can no longer really be considered as simply sequencers. In fact they are full-blown audio production systems with digital mixers, synchronisation, automation, effects and optional video.

The dividing line between sequencer and music notation software is a grey one, since there are features common to both. Music notation software is designed to allow the user control over the detailed appearance of the printed musical page, rather as page layout packages work for typesetters, and such software often provides facilities for MIDI input and output. MIDI input is used for entering note pitches during setting, whilst output is used for playing the finished score in an audible form. Most major packages will read and write standard MIDI files, and can therefore exchange data with sequencers, allowing sequenced music to be exported to a notation package for fine tuning of printed appearance. It is also common for sequencer packages to offer varying degrees of music notation capability, although the scores that result may not be as professional in appearance as those produced by dedicated notation software.

7.1.2 Tracks, channels, instruments and environments

A sequencer can be presented to the user so that it emulates a multitrack tape recorder to some extent. The example shown in Figure 7.1 illustrates this point, showing the familiar transport controls as well as a multitrack ‘tape-like’ display.

A track can be either a MIDI track or an audio track, or it may be a virtual instrument of some sort, perhaps running on the same computer. A project is built up by successively overlaying more and more tracks, all of which may be replayed together. Tracks are not fixed in their time relationship and can be slipped against each other, as they simply consist of data stored in the memory. On older or less advanced sequencers, the replay of each MIDI track was assigned to a particular MIDI channel, but more recent packages offer an almost unlimited number of virtual tracks that can contain data for more than one channel (in order to drive a multitimbral instrument, for example). Using a multiport MIDI interface (see Chapter 5) it is possible to address a much larger number of instruments than the basic 16 MIDI channels allowed in the past.

image

Figure 7.1 Example of a sequencer’s primary display, showing tracks and transport controls. (Logic Platinum 5 ‘arrange’ window)

In a typical sequencer, instruments are often defined in a separate ‘environment’ that defines the instruments, the ports to which they are connected, any additional MIDI processing to be applied, and so forth. An example is shown in Figure 7.2. When a track is recorded, therefore, the user simply selects the instrument to be used and the environment takes care of managing what that instrument actually means in terms of processing and routing. Now that soft synthesisers are used increasingly, sequencers can often address those directly via plug-in architectures such as DirectX or VST, without recourse to MIDI. These are often selected on pull-down menus for individual tracks, with voices selected in a similar way, often using named voice tables.

7.1.3 Input and output filters

As MIDI information is received from the hardware interface it will be stored in memory, but it may sometimes be helpful to filter out some information before it can be stored, using an input filter. This will be a sub-section of the program that watches out for the presence of certain MIDI status bytes and their associated data as they arrive, so that they can be discarded before storage. The user may be able to select input filters for such data as aftertouch, pitch bend, control changes and velocity information, among others. Clearly it is only advisable to use input filters if it is envisaged that this data will never be needed, since although filtering saves memory space the information is lost for ever. Output filters are often implemented for similar groups of MIDI messages as for the input filters, acting on the replayed rather than recorded information. Filtering may help to reduce MIDI delays, owing to the reduced data flow.

image

Figure 7.2 Example of environment window from Logic, showing ways in which various MIDI processes can be inserted between physical input and recording operation

7.1.4 Timing resolution

The timing resolution to which a sequencer can store MIDI events varies between systems. This ‘record resolution’ may vary with recent systems offering resolution to many thousandths of a note. Audio events are normally stored to sample accuracy. A sequencer with a MIDI resolution of 480 ppqn (pulses per quarter note) would resolve events to 4.1 millisecond steps, for example. The quoted resolution of sequencers, though, tends to be somewhat academic, depending on the operational circumstances, since there are many other factors influencing the time at which MIDI messages arrive and are stored. These include buffer delays and traffic jams. Modern sequencers have sophisticated routines to minimise the latency with which events are routed to MIDI outputs.

The record resolution of a sequencer is really nothing to do with the timing resolution available from MIDI clocks or timecode. The sequencer’s timing resolution refers to the accuracy with which it time-stamps events and to which it can resolve events internally. Most sequencers attempt to interpolate or ‘flywheel’ between external timing bytes during replay, in an attempt to maintain a resolution in excess of the 24 ppqn implied by MIDI clocks (see Chapter 4).

7.1.5 Displaying, manipulating and editing information

A sequencer is the ideal tool for manipulating MIDI and audio information and this may be performed in a number of ways depending on the type of interface provided to the user. The most flexible is the graphical interface employed on many desktop computers which may provide for visual editing of the stored MIDI information either as a musical score, a table or event list of MIDI data, or in the form of a grid of some kind. Figure 7.3 shows a number of examples of different approaches to the display of stored MIDI information. Audio information is manipulated using an audio sample editor display that shows the waveform and allows various changes to be made to the signal, often including sophisticated signal processing, as discussed further below.

Although it might be imagined that the musical score would be the best way of visualising MIDI data, it is often not the most appropriate. This is partly because unless the input is successfully quantised (see below) the score will represent precisely what was played when the music was recorded and this is rarely good-looking on a score! The appearance is often messy because some notes were just slightly out of time. Score representation is useful after careful editing and quantisation, and can be used to produce a visually satisfactory printed output. Alternatively, the score can be saved as a MIDI file and exported to a music notation package for layout purposes.

image

Figure 7.3 Examples of a selection of different editor displays from Logic, showing display of MIDI data as a score, a graphical matrix of events and a list of events. Audio can be shown as an audio waveform display

In the grid editing (called ‘Matrix’ in the example shown) display, MIDI notes may be dragged around using a mouse or trackball and audible feedback is often available as the note is dragged up and down, allowing the user to hear the pitch or sound as the position changes. Note lengths can be changed and the timing position may be altered by dragging the note left or right. In the event list form, each MIDI event is listed next to a time value. The information in the list may then be changed by typing in new times or new data values. Also events may be inserted and deleted. In all of these modes the familiar cut and paste techniques used in word processors and other software can be applied, allowing events to be used more than once in different places, repeated so many times over, and other such operations.

A whole range of semi-automatic editing functions are also possible, such as transposition of music, using the computer to operate on the data so as to modify it in a predetermined fashion before sending it out again. Echo effects can be created by duplicating a track and offsetting it by a certain amount, for example. Transposition of MIDI performances is simply a matter of raising or lowering the MIDI note numbers of every stored note by the relevant degree. Transposition of audio is more complicated, involving pitch-shifting algorithms. Recent pitch-shifting algorithms are so good, though, that they attempt to maintain the timbral quality of the voice while transposing it, in order that it does not end up sounding like ‘Pinky and Perky’ or ‘Old Man River’. A number of algorithms have also been developed for converting audio melody lines to MIDI data, or using MIDI data to control the pitch of audio, further blurring the boundary between the two types of information. Silence can also be stripped from audio files, so that individual drum notes or vocal phrases can be turned into events in their own right, allowing them to be manipulated, transposed or time-quantised independently.

A sequencer’s ability to search the stored data (both music and control) based on specific criteria, and to perform modifications or transformations to just the data which matches the search criteria, is one of the most powerful features of a modern system. For example, it may be possible to search for the highest-pitched notes of a polyphonic track so that they can be separated off to another track as a melody line. Alternatively it may be possible to apply the rhythm values of one track to the pitch values of another so as to create a new track, or to apply certain algorithmic manipulations to stored durations or pitches for compositional experimentation. The possibilities for searching, altering and transforming stored data are almost endless once musical and control events are stored in the form of unique values, and for those who specialise in advanced composing or experimental music these features will be of particular importance. It is in this field that many of the high-end sequencer packages will continue to develop.

7.1.6 Quantisation of rhythm

Rhythmic quantisation is a feature of almost all sequencers. In its simplest form it involves the ‘pulling-in’ of events to the nearest musical time interval at the resolution specified by the user, so that events that were ‘out of time’ can be played back ‘in time’. It is normal to be able to program the quantising resolution to an accuracy of at least as small as a 32nd note and the choice depends on the audible effect desired. Events can be quantised either permanently or just for replay. Some systems allow ‘record quantisation’ which alters the timing of events as they arrive at the input to the sequencer. This is a form of permanent quantisation. It may also be possible to ‘quantise’ the cursor movement so that it can only drag events to predefined rhythmic divisions.

More complex rhythmic quantisation is also possible, in order to maintain the ‘natural’ feel of rhythm for example. Simple quantisation can result in music that sounds ‘mechanical’ and electronically produced, whereas the ‘human feel’ algorithms available in many packages attempt to quantise the rhythm strictly and then reapply some controlled randomness. The parameters of this process may be open to adjustment until the desired effect is achieved.

7.1.7 Automation and non-note MIDI events

In addition to note and audio events, one may either have recorded or may wish to add events for other MIDI control purposes such as program change messages, controller messages or system exclusive messages. Audio automation can also be added to control fades, panning, effects and other mixing features. Such data may be displayed in a number of ways, but again the graphical plot is arguably the most useful. It is common to allow automation data to be plotted as an overlay, such as shown in Figure 7.4.

image

Figure 7.4 Example from Logic of automation data graphically overlaid on sequencer tracks

Some automation data is often stored in a so-called ‘segment-based’ form. Because automation usually relates to some form of audio processing or control, it usually applies to particular segments on the time-line of the current project. If the segment is moved, often one needs to carry the relevant automated audio processing with it. Segment-based processing or automation allows the changes in parameters that take place during a segment to be ‘anchored’ to that segment so that they can be made to move around with it if required.

It is possible to edit automation or control events in a similar way to note events, by dragging, drawing, adding and deleting points, but there are a number of other possibilities here. For example a scaling factor may be applied to controller data in order to change the overall effect by so many per cent, or a graphical contour may be drawn over the controller information to scale it according to the magnitude of the contour at any point. Such a contour could be used to introduce a gradual increase in MIDI note velocities over a section, or to introduce any other time-varying effect. Program changes can be inserted at any point in a sequence, usually either by inserting the message in the event list, or by drawing it at the appropriate point in the controller chart. This has the effect of switching the receiving device to a new voice or stored program at the point where the message is inserted. It can be used to ensure that all tracks in a sequence use the desired voices from the outset without having to set them up manually each time. Either the name of the program to be selected at that point or its number can be displayed, depending on whether the sequencer is subscribing to a known set of voice names such as General MIDI.

System exclusive data may also be recorded or inserted into sequences in a similar way to the message types described above. Any such data received during recording will normally be stored and may be displayed in a list form. It is also possible to insert SysEx voice dumps into sequences in order that a device may be loaded with new parameters whilst a song is executing if required.

7.1.8 MIDI mixing and external control

Sequencers often combine a facility for mixing audio with one for controlling the volume and panning of MIDI sound generators. Using MIDI volume and pan controller numbers (decimal 7 and 10), a series of graphical faders can be used to control the audio output level of voices on each MIDI channel, and may be able to control the pan position of the source between the left and right outputs of the sound generator if it is a stereo source. On-screen faders may also be available to be assigned to other functions of the software, as a means of continuous graphical control over parameters such as tempo, or to vary certain MIDI continuous controllers in real time.

It is also possible with some packages to control many of the functions of the sequencer using external MIDI controllers. An external MIDI controller with a number of physical faders and buttons could be used as a basic means of mixing, for example, with each fader assigned to a different channel on the sequencer’s mixer.

7.1.9 Synchronisation

A sequencer’s synchronisation features are important when locking replay to external timing information such as MIDI clock or timecode. Most sequencers are able to operate in either beat clock or timecode sync modes and some can detect which type of clock data is being received and switch over automatically. To lock the sequencer to another sequencer or to a drum machine beat clock synchronisation may be adequate. If you will be using the sequencer for applications involving the timing of events in real rather than musical time, such as the dubbing of sounds to a film, then it is important that the sequencer is able to allow events to be tied to timecode locations, as timecode locations will remain in the same place even if the musical tempo is changed.

Sequencers incorporating audio tracks also need to be able to lock to sources of external audio or video sync information (e.g. word clock or composite video sync), in order that the sampling frequency of the system can be synchronised to that of other equipment in the studio.

7.1.10 Synchronised digital video

Digital video capability is now commonplace in desktop workstations. It is possible to store and replay full motion video on a desktop computer, either using a separate monitor or within a window on an existing monitor, using widely available technology such as QuickTime or Windows Multimedia Extensions. The replay of video from disk can be synchronised to the replay of audio and MIDI, using timecode, and this is particularly useful as an alternative to using video on a separate video tape recorder (which is mechanically much slower, especially in locating distant cues). In some sequencing or editing packages the video can simply be presented as another ‘track’ alongside audio and MIDI information.

In the applications considered here, compressed digital video is intended principally as a cue picture that can be used for writing music or dubbing sound to picture in post-production environments. In such cases the picture quality must be adequate to be able to see cue points and lip sync, but it does not need to be of professional broadcast quality. What is important is reasonably good slow motion and freeze-frame quality. Good quality digital video (DV), though, can now be transferred to and from workstations using a Firewire interface enabling video editing and audio post-production to be carried out in an integrated fashion, all on the one platform.

7.2 Plug-in architectures

7.2.1 What is a plug-in?

Plug-ins are now one of the fastest-moving areas of audio development, providing audio signal processing and effects that run either on a workstation’s CPU or on dedicated DSP. (The hardware aspects of this were described in Chapter 5.) Audio data can be routed from a sequencer or other audio application, via an API (application programming interface) to another software module called a ‘plug-in’ that does something to the audio and then returns it to the source application. In this sense it is rather like inserting an effect into an audio signal path, but done in software rather than using physical patch cords and rack-mounted effects units. Plug-ins can be written for the host processor in a language such as C++, using the software development toolkits (SDK) provided by the relevant parties. Plug-in processing introduces a delay that depends on the amount of processing and the type of plug-in architecture used. Clearly low latency architectures are highly desirable for most applications.

Many plug-ins are versions of previously external audio devices that have been modelled in DSP, in order to bring favourite EQs or reverbs into the workstation environment. The sound quality of these depends on the quality of the software modelling that has been done. Some host-based (native) plug-ins do not have as good quality as dedicated DSP plug-ins as they may have been ‘cut to fit’ the processing power available, but as hosts become ever more powerful the quality of native plug-ins increases.

A number of proprietary architectures have been developed for plug-ins, including Microsoft’s Direct X, Steinberg’s VST, Digidesign’s TDM, Mark of the Unicorn’s MAS, TC Works’ PowerCore and EMagic’s host-based plug-in format. Apple’s OS X Audio Units are a feature built in to the OS that manages plug-ins without the need for third-party middleware solutions. The popularity of this as a plug-in architecture has yet to be determined at the time of writing, but is likely to be used increasingly as OS X gains popularity. It is usually necessary to specify for which system any software plug-in is intended, as the architectures are not compatible. As OS-based plug-in architectures for audio become more widely used, the need for proprietary approaches may diminish.

Table 7.1 Digidesign plug-in alternatives

Plug-in architecture Description
TDM Uses dedicated DSP cards for signal processing. Does not affect the host CPU load and processing power can be expanded as required.
HTDM (Host TDM). Uses the host processor for TDM plug-ins, instead of dedicated DSP.
RTAS (Real Time Audio Suite). Uses host processor for plug-ins. Not as versatile as HTDM.
AudioSuite Non-real-time processing that uses the host CPU to perform operations such as time-stretching that require the audio file to be rewritten.

Digidesign in fact has four different plug-in approaches that are used variously in its products, as shown in Table 7.1.

DirectX is a suite of multimedia extensions developed by Microsoft for the Windows platform. It includes an element called DirectShow that deals with real-time streaming of media data, together with the insertion of so-called ‘filters’ at different points. DirectX audio plug-ins work under DirectShow and are compatible with a wide range of Windows-based audio software. They operate at 32-bit resolution, using floating-point arithmetic and can run in real time or can render audio files in non-real time. They do not require dedicated signal processing hardware, running on the host CPU, and the number of concurrent plug-ins depends on CPU power and available memory. DirectX plug-ins are also scalable – in other words they can adapt to the processing resource available. They have the advantage of being compatible with the very wide range of DirectX-compatible software in the general computing marketplace but at the time of writing they can only handle two-channel audio.

DXi is a software synthesiser plug-in architecture developed by Cakewalk, running under DirectX. It is covered further in Section 7.3.

One example of a proprietary approach used quite widely is VST, Steinberg’s Virtual Studio Technology plug-in architecture. It runs on multiple platforms and works in a similar way to DirectX plug-ins. On Windows machines it operates as a DLL (dynamic link library) resource, whereas on Macs it runs as a raw Code resource. It can also run on BeOS and SGI systems, as a Library function. VST incorporates both virtual effects and virtual instruments such as samplers and synthesisers. There is a cross-platform GUI development tool that enables the appearance of the user interface to be ported between platforms without the need to rewrite it each time.

7.2.2 Plug-in examples

Some examples of plug-in user interfaces are shown in Figure 7.5. An example of a stereo effects processor and a reverberation processor are shown. The quality of such plug-ins is now getting to the point where it is on a par with the sound quality achievable on external devices, depending primarily on the amount of DSP available.

image

Figure 7.5 Two examples of plug-in user interfaces by WAVES. (a) A reverberation processor. (b) A stereo image processor

7.3 Virtual instruments

Virtual instruments or ‘soft synths’ and ‘soft samplers’ are software implementations of sound generators that can be controlled via the plug-in architecture. For example VSTi and DXi are examples of VST or DirectX virtual instruments. Mostly they rely on the host’s CPU power to perform the synthesis operations and there is an increasing number of software versions of previously ‘hard’ sound generators. In many ways this can be quite convenient because it does away with the need for cumbersome external devices, MIDI cables and audio mixing. If all synthetic and sampled sound generation can be handled within the workstation, and the audio outputs of these virtual instruments mixed internally, the studio can really begin to be contained within a single box. External interfaces are then only required to handle acoustic sources such as vocals, guitars and other naturally recorded material.

image

Figure 7.6 Two examples of plug-in synthesiser user interfaces. (a) Logic’s ES synthesiser. (b) AnaMark VST synthesiser

Some examples of virtual instrument user interfaces are shown in Figure 7.6. They can usually be played either from MIDI tracks within a sequencer or by means of external MIDI controllers as stand-alone instruments.

7.4 Librarians and editors

Librarian and editor software is used for managing large amounts of voice data for MIDI-controlled instruments. As virtual instruments gradually take over from externally controlled devices the nature of librarians and editors will naturally evolve accordingly. Such packages communicate with external MIDI instruments using system exclusive messages in order to exchange parameters relating to voice programs. The software may then allow these voice programs or ‘patches’ to be modified using an editor, offering a rather better graphical interface than those usually found on the front panels of most sound modules. Banks of patches may be stored on disk by the librarian, in order that libraries of sounds can be managed easily, and this is often cheaper than storing patches in the various ‘memory cards’ offered by synth manufacturers. Banks of patch information can be accessed by sequencer software so that an operator can choose voices for particular tracks by name, rather than by program change numbers.

Sample editors are also available, offering similar facilities, although sample dumps using system exclusive are not really recommended, unless they are short, since the time taken can be excessive. Sample data can be transferred to a computer using a faster interface than MIDI (such as SCSI) and the sample waveforms can be edited graphically. A protocol known as SMDI (‘smi-dee’), SCSI Musical Data Interchange, was developed by Matt Isaacson, based on the MIDI sample dump format, specifically for this purpose.

7.5 Audio editing and post-production software

Although most sequencers contain some form of audio editing these days, there are some software applications more specifically targeted at high quality audio editing and production. These have tended to come from a professional audio background rather than a MIDI sequencing background, although it is admitted that the two fields have met in the middle now and it is increasingly hard to distinguish a MIDI sequencer that has had audio tacked on from an audio editor that has had MIDI tacked on.

Audio applications such as those described here are used in contexts where MIDI is not particularly important and where fine control over editing crossfades, dithering, mixing, mastering and post-production functions are required. Here the editor needs tools for such things as: previewing and trimming edits, such as might be necessary in classical music post-production; PQ editing CD masters; preparing surround sound DVD material for encoding; MLP or AC-3 encoding of audio material; editing of DSD material for SuperAudio CD. The principles behind this technology were described in Chapters 2 and 3. The following two commercial examples demonstrate some of the practical concepts.

7.5.1 Sonic Studio HD

Sonic Studio HD is an example of a Mac-based product designed for preparing high quality CD, SACD and DVD audio material. It uses an approach to audio editing that relies on source and destination track windows, material being assembled by transferring selected takes from source to destination, with appropriate trims and crossfades. A typical user interface is shown in Figure 7.7. It is possible to see the audio waveform display and overlay of cross-fade information. Very detailed control is provided for the fine-tuning of crossfades, with numerous curve shapes and options, enabling the editor to modify edits until they sound right, as shown in Figure 7.8. Metering of multiple channels is provided in a separate window, as is listing and control of plug-ins for HDSP processing.

Like other systems of its kind, this product is capable of up-loading source material in the background so that takes to be edited can be copied from source tapes while one is editing in the foreground. It also provides comprehensive options for mastering, including PQ encoding for CDs and DDP list creation. Audio sampling rates up to 192 kHz are accommodated and options for editing DSD source material (see Chapter 2) are being developed (for Super Audio CD preparation). Audio processing is handled on a dedicated HDSP audio card, connected to an external audio interface.

image

Figure 7.7 The main display of SonicStudio HD audio editor

image

Figure 7.8 SonicStudio HD crossfade controls

7.5.2 SADiE

SADiE workstations run on the PC platform and most utilise an external audio interface. Recent Series 5 systems, however, can be constructed as an integrated rack-mounted unit containing audio interfaces and a Pentium PC. Both PCM and DSD signal processing options are available and the system makes provision for lossless MLP encoding for DVD-Audio, as well as SACD mastering and encoding.

A typical user interface for SADiE is shown in Figure 7.9. It is possible to see transport controls, the mixer interface and the playlist display. Audio can be arranged in the playlist by the normal processes of placing, dragging, copying and pasting, and there is a range of options for slipping material left or right in the list to accommodate new material (this ensures that all previous edits remain attached in the right way when the list is slipped backwards or forwards in time). Audio to be edited in detail can be viewed in the trim window (Figure 7.10) that shows a detailed waveform display, allowing edits to be previewed either to or from the edit point, or across the edit, using the play controls in the top right-hand corner (this is particularly useful for music editing). The crossfade region is clearly visible, with different colours and shadings used to indicate the ‘live’ audio streams before and after the edit.

The latest software allows for the use of DirectX plug-ins for audio processing. A range of plug-ins is available, including CEDAR audio restoration software, as described below.

image

Figure 7.9 SADiE editor displays, showing mixer, playlist, transport controls and project elements

image

Figure 7.10 SADiE trim window showing crossfade controls and waveform display

7.6 Mastering and restoration software

Some software applications are designed specifically for the mastering and restoration markets. These products are designed either to enable ‘fine tuning’ of master recordings prior to commercial release, involving subtle compression, equalisation and gain adjustment (mastering), or to enable the ‘cleaning up’ of old recordings that have hiss, crackle and clicks (restoration).

CEDAR applications or plug-ins are good examples of the restoration group. Sophisticated controls are provided for the adjustment of de-hissing and de-crackling parameters, which often require considerable skill to master. Recently the company has introduced advanced visualisation tools that enable restoration engineers to ‘touch up’ audio material using an interface not dissimilar to those used for photo editing on computers. Audio anomalies (unwanted content) can be seen in the time and frequency domains, highlighted and interpolated based on information either side of the anomaly. A typical display from its RETOUCH product for the SADiE platform is shown in Figure 7.11.

CEDAR’s restoration algorithms are typically divided into ‘decrackle’, ‘declick’, ‘dethump’ and ‘denoise’, each depending on the nature of the anomaly to be corrected. Some typical user interfaces for controlling these processes are shown in Figure 7.12.

Mastering software usually incorporates advanced dynamics control such as the TC Works Master X series, based on its Finalizer products, a user interface of which is pictured in Figure 7.13. Here compressor curves and frequency dependency of dynamics can be adjusted and metered. The display also allows the user to view the number of samples at peak level to watch for digital overloads that might be problematic.

7.7 Advanced audio processing software and development tools

High-end audio signal processing workstations, such as the Lake Huron, are designed primarily for research and development purposes. There is also a range of signal processing software for audio research and development that can run on general purpose desktop computers. Although this is not the primary emphasis of this book, brief mention will be made.

Signal processing workstations such as the Huron use large amounts of dedicated DSP hardware to enable the development of advanced real-time algorithms and signal analysis processes. Systems such as this are used for tasks such as acoustical modelling and real-time rendering of complex virtual reality scenes that require many hundreds of millions of computations per second. Such operations are typically beyond the scope of the average desktop PC, requiring some hours of off-line ‘number crunching’. Using high-end workstations such processes may be run off-line in a fraction of the time or may be implemented in real time. A range of applications is available for the Huron workstation, ranging from head-tracked binaural simulation to virtual acoustic reality development tools. Interfaces are available between Huron and MATLAB, the latter being a popular research tool for the analysis, visualisation and manipulation of data.

MSP is a signal processing toolbox and development environment based on the Max MIDI programming environment described below. MSP runs on the Mac or SGI platforms and is designed to enable users to assemble signal processing ‘engines’ with a variety of components (either library or user-defined). They are linked graphically in a similar manner to the MIDI programming objects used in Max, allowing switches, gain, equalisation, delays and other signal processing devices to be inserted in the signal chain. For the user that is not conversant with programming DSPs directly, MSP provides an easy way in to audio signal processing, by pre-defining the building blocks and enabling them to be manipulated and linked graphically.

image

Figure 7.11 CEDAR Retouch display for SADiE, showing frequency (vertical) against time (horizontal) and amplitude (colour/density). Problem areas of the spectrographic display can be highlighted and a new signal synthesised using information from the surrounding region. (a) Harmonics of an interfering signal can be clearly seen. (b) A short-term spike crosses most of the frequency range

image

Figure 7.12 CEDAR restoration plug-ins for SADiE, showing (a) Declick and (b) Denoise processes

Signal processing can be run on the host CPU, provided it is sufficiently fast. An example of an MSP patch that acts as a variable stereo delay processor is shown in Figure 7.14.

7.8 Computer music software

There is a vast range of computer music software available for just about every platform, much of which is free or experimental or shareware. The computer music world is often strongly based in universities and research establishments, leading to a range of little known (outside these fields) but interesting applications that circulate mainly among the cognoscenti and may be downloadable free or for a reasonable price on the Internet. It is not the intention to review this field in detail here, as this book is concerned primarily with mainstream audio production tools. Eduardo Reck Miranda’s book Computer Sound Design: Synthesis Techniques and Programming provides an excellent introduction to some aspects of this field, along with a CD-ROM containing a number of programs exemplifying the techniques described in the book.

image

Figure 7.13 TC Works MasterX mastering dynamics plug-in interface

image

Figure 7.14 Example of a Max MSP patch that describes a variable stereo delay processor

A good example of a MIDI programming environment used widely in computer music is ‘MAX’, named after one of the fathers of electronic music, Max Matthews. MAX is essentially a MIDI programmer’s construction kit, with numerous pre-defined functions. It is now handled by Cycling ‘74 although it was originally supported by Opcode. It also allows new objects to be written in ‘C’ for those whose ambitions extend further than these. MAX allows functional objects to be linked graphically by dragging ‘wires’ from outputs to inputs, making it possible for the user to construct virtually any MIDI control ‘engine’ out of the building blocks. A worldwide network of MAX developers exists, and a large number of third party objects have been authored, many of which are available for the asking. An example of a MAX program or ‘patch’ is shown in Figure 7.15. This simple program sends MIDI clock bytes to a predefined output port at a rate determined by the ‘tempo’ or ‘metro’ objects.

image

Figure 7.15 A simple ‘patch’ constructed in MAX, designed to output MIDI clock bytes at a rate determined by either the tempo or the metro objects

Further reading

Collins, M. (2002) ProTools 5.1 for Music Production. Focal Press.

Miranda, E. R. (2002) Computer Sound Design: Synthesis Techniques and Programming. Focal Press.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset