scop
It is great that the author included some known pieces for you to "watch" (click the music icon on the bottom right). Of course one first goes to Bach to test the mettle. While "watching" BWV 578 one thing I immediately noticed was how the rhythm of the counterpoint stood out to me in a new way. I have seen many visualizers (the great https://www.youtube.com/user/smalin/videos deserves mention), but I have found most to have some sort of constant object moving around to visualization the tones (i.e. a ball moving up and down). In this case, there is no "moving object" that we follow and we are instead left with the tones in isolation. I greatly enjoyed seeing how this increased my appreciation of Bach's rhythmic counterpoint as I could see when multiple strings were plucked at the same time with the clear purple coloring. Amazing work!
_spduchamp
Plucking strings is usually synthesized using Karplus-Strong synthesis which is a very short delay line loop with a low pass filter. The delay gets excited with a short burst of noise. The length of the delay line tunes the string.

Karplus-Strong can be extended in ways to simulate different types of plucking, acoustic pickup at bridge, or electric pickup at any point along tbe string, and plucked at any point along the string. Body resonance can be simulated etc. It's a pretty fun synth technique to play with. Amazing to take beyond simulating conventional instruments.

aidenn0
Really cool that plucking the strings near the edges gives a different timbre than plucking in the middle.
isoprophlex
It's shockingly easy to make it sound good! Someone who understands music please explain to me why this works so well, I'm amazed!
adrianmonk
FYI, in Chrome on Linux, there's a glitchy crackling noise. Maybe a buffer under run or something. It happens a lot more often if you strum lots of strings quickly.

It also happens in Firefox but a lot less.

bassdigit
further idea: let strings resonate with the overtones of other strings being played

also: support different materials like steel/nylon/gut

LegitShady
reading some of the reactions to this, it amazes me how many free VSTs just need a web interface of some kind to suddenly become interesting and popular.

If you have a DAW there are so many interesting free sound generators on the internet. Just spitfire audio has their free lab VSTs which give you 60 VSTs to play with - and thats just one company.

https://labs.spitfireaudio.com/

Its all just missing the front end a DAW normally provides but is too complicated for people just looking to mess around with sounds.

ks2048
It would be nice if he or she described the algorithm in more detail. A common and simple string-synthesis method is called Karplus-Strong, but this sounds a bit better.
tambourine_man
Make sure your phone isn’t on mute. On iPhone, the mute button. I was raising the volume to no avail.

Edit: I don’t know why I’m being downvoted, the mute button is very unintuitive. YouTube will play on a web page with mute on, but this page won’t.

protosam
Isn’t working on iOS 17.4, iPhone 14. Both in Safari and the App Store download.

Edit: yes I’d pay $2 to play with this. lol

chaosprint
amazing work!

However, I must point out that if tonejs is used here, audio will quickly become a bottleneck or even memory leak.

It reminds me of a Karplus Strong project written in rust that I saw before. This project is of course visually minimal, but demonstrates the use of rust + wasm audio.

https://jackschaedler.github.io/karplus-stress-tester/

I wrote a simple api to use Rust wasm audio here:

https://glicol.js.org/

If you are interested in doing some use cases, leave a message. I am actively maintaining it recently.

jessegavin
this! So fun to play with. Love that you can edit and reposition the strings.

Wonderful!

XCSme
Nice demo, but for me, plucking the string gives a lot of static noise/crumbling sounds. Anyone else having this issue?
foota
I had a fun time making a game using MIDI with some friends for a game jam. There was a godot extension for MIDI (that I ended up mostly cannabalizing to get more control) and I used it to read and animate musical bars in a sort of guitar hero-y setup.

It was a fun project, although the game was a little rough around the edges to say the least.

slushy-chivalry
I did not look at the source code yet, but is this some sorta physics modeling problem? Treat the strings as a a bunch of interconnected balls, then apply the force at point, compute other forces, interpolate a curve through the new state, then compute frequencies based on where the string was plucked? this is pretty cool
themaninthedark
I remember haring about someone creating a musical software model that was supposed to allow you to do things that you normally couldn't do i.e. pluck or strum a cymbal.

I tried to find it but never have.

Does anyone else know what it is?

vjandrea
Very cool project, I love the drawing function, can bring to interesting ideas. Unfortunately, some songs are broken, MIDI file 404. The code tries to parse the empty response, instead of escaping early.
against_entropy
Wow, I just tried. It's super easy to use and super fun. Whatever you draw on the screen, you basically obtain something not bad. A new generation of audio games.
ecjhdnc2025
Well that’s rather lovely.
munzilla
As a musician, it's super interesting looking at the JS source (if you're a developer) and seeing how he applies musical concepts like notes and progressions to code.
phgn
Hey all: don't miss the music button in the bottom right!!

You can play classical music on the simulated instruments. This is the nicest thing I've seen in a long time.

joewferrara
The built in static, I'm not sure if it's purposeful or not, but I like it. If it is purposeful, it's a nice touch.
zoom6628
That just put the biggest smile on my face since an old 2009 vintage app to simulate the guzheng.
crawsome
I'm going to pick this nit, but are they pluckable or strummable? Sounds more like strumming.
thimkerbell
If you have a sense of the song and it's not to your liking, don't be too pluckable.
nthnclrk
Fun.

I went to the TLD and couldn’t make sense of how this is connected to that.

lupire
Why is each string actually two strings next to each other?
cush
This is delightful! Thanks so much for sharing!
miohtama
The sound does not seem to work on iPad?
postepowanieadm
That's seriously awesome!
djeastm
Bookmarked for stress-relief
wantsanagent
Very pleasant, thanks!
swiftiepro
Very interesting
dsego
In a similar fashion a choir where you pull on lips, more of a gag page though. https://www.adultswim.com/etcetera/choir/
DerCommodore
[flagged]
asdiojadiosdijo
[flagged]
thebeardisred
Interesting idea.

I went to share it with some musician friends of mine, but first wanted to give them a TL;DR.

I tried to copy info out of the "?" dialog so that I didn't have to re-type the details but the page blocked the operation. That was enough for me to pass. I don't have time to do extra work to explain someone else's project.