Real World Interfaces logo

Two options for Devil Fish MIDI In and Out

2014-11-13 Robin Whittle

Quick update 2017-11-12: The Quicksilver 303 system has not been available for a year or so.  I am not sure whether it will be available in the future.  There is another CPU replacement system, with MIDI:

I will investigate this in 2018.  The rest of this page is from 2014-11-13.

To the main Devil Fish page.

There is also a QS-303 MIDI In and Out system for the TR-606: .

Before I developed the Devil Fish MIDI In and Out system, I occasionally installed Colin Fraser's MIDIBass 303 system: .  This is a well regarded system, but we no longer install it.  For those customers who have this, here is the documentation: DF-Sequentix.pdf .


The basic Devil Fish modifications for the Roland TB-303 do not provide MIDI connectivity.  I can install the Devil Fish MIDI In system, the Devil Fish MIDI In and Out system with Dynamic Bank/Channel Switching, or the Quicksilver 303 CPU replacement system, which has MIDI In and Out.  The prices for these options are at:
These three approaches differ from each other in too many ways to represent in a simple comparison chart. 

1: The Devil Fish MIDI In and MIDI In and Out systems

The MIDI In system is documented in the User Manual: ../DF-MIDI-In-Manual.pdf .  It receives Notes, with Slide and Accent (by various techniques, but usually tied notes and velocity respectively) and MIDI Sync.  MIDI In is via the Sync Socket, which can still be used as a Sync Socket when MIDI In is not used.  If it is desired to receive MIDI and drive DIN Sync (derived from MIDI Sync) out to other devices (such as TR-606s, TR-808s or other TB-303s) then this can be achieved with the optional Sync Lead: ../sync-lead/ .

The MIDI In and Out system extends the above to provide MIDI Out on a 5 pin DIN socket of a short adaptor lead which connects to the Devil Fish via a 3.5mm socket on the rear panel between the Sync Socket and the Tuning knob.  MIDI Sync Out is created in response to the TB-303's internal Tempo system, external Roland/DIN Sync In or MIDI In Sync.  All MIDI Out messages are on the same channel as is currently selected for MIDI In - which is any channel 1 to 16.  For complete information on the new MIDI Out facilities, please take a look at the Devil Fish MIDI In and Out system User Manual: ../DF-MIDI-In-Out-Manual.pdf .  The following description concentrates on the MIDI Out capabilities of the MIDI In and Out system.  It does not attempt to describe the system's Dynamic Channel Switching capabilities - please see the manual for full information on this.

There are three modes of operation - Int Seq mode, Ext CV mode and MIDI In Follow mode.  All three modes share two facilities:
  1. Non-Accented notes and Accented notes normally (after the machine is turned on) have Velocity values of 64 and 127 respectively.  At any time, including while the Internal Sequencer is running, in any of the three MIDI Note Out modes, these values can be changed by sending via MIDI In Control Changes for Controllers 20 (non-Accented Note Velocity value) and 21 (Accented Note Velocity value).  The range for both is 1 to 127.  This enables dynamic and perhaps manually controlled (via an external MIDI controller, DAW software or whatever) Accent dynamics in the slave instrument(s) being driven by MIDI Out.

  2. The values for Filter Frequency which are received on MIDI In are replicated via MIDI Out.
Despite the complexity the details of exactly what these three mode do the default settings of the machine should be suitable for most uses without the need to read the manual.  The most likely change people will want to make is to change the receive and transmit channel from its default of 1.  This and other user definable parameters can be changed by pressing the Back and Tap whilst looking at the Blue MIDI LED which shines through the 'e' of the "Devil Fish" logo.  Page 23 of the manual shows how to change the MIDI channel.  The values set for the MIDI channel and the other user definable parameters are stored in non-volatile memory, so they are retained after the machine is turned off and on again.

Pages 46 and 47 of ../DF-MIDI-In-Out-Manual.pdf contain further details of these three modes.

Int Seq mode

The pitches created by the Internal Sequencer, with its timing, Accent and Slide are used to drive MIDI Out.  The Gate In socket, Slide In socket, Accent In socket and the Accent button also affect these notes as described below for the Ext CV mode.

If MIDI Notes are not currently being received, this mode is automatically selected if the Run/Stop LED is ON, which is usually when the Internal Sequencer is playing a pattern in Pattern Write, Pattern Play, Track Play or Track Write mode.

Ext CV mode

The pitches used for MIDI Out Notes are derived from measuring the voltage returned by the CV In socket.  This enables the Devil Fish to be used as a CV-to-MIDI Converter

If MIDI Notes are not currently being received, this mode is automatically selected if the Run/Stop LED is OFF, which is when the Internal Sequencer is not playing a pattern.  However, the Internal Sequencer could be used at this time for inputting or altering Pitch and Time information in Pattern Write mode, during which it may play notes, with Accent and Slide.   If nothing is plugged into the CV In socket, then the MIDI Out notes will derive their pitches from the Internal Sequencer, since the Internal Sequencer is driving the TB-303's 6 bit 1/12th volt per semitone DAC, and the voltage from the DAC is switched through the CV In socket if nothing is plugged into this socket.

The timing of the MIDI Out notes depends to the final Gate signal, which is the OR of the Gate output of the Internal Sequencer, the signal coming from the Gate In socket, and the signal coming from the Slide In socket if it is driven with a signal above 4.0 volts. 

The Slide status of the MIDI Out Notes is  likewise driven by the OR of the Internal Sequencer's Slide signal and the signal from the Slide In socket. 

Similarly, the Accent status of the MIDI Out notes is driven by the OR of the Internal Sequencer's Accent signal, the signal from the Accent In socket and the state of the Accent button. 

This mode is automatically selected if the Run/Stop LED is On, which is usually when the Internal Sequencer is playing a pattern in Pattern Write, Pattern Play, Track Play or Track Write mode.

MIDI In Follow mode

Irrespective of the state of the Run/Stop LED, if the Devil Fish is receiving MIDI In Notes - and so also receiving MIDI In Control Changes for Filter Frequency, All Notes Off and potentially for alternative control arrangements for Gate and Slide, in this mode the MIDI Out note events follow exactly the way Devil Fish MIDI In system responds to incoming messages.  For instance, receiving MIDI In notes involves potential transposition and handling up to ten notes being On at once, with a priority system to determine which pitch to play on the Devil Fish's monophonic synthesizer as these notes are released.  The actual notes which are played as a result of this, with their Accent and Slide, are transmitted to MIDI Out.

The Accent state of the Devil Fish's synthesizer is the OR of three signals:
  • The Accent state of the MIDI In received note (determined by whether its velocity is above the threshold selected in Parameter 6, MIDI In Accent Velocity Threshold, which defaults to 65).
  • The state of the Accent CV In socket circuit, which is turned on by more than about 2.3 volts.
  • The state of the Accent Button.
So one, two or all three of these being On means that the Accent is On for the synthesizer.  The Accent state of the Internal Sequencer, which might be stopped on an accented note, or which might be playing a pattern with accented notes, is ignored. 

The Accent state of the MIDI Out notes (see note 1 above) follows exactly that of the synthesizer.  So it is possible to add accents to the copy of the incoming notes which are sent to MIDI Out by pressing the Accent button and/or by activating the Accent CV In with more than about 2.3 volts. 

If the MIDI In and Out system is configured to perform Dynamic Channel Switching (switching between the notes of four adjacent MIDI In channels, according to various MIDI In events, externally applied Audio/CV signals and/or the state of two toggleswitches) then MIDI In Follow mode replicates on MIDI Out the resulting notes which are played on the Devil Fish synthesizer.

The MIDI Out system is very fast and is capable of sending up to 400 notes a second.  The MIDI In system (and all previous MIDI In systems) can receive such notes without any problems, which is not the case for quite a few MIDI synthesizers.  Sync Clock bytes have priority and there is no upper limit on the frequency which can be used for square waves driving the Gate In socket.  Please see the User Manual for more information on the exact functionality of the 3 modes and the systems minimal jitter.

In both the MIDI In and MIDI In and Out systems, there is a Blue MIDI LED located together with the Red Gate LED in the 'e of the "Devil Fish" logo on the Devil Fish's polycarbonate front panel.  The Blue LED shines sideways into the uncoloured Red LED.  (In an AluCase - - these LEDs are in the same position, but there is no polycarbonate front panel.)  This LED is used for Front Panel operations and is  typically used to indicate MIDI activity for MIDI In. 

