Magazine Archive

Home -> Magazines -> Issues -> Articles in this issue -> View

Hollis Research MIDIman

If you own more than one MIDI synthesizer and an Atari ST, then this universal editor/MIDI controller desk accessory could revolutionise the way you work. Martin Russ explores ...

As music software has matured it has grown in complexity and flexibility, with the end result that we now have several professionally featured sequencers and editors all capable of much the same degree of manipulation and massaging of MIDI data designed to help the hi-tech musician create music. Unfortunately, the improved power of editor packages has not been accompanied by a widening of their applicability and scope - until the appearance of MIDIman from Hollis Research that is.

Amongst other things, MIDIman claims to be a universal patch editor, and as such it will allow you to edit almost any MIDI synthesizer, effects unit, drum machine, expander or sampler. The other things? MIDIman is also a MIDI processor, offering comprehensive MIDI control facilities. When used with Hollis' own Trackman sequencer, it becomes a clever and very useful MIDI mapper, allowing you to convert and exploit MIDI messages. Best of all, MIDIman is a 'desk accessory' - so you can have instant access to its processing without having to quit your sequencer program.


If MIDIman does all that, then how does it all fit into 38K of program in a metallic grey A5 ring binder, containing a 30-page manual and two disks? The answer, as we shall discover time and time again with MIDIman, is hidden power.

With Trackman, author John Hollis showed the world that a decent sequencer did not need icons, complex graphics and fussy dialogue boxes. Keeping things plain and simple produces neat, efficient code with no unnecessary frills, which maximises the amount of storage for the music and concentrates your attention on creativity. MIDIman continues this tradition, being a GEM-based desk accessory which packs a lot into a small amount.

Desk accessories exploit the limited multitasking facility of the Atari ST - you can have a desk accessory lying dormant whilst you are using another program, but activate the desk accessory just by pulling down the Atari's Desk menu and selecting it. Desk accessories need to be loaded into the ST's memory when you first power up the machine (or reset it) and so you may need to make up a 'boot' disk with MIDIman and your sequencer both on it - when you start the computer the desk accessory will be automatically loaded, ready for use. If you have a hard disk system, you just put MIDIman into the Auto folder on Drive C:.

Because MIDIman can be used with other sequencers, it is protected by a password system instead of a dongle or copy-protected disk. The first thing you see when you activate MIDIman is a Security Check dialogue box, which asks you to enter a word from the owner's manual - once entered, a larger dialogue box will open. This is the main screen, and initially appears mostly empty.


The main screen is divided into two sections: three-quarters of the screen is devoted to the editing slider controls, whilst the remainder contains the eight page selection buttons and the main control buttons. The opening screen has no editing sliders, so the first thing to do is load in a control file (20K) from the disk.

Because MIDIman is a universal patch editor, it needs to be configured for a specific instrument or application - the current version comes with a wide range of control files covering many of the popular synthesizers and expanders. Hollis Research are constantly expanding the range of supported instruments and, as we shall see, writing your own editor configuration is not too difficult - if you have been following the 'System Exclusive' series then you should have no problems!

Loading in a control file provides up to eight separate pages of editing controls, with up to 24 slider controls on each page. The eight named page buttons let you select which page you want to use. A typical editing page may contain several 'global' sliders, which appear on all the pages, together with others which are unique to that particular page. Global controls are very useful for Operator or Partial selection, and their on-screen position is the same across all eight pages, so that you can always find them easily. Each slider has three elements: the slider bar itself, with a light grey and a moving dark grey zone, which gives a visual indication of the current value; a number on the right of the slider itself, which shows the current numerical value indicated by the slider; and a legend above the slider, which tells you what function the slider is controlling.

How all these sliders work depends on how they are defined, and the definitions are contained in the control files on the disk. You can make a slider behave like an on/off button, a three-way selector switch, or even a data entry slider. Using the sliders is easy: the two mouse buttons are used to increase and decrease the value in the usual way, and two special boxes at the bottom right of the screen allow further control. When the Sound box is selected, it sends a Note-On and then a Note-Off message to your connected instrument every time you edit a slider value, whilst the Fast box speeds up the rate at which the slider position changes. The Edit box lets you define your own custom sliders and pages, of which more later...

