English Version Spanish Version French Version

External MIDIbox Extensions

Not only pots or faders can be connected to the analog and digital inputs of the MIDIbox, but nearly everything which delivers a voltage between 0V and 5V.

This page is a tray for all those circuits, invented by the MIDIbox Users. Get inspired and feel free to contact me if you would like to publish your own extensions!

MIDI Drums by Admir Salahovic

Converting drum pad signals to MIDI events requires a lot of additional programming effort, but Admir Salahovic did it. Find his frequently updated homepage under http://edrum.info

Expression Pedal Connector by Matteo Bosi

This circuit illustrates how to connect an Expression Pedal to the MIDIbox: expressionpedal.gif (32 k)

A Breath Controller circuit, also made by Matteo Bosi

Design by Matteo Bosi (2002) matteo@alchemystudio.it - Visit my site and listen to my music at http://www.alchemystudio.it

NOTE: I take NO responsibility for any damage that can occur to you or to your instrumentation while you are building or using this addon (even if it is due to an error in this documentation). I'm not a master in electronic, so perhaps there is a better way to design this circuit and obtain a better efficiency. However, I assure this schematic works fine. Do not complain with me if the results obtained by using this schematics don't suit your taste!! Instead, contact me and let's try togeter to resolve the problems! Current schematic is 1.0, and may be improved in the future (I hope!). if you have any question or suggestion, please write to matteo@alchemystudio.it

I would like to thank very much Ian Fritz (ijfritz@earthlink.net), designer of the "Stealth Wind Controller", who helped me in choosing the sensor and in electronic design. I would also like to thank Thorsten Klose (you should know where to find him!) , MIDIBOX creator, for his wonderful MIDI projects and all the help he gave to me.

This file describes you how to build a breath controller (BC) addon for Thorsten Klose's Midibox. My BC is something that converts the breath you blow in a small tube into an electrical voltage, and drives this signal directly to one of the Midibox analog input. You will use the BC instead of one pot of your midibox. I designed also a "switch circuit" that allows you to choose to use a pot or my BC, so that when you don't need it you will not loose a pot! How do you use a BC and why you should build it? I decided to go on this design basically for fun and for personal interest, but also because I very often use sampled breath instruments in my songs (flutes, trumpets...). With a BC you can add a LOT of realism to your sequenced parts, basically because when you use the BC it's like to play a "real" wind instrument. The feel you obtain in this way is unique! Often, you assign the BC to the MIDI control 2 (breath controller) or to MIDI control 11 (expression). In this way, with the BC you can vary the volume of the note played just by blowing more or less into the tube of the BC, as you were playing a real wind instrument. More advanced sample programming let's you control also the filter and so, the more you blow, the more higher frequency you add, just like in real life. If you search on web about resources and tips about BC, you'll learn in how many different way you can use it, both in sequencing and in live playing. The main part of this design is the pressur sensor SDX01G2, built by Sensym (you can find infos at www.sensortechnics.com or by typing SDX01G2 in google for example). It measure a gage pressure in the range of 0-1 psi (0-60 mbar) and output a signal that go from 0 to 18 mV. You can view its specification by downloading the datasheet file. This sensor works in "common mode". It has two outputs (+ and -): when you apply a power supply, its output raises to about 3V and, when pressure is applied to the sensor, the + output will raise by 0-18mV (proportional to the pressure applied) and the - output will diminish by 0-18mV. All this electrical characteristic apply when the sensor is supplied with 20Vcc. You can use a lower power supply, and these voltage will vary proportionally. When you breath into a tube without much effort, you produce a pressure that is far below the maximum range measured by this sensor (60mbar), so the SDX01G2 is perfect for the purpose of measuring your breath pressure. The circuit is basically an instrumentation amplifier followd by a second gain stage with an offset calibration. You can download all the schematics here and download the list of all components here