To control the settings of the MIDI In (and Out) system there is a "front panel" system using the Back and Tap buttons and the Blue LED.  This necessarily minimal physical interface can be used to alter a variety of settings, such as the receive channel, which are retained in non-volatile memory (independently of any batteries and of the main memory of the TB-303's internal sequencer). 


2:  The Quicksilver 303 CPU upgrade

The Quicksilver 303 is a bold development: - and there is a companion system for the TR-606    For a decade or two people have talked about and made efforts to create a replacement for the TB-303's CPU - a 42 pin 4 bit mask-ROM (factory built, unchangeable, firmware) NEC microcontroller.  This is the first - and may remain the only - such project to reach production.  No replacement original TB-303 CPU chips are available, so in the event that a CPU dies, the machine could not be used except via the Devil Fish CV and Gate inputs, the Devil Fish MIDI In system, or now via the Quicksilver 303.

Here is the documentation I provide for a Devil Fish with Quicksilver 303.  It contains a somewhat expanded account of the points in the rest of this section.


The Quicksilver 303 is a circuit board which is installed in place of the old CPU.  It does not use the TB-303's internal memory, except optionally to read patterns from this memory during installation to write them into its own on-chip non-volatile memory.  After this, the original memory chips would be removed. No battery is required for the pattern and track storage, so the Devil Fish board will not have a lithium battery.

The Quicksilver 303 cannot use the Devil Fish 32 Bank Memory System.  It's Pattern and Track memory systems are structured differently from those of TB-303 and are comparable in capacity to the original machine's memory (one "bank" in the 32 Bank System).  The Quicksilver 303's memory does not rely on batteries - it is similar to FLASH memory and is stored in the Quicksilver 303's microcontroller chip itself.  While this memory cannot be expanded, the patterns and tracks can be dumped to MIDI in a SysEx message, and so can be saved on some external storage device, and later written back into the memory via MIDI In.

The Quicksilver 303 does not drive Sync to the Sync Socket, so it can't drive Sync to other machines via the optional Sync Lead.

The Quicksilver 303 has many advanced sequencer and MIDI control functions.  There are too many to list here, and the feature set is being upgraded.  Please refer to the User Manual at the Quicksilver 303 site and to the Release Notes of the latest version of firmware. 

I provide a printed and comb-bound copy of the manual, to accompany the similarly bound Devil Fish user manual.  The Quicksilver 303 is a complex system and I believe that a personally annotated printed and comb-bound manual is essential to making full use of its many capabilities.

The Quicksilver 303 has a USB port (via a Mini-USB socket) which enables its firmware (the software which is programmed into the microcontroller on the Quicksilver 303 circuit board, and so which controls all its functions) to be upgraded via any PC (Windows, Linux or Mac).  This only takes a few minutes.  This is an especially valuable capability.

The USB port can also be used for MIDI In and Out.  This enables the machine to be controlled from - and to send internal sequencer notes and Sync back to - any MIDI capable computer.  The USB connection is not suitable for driving a USB slave device, since the Quicksilver 303 is itself a USB slave.

When I install a Quicksilver 303 system in the Devil Fish, I install a MIDI Out buffer to to protect the microcontroller chip from excessive voltages which might otherwise damage it, via extraneous voltages being applied to the normally unbuffered MIDI Out connection.

The MIDI In connection is via the Sync Socket, which cannot be used for Sync In while the Quicksilver 303 is receiving MIDI Sync or MIDI notes. MIDI Out is via an adaptor lead and a 3.5mm stereo socket between the Sync Socket and the Tuning knob.

Please refer to the Quicksilver 303 Manual and Release Notes for the the choices of using the DIN MIDI In and Out or the USB MIDI In and Out functions.

Isolating the USB connection

On the Devil Fish with a Quicksilver 303, the Mini-USB socket is located above and between the old Headphone Socket (now Filter Audio Out and Filter FM In) and the Audio Out socket.

The Quicksilver 303's USB connection goes straight to the Quicksilver 303's microcontroller chip.  This raises two problems:
  1. There is risk of damaging the microcontroller due to static electricity or other excessive voltage.  This may put the USB port out of action or it may stop the microcontroller - and therefore the entire Devil Fish (unless driven from CV and Gate inputs) from functioning. 

  2. There is a high likelihood of ground noise (AKA "ground loops", see explanation below) being caused by the necessity of the ground of the USB socket and whatever computer etc. it leads to being connected to the ground of the Devil Fish.
I believe the risk of damage is high enough to be a concern and that the chance of ground noise occurring is  very high indeed.

Consequently, when I install a Quicksilver 303 in a Devil Fish, I always do so with an inbuilt USB Isolator.  This is a small circuit board with a remarkable device: the AMD ADuM4160 (link).  This tiny device uses five transformers to provide data links in both directions without hardwired electrical connections, so providing the same several thousand volt isolation achieved with opto-isolators.

This means there will be no need to use external USB Isolators to avoid ground noise problems.  With the buffered MIDI Out, with the MIDI In already optically isolated, and with the USB internally isolated, the Quicksilver 303 equipped Devil Fish should be highly reliable and will not suffer from any ground noise problems.

Here is a photo of the rugged Amphenol USB socket we are now using for the QS-303 and QS-606.

We also supply a printed and comb-bound version of the QS-303 User Manual and a double-side printed QS-303 cheatsheet card, as pictured towards the end of the TR-606 page: ../../tr-606/ .

Here is the rear panel of a Devil Fish with Quicksilver 303 and the optional headphone socket.

Potential Ground Noise and the Optical Isolation of the MIDI In Signal

There will be no ground noise problems from the MIDI lead via the Sync Lead since the Sync Lead  carries only pins 4 and 5 from the MIDI cable to the Sync socket.

With all these three systems, I am using the Sync Socket as a MIDI In socket.  This is possible because the three pins used for Sync (1, 2 and 3, being the left, middle and right pins) are not used for MIDI In, which uses the intermediate pins 4 and 5.

Normally, a MIDI In socket has only pins 4 and 5 connected.  The MIDI cable has two wires for these pins and a shield wire which is connected to the centre pin 2 at both ends.  However, in accordance with the MIDI Spec, most MIDI In sockets have no connection for pin 2 and MIDI Out sockets always connect pin 2 to ground.

Pins 4 and 5 drive an opto-isolator, which is a LED driving a photo-transistor.  So there is no hardwired electrical connection between these MIDI In pins and the rest of the machine.  This prevents a series of problems known as "ground loops" or "ground noise".

Ground noise in an audio system occurs where one device has its ground voltage (zero volts, the reference for all other voltages) perturbed with respect to the ground voltage of one or more other devices in the system.  This may be a very small disturbance, such as a fraction of a millivolt.  That noise will generally be imposed on the audio output of the device, so noise will be introduced into the system.  Furthermore, the ground noise in the perturbed device's ground is likely to perturb the ground voltage of other devices in the audio system, to different degrees, via the ground connections of the audio leads which connect them.  So one affected device can introduce pervasive background noise into an entire audio setup, such as a studio.  Balanced inputs on a mixer are intended to ignore ground noise, but the problem will persist for any ordinary unbalanced audio connections between devices.

The noise may be hum, or it may be some computer-related more crackly, hissy or erratic noise.   The causes may be complex, hard to diagnose and difficult or impossible to fix.  (In addition, some poorly designed devices impose a hum noise noise between their ground and the ground pin of their mains power cord.  These will introduce ground noise into a system and cause all sorts of trouble.  Since TB-303 power adaptors invariably have no ground, this  problem can't occur with Devil Fishes.)

The TB-303's Sync socket uses pin 2 (the middle pin) for its ground connection.  This is not connected solidly to the ground of the machine - there is a 22 ohm resistor to the pin.  This was part of a circuit for the purposes (as far as I can tell) of loading the default patterns and tracks into the TB-303's memory in the factory.

This 22 ohm resistor has a low enough resistance to be a functional ground connection for Sync purposes, if the two connected devices have no other ground connection.  It is high enough to reduce any ground noise arriving along pin 2 of the MIDI lead to levels which are unlikely to be audible.

This 22 ohm resistor on pin 3 violates the MIDI standard for MIDI In connections, in which pin 3 is supposed to be a non-connect.  However, since the 22 ohm value is high enough to avoid most or all ground noise problems, we can still regard the MIDI In system as being optically isolated and sufficiently isolated to avoid these problems.

No-one has mentioned any ground noise problems using the Devil Fish MIDI In, the Sequentix system or the Quicksilver 303.

Update history:

© Robin Whittle 2012-2014 First Principles and Real World Interfaces

Return to the main Devil Fish page.