Next to the control boxes is a MIDI channel selector, with up/down arrows arranged in a similar way to the equivalent channel selectors in Trackman - the normal numbers refer to the ST's standard MIDI Output port, whilst the calculator-style numbers refer to the extra MIDI Output provided by Trackman's expansion port hardware. In the bottom right corner is the Exit button, which returns control to your main program (eg. sequencer) and suspends direct access to MIDIman - but when you re-activate MIDIman after using the sequencer, everything will be as you left it.


As the actual effect of the sliders and pages are programmable, it is impossible to describe what they do, except for particular cases. To illustrate what is possible, here are just some of the pages of two of the supplied control files.

MIDIMIX: This control file turns MIDIman into a MIDI mixer and Controller. The first two pages provide control over Program Change, Pan and Volume individually for the first 16 MIDI channels, whilst the next two pages deal with the extra 16 channels that Hollis Research's Trackman sequencer provides using the modem port and a special adaptor socket. The fifth page gives control over the major MIDI Controllers [see August issue 'System Exclusive' article]: Modulation, Breath, Expression, Foot Pedal, Portamento Time and On/Off, Data Entry, Volume, Balance, Pan etc, etc. Page six deals with the general purpose Controllers 16-19 and 80-83. Page seven provides access to the Registered and Non-registered Parameter Controllers, with specific sliders for Pitch Bend Sensitivity (RPC 00), Coarse Tuning (RPC 02) and Fine Tuning (RPC 01). The last page contains all the system type commands: Reset, MTC, Start, Stop, Continue, Song Select and Bar Position. These eight pages provide detailed control over most of the MIDI Controllers you will encounter in normal life, and additional special purpose controls can be added if you need them.

D50: This control file turns MIDIman into a comprehensive editor for the Roland D50. Three screen pages deal with the Partials, three cover Modulation, Effects and LFOs, and the remainder provide Patch parameters and Output controls. To keep the program compact, Hollis Research have not implemented any graphic editing of envelopes in version 1.0, and my experience with the DX7 and D50 has shown me that understanding what the parts of an envelope do is much more important than how the overall shape appears. The only other thing missing is a D50 patch librarian facility, and this really should be a priority for the next version of MIDIman.


The D50 example above is a good illustration of one of the important things to bear in mind with any universal editor: they are usually 'transmit only' when editing. What this means is that they will send editing messages to the instrument being edited but they do not normally input patches or voice specifications and then decode the parameter values, as a dedicated editor would. Consequently, the slider positions you find on the pages do not represent the current value of the parameters inside the instrument being edited. This is not as bad as it may sound! There are two techniques to make things easier:

- Initialising. The Send button causes MIDIman to transmit the values of all the sliders on the currently selected page - this is useful for producing a known state when editing an instrument. The known state could be a simple starting point for further editing - as with the 'Vanilla' voice I used in my 'Practically FM' series [SOS May to Oct 1988] or could be the 'initialised' state which sets most instrument parameters to their lowest value. If you edit the pages of a MIDIman control file to create a specific starting voice, you must save the altered pages so that you can re-load them later.

- Listening. There are two main ways to create or edit sounds: the technical method involves studying the parameter values and making changes based on the overall picture; the practical method uses your knowledge of how the process works and then making changes to parameter values and listening to the result.

With MIDIman we are forced to use the latter method - so if a synthesizer sound is too bright we would change the Filter Cutoff frequency parameter. Notice that we do not need to know what the previous value of a parameter was because we are listening for a sound, not editing to a particular value. In some ways this is a return to the 'traditional' knob-twiddling of early synthesizers, since editing with MIDIman really boils down to fiddling around with the on-screen sliders to obtain the sound you want to hear, instead of the more modern, parameter access technique where it is too easy to concentrate on the parameter values themselves instead of the all-important sound. The whole subject of the 'philosophy of editing techniques' is a fascinating one - watch this space for a future article!


'Mapping' is the term given to the assignment or conversion of one MIDI message type into another. At its simplest, it covers the Program Change maps which are often found on effects units, where you want to set up specific effects to be called up with particular patches, eg. choosing Program 14 'Elect Piano' on the Ensoniq VFX causes Program 85 'ChorusReverb' to be activated on the Alesis Quadraverb. More complex uses include using the note pitch information in Note-On or Note-Off messages to control the value of a parameter in a System Exclusive editing message - with the end result that you can have key scaling for parameters the manufacturer never intended. LFO Speed or Depth is an interesting springboard for further investigation...

The Assign button is only available when MIDIman is running co-resident with Trackman, and is the Mapping feature. Clicking on Assign opens a new dialogue box with three horizontally scrolling selections covering the source and destination of the MIDI messages which will be mapped by MIDIman. The sources can be Note events, the Pitch or Mod Wheels, Note Velocity or Pitch - in fact, any MIDI Controller on any track. The destinations can be any of the slider controls - so you can specify System Exclusive messages as well as ordinary Controller messages. MIDIman can be connected into the MIDI data stream either before or after Trackman, meaning you can either record the mapped messages or map differently for each track's output respectively.

Mapping allows a wide range of unusual and complex sounding effects. By selecting Velocity and mapping it to an internal editing parameter using a System Exclusive message, you can create velocity sensitivity where it might otherwise not be possible. On a DX7 the Coarse Frequency of the dominant modulator is a good source for velocity control, but you could just as easily control another MIDI device. For example, you could map the Modulation Wheel to the Reverb Depth of an effects unit. You could remap the Aftertouch so that it controls the LFO waveshape, or the Pitch Wheel so that the Filter Cutoff changes with pitch bend - the possibilities are endless.

A clever algorithm within MIDIman takes into account the relative lengths of the incoming and outgoing MIDI messages and 'thins' the outgoing data accordingly, so you should not suffer any overloading of the MIDI data stream. Because MIDIman can act as a general purpose controller at any time, but can only map when used within Trackman, it is easy to forget that by using MIDIman on the input of Trackman you can record the mapped Controller onto a track for subsequent replaying - so MIDIman need not be just a real-time controller and mapper.


With a limit of eight pages per MIDIman control file, you might be thinking that it will become tedious having to load different files for each instrument you want to control, and that a universal MIDI Controller file sounds like it could be the ideal thing to have ready for action at anytime... Well, the answer to all this is that you can have up to six copies of MIDIman all running at once, with each appearing in the ST's Desk menu as 'MIDIman: MIDImix' or 'MIDIman: D50' etc, so you can quickly see which control file is loaded into each copy of MIDIman. Although MIDIman uses up very little memory, you will probably only be able to exploit this technique effectively with a 1040ST or Mega ST.


The Edit button provides the key to advanced use of MIDIman. When you click on the Edit button two things happen: all the sliders appear on the page and the 'MIDIman' title at the top of the page changes to 'MIDI:'. You can now edit the values of any of the sliders by double-clicking on them, and any MIDI messages which use the sliders will be displayed in hexadecimal at the top of the page after the 'MIDI:' title.

When you edit a slider a Control Editor dialogue box appears. This is used to define how the slider behaves, and although it looks complex and daunting at first, it is simple once you know how it all works.

The most important part of the slider definition is the Profile. This is a string of characters which define the MIDI message which will be sent to the instrument when you use the slider. A special 'language' of symbols is used to tell MIDIman what you want the slider to do:

'?' (question mark) represents the current value of the slider position;
'#' (hash) represents the current MIDI channel, as set on the main page of MIDIman.

Each separate part of the string of characters in the Profile is separated by a comma - so you produce a list of individual entries. MIDIman assumes that numbers you enter are in hexadecimal, unless you precede the number with a '%' (percent) sign. There are also some mathematical symbols like '+', which adds two things together just as you might expect. Other symbols provide logical functions like ANDing, shown by the '&' (ampersand) symbol, and these are useful for controlling individual bits within a MIDI byte.

The Legend part of the Control Editor dialogue box lets you give a meaningful name to a slider, or edit the name it has already been given. The Maximum and Minimum parameters let you set the highest and lowest value that the slider can have, with a limit of -99 to +127. Sliders can be Fixed, in which case they appear in the same screen position on all eight pages, or Paged, whereby they only appear on one page. MIDI data output options let you choose how the outgoing messages are channelised by Trackman or at which MIDI port they will appear.


MIDIman is a flexible and powerful tool which has wide-ranging and often not immediately apparent applications. The accompanying 'Hints' panel gives some of my thoughts on some possible uses but I am sure that you will find your own. As with Trackman, MIDIman shows the unmistakable signs of both being driven by a real need and also of being a product of careful thought and research. The user interface is neat and tidy, and the coding is succinct to keep the program size small - very important in a desk accessory.

At the time of writing I know of at least three other generic or universal editor programs/desk accessories which are due for imminent release: X-Or from Dr. T, GenEdit from Hybrid Arts, and Uni-Man from Zadok. Since the first two of these are from software houses who already produce sequencer programs, we can expect that they will be customised for efficient operation in much the same way as MIDIman. As yet, I do not know if they have the same MIDI Controller and mapping functions as MIDIman. The Satellite desk accessory from Steinberg does not seem to have quite the same level of universal application as these generic editors, and is currently only available as part of their Cubase package.