The file Breath_controller_Schematics1 shows how to build the power supply (I used a 12V power supply, mainly because I plan to build Admir Edrums, and it will require that power supply). This is a classic schematics (I think) so no comment is required. Just be sure to connect the right polarity of the electrolitic and tantal capacitor! The second drawing of this file shows the connections of the sensor itself (you should also see the datasheet). the out + and out - will be connected directly to pins 3 and 5 of LM324 op-amp (see next) The last drawing show how to connect the BC to your midibox, with a two way switch that lets you choose between the use of a pot and the use of the BC. You need to bring the 0V (ground) and the 5V FROM Midibox TO the BC unit and the BC signal out FROM BC unit TO Midibox. I used a stereo jack for this purpose (see photos - coming soon!). Practically, you need to remove the wire that go from a pot to the 4051 (at the pot side!) and bring this wire to the switch. Then, you connect the other part of the switch to the signal coming from BC unit, and then solder a wire form the central pin of the switch to the 4051 input you just removed. The file Breath_controller_Schematics2 is the BC unit itself. I will not explain all the circuit, but will give just some hints. There are two amplification stage, the first (the three op-amps on the left) is an instrumentation amplifier with a variable gain, defined by the pot P1 (perhaps the gain on this stage should be a little higher, but schematics are just at 1.0!). The basic idea of this amp is that resistors R1,R3,R4,R5,R6,R7 should be exactly the same. I used 5 100K resistor at 1% for R1,R3,R4,R5,R6 and a 82K + a 22K trimmer for what should be R7 (perhaps it's better also here a 100K 1% resistor!). By using the trimmer you sohuld adjust the amplification offset of the first stage gain. The amplified signal is then drived to a second amplificator (the op-amp on the far right) that is a differential amplifier. With the use of P3 trimmer you can set the final offset and also obtain a "blowing threshold", i.e. the voltage (your controller number output from midibox) begin to raise only when a certain amount of pressure is applied to the sensor. The final amplified signal is then drived to a clamping diode that set the 5V reference from the midibox. I used 8V supply, so that the maximum output from the LM324 op-amp is about 6,8V. We cannot apply this voltage to a PIC analog input, because it will be damaged. DON'T FORGET THE DIODE!!! This clamping design is similar to the one used by Thorsten with his LFO unit. I'm not quite sure about the usefulness of the R12 resistor, but anyway, I mounted it and everything works!

The last file (Breath_controller_connections) shows how I have arranged all the components into a normal board.

To show how my BC works I provided 3 files. The first (trumpets.mid) is just a MIDI example of the data my unit gives out. I assigned my BC to CC2, so you can view, along the notes I played with my midikeyboard, also the CC of the breath controller (CC2). Please note that the MIDI is recorded "live", with very few correction in my sequencer. The CC2 messages are recorded with my BC unit WHILE I was playing the trumpet sequence - a simple improvisation so, please, no comment about the music itself! ;-) The second is the file is Trumpets_withoutBC.mp3 that is just a "rendering" of the midifile WITHOUT the use of the BC control change messages. I used a professional trumpets bank, found in a samples CD i obtain with my soundcard Creamware Pulsar. The sound bank is used "as is", without any additional programming in the sampler. The third file Trumpets_withBC.mp3 show you the result obtained by using the BC along with a basic sample programming. The sampler used is the Creamware STS3000. I assigned the CC2 to the filter cutoff frequency AND the loudness controll. The more high is the CC2 data, the more the sample is played loud and the more high is the filter cutoff frequency. Again, I want to remeber that the BC unit was played LIVE, while hitting the notes on the keyboard!

More mp3 and MIDI examples are coming, as soon as I'll compose new songs ;-)


Matteo Bosi

P.S.: here are some photos of the breath controller: 1, 2, 3, 4, 5, 6, 7

3 LFO Extension (and CV Input example) by Thorsten Klose

This is primary a learning example that demonstrates how to connect circuits with a symmetrical output voltage (here: -12V to 12V) to the MIDIbox without the danger of blowing up the PIC.
Never apply voltages below 0V or above 5V to the analog/digital input pins of the PIC!

Note that the sound itself is not comming from the LFOs, but from a MIDI synthesizer. The LFOs are used to modulate the sound parameters like VCO Frequency, CutOff Frequency, Resonance, Sync., Effect parameters of the synth. This is achieved by connecting the LFOs to one of the 8/16/64 analog inputs of the MIDIbox. The box samples the curve comming from the LFOs and sends out a continuous MIDI controller stream to the synthesizer. It's like you are twisting the knobs by yourself, but the LFOs are faster than your fingers and they are working full automatically.
A word to Example #6: it demonstrates that this extension can be used as a nice "random rhythm- and scratching machine" ;-)

lfo_schematic.pdf (14 k) Schematic of the LFO extension (+Mixer and Interface Unit)
lfo_powersupply.pdf (6 k) +/- 12 V Power Supply
lfo_indicator.gif (5k) simple LED indicator for the LFOs by Peter
lfo_pcb.zip (8k) PCB Layout by Olaf van Kampen
Using one LFO: 1 (567 k)
Using three LFOs: 2 (485 k) 3 (113 k) 4 (98 k) 5 (102 k) 6 (1065 k)
breadboard.jpg (31 k) The circuit on a breadboard
ICL8038 Datasheet
LM324 Datasheet

Last update: 2024-05-08

Copyright 1998-2023, Thorsten Klose. All rights reserved.