[HN Gopher] Show HN: Billard - Generate music from ball collisio...
___________________________________________________________________
Show HN: Billard - Generate music from ball collisions in 2D space
Hello HN! Here's Billard. It combines music and physics into a
unique creative tool, as I explore various unconventional methods
for generating music. Most traditional music composition tools
revolve around the idea of a repeatable pattern. Billard is a
webapp that never repeats itself. It generates music automatically
based on the collisions of balls in a 2D space. Collisions trigger
notes (or chords) in a given key. One can add balls or move them
(y-position is pitch); the app remembers its state between reloads;
or it can be reset with the 'init' button on the top left. Gravity
can be adjusted in real time to change the behavior of the balls.
It owes a lot of inspiration to Brian Eno and Erik Satie (inventor
of _musique d 'ameublement_, or "furniture music"). Some may think
the lack of pattern makes it not musical enough -- but this lets it
be listened to --and watched-- for a while without boredom. The
webapp is made using plain JavaScript. (All SVG icons were made 'by
hand'.) It uses Tone.js only for triggering piano samples. Beyond
piano, it's MIDI-enabled and works well at slow speed with
haunting, dark synth sounds. Hope you like it!
Author : bambax
Score : 148 points
Date : 2024-06-18 16:45 UTC (6 hours ago)
(HTM) web link (billard.medusis.com)
(TXT) w3m dump (billard.medusis.com)
| block_dagger wrote:
| Cool! I will try this out as a layer in my live ambient set later
| today.
| bogwog wrote:
| Cool, but it really does just sound like a bunch of random
| noises. I think it'd be more interesting if the balls were
| regular polygons instead of actual circles, since the reflections
| would be more predictable.
| CamperBob2 wrote:
| It gets interesting when you click to add more balls in the
| path of one that's already moving.
| tanseydavid wrote:
| Switch to CHORD mode.
| riedel wrote:
| Reminds me a bit of the 3DS Electroplankton game. Wasn't quite so
| addictive though. Would be great to have a bit more control to
| generate repetitive patterns.
| mock-possum wrote:
| Have you ever looked at vcvrack.com? It's free modular synth
| software, and I'll bet the community would love to see something
| like this developed into a module.
| bambax wrote:
| Oh yes I love vcvrack (and Cardinal); but this is JavaScript,
| and for all I know vcvrack modules are C++? But sure it would
| make for a cool module.
| ameesdotme wrote:
| Had a lot of fun with this. Also a good laugh when trapping some
| balls and hearing the midi-engine go apeshit and eventually
| crashing.
| groovity wrote:
| Doesn't make any sound on Safari iOS. Yea I clicked the
| loudspeaker
| ErneX wrote:
| unmute your device
| bozhark wrote:
| And turn the volume up a lot
| groovity wrote:
| Gee, I didn't try anything obvious.
| corobo wrote:
| If anyone else still can't hear anything even after
| cranking the volume - the grandparent comment means take
| your phone out of silent mode in addition to raising the
| volume above 0
| dt23 wrote:
| Wow, this is super cool. The whole experience of
| interacting/watching/listening to it is very relaxing and
| harmonious-feeling. Thanks for sharing! :)
| teleforce wrote:
| Fun fact, it's reported that the new Rolls-Royce Spectre 2024
| turn signal's sound was created by combining the sound of finger
| nail tapping the car's aircond vent metal and the sound of a
| couple wine glasses touching. The resulting turn sound signal
| remarkably turned out to be exactly the same as normal turn
| signal in any other car, pardon the multiple puns.
| bozhark wrote:
| Could you add accelerometer as input method for phones?
| bambax wrote:
| I would need to test it more. The accelerometer generates lots
| of events that would end up changing gravity constantly (when
| held up); maybe with a low-pass filter so that gravity changes
| more slowly it would work.
| jcims wrote:
| This is a lot of fun!
|
| Reminds me of the 'polyrhythm' genre of videos on youtube (eg.
| LucidRhythms)
|
| One fun thing to do is load the canvas up with a bunch of balls
| really close to each other then click the yin and yang icon which
| causes them to change state when struck.
|
| Adding some kind of gravity might be fun.
| qwertox wrote:
| Ends up looking like a constellation.
| chaosprint wrote:
| This is awesome. A great interactive piece that is simple and
| fun. Love the idea of the random ball spawning.
|
| I seem to have triggered "infinite sample playback" when I stuck
| the ball in a corner and the audio crashed. One experience I've
| had with this kind of large sample playback (in SuperCollider) is
| that by dynamically reducing the volume, it creates an
| interesting textured sound [1].
|
| Of course for every project using Tone.js I would like to mention
| one of my project glicol.js which is in active development [2].
| It has better performance but needs more use case to find what's
| needed in the API.
|
| [1] https://github.com/chaosprint/Packing
|
| [2] https://github.com/chaosprint/glicol
| bambax wrote:
| Glicol is absolutely amazing!!
| breck wrote:
| Love it.
|
| Any chance you are going to share the source code?
| bambax wrote:
| Thanks!
|
| The code is not obfuscated or minified in any way, so it's easy
| enough to read. But I'm not sure it deserves to be actually
| published... ;-)
| breck wrote:
| Thanks, but in addition to checking out the source I'm more
| interested in following your work and what you do next on
| github (or gitlab, etc)
| dekhn wrote:
| I happened to be writing a desktop app that does something
| similar to this; I saw https://www.youtube.com/shorts/lF8fEn20OaU
| and many related videos, so I wrote up a simple
| QGraphicsView/pymunk app that implements these. The code is a
| dog's breakfast and will be under development for some time.
|
| I see some videos which suggest that the developer actually set
| up the map and the physics such that specific songs get played,
| although I think there is some trickery to simplify it.
|
| At the moment I'm working on a subproject which is generating the
| audio sounds for various bumping events, having found
| musicpy/sf2_loader a quick way to generate samples.
| Ylpertnodi wrote:
| Fantastic. On mobile atm, so midi ill investigate later. Have you
| considered making a .vst3 plugin?
| bambax wrote:
| I'm looking at nih-plug which is an audio plugin framework in
| Rust. I'm a Rust complete and utter noob, but this looks fun
| and a great way to learn (I'd rather not dive into the likes of
| Juce). So I guess we'll see!
| pierrec wrote:
| This genre of musical sandbox is a really satisfying and fun
| rabbit hole. You can even take it to production (mainly ambient
| music production, that is). My favorite for usage inside DAWs is
| Droplets, which works as a plugin but also has a web version:
| https://fynthesizer.github.io/Drip/
|
| There are other plugins for this, each with its own personality.
| For example Bitwig's Ricochet is a totally different take on the
| same idea, where they managed to make it usable for more rhythmic
| purposes: https://www.youtube.com/watch?v=WFvIYkTGRzA
| bambax wrote:
| Yeah, I knew about Droplets -- it's is really well executed,
| but maybe a little too predictable for my taste.
|
| Didn't know about Ricochet (not a Bitwig user), but it's very
| impressive!
|
| Also, you're the creator of protoplug? What a fantastic idea!
| zeristor wrote:
| 'Crockery drifts across the surface of "clinamen", and when
| gentle currents get these white porcelain bowls clinking, French
| artist Celeste Boursier-Mougenot creates a changing, chiming
| soundscape.'
|
| https://www.youtube.com/watch?v=RdCutpuUrX4
| bambax wrote:
| Wow. Really close concept indeed. Thanks for sharing.
| quercusa wrote:
| Very fun. Reminds me of the old Flash game Boomshine [0]
|
| [0] https://www.albinoblacksheep.com/games/boomshine
| Biganon wrote:
| On Firefox mobile, the note resonates 0.5 second after the
| collision, making the experience very frustrating
| bambax wrote:
| Sorry to hear that. I use Firefox on a fairly old Android
| device from 2017, and it's acceptable? Maybe the device you're
| using is very busy?
|
| It'd be hard to trigger the sound before the collision
| (although possible, in theory)...
| otherayden wrote:
| This is awesome lol, very fun to trap the ball in a corner
| riiii wrote:
| I like this. I'd love to be able to move the red balls too.
| sneak wrote:
| Boop them while dragging the note balls.
| bambax wrote:
| You sort of can, if you select a non-red ball, move it around,
| and then and change its state to moving ('ball state' in the
| config panel).
| cantSpellSober wrote:
| Awesome! Next step is mash it up with Pong and Guitar Hero so you
| have to use a paddle to hit the balls in the right direction to
| play a song.
| parpfish wrote:
| "Music" or just "pleasant background noise"
| EZ-Cheeze wrote:
| Yooo I been wanting to do the same for this
| https://nextrenaissance.art/society.htm
|
| It's billiard-like and makes complex patterns over time that
| might sound coherent and interesting in various audio mappings.
| Runs best in Edge
|
| https://github.com/mnenoff/society-htm/tree/main
| dr_kiszonka wrote:
| Fun! What do the yin yang button and the one to the right of it
| do?
| bambax wrote:
| Yin mode lets ball change state when they collide (from moving
| to playing and vice versa); and the chords button (not the most
| obvious design, true ;-) let bigger balls trigger triads
| instead of single notes.
| w_for_wumbo wrote:
| This is amazing, it's like what I was trying to build a similar
| concept recently. (I think the whole AI consciousness
| conversations are speeding up our understanding of the shared
| nature of the conceptual thought space in which we all reside.)
|
| I feel like we're getting to the point where we're combining the
| knowledge of geometry, music, art, maths, optics, biology etc.
| and we're going to be recreating some of the interconnected
| aspects of the natural world through the digital realm.
|
| Once we do this, I think we're unlocking the possibility of a
| symbiosis with silicone-based life, where our discoveries work to
| lighten the path through the void of the unknown.
| hkon wrote:
| What is happening when I lock some of the balls inside and then
| the sounds just stop. Is something overloading?
| tombert wrote:
| There was a free program years ago called "Ball Droppings" that
| was fun to play around with. This reminds me of that.
|
| https://youtu.be/G6IKsek8DKE
___________________________________________________________________
(page generated 2024-06-18 23:00 UTC)