Anyone interested in helping us build a Breath Controller?
I asked AI if it’s possible to build a Breath Controller with a 3D printer. The answer was yes, but obviously it needs to be designed.
I designed and printed the most delicate part, the membrane.
AI gave me the most suitable dimensions for printing it in TPU: 0.6 mm thick and 22 mm in diameter.
We could use an MPX 5010 module on an Arduino Nano via the MCP 4725 I2C interface (this will provide a voltage-varying signal for those who can use a 3.5 mm jack) or just with Arduino for MIDI signals. The problem (for me) will be designing the chamber. AI says it should be:
Chamber
Volume: 3 ml (excellent starting point)
Height: 6–8 mm
Internal diameter: 22–24 mm
With a 0.6 mm vent hole…
I’ve done the first tests…
Hi @Lanfranco
A few months ago I built a breath controller using this sensor
It’s a 6857 Pressure sensor and with a silicon tube at the top it works fine. I use a 10 kPa type (at AliExpress for a few euros).
The problem with breath controllers is not so much the sensor, but more the interpretation of the results. I find it hard to produce a credible flute or clarinet sound.
But of course it’s more fun to design one yourself than to buy one.
Kind regards,
Hans.
Thanks @HansR, the implementation isn’t that difficult if you use an Arduino board. There are example sketches for everything out there, and today you can ask the AI, which, after providing the necessary information, can write a starting sketch. Did you create your project yourself or did you find it online? Thanks.
Hi @Lanfranco ,
I created it myself. In fact, the breath controller was a sort of ‘side effect’. I initially wanted to create a ribbon controller. When that worked, I thought that a breath controller would be only a few lines of code extra. Both deliver a voltage that is measured the same way.
What made it complex, is that I also wanted an LCD screen. I wanted to be able to assign an arbitrary CC code to both devices. That way the breath controller could function as a velocity device, or send modulation/aftertouch messages (same as the ribbon can do relative/absolute pitch bends or aftertouch).
While I was at it, I also bought a couple of Logitech gaming pedals at the local thrift store, so now it is a fully customizable Ribbon/Breath/Pedal controller (and a MIDI thru box).
As an Arduino Pro Micro (the most likely candidate if you want USB MIDI) has not enough memory to serve both the sensors and the LCD display, I had to add another Arduino (a Nano) to do the UI and button/rotary devices. The comunication between the two proved a little tricky because I also wanted DIN 5 MIDI connectors.
All in all it was an interesting project.
Photos:
Schematic:
Ribbon-breath controller.pdf (51.0 KB)
Maybe this will give you some inspiration.
Kind regards,
Hans.
Congratulations! I’ll take a look and get some inspiration. Thanks for your help.
In my case, everything would be simpler. My Studiologic Acuna 88 master keyboard has a breath controller jack, so I’d have to create something that changes the voltage from 0 to 5V as the breath force varies…Bye.
I see. That is a totally different situation you are in.
The 6857 Pressure sensor does exactly that. Well, almost. I goes to half supply voltage in rest, when you blow it goes up, when you draw air it goes down.
So with just one component I’d already be close to a result… You tell me that aspirating causes a drop in output voltage… It will be difficult for me, who played saxophone and trumpet for 10 years, to mentally think about aspirating. Thanks for your help.
One often blow and suck whilst paying a harmonica… although not at the same time (unless you are as bad as me)!!!
True. I had a chromatic harmonica for a year, but then I sold it. Great instrument if you know how to use it. I didn’t know how to use it. Toots Thielemans docet
.
I printed the temporary prototype and it works well… the TPU membrane moves smoothly (in some projects, a piece of an inflatable balloon was used). Now I need to insert the pressure gauge, which is coming from China, finding a way to create a chamber of a few milliliters without air leaks. If the TPU doesn’t hold (I printed it at 0.4 mm), I can reprint it in 4 minutes or I’ll try with the piece of inflatable balloon.
Hi Hans,
Looks really professional your breath/ribbon controller!!
Is the code also available?
Cheers,
Maarten
Fusion 360 rendering of the project. I added a TPU piston to adjust the volume of the pressure chamber.
Sure, but I’m rather busy now building a second Zynthian for experiments. Don’t want to use my kit for that.
I’ll pm you soon.
Kind regards,
Hans.
Thanks a lot!
Cheers,
Maarten
Everything is ready for when the pressure sensor arrives from China (Thanks to @HansR for giving me the value of the sensor he used). For now, I’ve been using an Arduino Pro Micro, which is useless for this project, but it can be used as a MIDI/USB device. This will be used to test before connecting the jack that will go on the Acuna 88. If it works, I’ll replace the Pro Micro with a Nano.
I’m designing and printing TPU membranes in various shapes, but I think I’ll use a piece of an inflatable balloon.
The mechanical part has a threaded piston that serves to change the volume of the chamber.
The missing text on the display is due to the refresh.
I opted for a sketch that allows the breath controller to be used both via MIDI/USB and with the jack cable for keyboards with the dedicated socket.
Yesterday at the supermarket I looked like a kid looking for balloons… But last night I ran out of membrane. Now all that’s missing is the sensor on its way from China… Will it work?
The sensor finally arrived and everything works perfectly… can it be connected to the Zynthian???
Hi @Lanfranco
Nice work!
In the video I see moisture droplets (condensation) in the hose, how do you deal with that? Isn’t there a risk of moisture reaching the electronics?
In my breath controller I put the hose directly on the pressure sensor so there is only pressure and no real breath flow in the hose (in the mouthpiece there is an adjustable hole, but nothing near the sensor). Therefore there is no condensation in the hose.
Kind regards,
Hans
You’re absolutely right @HansR, and I’m actually working on solving the problem. I ordered an optical sensor, the CNY70, which should work well with the membrane, but the pressure sensor isn’t accurate with the membrane. I then opted for a Teensy 4, which will allow me to eliminate two interfaces (two because one was for connecting the pressure sensor, the other for connecting the cable that goes directly to the ACuna 88) and work with both USB/MIDI and the jack on the Acuna 88. I’m still designing a mouthpiece like yours.
P.S.
Also consider that the room where I am testing the breath controller is very cold (7°) so the condensation of the breath is greater…











