Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Haxophone (github.com/jcard0na)
526 points by javier_cardona on Nov 20, 2022 | hide | past | favorite | 71 comments
I built this during Covid. When I released it, some of the parts went out of stock or skyrocketed in price, no longer making this an economic DIY project. Now that things are getting back to almost normal, I thought I'd share it here and request feedback. This is a very niche project for people who like the same things I do: saxophones, Rust, mechanical keyboards and the Raspberry Pi.



You can overcome the RPi scarcity by migrating the code to the Teensy platform, which aside being cheaper and less power hungry than the 2,3,4 RPi, is a lot cheaper and more easily available. Not an easy task since there's no Linux under the hood, but there are some excellent audio/midi libraries to help. They already built commercial-level synthesizers with it. By combining the breath sensor data with other pressure sensors you could end up with a very expressive instrument.

https://www.pjrc.com/teensy/index.html

https://www.pjrc.com/teensy/td_libs_Audio.html

https://www.pjrc.com/teensy/td_libs_MIDI.html

https://www.youtube.com/watch?v=z2674LdYW5I


I like Teensy but it looks like their boards are either low-inventory or out of stock too:

https://www.pjrc.com/store/teensy41.html


Says one SKU of 4.1 is available with limit of 5 per person

And meanwhile the 4.0 is in stock in all SKUs with limit of 20! per person. https://www.pjrc.com/store/teensy40.html

This is pretty available. Especially compared to Pi


Also, Mouser expects 712 in stock within one week.

https://www.mouser.com/ProductDetail/SparkFun/DEV-16771?qs=v...


Before I’d do any of that would be vibrato. Without it it is a emotionless keyboard with a blowtube.


If I had the knowledge/ability/skills to build an “emotionless keyboard with a blow tube” I’d be pretty damn happy. I don’t think a lack of vibrato diminishes what is going on here.

Am open sourced wind synth made with a custom keyboard? Pretty sick IMO


I don't know. Looks kinda easy to do vibrato through your blowtube https://www.youtube.com/watch?v=XtsZZKZcNC4


It's tremolo, vibrato would be oscillating pitch. Real woodwinds can do both. And yes, Fender got them the wrong way.


Pretty challenging to do vibrato w/ momentary switches (discrete). For vibrato you need something like flexforce pressure sensors[1].

[1] https://www.tekscan.com/flexiforce-load-force-sensors-and-sy...


> This is a very niche project

rockets to #1 on Hacker News


Paraphrasing Frank Zappa, the hacker spirit on this forum is not dead. It just smells funny.


We are the niche


As the owner of a (recently revived) ewi-usb… I’m really curious about the mouthpiece bit. What kind of analog sounds are happening while playing this? Do you notice that reed age, strength etc are as impactful as on a real saxophone? Do you feel a need to swap mouthpieces for different styles of playing?

I love the idea and ingenuity to make this happen!


As a sax player who also plays a Roland Aerophone, I have a similar question. Is the mouthpiece a real sax mouthpiece and reed? If so, that means it's making a lot of noise. One of the main appeals of windsynths is that I can play at times when the people in my household (and neighborhood) don't really want to listen to it.

That said, it's a cool project.


The sounds are synthed sounds (I used fluidsynth) and the haxophone just uses the sound pressure to infer velocity of the notes.

The mouthpiece is optional: you can blow on the neck of the device and will get the exact same sound. But as a sax player, I really prefer to use it with a mouthpiece blowing through it but without making the reed vibrate (so no sound). I find that it helps me maintain proper embouchure and feels more comfortable. And after a solid practice session, I still get that gratifying tingling lower lip feeling.

Thanks for the feedback!

https://github.com/jcard0na/haxo-hw/blob/main/docs/assembly....


Very cool! Awesome project


The design says that it measures air pressure. So it's just blowing into a tube, much like e.g. the Yamaha BC-1. I've got one, and in the demo video, I hear the same rapid changes in volume/pressure. I would guess it could benefit from having a small, adjustable opening (like the BC-1), which makes it a bit easier to control.


Yeah and is the pressure sensor closed so you're actually not blowing but just increasing and decreasing pressure?


No, not really. There is sensing tube (which terminates on the sensor) and a venting tube (which lets the air flow through). This is the same technique used in other similar commercial instruments. You can see both tubes in the assembly instructions: https://github.com/jcard0na/haxo-hw/blob/main/docs/assembly....


Ahh that makes sense! So is this actually sensing a lower pressure than ambient? Since moving air results in lower pressure?


Looks like just a pressure sensor. You might be interested in the KontinuumLab channel, from a guy who has done EWI projects with more sensors.

https://www.youtube.com/@KontinuumLAB

Most recently: https://youtu.be/1CXjADjIM1s


Reading the assembly instructions it's only an air pressure sensor. You can use a real mouthpiece with reed or not, but it won't make noise actually. It also won't detect anything you do with your mouth.


Needs a reed sensor.


If your goal is full fidelity, sure, but they're trying to make a cheap practice device. If you want the former you're probably better off just buying something commercial, at least an AKAI.


This is great! As someone who used to play sax a lot but doesn't have hardware experience, it's 100% the sort of thing I would buy if it were commercially available. Makes sense that it's not (ecommerce is a whole thing), but I don't really have the patience to source all the parts and assemble it.

Awesome project though!


I'm not exactly in the target audience, but this is brilliant. Bravo!


Here are other innovative electronic instruments.

The Eigenharp: https://www.youtube.com/watch?v=9MR5qBtPRrM

The Artiphon Instrument1: https://artiphon.com/pages/instrument1

