[HN Gopher] Show HN: A singing synthesizer for the browser with ...
___________________________________________________________________
Show HN: A singing synthesizer for the browser with automatic
3-part harmony
Author : zebproj
Score : 157 points
Date : 2024-12-26 05:14 UTC (17 hours ago)
(HTM) web link (pbat.ch)
(TXT) w3m dump (pbat.ch)
| ldenoue wrote:
| This thing is amazing can you add recording?
|
| Perhaps some samples you or visitors create?
|
| Then add a little sampler for beat and it's a fantastic tool
| _nivlac_ wrote:
| I've also enjoyed Google's blob opera, for something similar!
|
| https://artsandculture.google.com/experiment/blob-opera/AAHW...
| modeless wrote:
| And the original singing mouths made by the same guy:
| https://www.adultswim.com/etcetera/choir/
| jcmeyrignac wrote:
| More experiments here: http://david.li/
| Bluestein wrote:
| Not to nitpick, but, it being "Arts & Culture" and all, they
| could've at least said opera _aria_ ...
|
| ... not song.-
| chpatrick wrote:
| Not to nitpick but an aria is for one voice.
| Bluestein wrote:
| Point.-
|
| PS. The rest are ... what, the choir? A concertante if your
| fingers are fast enough, I guess :)
| smusamashah wrote:
| Also pink trombone https://dood.al/pinktrombone/
| bravura wrote:
| For years, I've wished someone would port Pink Trombone to a
| VST or something I could control through code.
| whilenot-dev wrote:
| Only thing I could find is a Eurorack module:
| https://blog.bela.io/salt-a-bela-powered-programmable-
| synth-...
|
| I thought there was some repo public with C++ code, but I
| can't find it anymore... (https://github.com/belaPlatform)
|
| EDIT: stupid me, it's linked in the article:
| https://github.com/giuliomoro/pink-trombone
| blaufast wrote:
| Neat!
| brunorsini wrote:
| Fun! I'd love the option to increase (double?) range. It would
| sacrifice precision somewhat, so a toggle would be ideal.
|
| A toggle for quickly visualizing notes would also be useful, as
| well as keyboard shortcuts -- perhaps while one clicks the mouse
| on a given note, pressing the keyboard shortcut for another
| specific note gradually moves pitch in that direction, with
| programmable speed.
| brunorsini wrote:
| Oh, and clicking multiple times at the leftmost portion of the
| instrument (around 1/4th from the top) sounds exactly like
| Laurie Anderson's classic "O Superman" :)
| varunneal wrote:
| so beautiful. I can imagine using this a lot if some buttons are
| added (start/stop harmony, view note/resonance, etc). great job
| ycombiredd wrote:
| in Chrome, on my iphone, I can get a cool effect that looks like
| a glitch, but I wonder if it is a feature. If I hold a note a
| certain way, where the browser does a "select all", and then drag
| my thumb, it drags a thumbnail of the page. When I release it, it
| keeps the first note and starts a new one using the new position
| of my thumb. I can create my own harmonies this way instead of
| the default parts that appear when I hold the note in place.
| fhackenberger wrote:
| This is such a great way to practice! Thank you for creating it!
| Could you perhaps add pitch indicators on the side and multi
| touch support? Or maybe it's open source?
| butz wrote:
| Add "display:block;" to canvas to fix the issue with vertical
| scroll appearing. Also, you might want to consider looking into
| vh and vw units to fill canvas to viewport without using
| javascript.
| skykooler wrote:
| Is there a reason to avoid using javascript for canvas layout
| considering you need javascript to draw on the canvas in the
| first place?
| zebproj wrote:
| Thanks, I'll look into it
| MarkusWandel wrote:
| Does anyone make a USB Midi Theremin? That would totally be the
| right front end for this one!
| vunderba wrote:
| Moog does - I've combined it with a midi translator app to
| customize midi (CC, etc) so that I can use it as an expression
| input to SWAM physically modeled instruments like violin.
|
| https://www.moogmusic.com/products/etherwave-theremins/there...
| kitshunt wrote:
| Source code is here: https://github.com/PaulBatchelor/Trio
|
| It's written in JavaScript and Rust (compiled to WASM).
| smusamashah wrote:
| This is awesome fun. Reminds of Google Blog Opera and Pink
| Trombone.
|
| Can we have multiple voices when using multiple fingers please?
|
| Edit: I can't sing or play music but this is making me feel like
| I am making someone sing _nicely_ , it's relatively lot easy to
| play with.
| vunderba wrote:
| Very neat. Side note, but one of the more fun aspects of
| Garageband on the iPad is that you can load string instruments
| such as an Erhu and play it by physically sliding your finger
| along the string in a very similar way.
| makapuf wrote:
| I'm sorry but I can see a small keyboard with selected notes, can
| some one describe what makes it 3 parts harmony ? Is it a song
| thing ? Some chord thing ? There is no description on the site or
| the github repo.
| hunter2_ wrote:
| 95% of the time, I can only get 1 voice at a time. 5% of the
| time, I can get 2 or 3 voices at a time (1 variable pitch, the
| others fixed pitch) but I have no idea what input causes this
| rare behavior. Can you add some help text explaining what various
| input sequences will achieve?
|
| Android Chrome with touch input (Pixel 8 Pro).
| zebproj wrote:
| A tutorial would be helpful.
|
| Holding down a note and waiting will cause a second, then a
| third not to appear. When you move your held, note to another
| pitch, the other pitches will follow, but with a bit of delay.
| This produces what is known as staggered voice leading, and
| produces interesting "in-between" chords.
| zebproj wrote:
| Thanks everyone for the suggestions and kind words.
|
| Some details:
|
| The source code for this project can be found on github [0].
|
| I am using an AudioWorklet node with custom DSP using
| Rust/WebAssembly. Graphics are just done with the Canvas API. The
| voice leading is done algorithmically using a state machine with
| some heuristics.
|
| The underlying DSP algorithm is a physical model of the human
| voice, similar to the model you'd find in Pink Trombone [1], but
| with some added improvements. The DSP code for that is a small
| crate [2] I've been working on just for singing synthesizers
| based on previous work I've done.
|
| 0: https://github.com/paulBatchelor/trio
|
| 1: https://dood.al/pinktrombone/
|
| 2: https://github.com/PaulBatchelor/voxbox
___________________________________________________________________
(page generated 2024-12-26 23:01 UTC)