hexwave~ oscillator


I wrapped Sean Barrett’s stb_hexwave.h oscillator as a MSP external, available here on Github.

Hexwave is a new type of oscillator that constructs the waveform out of six line segments. See Sean’s introduction video here.

It’s my first external so any improvement suggestions are very welcome.


Max/MSP (tested with 8)


Check hexwave~ example.maxpat in the zip


v1.0.1 - hexwave~ 1.0.1.zip (11.9 KB)
v1.0.2 - hexwave~ v1.0.2.zip (12.1 KB)


Just a heads up, the github link is slightly broken :slight_smile:

thanks, fixed! also put up v1.0.2 with less logging, oops!

thanks for making this. There are some interesting tones in this thing for sure! It might be good to turn the example file into a .maxhelp file, which is easier to get to if one forgets where the files are located on their hard drive :slight_smile:

Also, it would be great if the additional inputs could take signal inputs in addition to floats. I’m not sure if that is a big ask or not. Either way, I’ll definitely playing around with this. It might be worth posting on the cycling74 forums as well. Thanks!

Interesting. Reminds me of the 6 stage envelope that’s drawn with math curves and selectors. Seems like you could do something similar to this by just taking that envelope and looping it really fast. Then add some interpolation.

I wonder how hard it would be to apply this to drum synthesis in the attack phase of the drums. When I’m designing drums, I’ll often use RX8 because you can replace sections of waveforms at a very fine level. So can a nano seconds of noise to make a kick brighter or, my favorite, adding a 200hz triangle wave shorter than it’s period to the beginning of a clap to make it pop.

If you could design drum transients in a drum oscillator with partial shapes, it’d go a long way into making it a very usable machine. Get a lot closer to professional sounds without the huge amounts of post production.

It would also be really cool if this existed in Max/Gen… but that’s just cause I love porting stuff over to Daisy Patch hardware.

Yeah! I’ll look at making a help file, that’s a good idea.

That’s a very cool idea! The oscillator works in blocks of samples, so you can basically do whatever you like in your dsp loop after getting the samples back from it. The header is well commented, I recommend taking a look! Could get this going with my very meager C skills.

That might need some redesign of the oscillator as it interpolates over the block size and gen works with single samples… I’m not sure though!