Conflicts between desk accessories and other programs can occasionally be a problem. MIDIman is at its best when used with Trackman, and I experienced no crashes whilst running it in this configuration. There were problems with losing the screen cursor when using MIDIman and Intelligent Music's RealTime sequencer but, given Hollis Research's exemplary update record for Trackman, I expect this to be quickly solved (the last bug I found in Trackman was fixed and a new version on my desk within a week!). Given the large number of possible programs which MIDIman might be required to work with, it is unreasonable to expect the first release (Version 1.0) to be perfect with every permutation.

The combination of Trackman and MIDIman comes very close to being a perfect tool for the person who wishes to explore the creative horizons of MIDI Controllers and System Exclusive - I thoroughly recommend it to all those readers who are following my 'System Exclusive' series. The effort required to produce your own editing pages is not as high as it might appear because of the feedback you get about exactly what data is being sent over MIDI - so you can interactively edit the MIDIman Profile and compare the message which is sent with the information contained in the System Exclusive pages of the relevant instrument owner's manual. A few more examples in the MIDIman manual would have been useful to the beginner (but see the 'Editing Examples' panel in this review), but close examination of the manufacturer's supplied control files can be very informative.

I have thoroughly enjoyed using this accessory, from the beta testing through to the final polished version. I have found more and more uses for MIDIman as I progressed, and it has now become an indispensable part of my working environment. At the risk of repeating myself: for anyone who wants to exploit MIDI Controllers or System Exclusive to edit instrument parameters, MIDIman has to be an essential purchase.


£79 inc VAT.

Hollis Research, (Contact Details).


- Yamaha: DX5, DX9, DX7, TF1, TX7, DX21, DX100, TX81Z, FB01, RX11.
- Sequential: Prophet VS.
- Roland: Juno 1, Juno 2, Juno 106/106S, HS60, JX8P, D10, D20, D50, D110, MT32 Performance.
- Korg: M1, DS8.
- Ensoniq: ESQ1, ESQM.
- Oberheim: Matrix 6, Matrix 1000.
- Lexicon: LXP1.
- General purpose MIDI Controllers.
- Others are in development...


Here are some examples of the Profiles and Max/Min values needed to achieve some of the more commonly encountered slider definitions:


[Min, Max = 0,0]

This sends the MIDI Program (Patch) Change byte and the data byte as a message - in this case the message will select the first program on Channel 1 (remember to subtract 1 from the Channel number to obtain the actual number MIDI uses: Channels 1 to 16 are indicated by $0 to $F in MIDI). Setting the Min and Max values to 0 turns the slider into a one-shot button: every time you click on it the message will be sent.

Adding the current MIDI Channel gives a message which uses the MIDI Channel shown in the box on the MIDIman page:

[Min, Max = 0,0]

This means that you can choose the channel on which the Program Change message is sent. The C0+# entry in the Profile adds the current value of the MIDI Channel (a hex number between $0 and $F, shown by '#' (hash) in the Profile language) to the $C0 byte, which indicates a Program Change message - the end result is the standard $Cn type byte where 'n' indicates the MIDI Channel number.

So far we have only sent a Program Change message for the first program number (0, 1, A0, A1 or 00 depending on the way your equipment indicates program numbers). By using the current value of the slider and altering the Min and Max values, we can send a message which uses the current position of the slider to control the selected program number:

[Min, Max = 0,127]

This time the fixed number we used in the previous examples has been replaced by the current value symbol: '?' (question mark). The Min and Max values have been changed so that any permissible program number can be selected - but this could be customised, too. For a DX7 Mk1 we could have two sliders - one selecting internal programs:

[Min, Max = 0,31]

and another selecting cartridge programs;

[Min, Max = 32,63]

By selecting appropriate ranges for the internal and cartridge program numbers, we have two sliders which can only select correct values, although the display of values is wrong! When the slider value display shows '0', we have actually selected Program 1. To correct the internal voices requires the following minor alteration:

[Min, Max = 1,32]

We need to subtract 1 from the value displayed, and the ?-1 entry does exactly this. For the cartridge voices, the slider shows '32' when the display shows '1'. To correct this we need to alter both the range of values and how we send the message:

