Midi Interface
Midi Interface
Midi Interface
Paul Harvey
Date:
Version:
0.3
Name:
Paul Harvey
GU ID:
1733426
Table of Contents
1. Introduction.....................................................................................................................2
2. Program Justification and Development..........................................................................2
Figure 1: High level conceptual schema diagram...........................................................3
3. Program Schedule............................................................................................................4
4. Initial Cost Estimate........................................................................................................6
5. Assessment of Potential Benefits....................................................................................6
6. Risk Assessment and Ethical Considerations..................................................................6
7. Control Procedures..........................................................................................................7
8. Technical Specifications..................................................................................................7
Figure 2: A concept 3D drawing of a MIDI controller...................................................8
Firmware.........................................................................................................................9
8.1 Minimum outcomes.......................................................................................................9
8.2 Additional outcomes......................................................................................................9
9. Quality Schedule............................................................................................................10
10. Wider Engineering Issues............................................................................................11
11. Learning Contract - Skills expected to be gained during this project:.........................11
Appendix A: MIDI technology summary..........................................................................12
Appendix A2: Current MIDI controller market summary.................................................13
Figure 4: A competitor's product similar to the Analogik MIDI controller concept.....13
Appendix A3: Reasons for dropping early PICmicro based prototype.............................13
Appendix B: Current design decisions..............................................................................14
Appendix C: Project Gantt chart.......................................................................................15
Appendix D: Early Original prototype partial Bill Of Materials ......................................16
Appendix F: USB MIDI Controller Test Plan...................................................................17
Appendix F2: MIDI Controller Test Jig setup...................................................................18
Appendix Z: Changelog.....................................................................................................19
Version: 0.3
Page 1 of 20
1.
Paul Harvey
Introduction
Version: 0.3
Page 2 of 20
Paul Harvey
E.G.
Keyboard Device
4
MIDI
source
device
USER
User Input
CHANNEL 5
PATCH 3
PC USB
Host Controller
MIDI 1.0
ports
MIDI-over-USB
THRU IN OUT
User output
MIDI
sink
device
US
IN ER
PU
T
ER
US PUT
T
OU
MCU
USB
FIFO
NB: USB, MIDI 1.0 IN/OUT are all digital serial-bus type interfaces.
Figure 1 above shows a simplistic data flow diagram of a typical MIDI controller setup. The
user interacts with the device using input controls such as knobs, sliders and buttons (block
1), and also monitors output in the form of an LCD and status LEDs (block 2). For actual
input/output specifications, see Section 8.1. This I/O is relayed via the MIDI controller
circuitry (block 3, where the entire scope for this project lies) to a PC running MIDI capable
software (block 4) via USB, MIDI-over-USB. The MIDI source/sink blocks demonstrate
the ability for the MIDI bus to be expanded with more MIDI devices. The MIDI 1.0 bus
traditionally connects via a legacy 15 pin d-sub gameport connector on a PC with an adapter,
however, modern laptops and PCs often do not have this so USB is used instead.
Project goals
1. Create a prototype low-cost MIDI controller, where at the conclusion of this IAP2 project a
functioning PCA to which the specified user I/O (See 8.1) will connect as test jigs
2. A MIDI IN port will be implemented to which a MIDI source can be attached (see Fig. 1)
3. A MIDI OUT port will be implemented to which a MIDI sink can be attached (see Fig. 1)
4. A USB port will be implemented to which a PC will be attached, communicating MIDI
messages (See Fig. 1, block 3-4 connector)
5. Actual form factor of input panel controls is not within the scope of this project
ergonomics, economics, and manufacturing issues need to be addressed. Hence the usage
of test jigs for user input/output they are not to be considered part of the assessed project.
Currently, the HC9S12A64CFU MCU from Motorola has been chosen, as has the FTDI
FT8U245AM USB FIFO/UART IC. See Appendix B: Current Design decisions for
justification and driver software issues.
Modified: 20. Feb. 2004
Version: 0.3
Page 3 of 20
Paul Harvey
3. Program Schedule
Refer to Gantt chart in Appendix C. All work is to be carried out on a standard PC
workstation under the GNU/Linux platform with Internet connection. Even if not listed, this
resource is assumed to be used throughout the entire project.
Work breakdown major milestones are marked in bold
Week Item
0.
Research. Items:
Resources required:
1-2.
Start the design of full (all I/O present) schematic, decide on which
MCU pin will do what
Items:
Resources required:
3-4.
PCB CAD software; University's copy of Protel (NB: voids use of PCB
design for commercial purposes)
Items:
Milestone: Implement firmware on a real HC9S12DP256 evaluation board
Test code should show evidence of working input routines on debug port
Resources required:
5-6.
Breadboard, MIDI DIN sockets, MIDI -> legacy PC game port adapter,
cables, opto-coupler, misc. components (may be provided by Paul Harvey)
Project Confirmation
Modified: 20. Feb. 2004
Version: 0.3
Page 4 of 20
7-9.
Paul Harvey
Items:
Create a FT8U245 PCB test jig (to adapt QFP IC for breadboard use)
Resources required:
Test jigs for: 64 LEDs, 64 buttons, 16x2 LCD (provided by Paul Harvey)
Design PCB
10-11. Items:
Resources required:
Resources required:
14-15. Items:
Workbench space
Resources required:
Version: 0.3
Page 5 of 20
Paul Harvey
Components - Although the MCU selected so far is priced at ~ $10 ex GST, Arrow
electronics has a minimum order of $100 + shipping. An alternate supplier or a coordinated purchase with others at the University may be required.
In total, judging from the PICmicro based original prototype, total component costs
excluding MCU/USB FIFO may approach $100 (See Appendix D: Early PICmicro
prototype component list). For a full test input panel to be created, the cost will be more.
PCB - There are two SMT ICs to be loaded onto the final PCB. This may not possible
with the University's PCB workshop. In this case, at least $224 should be allocated for
manufacturing at BEC.
Labour (in-kind) - Project manager (Paul Harvey) $15/hr x 50hrs/wk x 12 wks = $9000
Cost savings via usage of University laboratories (free use of $1k's worth of test equip.)
Prototype savings via University resources including academic licensed CAD software
(Protel 2004 is >$10,000 RRP) and will provide solid starting point for production version
Drivers - The 2.6 Kernel may have an unforeseen problem due to it being a newly released
kernel; emulation of existing controllers may not be feasible, taking more work
USB - The FT8U245 may have some limitation preventing it working MIDI over USB
PCB Delays in fabbing. the PCB may occur; it may be defective or designed with errors
MIDI over USB implementation may have latency issues making MIDI OUT inadequate
Ordering cheapest MCU that meets requirements exactly could take longer than expected
The MCU ordered has some difference that causes it to behave differently with same code
Version: 0.3
Page 6 of 20
Paul Harvey
This is a consumer device that is to be powered with an external 3rd party PSU; there is
little chance this device could physically harm a human being
Could cause expense to Analogik if a production had to be recalled due to a design flaw
A device advertised to be USB/MIDI compatible must undergo USB consortium and MIDI
Manufacturers Association registration, which must pass expensive Logo testing.
It is believed that apart from USB and MIDI, the technologies used in the prototype are
royalty-free. However without doing a patent search it is difficult to be 100% certain.
7. Control Procedures
Changes to the final deliverables and/or the approach to achieve them will be documented in
this report. Whilst a version number and a date will identify which version of the planning
report a certain copy may be, all changes will be recorded in Appendix Z Changelog.
Each change must be approved by all parties mentioned in the introduction of this report. If a
major schedule slippage has occurred, and the final delivery deadline will be missed, the
action mentioned under Failsafe Notice in Section 8, Technical Specifications may be used.
8. Technical Specifications
Connections
1. Standard MIDI 1.0 IN/OUT/THRU ports
- Mechanical: 5 pin DIN sockets
- Electrical: 5mA opto-isolated current loop, 31250 bits per second as specified by MIDI
1.0. Voltage (non-cable) side of the opto-coupler should have test points on the PCB.
2. USB 1.1 port, as provided by FTDI 245 USB FIFO IC
- Mechanical: USB type 'B' socket (peripheral device socket)
- Electrical: NRZI, 3.3V differential 1.5Mbps as specified by USB 1.1 Low-Speed
specification and supported by the FTDI FT8U245 USB-FIFO IC. Testpoints for D- and
D+ should be provided on the PCB.
3. Power input 9V DC
4. TTL debug I/O port header (a TTL <-> RS232 adapter would be used to connect a PC)
User-input/output See Appendix F2 for test jig setup details
1. 64 digital push-buttons (8x8 scanned matrix, debounce in firmware) and 64 LEDs
Of those 64, four will be reserved for LCD menu navigation buttons: left, right, enter, esc.
A further 16 will be reserved for patch changes (input association maps). The rest will be
assignable MIDI triggers.
2. 48 potentiometers configured as voltage dividers (linear; can be either knobs or sliders.
MIDI 1.0 allows for coarse controllers to have 127 levels, fine to have 16,384 levels)
Modified: 20. Feb. 2004
Version: 0.3
Page 7 of 20
Paul Harvey
64
65
66
67
68
69
80
81
82
83
120
121
122
123
124
125
1
2
4
5
6
7
8
10
11
12
13
16
17
18
19
32
33
34
36
37
38
39
40
42
43
44
45
(on/off)
(on/off)
(on/off)
(on/off)
4. 16x2 character alpha-numeric LCD (as provided by HD44780 compatible LCD), to display
MIDI channel the controller is on at startup, and the ID + value of the last moved control.
Figure 2: A concept 3D drawing of a MIDI controller
The final arrangement of these inputs is subject to change, since enclosure design (probably at
least dust proof) and other production issues have not been considered. However, it is trivial
to change input assignments; the controller ID is merely modified in the firmware code.
Additionally, the MIDI software package can assign any arbitrary MIDI input to any arbitrary
action in the program.
Version: 0.3
Page 8 of 20
Paul Harvey
Firmware
1. Scan all controller input and generate correct MIDI messages on the MIDI OUT port and
IN USB endpoint in response to changing input
2. Set the state of each LED as necessary either by responding to MIDI IN or OUT USB
endpoint messages, or the toggle state of an associated digital push-button
3. Respond correctly to MIDI IN messages or OUT USB endpoint. That is, forward messages
on to the MIDI OUT port if necessary, respond to MMC codes, reset requests, and so on.
4. Provide a facility utilizing the LCD and some of the digital push-buttons to implement a
menu system to configure the unit's MIDI channel number, edit a controller mapping and
loading controller mappings.
5. Control and maintain the USB FIFO IC
6. Control and maintain the LCD
Linux kernel driver
1. Allow a user-land application to receive MIDI messages given an appropriate /
dev/midiXX node which would be registered with the driver
2. Allow the user-land application to send MIDI messages to the MIDI controller, such as
program changes, sync and timing information
Version: 0.3
Page 9 of 20
Paul Harvey
9. Quality Schedule
This project will be considered successful for the purposes of the purposes of IAP2 if:
1. A working prototype is developed, and approved as per 8.1 Minimum outcomes.
2. The prototype is completed by the required date, and
3. The prototype is useful as a starting point for further commercial development.
Generic useful development practices will include logging changes made to each project file;
storing each version as they are modified; and updating this project plan as new problems and
circumstances arise. Specific best-practice engineering methods include, for C coding running code past a code checker (such as lclint); for PCB design, setting each design rule
possible to known fabrication parameters and have the CAD package check the design; for
code performance, an ELF binary profiling tool has already been created (bytewise.pl) that
shows a function-by-function, file-by-file breakdown of code space usage in a C project.
Further with PCB design, general prototype design practices will be used to ensure maximum
correctability of the first PCB. Jumper blocks or solder pads can be used to isolate certain
circuits easily. Test points can be created on critical I/O lines and other signals such as the
MCU CLK pulse. If at all possible, signal lines traveling exclusively in the top layer will
avoid the underside of DIP ICs. Also, as a matter of component flexibility, component
footprints that cater for more than one pin-out profile should be used (eg. capacitors,
switches, sockets).
Verification and Validation Plan
All five milestones in the project plan can be independently verified. For a complete test plan,
see Appendix F. An outline is listed below:
Wk
Milestone
3.
4.
8.
Show CRO waveform indicative of correct bit rate and 5mA current specification
Show LCD displays controller ID and value of last potentiometer to have moved
Version: 0.3
Page 10 of 20
Paul Harvey
12.
Show the same points verified in Wk. 4 & Wk. 8 for final prototype PCA
At each validation point, the supervisor may operate the controls and/or observe the PC-side
software, LCD, and LED activity for themselves. However, it is expected that the bulk,
exhaustive testing of each input will be performed by the project manager/student. Each
milestone is to be demonstrated to the technical supervisor, except for the week 12 (final)
demonstration which may also be demonstrated to Dejan Petrovic.
USB internals, driver development, MIDI internals, PCB design with SMT components
Version: 0.3
Page 11 of 20
Paul Harvey
Version: 0.3
Page 12 of 20
Paul Harvey
Most MIDI controllers are designed around a keyboard of two to seven octaves, with various
knobs and sliders, pitch wheels and other input devices scattered around the outside. Often,
musicians feel that they don't have enough control. Keyboards with more than 16
knob/slider inputs are generally full sized and quite expensive. Analogik believes there is a
market for a controller that is focused on just the input controls, leaving the consumer to stick
with their existing, cheaper MIDI keyboard.
There are a number of existing products available, some coming from well established names
such as Korg, Roland, and Yamaha. Of these, the product closest resembling the aim of this
IAP2 project is the Korg Microkontrol, which has an RRP of 275 GBP (~$660 AUD)ii. It has
8 knobs, 8 sliders, 16 trigger pads, joystick and a 37 note mini keyboard. Also available is the
US-428 from Tascam, with 2x 24bit audio in/out channels, no keyboard, 18 knobs/sliders,
various buttons and a jog wheel - pricediii at 449 GBP RRP (~$1070 AUD)iv
Version: 0.3
Page 13 of 20
Paul Harvey
A Linux driver exists for FT8U232; rights to royalty-free windows driver with each IC
All USB enumeration, endpoint setup and other USB tasks are performed internally
Although the target market will be a mostly Windows XP userbase with some MacOS X,
commercial grade consumer driver software is beyond the scope of this project. The easiest
and most accessible platform to develop with is Linux. It does not take very long for one to
navigate the Linux kernel source and see that, at first glance, there appears to be just three
source files associated with interfacing MIDI over USB (See Table 1).
By studying this part of the kernel source, it can be seen that device-specific information
relating to existing products on the market are mostly in usb-midi.h, with the exception of a
few products that have extra features and/or quirks that need work-arounds. It should be
possible to build a USB MIDI device with minimal modification to these modules; in fact, by
studying the source closely, it may be possible to emulate an existing device so that no
changes are necessary.
Table 1: Linux Kernel 2.6 usb-midi driver related files
File
Comment
Version: 0.3
Page 14 of 20
Paul Harvey
Version: 0.3
Page 15 of 20
Version: 0.3
50 pins
(25 pins Rqrd.)
2x 50 pins (2x 82 pins Rqrd.)
32 holes
DIL8
DIL14
DIL16
DIL18
DIL20
DIL40
TO-220
Heatsink
Slider pot
For MCU
OTHER STUFF
IDC plug, 50 way
2x25
IDC socket, 50 way, PCB
2x25
IDC cable, 50 way
1m
Locking header plug, 8 way
IDC cable, 16 way
2m
2.5mm
5 pin MIDI
5 pin MIDI
DC Power jack
DIN Socket
DIN Plug
Supplier
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
PI-6470
PI-6500
PI-6501
PI-6502
PI-6503
PI-6504
PI-6508
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
HM-3250 Jaycar
HM-3250 Jaycar
PS-0520 Jaycar
PS-0350 Jaycar
PP-0304 Jaycar
Jaycar
Jaycar
ZS-5000 Jaycar
Jaycar
ZS-5004 Jaycar
ZS-5008 Jaycar
ZS-5020 Jaycar
ZS-5032 Jaycar
ZS-5074 Jaycar
ZS-5123 Jaycar
ZS-5139 Jaycar
ZS-5245 Jaycar
Jaycar
ZS-5273 Jaycar
Jaycar
ZK-8855 Jaycar
ZC-4051 Jaycar
ZK-8862 Jaycar
ZV-1505 Jaycar
Cat. No.
RC-5326
RC-5314
RC-5336
RC-5490
RE-6032
RC-5490
RE-6066
RE-6220
ZR-1004
ZR-1100
ZR-1014
ZR-1450
ZR-1405
SF-2160
ZD-1940
ZD-1740
RR-0554
RR-0556
RR-0558
RR-0588
RR-0596
RR-0620
RT-4304
RT-4310
RT-4312
RT-4318
RP-3920 Jaycar
Jaycar
HH-8520 Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Jaycar
Inline cable PS-0990 Jaycar
Vertical PCB PP-1116 Jaycar
WM-4508 Jaycar
HM-3408 Jaycar
WM-4502 Jaycar
25.4mm grid
PCB Mount
PCB Mount
Inline
DIL40
HC49U
15pF - 30pF CL
20Mhz
20Mhz
Horizontal
Horizontal
Horizontal
Horizontal
Package
Ceramic Disc
Ceramic Disc
Ceramic Disc
Ceramic Disc
Radial
Radial
Radial
Radial
Axial
Axial
Axial (Large)
Axial (Large)
Axial
5 x 20mm
DIL8
MCU: PIC16F874/P
Parallel resonance XTAL
(500R)
Panel LEDs
! - Pack of 8
(1N5352 - !TVS)
(1N4735)
IC Decoupling
VR2
Power Supply
XTAL
Multivibrator
Notes
DIL14
DIL14
DIL14
DIL14
DIL14
DIL14
DIL14
DIL16
DIL16
DIL20
DIL16
DIL20
DIL20
DIL18
DIL16
DIL20
TO-220
Value
150pF
15pF
1nF
0.1uF
1uF
1uF
10uF
1000uF
1N4004
1N4148
1N5404
P6KE16CA
BZX85C6V2
2A
6N138
3mm
180R
220R
270R
4.7k
10k
100k
100R
5k
10k
100k
Item
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Diode
Diode
Diode
Diode
Diode
Fuse
Optocoupler
LED
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Variable resistor
Variable resistor
Variable resistor
Variable resistor
$0.75
$3.15
$1.10
$8.50
$1.05
$0.90
$3.50
$1.30
$9.95
$1.20
$2.35
$2.55
$2.20
$5.60
$0.95
$2.00
$1.50
$2.80
$0.25
$0.28
$0.34
$0.35
$0.45
$0.70
$1.80
$1.80
$1.60
$2.15
$1.95
$5.60
$0.85
$2.00
$1.95
$2.45
$0.22
$0.25
$0.30
$0.30
$0.40
$0.60
$1.60
$1.60
$0.90
$1.50
$0.70
$0.50
$0.50
$0.60
$0.60
$0.75
$1.30
$0.80
$0.70
$0.60
$0.60
$0.70
$0.70
$0.90
$1.50
$0.95
$0.85
$1.00
$1.70
$0.78
$0.50
$0.60
$1.60
$2.15
$1.95
$5.60
$0.85
$2.00
$1.95
$2.15
$0.20
$0.22
$0.25
$0.25
$0.35
$0.55
$1.60
$1.60
$0.90
$1.50
$0.70
$2.45
$0.75
$6.50
$0.80
$0.50
$0.35
$0.35
$0.40
$0.40
$0.50
$0.90
$0.55
$0.50
$0.35
$1.40
$1.95
$1.75
$5.60
$0.75
$2.00
$1.95
$2.15
$0.20
$0.22
$0.25
$0.25
$0.35
$0.55
$1.60
$1.60
$0.80
$1.35
$0.60
$2.45
$0.75
$6.50
$0.80
$0.50
$0.35
$0.35
$0.40
$0.40
$0.50
$0.90
$0.55
$0.50
$0.35
48
2
2
1
1
1
1
1
10
17
8
1
1
1
2
1
1
1
8
7
1
2
2
1
3
1
1
1
1
7
Cost ea. < 10 Cost ea. < 25 Cost ea. > 25 Cost ea. > 100 Qty. per unit
$0.28
$0.28
$0.19
$0.16
1
$0.28
$0.28
$0.19
$0.16
2
$0.28
$0.28
$0.19
$0.16
1
$0.20
$0.20
$0.14
$0.12
1
$0.25
$0.25
$0.17
$0.15
5
$0.20
$0.20
$0.14
$0.12
51
$0.20
$0.20
$0.14
$0.12
1
$0.70
$0.70
$0.45
$0.40
3
$0.36
$0.30
$0.25
$0.25
1
$0.32
$0.24
$0.17
$0.17
12
$0.25
$0.18
$0.13
$0.13
1
$1.60
$1.40
$1.40
$1.10
1
$0.40
$0.35
$0.25
$0.25
2
$0.35
$0.30
$0.25
$0.25
1
$4.25
$3.75
$2.90
$2.90
1
$0.25
$0.22
$0.17
$0.17
3
$0.38
$0.25
$0.22
$0.22
2
$0.38
$0.25
$0.22
$0.22
5
$0.38
$0.25
$0.22
$0.22
63
$0.38
$0.25
$0.22
$0.22
2
$0.38
$0.25
$0.22
$0.22
6
$0.38
$0.25
$0.22
$0.22
10
$0.32
$0.32
$0.22
$0.19
1
$0.32
$0.32
$0.22
$0.19
1
$0.32
$0.32
$0.22
$0.19
1
$0.32
$0.32
$0.22
$0.19
1
1
1
1
1
1
1
1
6
9
0
9
1
1
2
1
1
1
0
7
1
2
2
1
1
0
0
0
1
7
48
2
2
1
1
1
Proto:
1
1
1
0
0
2
1
1
1
$9.40
$22.70
$2.55
$2.20
$5.60
$0.95
$2.00
$1.50
$22.92
$80.06
$2.80
$0.25
$1.68
$3.06
$0.00
$4.05
$0.70
$1.80
$3.60
$1.00
$1.70
$0.78
Subtotal (proto)
$0.28
$0.56
$0.00
$0.00
$0.75
$6.00
$0.20
$2.10
$0.36
$0.32
$0.25
$1.60
$0.80
$0.35
$4.25
$0.75
$0.76
$1.90
$0.00
$0.76
$1.52
$0.00
$0.32
$0.32
$0.32
$0.32
$24.79
$0.60
$0.00
$1.20
$0.60
$0.70
$0.00
$0.00
$0.00
$0.95
$5.95
$0.00
$0.90
$0.00
$0.00
$9.10
$9.95
$2.40
$32.35
$0.00
$0.00
Page 16 of 20
Paul Harvey
Version: 0.1
Week milestone
3 EVB Firmware implementation
Test item
Pass?
Debug output response to:
Potentiometers
Digital triggers
Contrast OK
INIT OK
Backlight OK
Display pot. input ID+val. on
last moved
5mA current loop present on
cable
Bit rate @ 31250 bps
5mA current loop in cable vs
MCU input (voltage-side) of
opto-coupler are correct
All pots. create appropriate
response on PC-side software
All buttons create appropriate
response on PC-side software
or controller LEDs
All LEDs respond correctly to
PC-side software MIDI
messages and/or controller
buttons
PC-side MIDI test software
responds correctly to all Pots.
and buttons.
Controller responds correctly to
MIDI messages generated by
PC-side test software
3.3V differential NRZI encoding
Bit rate @ 1.5Mbps
PC-side MIDI test software
responds correctly to all Pots.
and buttons.
Controller responds correctly to
MIDI messages generated by
PC-side test software
4 LCD
4 LEDs firmware/circuitry
Version: 0.3
Page 17 of 20
Paul Harvey
PC USB Host
controller
USB
MIDI
Controller
Prototype
MIDI IN
MIDI OUT
LED matrix jig
CHANNEL 5
TEST TEST
Version: 0.3
Page 18 of 20
Paul Harvey
Appendix Z: Changelog
0.1 0.2: (first signing) 20/02/2004
Removed block diagram of system showing PC software layers (some of it merged with
Fig.1 )
Adjusted work schedule (had only allocated 12 weeks, now 14 are used)
Version: 0.3
Page 19 of 20
Sound & Music (Australia) Product Information for the UC33E, http://www.soundmusic.com/product_info.php?PID=158 [accessed 19/02/2004]
ii Sounds Live (Newcastle) Ltd. (UK) Korg Microkontrol, http://www.soundslive.co.uk/moreinfo.asp?ID=2672
[accessed 19/02/2004]
iii Promenade Music (UK) Tascam US-428, http://www.promenademusic.co.uk/catalogue/details.asp?pid=941
[accessed 19/02/2004]
iv Sounds Live (Newcastle) Ltd. (UK) Tascam US-428, http://www.soundslive.co.uk/moreinfo.asp?ID=1050 [accessed
19/02/2004]