Nice. Although, it bothers me that the shorter lines are lower pitched than the longer lines. Don’t know why, but intuitively I feel like the pitch should go down as the line gets longer.
Looks like a cleaned up version of Josh Nimoy’s classic Ball Droppings piece. <a href="https://experiments.withgoogle.com/balldroppings" rel="nofollow">https://experiments.withgoogle.com/balldroppings</a>
Just some quick notes: Lines should be customizable for what sound is played: ie being able to make drum beats would be neat. And a silent-line should be an option too.<p>A line that toggles on/off when a ball passes through it or collides with it would also be fantastic.<p>Also a trampoline line/shock absorber line(s).<p>The default/starting line should be a diagonal too, since it makes it more clear what is happening and you don't get that decaying bouncing thing.<p>very cool idea
Funny enough,
can I add it to my collection of little web gems?: <a href="https://sharkle.com" rel="nofollow">https://sharkle.com</a>
Pretty cool!
It reminds me of Droplets [1].<p>I'm working from time to time on a similar concept. Except you can have multiple ball sources and each platform/line can play any combination of notes. [2]
It's using phaser and tone.js under the hood and it's not very mobile friendly yet.<p>[1] - <a href="https://finneganeganegan.xyz/works/droplets" rel="nofollow">https://finneganeganegan.xyz/works/droplets</a><p>[2] - <a href="https://sounds.tuzemec.com/" rel="nofollow">https://sounds.tuzemec.com/</a>
I loved this.<p>It would be very cool if there was a visible buffer of the balls that have yet to drop could see and control what will fall. The spacing could be controlled by clear no-op balls in the buffer that just pop like bubbles when they release. That way the composer could program the pitch and spacing of the notes.<p>Also having a infinite canvas would be really nice so one could pan around.<p>And different size lines should cause the bounce back to happen at different speeds.<p>Super awesome, thanks for sharing!
Update: added a few more linetypes, all in all now<p><pre><code> Draw: Standard black lines. Dots bounce off these and play a sound. The note is based on the line's length and angle.
Erase: Red lines used to delete other lines (including predrawn ones). Intersecting lines disappear.
Toggle: Black lines that switch between active (solid) and inactive (dashed). When inactive, dots pass through without interaction.
Silent: Dark gray lines that let dots bounce off but don’t produce any sound.
Burner: Dark red lines that destroy any dot that touches them, no sound.
Splitter: Magenta lines that split dots into two upon collision. The original dot is removed, and two new dots continue with altered trajectories.
</code></pre>
also after some back and forth with somebody from the vienna philharmonics orchestra i now use this tonal scales<p><pre><code> Red: C major
Blue: G major
Green: E minor
Black: A minor</code></pre>
Excellent! Eventually the balls go through the lines, but it's unclear what the rules are?<p>A couple of months ago I did a ShowHN for Billard, which also uses physics and collisions in 2D space to make music: <a href="https://billard.medusis.com/" rel="nofollow">https://billard.medusis.com/</a><p>Those are fun experiments.
I accidentally got it do to to a three note sequence that sounds like it's from Ocarina of Time!<p>Seems like it would be cool if there was some nonlinear elements, like walls that only reflect every Nth ball.<p><a href="https://franzelio.franzai.com/?share=AQMKAAAHi2u2223VupMAAAFjp5XAOFaqRwAAAcCtzEmNydCFAAABjvhqH3BvYQIAAAGtvlF80IljtAAAAZ9Np7bJrLD0AAABlsitvslwuMcAAAEBGZroa-Zm3i0AABEU_eNUf6N_-QM3Yd-7f7SAIgNVxdpmf7R_9gNywd_if82ARQOHDcxnf82AGQObWsrSf81_7QOnzcOuf-yAHAOvosC8f-x_8AO1Y8mQgBmASQOq77SKgBmAHQOburYZgCx_3gOJwsxSgCx_sgNv5c31gGCAhANMhqLAfxd_uAOURJs-f6WAqQO40l9if6WAfQOAAEMqgACAvwM" rel="nofollow">https://franzelio.franzai.com/?share=AQMKAAAHi2u2223VupMAAAF...</a>
Update: When you put the slider to 0 dots per second (or choose manual in the dropdown on mobile) you can now play the Franzelio manually, every click on a color button will spwan a dot in that color immediately.<p>thx for all the feedback
Mini Metro (a minimalist sim game) sounded like this. Every time you built a train line or a passenger got on or off the train, a new pitch would sound, and that was for the most part the soundtrack for the game.
For anyone interested in Godot, I made a mobile first (Sailfish Os only) version <a href="https://github.com/poetaster/balldrop">https://github.com/poetaster/balldrop</a> which is based on <a href="https://github.com/Bauxitedev/balldrop">https://github.com/Bauxitedev/balldrop</a> It was great simple problem set for solving touch screen problems in Godot and makes lovely melodies :)
Wonderful idea. Proof, if proof was needed that digital music (and much more in the digital domain) is still a vast unexplored universe. The equivalent physical "instrument" would be nigh impossible to build, let alone operate by a random anybody.<p>Nb: the sound creation seems buggy on android mobile browsers (both firefox and chrome).
awesome! I tried once to make something very similar in p5 but never got past the sketch phase <a href="https://editor.p5js.org/ejarzo/sketches/dsNdGZt0n" rel="nofollow">https://editor.p5js.org/ejarzo/sketches/dsNdGZt0n</a>
This is amazing. One issue I ran into though, is after just a minute or two with about five lines on the screen, I get a growing hum that makes me have to close out the tab. Is anyone else running into that?
love this -- would be cool if could mod line thickness, ball size / density to vary pitch?<p>also hard not to picture building a mini transformer in here where can visual backprop and stuff-<p>some templates to load or get started - play X etc or let the computer just play semi-random<p>anyway love it well done clean simple
Getting a URI too long error unfortunately - I guess you didn't want to store state in a db but storing a few points shouldn't take much space? The URI is 13k characters long unfortunately for 8 lines (guess you are storing all the state including balls?). Could you perhaps leave out balls to make urls shorter?<p>For example this quickly grows the url:<p><a href="https://franzelio.franzai.com/?share=eyJsaW5lcyI6W3sieDEiOjAuMywieTEiOjAuMTU3OTc0MzAwODMxNDQzNjgsIngyIjowLjQ4ODQxNDYzNDE0NjM0MTQ1LCJ5MiI6MC42NjM2NDMyMzUwNzE4MDY0LCJjb2xvciI6ImJsYWNrIiwibW9kZSI6ImRyYXciLCJpc0FjdGl2ZSI6dHJ1ZX0seyJ4MSI6MC41MTA5NzU2MDk3NTYwOTc2LCJ5MSI6MC42NjU5MTA4MDg3Njc5NTE2LCJ4MiI6MC43MDEyMTk1MTIxOTUxMjE5LCJ5MiI6MC4xNDk2NTk4NjM5NDU1NzgyMywiY29sb3IiOiJibGFjayIsIm1vZGUiOiJkcmF3IiwiaXNBY3RpdmUiOnRydWV9LHsieDEiOjAuNDg1OTc1NjA5NzU2MDk3NTUsInkxIjowLjY5MTYwOTk3NzMyNDI2MywieDIiOjAuNTE0NjM0MTQ2MzQxNDYzNCwieTIiOjAuNjkwODU0MTE5NDI1NTQ4LCJjb2xvciI6ImJsYWNrIiwibW9kZSI6ImRyYXciLCJpc0FjdGl2ZSI6dHJ1ZX1dLCJjdXJyZW50QmFsbENvbG9yIjoiYmxhY2siLCJkcm9wUmF0ZVZhbHVlIjoxLCJkb3RzIjpbeyJwb3NpdGlvbiI6WzAuNDc0MTYxOTI3MjA4NDAyLDAuMzQyMjIxNzA4ODkzNTk5Ml0sInZlbG9jaXR5Ijp7IngiOi0wLjAwMDE3OTY1OTE5ODc2MzkzMjkyLCJ5IjotMC4wMDEzNTg4OTkzMTc2NzU3OX0sImNvbG9yIjoiYmxhY2siLCJzY2FsZSI6WzI2MS42MywyOTMuNjYsMzI5LjYzLDM0OS4yMywzOTIsNDQwLDQ5My44OF19LHsicG9zaXRpb24iOlswLjQ4OTU4NTY2OTQyMjI4MzI3LDAuNTEzMzkxMTUxODI0MDAyMV0sInZlbG9jaXR5Ijp7IngiOi0wLjAwMDE3OTY1OTE5ODc2MzkzMjkyLCJ5IjotMC4wMDI2NDE0MzkwMDAyMTU0NjY3fSwiY29sb3IiOiJibGFjayIsInNjYWxlIjpbMjYxLjYzLDI5My42NiwzMjkuNjMsMzQ5LjIzLDM5Miw0NDAsNDkzLjg4XX0seyJwb3NpdGlvbiI6WzAuNSwwLjU1MDgxMzgxNzA4MjM4OF0sInZlbG9jaXR5Ijp7IngiOjAsInkiOjAuMDA0ODE2OTMxMjE2OTMxMjA3fSwiY29sb3IiOiJibGFjayIsInNjYWxlIjpbMjYxLjYzLDI5My42NiwzMjkuNjMsMzQ5LjIzLDM5Miw0NDAsNDkzLjg4XX0seyJwb3NpdGlvbiI6WzAuNSwwLjE5NDgwMzIzNTA3MTgwNjM5XSwidmVsb2NpdHkiOnsieCI6MCwieSI6MC4wMDM1NDcwODk5NDcwODk5NDN9LCJjb2xvciI6ImJsYWNrIiwic2NhbGUiOlsyNjEuNjMsMjkzLjY2LDMyOS42MywzNDkuMjMsMzkyLDQ0MCw0OTMuODhdfV0sInByZWRyYXduTGluZSI6bnVsbCwiY3VycmVudE1vZGUiOiJkcmF3IiwiaXNTb3VuZE9uIjp0cnVlfQ%3D%3D" rel="nofollow">https://franzelio.franzai.com/?share=eyJsaW5lcyI6W3sieDEiOjA...</a>