The Linnstrument: https://www.rogerlinndesign.com/linnstrument


The Commodordion (which also made the HN rounds recently): https://linusakesson.net/commodordion/index.php



I own a LinnStrument and it's fantastic. I created a custom note layout for it to make it easier to play: https://github.com/flipcoder/linnstrument-wholetone. The firmware is also open source. It feels like the Linux of instruments.



Artiphon videos don't play on the browser. They chose some weird player with unknown host... Why...


This is one of the coolest things I've seen on HN. I am definitely going to try to follow the instructions on this in the near future! I don't even play saxophone, but now I am not definitely going to learn. I would 100% buy one of these, if not 3 so I could give some as gifts.

Thanks for sharing and seriously, awesome project. Almost brings a tear to my eye.


This is extremely cool. Surprised how good it sounds in the example video. Wish I knew enough about hardware to build one (OK, i also wish i knew how to play sax). Shame there's nobody shipping all the parts for assembly at home. In any case this is awesome, and one of the cooler things I've seen on HN recently!


There are some really cool wind synths out there

https://m.youtube.com/@EddieEWI



How is this keyboard related to electronic wind instruments?


It has a pressure sensitive mouthpiece. Does it need the keys near the mouth to count?



This is so cool! Interesting you can use normal mouthpieces. Curious how the sound works, does the reed need to vibrate like a real saxophone, or you just need to blow into it and some air pressure sensor picks up (forgive me I have no hardware knowledge)?


No the reed does not vibrate. It's there to restrict the airflow and to provide a similar embouchure to a real sax. Some more details here: https://github.com/jcard0na/haxo-hw/blob/main/docs/assembly....


I had the chance of making one in Oct 2021 following Javier's advices on his docs. This was a lot of fun. I printed the 3 required parts on my Prusa MK3S 3D printer. Perfect at the first attempt. I learned how to weld, not so difficult and I could make it also at first attempt. The MPXV7007DP component was indeed difficult to find at that time, but I could find one at Farnell for 18€ (and Digi-Key at 19€). It seems it's still difficult and expensive to find at the moment (but available at about 25€). The result is very nice. The sound also very good with most of the effects you can have on a real sax. And I love the geek look of this sax.


Reminds me of the EWI: https://en.wikipedia.org/wiki/EWI_(musical_instrument). Which several people in my high school band would play in the locker rooms.


I have an akai ewi sitting on my desk


Since it's using keyboard keys I'm guessing it doesn't have any analog touch sensitivity (?) Not sure if that would be even needed on this type of instrument though.


Yes, there is no analog touch sensitivity on the sax: keys are either open or closed. The pressure sensor is for volume and note attack.


There exist analog keyswitches, have you considered playing with those?


While it would be interesting to play with analog keyswitches, it would depart from the experience of a real sax, where the "half pressed" key is of not much use. And it would dramatically increase the complexity of the design.

But the full design is published, just in case anyone wants to try :)


I'm really interested in this idea for other DIY instrument purposes.

Razer has keyboards with optical ones, and some people have made them by putting inductive sensors underneath mechanical switches, but I couldn't find any analog keyswitches for sale. Do you have some examples?

How can you deal with a large number of analog inputs to a Raspberry Pi or similar?


I don't remember how many analog input pins exist but a separate circuit that digitizes many analog inputs to a serial stream would be how I'd do it, personally.


From what I understand of playing a saxophone the variability would come from the mouthpiece. On a type of instrument like a saxophone the valves should always be cleanly opened or closed.


Half fingering is a thing, but very rare and fine to be out of scope for a project like this


This is also true of the EWI, all of the keys are just metal plates that detect contact, and also generally true of saxophones (although very much not the case with clarinets, which have open finger holes)


It seems the keyboard is pressure sensitive (reference to a pressure sensor in the HW section)


Pressure sensor is in the mouth piece.

I've always thought saxophone keys were on or off


Actually the pressure sensor is on the PCB. Pressure is transferred from the mouthpiece through a flexible silicon pipe. You can see the details in the assembly instructions here: https://github.com/jcard0na/haxo-hw/blob/main/docs/assembly....


My girlfriend knows how to play the sax and I know rust (and am a dj/producer!) - so I starred this and we plan to build it. Thanks for your contribution to our life!


The video doesn’t seem to load on iPhone (Safari). It loads a tiny thumbnail, then just spins forever.

Edit: it may be because I’m opening it from the mobile link (which sends the video to Safari), but I tried pulling up the repo directly in Safari, and it shows a whitespace placeholder for the video but that’s it.


FWIW, I just tried it on iPhone and works for me...


Somewhat related, this guy is making a lot of cool instruments that looks reasonably easy to build https://www.youtube.com/c/NicolasBras


Great work, I am going to fork this into a digital didgeridoo project, or digeridoo for short


If you want a really high quality premade thing like this, Johan Berglund is your guy: https://berglundinstruments.mediarif.com/


Love this! Well done OP and thanks for sharing the code!


For those who are more into the “cheap sax like instrument” part rather than the electronic part, you should check out the Yamaha Venova line.


So this is how holophonors came about...


Are there sound samples anywhere?


The video in the repo's readme shows a solo from Stevie Wonder's "Isn't She Lovely"


Can you do a trombone next so we can play trombone hero with a real trombone? :D


I bet it would be pretty easy to rig up a PBone or PBone Mini to play trombone hero with


any info on kernel config, drivers, rootfs etc used?


It's running vanilla Raspberry Pi OS, alsa drivers and fluidsynth, all configured from the main Rust application (https://github.com/jcard0na/haxo-rs/blob/main/src/synth.rs)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: