top | item 46715766

Show HN: Synesthesia, make noise music with a colorpicker

39 points| tevans3 | 1 month ago |visualnoise.ca

This is a (silly, little) app which lets you make noise music using a color picker as an instrument. When you click on a specific point in the color picker, a bit of JavaScript maps the binary representation of the clicked-on color's hex-code to a "chord" in the 24 tone-equal-temperament scale. That chord is then played back using a throttled audio generation method which was implemented via Tone.js.

NOTE! Turn the volume way down before using the site. It is noise music. :)

13 comments

order

hecanjog|1 month ago

Lovely! Edit: you might want to consider adding a limiter to the output, it makes a lovely crackling effect but it's easy to flatline the output until it fizzles out completely, it'd be more curious to hear the denser textures.

tevans3|1 month ago

Thanks! And thanks for that suggestion.

I added a limiter to the output and an envelope to my synth object, but after a bunch of experimenting with different settings for each, the flatlining effect was still there. Throttling beyond the note+release's duration did fix it, but that also removed the layering effect of overlapping chords. I think some of those were interesting and wanted to keep them. The last thing I tried was setting the attack to 0.01 and I think that fixed the flatlining issue?

bitwize|1 month ago

That's cool. I've been playing through the Quake Brutalist Jam collections recently, and this sounds almost like ambient music from one of those maps.

christopherscot|1 month ago

oh my god, so LOUD lol - i didn't read the post just clicked the link LMAO

tevans3|1 month ago

I'm sorry!

I know this doesn't help you now, but I changed the default volume to be significantly lower...

mcjiggerlog|1 month ago

RIP my phone's speakers. Maybe I should have read the post first..

tevans3|1 month ago

I'm sorry, this was an oversight on my part!

I adjusted the default volume, so that "painfully loud" is now opt-in by default...