Electrosaxophone: EWI Creation Project Step by Step





Introduction, or where does that come from



The career of a programmer and engineer in general is a very interesting thing, and often leads to project management, as it happened with me at T-Systems. Project management is great: experience, honor and respect, but there is no room for engineering activities. And the hands remember! (c)



It remains to use the acquired knowledge and skills in their side projects, fortunately, there is such an opportunity.



What will I talk about today



Among other things, I am still a little (5-6 years old) saxophonist. And everything is good in this beautiful instrument, but it is very loud. And from my first lessons, I dreamed of the appearance of the same saxophone in my life, but so that I could play it with headphones and not pester my neighbors, so that there was a kind of training instrument.



Of course, there are electronic wind instruments, flagships - AKAI EWI and Roland Aerophone, but, firstly, they are very compromise in terms of finger position and ergonomics in general (not to mention ear pads), and secondly, apart from them, there is nothing on the market is not, and these cost 60 + k. Sorry, but my Saxon - American CONN - costs 2 times cheaper (very second-hand, however, but will survive me). So the two of them strangled me - a toad and a thirst for activity. We will do electrosax.



So, the problem statement:



  • Make a training instrument for the alto saxophonist's fingering and ear cushions;
  • It is cheap to make in a (potential) batch and not very expensive in the experimental stage;
  • Make it work without delays between user actions and the resulting sound (a common problem in MIDI devices and hell for a musician);
  • Make it small in carrying-storage and copying the alto saxophone for hands at work;




It is highly desirable: 



  • Make it also a performance instrument;
  • Add MIDI interface;
  • Make it possible to play in it to the "cons" from the phone or SD card.


What's in stock:



  • Straight arms;
  • LETI RTF under his belt, that is, a general understanding of electronics, but without much experience;
  • Musically under-educated and understanding how to play the sax;
  • About 20 years of experience in programming everything from Visual Basic to the exotic Magik language;
  • 3- ( , ),
  • ( ) IT, Agile.




A little over 2 years ago, I took with me on vacation an Arduino UNO starter kit, a couple of syringes (don't think bad), a BMP180 pressure sensor and a desire to try it all at my leisure.



It turned out to be such a funny design with 3 buttons, but surprisingly, it worked!

When I blew there, a sound appeared corresponding to the combination of buttons. The sound, of course, was system-dynamic, right into the ears of an inexperienced user.







But the experiment was a success, which meant that the whole bird would be lost if the claw got stuck.

Then there will be a number of intermediate milestones, who are not interested in the details, scroll to the end, there are results and conclusions.



Milestone 1.2 months from start



The body is a cable channel and plastic pipes, the layout of the buttons on the foil-coated fiberglass with a cutter, very similar to a toy made in a garage cooperative in the 90s. BMP180 sensor, MIDI, Arduino clock buttons. The first mouthpiece from the same plastic pipe. C language, Arduino development environment.



Very long delays were formed (a quarter to half a second), I thought for a long time that it was due to MIDI (I used MIDI-OX and Hairless MIDI). I decided to make built-in sound.







Milestone 2.3 months



I came across a card in the Chinese market that knows how to hardware MIDI on the vs1053 chip. I rewrote the program, put the sound there, everything worked out, the delays decreased, but did not disappear.



I decided to think about the eternal for now and work on industrial design.







Milestone 3.4 months



In the summer I bought myself a 3d printer for my birthday, the simplest one, Anet A6. I decided to design with him. By the way, I still like this design, maybe one of the ready-made tools will have such an appearance, but I'm not sure yet, too much fuss.









Milestone 4: half a year



First recorded sound (be horrified), first fully functional model. https://www.youtube.com/watch?v=hhtxDk5x1P8



Buttons from a Cherry MX Blue mechanical keyboard (a familiar saxophonist appreciated, he says, they look like real key clicks. It seemed to me that way too.)



It looked something like this:







Milestone 5, 9 months



He focused on manufacturability and block layout: printed wiring (laser iron, who is in the subject, hydrogen peroxide and citric acid with salt), loops and maximum use of ready-made modules. UNO lacked pins for all buttons, so I decided to go extensively for now - I used Arduino Mega.



The result was the first model that you can take out on the street, play with friends, return it back, and all this - without a single break (c).















In the meantime, I changed the BMP180 digital pressure sensor to an analog one from Motorola, rewriting part of the program. The delays are gone. Absolutely. At the same time, he added the ability to tighten the sound with a cane to the mouthpiece, like real Saxons. Strain gauge bottom right.







Milestone 6, year



The Aux-in is working, now I can play Electrosax under the cons at night, and all that the observer hears is the performer's panting and key clicks.



(3.5 mm jack, from the phone you can mix the minus into the sound of the performer)







Milestone 7, a year and a half (he bored me to hell, 3 months was not particularly suitable)



Now it can be folded 3 times and even fits into a woman's handbag (not the smallest, however, I checked it on my wife). The internals have changed to even more modular, Arduino was Mega, became Nano. There is a lot of 3d printing, but not all, for the case, a cable channel is still used, very convenient.







And finally, so far the last, 2 years



It's not a full stop, it's an impressive comma!







Summing up the interim results



  • Is it possible to make a training tool for fingering and ear cushion: yes.
  • Can it be made cheaply (3-5k for parts): yes.
  • Is it possible to make it work without delay: yes.
  • Can it be made small in carrying-storage and copying the alto saxophone for hands at work: yes.
  • Is it possible to make an instrument for performances: with the chosen approach, no. The reason is the sound quality.
  • Is it possible to make an instrument with a MIDI interface to fix this: maybe.
  • Is it possible to make a performance instrument with a different approach: maybe.


Unresolved tasks:



  • A DIY MIDI card on the vs1053 chip is used, which has 3 limitations:



    • Sounds not very good;
    • High noise level;
    • Insufficient sound level.
    • There are no better cards on the market.
  • MIDI: when I did - there were problems with delays, now it's a little cold, I want to make an instrument with my own sounds. Maybe I'll be back.


The main idea is to build this on real sounds (WAV). I'm afraid that this is coming up with a very long-ago invented bicycle called SoundFont, and the Arduino's power may not be enough. But maybe I'll also take it.



Another idea is to reduce the amount of electronics and increase the amount of programming: for example, using a Raspberry PI instead of an Arduino. SoundFont is applicable there programmatically. Possible problems:



  • I'm not really into Linux at all. We will understand, especially in C / C ++, all the same "how".
  • The Raspberry, they say, is not very good with sound, but it has HDMI and sound cards-shields. We'll figure out.
  • Increased power consumption: let's figure it out for sure!
  • Larger Raspberry size than Arduino. I think it can be solved, especially since there are compact versions of Raspberry (Zero, for example)


... And - milestone 1 of the new design



Raspberry started up (model B so far), the first sounds are received, the language is C again (although, probably, you can use which python, but I haven't learned yet), I use the freely distributed Fluidsynth synthesizer as a library, I start working with GPIO. It is not yet clear about the delays, they can be at the junction of an analog sensor and fully digital GPIOs.



Thank you for attention! If there is interest in the project, we will meet again, and I will talk about its further development.



Sergey Balashov,

PM at T-Systems, was with you during working hours, and in his free time - an engineer-saxophonist!



You can follow this and my other projects (outside the company) here:

https://vk.com/happy_sax



PS: And if someone wants to jam in St. Petersburg, but hesitate, come after quarantine too:

https://vk.com/eclectic_jam



I'll tell you about jams another time, maybe not here, here it's still about IT, not about music.



All Articles