Skip to content

Show HN: A singing synthesizer for the browser with algorithmic 3-part harmony

pbat.ch
3 pointszebproj1 comment
On HN

Hello HN!

This is a demo I built during my batch at the Recurse Center. It's built using WebAudio, WebAssembly (via Rust), and the Canvas API. The source code for this demo, along with my other vocal synthesis related RC demos[0], can be found at a monorepo[1] where I've been dumping all my RC work and logs.

The sound is generated using a physical model of the human singing voice, using a work-in-progress project called VoxBox [2].

The harmonization is done using something that kind of resembles a markov chain. Only, instead of using weighted probabilities and randomness, I use a selection heuristic that chooses a chord based on how often it has been used and how much voice movement is required.

Thanks for reading! Happy to answer any other questions.

0: https://pbat.ch/recurse/demos/

1: https://github.com/PaulBatchelor/Recurse/tree/main/scratch/t...

2: https://github.com/paulBatchelor/voxbox

Comments

Sounds great!

I wish there was a little more ring out when releasing the mouse.

But otherwise, very nice harmonies!

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.