Midimuso MDCO-3 User manual

Midimuso MDCO-3
Overview:
The Midimuso MDCO-3 is a MIDI-controlled, 2 voice oscillator IC with
Volts / Hz high-resolution control voltage outputs.
Two independent square-wave oscillators per chip.
Two separate trigger outputs for envelope generators / gates.
(5V for “note on or 0V for “note off )
Chaina le: More MDCO-3s can be linked to produce more polyphony
(up to 12 mono voices, unlimited Poly / Unison voices *)
Volts / Hz high resolution control voltage outputs using “8 + 8” Fast Hy rid PWM
which can be used to provide the correct charging voltage for an integrator circuit
to produce sawtooth or triangle waves or used to retro-fit systems which use the
Volts / Hz pitch system.
Pitch range of 8 octaves (MIDI keys C0 to C8) i.e. 32.5 Hz to 8.4 kHz
Pitch accuracy of 0.0006% of one semitone at Middle C
Pitch Bend (range can be set by user)
Guaranteed pitch stability (quartz controlled)
Pulse-Width control and Detune on every oscillator
Polyphonic, Unison and Monophonic modes
Velocity and MIDI-Volume outputs available in Unison mode
9 auxilliary triggers per chip for general use (5V for “note on or 0V for “note off
for drum machines etc.).
These can be chained so that 2 chips give 18 triggers
to a max of 4 chips giving 36 triggers.
MIDI Clock out in all modes
Built-in Test Mode to allow you to accurately calibrate conversion-precision
using just an audio amplifier.
PANIC MODE! Sending Program Change 9 resets main parameters
* Delay from chip to chip is less than 1 millisecond.

Contents Page
Pinouts 3
Chaining MDCO-3s together 3
Modes, setting and changing 4
Using the Auxiliary Triggers / gates 5
Changing Settings: 6
Changing Pitch bend range
Setting Oscillator Pulse Width
Setting Oscillator Detune
Circuit: Setting up and calibration 7
What is high-resolution “8 + 8 fast PWM? 8
Suggested Analogue Circuits 9

Pinouts (modes 0 and Mode 2 use the same pins. Mode 1 differs on pins 5 and 17)
All unconnected pins are outputs except pin #2 which is MIDI in.
Chaining
Chips are connected together with a resistor of 220 Ohms from pin 3 of one chip to pin 2 of the next chip.
You just need to connect the resistors.
The chips detect chaining automatically at power-up.
All chips must be powered up AT THE SAME TIME! If not, they won't see each other.
A Fast-Pass algorithm is used to ring delay etween chips down to < 1 ms.

Modes
(on arrival, the IC is set to MODE 0)
Polyphonic, Unison or Monophonic mode:
Program Change 0 puts all chips into Polyphonic mode
Program Change 1 puts all chips into Unison mode
Program Change 2 puts all chips into Monophonic mode
You don't have to reset the IC after a Mode change.
The IC will remember it is in the new mode even after power off.
The mode can be changed again at any time.
Mode 0 is Polyphonic mode.
Notes should be sent on MIDI channel 1.
Each chip plays 2 notes. If chained, extra notes are sent on to next chip.
2 chips can handle 4 notes, 3 chips can handle 6 notes etc...
Pitch Bend affects all notes.
Mode 1 is Unison mode.
Notes should be sent on MIDI channel 1.
Both on-chip oscillators play the same note (detuning is available).
If more than one note is sent, it will be passed on to the next chip.
This allows polyphony with one note per chip.
Pitch Bend affects all notes.
Mode 2 is Mono mode.
Notes sent on MIDI channel 1 will output on Oscillator A of the first chip.
Notes sent on MIDI channel 2 will output on Oscillator B of the first chip.
Notes sent on MIDI channel 3 will output on Oscillator A of the second chip.
Notes sent on MIDI channel 4 will output on Oscillator B of the second chip.
And so on to a maximum of 12 channels over 6 chips.
Pitch Bend is routed by channel
i.e.
Pitch Bend on MIDI channel 3 will only affect Oscillator A of chip #2.
Pitch Bend on MIDI channel 4 will only affect Oscillator B of chip #2
Pitch end on MIDI channel 5 will only affect oscillator A on chip #3 etc.