[Min, Max = 1,32]

This Profile displays 1 to 32 and yet sends 32 to 63 over MIDI - the ?+31 entry adds a decimal 31 to the current displayed value of the slider (the percent % symbol in front of a number is used to indicate a decimal number). In a similar way, you could assign eight sliders to produce only eight program numbers, but each one covering only one bank of a Roland D50 type 0-0 to 8-8 program number scheme, as follows:

[Min, Max = 0,7]
[Min, Max = 0,7]

Each Bank slider needs to add another 8 to the current value, so the relevant parts of subsequent Profiles would be ?+%16, ?+%24, ?+%32 etc. If we were using hex numbers instead (to save space in the Profile, perhaps?) then these would be ?+10, ?+18, ?+20 etc. The general rule here is to decide on how the display should look first, and then force the MIDI bytes to be right later.


A Portamento On/Off switch might be useful, especially if you then map it to Aftertouch or Velocity! To create this, the slider needs to display On and Off instead of 0 and 1, and this is determined by setting the Min and Max values to 0 and 1. But to be absolutely safe with the value we transmit over MIDI, we should send 0 and 127 - so we need to multiply by 127 (decimal) or $7F (hexadecimal):

[Min, Max = 0,1]

Here, $B0 indicates a Controller message: Controller $41 (65 in decimal) is the Portamento On/Off Controller number. The (asterisk) symbol shows multiplication - in this case by 127 ($7F).

As another example, using the Pitch Wheel Controller can be a useful way to generate transpositions from a one-shot slider control. Unfortunately, the Pitch Wheel is a centre-zero control and a 14-bit Controller, so controlling it with a MIDIman Profile can be awkward to try and think out. Here's how to do it:

[Min, Max = 0,1]

The $E0+# entry should be familiar by now - it channelises the message to the current setting. Notice that in this case we are using the '?' (current slider position) symbol twice - the first time to deal with the low byte, and the second time to deal with the high byte. To complicate matters even further, the Pitch Wheel is a centre-zero controller which requires $4000 to be sent to represent no pitch bend and $7F7F for its maximum value. Multiplying the current position by $3F and then adding $40 achieves exactly this. The end result is a slider which is the equivalent of moving the Pitch Bend Wheel from its centre position to the maximum in one go. To cancel the pitch bend effect either click on the slider again, or move the real Pitch Wheel.


The same design principle applies for System Exclusive messages - set the display first with the Min and Max values, then use the Profile to set the correct MIDI output message. Most System Exclusive messages are longer than the two or three bytes used for Channel messages, and can result in long and unwieldy Profiles like this one:


This is the System Exclusive message required to alter the LFO Speed of a Kawai K1 synthesizer, a specific example of the general Kawai parameter edit message. The penultimate two bytes look complicated because of the way the K1 compresses 8-bit data into a 1-bit and 7-bit format. For most parameters you never exceed the seven bits, but it makes a good example! The ?>7 entry puts just the most significant bit of an 8-bit value into the most significant bit position by moving it seven places to the left, whilst the ?&7F entry masks the lower seven significant bits using a logical AND function:

? = abcdefgh (in binary)
?>1 = 0abcdefg
?>2 = 00abcdef etc, etc to .. .
?>7 = 0000000a
?&7F = abcdefgh AND 01111111 = 0bcdefgh

A much neater way to approach this is to use one slider as an 'invisible' control which holds the necessary bytes but which uses the MIDIman numeric variables to transfer the necessary parameters. This requires some investigation of the format of the editing messages but makes the individual slider Profiles much shorter and easier to enter. You now only need to enter the whole System Exclusive message once. The 'invisible slider' for the Kawai K1 would be as follows:

[Min, Max = 0,0]

(You can legend this as 'Sysex String' to indicate that it is actually used, if you wish.) A typical slider would have a Profile like this:


Here the start of the required System Exclusive message is followed by the $F parameter number. The two bytes of value data follow, then the $F7 (End Of Exclusive) byte.

Some MIDI expanders like the Yamaha FB01 'nibble-ise' some of the parameter data from a single 8-bit byte into two 4-bit nibbles. The previous example should provide some clues as to how the Profile for a typical editing command might look:


The ?&F entry provides the masking for just the low nibble ($F=00001111 in binary) much as before, but the 7/10 entry does the moving to the right to obtain the high nibble by dividing by $10 (16 in decimal) - this achieves exactly the same as ?>4 would, because the Profile language only performs integer mathematics: any fractional part of the division is ignored. Before I forget, the editing message shown alters the Portamento Time of any of the FB01 'Instruments' which are assigned to the current MIDI channel.

