Generative.fm – Endlessly unique ambient music
generative.fm
generative.fm
I see some people are having a rough time on mobile devices so I wanted to help with that. I have found that iOS Safari will mute the site if you have your iPhone in silent mode (there might be a way for me to fix this but I haven't explored it much yet). However, you'll probably find that many of the pieces snap crackle and pop a bit on mobile devices. I'm looking into ways to improve that but for now unfortunately the best advice I have is to try it on your desktop or laptop or to try some of the less complex pieces towards the end of the list. I really appreciate the feedback; I've only done so much testing with the devices I have available so hearing from more people with a larger range of devices is super helpful. Feel free to open issues on Github as well: https://github.com/generative-music/generative.fm/issues
Would love to be able to save/replay/share sections that I really enjoyed (e.g. bookmark the seed(s) + offset/range).
(A service like Liberapay might make this easy for you to do.)
As stated in other comments, if this was an app (in my Mac menu bar and/or on my iPhone) this would be the quickest $3-5/month I’d spend.
Thanks for this, I've been using it since yesterday :)
Interesting project, enjoying it a lot!
Some things were broken for me(On Firefox 65.0.1, Ubuntu 18.04):
* Pause button doesn't immediately pause, the current note(?) ends over a period of time before pausing
* Fullscreen, and a few other buttons don't work. Also, I can't tell if my mouse click even registered on the button
Very interesting project nonetheless, and the music generated is quite nice to listen to. I particularly like how well placed the silences are. The percussion does need some tuning, like you've mentioned.
The pause button is actually an interesting design decision. The way it works currently allows the system act more like a physical instrument — if you hit a bell three times and then stop, the bell keeps ringing. This has some utility when the piece is being used in a public setting, or when being accompanied by human musicians playing live. That's why there's a mute button. Though you raise a good point. For the web, I should probably change that so it's in keeping with digital expectations, and pause the sound as well as the performance.
EDIT: Just want to say that these are better than I expected. As good or better than about half the ambient music recommendations I get on Spotify.
Edit: here's the talk: https://www.youtube.com/watch?v=zKJ_XuQjjiw
A more generative example is the music in Portal 2. There are several aspects to its music that are subtle, purely generative and integrated with the gameplay. For example, the each receiver for the laser beams start playing an additional, random voice over the background music track as long as it is hit by a ray. It is a bit faint, bit it is there. It becomes cool in those levels where you have several of them next to each other They are starting to play a randomized concert while you are solving the puzzle. Someome made a long and elaborate writeup about this and other aspects of the game's music, but I can find it now.
It is a but funny because games shifted away from using sound synthesis amd sampling for music to studio recorded tracks over time as they started to have enough storage space for it. But this now limits how you can process the music to make it dynamic.
• Disasterpeace's most famous soundtracks all incorporated some measure of procedural music happening at runtime — Fez, Hyper Light Drifter, The Floor Is Jelly, Mini Metro... this ranged from simple mixtures of tones and textures at random intervals to very advanced, tightly integrated (re-) composition systems.
• Most games will dynamically mix different "stems" together based on the action in the game. Amon Tobin's soundtrack to Splinter Cell: Chaos Theory is a great example of this, but it happens in pretty much every AAA game now (and most indies, if not something more ambitious like the above). Another great example was Banjo-Kazooie on the N64. In simpler cases there are 3 or 4 different variations of each piece of music, but it's not uncommon to find a game with many more. Couple that with Fmod to apply filters at runtime (like a lowpass when diving underwater) and you have a very lively, dynamic soundtrack that adapts to the gameplay.
I could list a ton more examples, but that'd be tiring. A key point is that while this music is procedural, it's not generative. In other words, while it's common to find games where existing music is remixed dynamically, you rarely find games where the music is being composed on the fly.
Another interesting aspect to consider is the relative rarity of generative or procedural sound effects. Most sound effects are played back as-recorded, with perhaps some Fmod filtering. Mario Odyssey one-upped this by playing different sound effects depending on the moment-to-moment chord changes in the music, so that the sound effects would harmonize and "play along" with the music — to beautiful effect. But rare is the game that fully dynamically generates sound effects at runtime.
For example things can feel a bit disconnected, chords and progressions that don't "transition" properly. To me, that is a bit unpleasant. I feel like that means you need to give it some extra constraints, but this might depend on the style.
To make generative music that is rich in detail and follows the thousands of conditioned expectations of listeners and that has a narrative arc ("global connectedness") at multiple time scales, you need that grounding, interesting & unexpected constraints, and a lot of practice.
I make generative music (sometimes professionally), so I'll share what constraints I've found helpful. None of these are rules, just battle scars.
• Embrace determinism, especially at first. It can be tempting to lean-in to the essence of generative music and have randomness reign supreme ("it goes on forever and never repeats, different every time"), but that makes it very difficult to track the consequences of your decisions as you're composing the system. The stability of determinism really helps you build up a system that can produce minutes or hours-long narrative arcs within the music, and avoid that "lack of global connection". It's this stability that allows conventional musicians to compose music that holds listeners' interest for hours. Hang onto that, and then slowly release it in small, controlled increments.
• Pick a genre, reverse-engineer it, write down its rules, and then turn those into systems. Don't just start blue-sky inventing systems that make music, or it won't scale up to a high degree of intricacy, and the result won't be able to hold listener interest.
• The tones and textures matter more than how you use them. So if you're using samples, make sure you have samples that can elicit and maintain interest and attention. That means variety — multiple instruments, multiple aesthetics, variations of every sound. If you're using synthesis, spend a good portion of your effort making sure the sounds are lush and varied and convey the right aesthetic. It's powerful to mix both samples and synthesis, and to apply dynamic filtering like reverb or EQ, and that too should be driven by a procedural system. Ultimately, tone and texture are your signifiers of quality and maturity, sophistication, professionalism, so pay them special attention.
The sonic part comes down to production values.
The problem with most generative art is that it's treated as a programming exercise, not as a tool for producing the best and most polished work.
It's fairly easy to hack together a music generating system, but producing tracks or output to a professional standard is a harder problem.
Similarly good are parts of the Fallout OSTs and Minecraft OST. I have listend to a bunch of game and movie OSTs for films and games I haven't even watched, it's a great source of programming backing tracks.
I am definitely stealing this for my twitter bio.
I love Brian Eno, so I’m super excited to see something like this pop up. Would love to contribute generative systems!
Didn’t play for me either on this device, but I wasn’t surprised given previous experience.
Which is kinda surprising, considering how often media doesn't work...
Offer that with a free tier of one or two songs and upsell the rest for a few bucks (with a 1min demo-tune-in for unpurchased songs).
Oh, and throw in a few subtle but noticable war drums when ever a new email arrives, that would be brilliant! ;)
This is why I don't see "endlessly unique" as something inherently good. It would be cool, however, to play it for 1h (or so), save it and then re-play it whenever.
It would be nice to have a way to auto-play each piece (something like https://somafm.com/player/#/now-playing/dronezone) so that I can start the music automatically (e.g. from a script) without having to click.
Edit: and it absolutely does play more than 25 mins, I quite often leave it on overnight playing rain noises and it's fine.
If the author does indeed peruse HN, I've got a few suggestions for sounds, but I'm sure you're completely inundated by such things :) Thanks!
Also I've had nothing but positive experiences when emailing for help / support / suggestions, have you tried that?
You probably did the lifetime membership when the intro / debut post was on HN a few years back... not sure if the app developer(s) are still active on HN (probably?) but you could probably contact / post / follow up that way too.
Ah well.
Recommend removing “never played” and using something like “popular” on more played. This way new content doesn’t look like no one likes it.
Listening to this along with the clicking sounds of my coworker's keyboards makes me feel like I am in a rainy forest.
Now I want is as a soundtrack for my life :D You should totally publish a Desktop app which loads on system boot!
Also, did you think of partnering with one of these relaxation or meditation apps?
On my mobile (iPhone), I get clicks and other artifacts on playback, which increase when scrolling the view, which I guess indicates samples not being generated fast enough.
Beware: my top of line android phone rebooted itself after a minute or so of music.
Is it difficult to build systems?
Difficulty? hard to say, looks like knowledge of the various libs used is pretty critical, but pieces look to be between 100-200 lines.