Auxiliary Triggers / Gates
Aux triggers (5V for “note on or 0V for “note off ) respond to MIDI channels 13, 14, 15 and 16.
They are output only on the first four chips in the chain.
9 triggers-per-chip gives 36 triggers maximum.
Note-on messages activate (make high) triggers.
Note-off messages deactivate (make low) triggers.
Triggers 1 to 9 correspond to keys middle
Key Trigger#
middle C 1
C# 2
D 3
Eb 4
E 5
F 6
F# 7
G 8
Ab 9
Chip #1 is on MIDI channel 13
Chip #2 is on MIDI channel 14
Chip #3 is on MIDI channel 15
Chip #4 is on MIDI channel 16
e.g.
Trigger #1 on chip #1, responds to pitch C4 (0x3C, 60) on MIDI channel 13.
Trigger #2 on chip #1, responds to pitch C#4 (0x3D, 61) on MIDI channel 13.
Trigger #5 on chip #2, responds to pitch E (0x40, 64) on MIDI channel 14.
If you were using 4 chips,
Trigger #9 on chip #4, would respond to pitch Ab (0x44, 68) on MIDI channel 16.

Changing Settings
Changing Pitch end range
Pitch bend is set by pressing keys above and below middle C.
Up and down are set separately.
Program Change 3 followed by a note a ove Middle C will set the pitch-bend-up amount as the
number of semitones from Middle C to that note.
Program Change 3 followed by a note elow Middle C will set the pitch-bend-down amount as the
number of semitones from Middle C to that note.
Example: to set pitch end to 1 octave up and down:
Send a Program Change 3 message
Press the C key one octave a ove middle C
(MIDI bytes: 0x90, 0x48, 0x7F)
Send a Program Change 3 message
Press the C key one octave elow middle C (note on: 0x30, 48)
(MIDI bytes: 0x90, 0x30, 0x7F)
Example: to set pitch bend to Minor 3rd up and Major 4th down:
Send a Program Change 3 message
Send note on with a pitch of Eb a ove middle C
(MIDI bytes: 0x90, 0x3F, 0x7F)
Send a Program Change 3 message
Send note on with a pitch of G elow middle C
(MIDI bytes: 0x90, 0x37, 0x7F)
Setting Pulse-Width
Pulse width is set by MIDI controller number 95 (“phaser”).
A centre value of 64 gives equal mark:space ratio.
MIDI channel 1 controls pulse width for oscillator A on chip #1.
MIDI channel 2 controls pulse width for oscillator B on chip #1.
MIDI channel 3 controls pulse width for oscillator A on chip #2.
and so on up to...
MIDI channel 12 controls pulse width for oscillator B on chip #6.
Setting Detune
Detune is set by MIDI controller number 93 (“chorus”).
A centre value of 64 gives no detuning.
Higher or lower values affect pitch proportionally up to plus / minus 1 semitone.
MIDI channel 1 controls detune for oscillator A on chip #1.
MIDI channel 2 controls detune for oscillator B on chip #1.
MIDI channel 3 controls detune for oscillator A on chip #2.
and so on up to:
MIDI channel 12 controls detune for oscillator B on chip #6.

Setting Up and Calibration
Suggested MIDI input circuit (connected to first chip only)
“8 + 8” Scematic Diagram for Oscillator A's Control Voltage
Above is the simplest circuit for producing a useful control voltage from oscillator A (and B) “8+8 PWM
outputs. R2 is used to balance the 8 + 8 outputs.
The exact same circuit is used for Oscillator B on pins 17 (B Hi) and 5 (B Lo) if using modes 0 or 2.
Mode 1 (Unison) does not use this circuit for pins 17 and 5.
P1 is only required if you want to set the overall gain to conform to the V / Hz standard
i.e. 0.440 Volts = 440 Hz, 1.000 Volts = 1kHz etc.
When variable resistor R2 is at its mid-range, the ratio of R2:R1 is about 0.5:120 = 1:240 which is near the
final desired ratio of 1:256. The MCDO-3 has a test mode to allow you to balance this with great precision
using just an audio amplifier.
To cali rate the circuit:
1) Send MIDI Program Change 6 to the chip. This puts the chip into Test Mode for both A and B oscillators.
2) Open switch SW1.
3) You can use a 'scope to see or an audio probe (any high-gain audio amp will do) to detect a 2kHz square
wave at the junction of R1 and R2. (the chip generates this)
4) Turn R2 until the amplitude (volume) of the sound starts to decrease and find the point where it disappears
altogether. If you overshoot, you'll hear / see it growing again. Increasing the gain on your 'scope / amp will
allow greater accuracy until the tone is lost in the noise floor.
The 8 + 8 PWM is now balanced properly.
5) Close SW1
6) Reset the chip (power cycle i.e. power off and on again.)
The next step is to adjust P1 to give the right scale of V / Hz values.
7) Put the chip into Mono Mode (Program Change 2)
8) Make sure you are sending notes on MIDI channel 1.

The table below shows the values you should be seeing at the final output.
Adjust P1 until this is the case.
Volts / kHz scheme
MIDI key* Value (hex) Value (decimal) Output (volts)
---------------------------------------------------------------------------------------------
A1 0x21 33 0.055
A2 0x2D 45 0.110
A3 0x39 57 0.220
Middle C 0x3C 60 0.262
A4 0x45 69 0.440
A5 0x51 81 0.880
A6 0x5D 93 1.760
A7 0x69 105 3.520
The same sequence is used to set up Oscillator B's control voltage.
There is some disagreement about MIDI key number standards e.g. A4 or A3.
The “A producing 0.440 Volts is the A above Middle C and is key number 69.
We used a free MIDI tool called MIDI Ox to display actual values from the controller keyboard.
http://www.midiox.com
You may notice errors of +/- 2 millivolts or so with the lower voltages.
This circuit gives best results if P1 is set so that A4 is giving exactly 0.440 volts. Small errors in the lowest
and highest octaves are much less noticeable.
Suggestions for greater tracking accuracy are given below.
What is high-resolution “8 + 8” fast PWM?
Normal pulse width modulation (PWM) provides low accuracy at high switching speeds or very high accuracy
at low switching speeds.
Traditional digital to analogue (D to A) conversion uses the addition of progressively smaller voltages to
quickly produce the correct analogue output.
“8 + 8 is a hybrid of the two.
It uses two, 8- it PWMs running at 62.5 kHz duty to provide near 16- it D to A conversion.
One PWM represents the high byte, the 2nd, the low byte. A voltage divider is used so that the 2nd PWM's
output is 1/256th the magnitude of the first.
“8 + 8” Fast Hy rid PWM Block Diagram

Suggested Analogue Circuits
Unison Mode provides velocity (pin 17) and MIDI channel volume (pin 5) outputs.
These are simple, 8 bit PWM outputs at 62.5 kHz duty.
MIDI only uses 7 bits for these controllers so 8 bits is more than enough.
62.5 kHz is well above audible range but some smoothing is always a good idea and a simple 1st order low-
pass filter could be used for pins 5 and 17 to smooth the PWM outputs.
Midi Clock
pulse length = 1ms @ 5 Volts.
This signal is output from the 1st chip only if chips are chained.
Improvements
The circuits given will allow a quick start, but accuracy can be affected by power supply, offset voltages and
digital noise.
For greater accuracy, the PWM outputs could be used to switch two very stable reference voltages (of 1:256
ratio via analogue switches) which are then added and multiplied.
Contact
email: [email protected]
Acknowledgements
Guy Wilkinson for advice and encouragement.
Table of contents
Popular Microcontroller manuals by other brands

Texas Instruments
Texas Instruments Concerto F28M35 Series Technical reference manual

HANHAA
HANHAA Symbisa HY-000003 user manual

Lantronix
Lantronix Open-Q 660 mSOM user guide

GigaDevice Semiconductor
GigaDevice Semiconductor GD32F403 Series user manual

Microchip Technology
Microchip Technology IS2083 Series user guide

ST
ST UM2708 user manual

Dialog Semiconductor
Dialog Semiconductor SmartBond DA14585 user manual

ST
ST STM32F7 Series Application notes

Renesas
Renesas R20UT2113EJ0100 user manual

ST
ST STM32F100 Series Reference manual

NXP Semiconductors
NXP Semiconductors LPC11U3x user manual

Texas Instruments
Texas Instruments CC2510 Quick start instructions