I hope these examples help to show you that creating your own Profiles is only a matter of examining the owner's manual to find out what the MIDI messages look like, and then defining a slider to output a suitable message. The Profiles which come with MIDIman contain many useful examples for you to examine, and this is a very good way of learning how to use the more advanced features.


1. Double-click on a page name button to edit the name.

2. Copy pages by shift-dragging and then set different values for the sliders on each page. These can now be used as memories by sending all the values shown on the page with the 'Send' button. It can be useful to leave one slider for labelling the purpose of a page and to make the page layouts different so that you can quickly differentiate between them. Cutting down on global sliders can also help to make repeated pages easier to use.

3. Do not underestimate the power of the variables. For instance, if you want an editor with only one 'Send' button, you could use one slider to contain the Profile to send the command message, and transfer values into it from other sliders by using the numeric variables a to z. For example:

Profile: F0,a,b,c,d,F7
[Min=0, Max=0]

would be the Profile in the 'Send Command' slider. The following Profile:

Profile: a=43,b=0,c=0,d=?
[Min=0, Max=127]

would be a Profile for a slider controlling an editing command for a Yamaha instrument.

To use this style of editor, you would select a slider and set its value, then click on the 'Send Command' slider one-shot to transmit the command. This can be especially useful if the equipment being edited needs to be sent a checksum, since the checksum brackets will only appear in one Profile.

4. Use two messages in one Profile for crossfading and other complex uses:

[Min=0, Max=127]

This Profile transmits ordinary Volume messages in the current channel, but the opposite Volume messages in the next channel up. By assigning this slider to a MIDI Controller or pedal, you can control two instruments using one pedal and cross-fade between them.

5. There are one or two minor inconsistencies in the MIDIman manual. Page 16 shows the symbol for logical OR as '?' (question mark) instead of "|" (vertical bar). The logical NOT symbol is easily confused with the incorrect '-' (minus) sign instead of the correct tilda sign.

6. Try mapping incoming Note Velocity so that it creates Note-On and Note-Off messages:


Here we have a drum machine on MIDI Channel 4 and a master keyboard on Channel 1. Note number 19 is the closed hi-hat on the drum machine, and the '?' represents the velocity of the played notes on the master keyboard - but here they are being re-used as the hi-hat velocity. The Note-On and Note-Off (velocity of zero!) messages are separated by $F8 bytes. The end result of all this is quite unusual and can be very effective - you get hi-hat hits which follow your playing, following the velocity as well. With some practice the 'invisible' drummer can be very impressive!

7. Sequencing follows on quite nicely from the single drum machine note example above. When you click on the 'Send' button, MIDIman sends the slider values in a set order: left-to-right, top-to-bottom. By placing your Note-Ons and Note-Offs in successive sliders, you can create all sorts of sequences which can be useful for testing out edits you are making with other pages of MIDIman! This works best if you put the first Note-On messages in the first slider Profile, then the Note-Off messages in the next Profile together with the next Note-On messages:

Profile 1: 90+#,3C,7F
Profile 2: 90+#,3C,0,90+#,3E,7F
Profile 3: 90+#,3E,0,90+#,40,7F etc...

8. Don't forget to use the MIDIman 'Help' screen to store notes about any clever tricks you put into your Profiles - you may need to jog your memory when you return to the Profile at a later date!

Also featuring gear in this article

Previous Article in this issue


Sound On Sound - Copyright: SOS Publications Ltd.
The contents of this magazine are re-published here with the kind permission of SOS Publications Ltd.


Sound On Sound - Oct 1989

Donated by: Mike Gorman, Bird201

Scanned by: Mike Gorman

Review by Martin Russ

Previous article in this issue:


Next article in this issue:

> Everything You Ever Wanted T...

Help Support The Things You Love

mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.

If you value this resource, you can support this project - it really helps!

Donations for September 2021
Issues donated this month: 0

New issues that have been donated or scanned for us this month.

Funds donated this month: £22.00

All donations and support are gratefully appreciated - thank you.

Please Contribute to mu:zines by supplying magazines, scanning or donating funds. Thanks!

Monetary donations go towards site running costs, and the occasional coffee for me if there's anything left over!

Small Print

Terms of usePrivacy