4 ms·
Hey, this Adam from Brain.fm. I created the music "AI" thing. Glad to have the praise of a musician! My family's very musical, so it took some convincing for t
by ahewett 11y ago
Hey, this Adam from Brain.fm. I created the music "AI" thing.
Glad to have the praise of a musician! My family's very musical, so it took some convincing for them as well.
The thing is, it still takes creativity! It took me half a year to create it, and there's a little piece of my soul in this AI.
A horcrux, programmed in. :) It makes music how I would make music. Well, most of the time.
I had to create the thing because it was taking me a month to create a single session manually, and much of what I had to do was so precise that an algorithm could do it easier. Every note, every beat, has to be perfectly synchronized with the other filters we're applying to the music. So I built some algorithms, but they piled up, had to be constantly re-calibrated based on additions to the music as I kept composing. Keep in mind these are half hour to hour long pieces! And there's no shortcuts - I can't just throw a bunch of music in there, because even the smallest pop/overclip/dissonant moment, could wake someone up, or break their concentration... It just got to a point where something with more working memory than me had to take over.
The music in Brain.fm is very structured and obeys strict rules. There are some genres I can't get right yet - rock, folk, and so on. Although I'm always happy when people like it, and I like to think I did a good job giving the AI decent taste, I definitely don't have any illusions about this replacing humans :)
Did you take a listen to the Focus categories? Most of those are 120bpm. (skip around till you hit the classical one - I fed the AI harpsichord concertos I grew up with. Cool example of how maybe this could help some composers!)
Got a link to your stuff? Love to hear it.
- Adam
(oh and also there is definitely more than ambient music even in the relaxation sessions. Give it another listen if you have a moment. Skip around. There's indian music, mongolian chants, and the nature sounds are also all AI-generated. Every gust of wind, every raindrop :)
- nitrogen 11y agoSince you mentioned "the smallest pop", I thought you might be interested to know that the volume slider causes discontinuity pops, at least on Firefox, and could benefit from some smoothing. Very nice music on the site!
- ahewett 11y agoAhh! Damnit! I did not know that, sorry. Audio playback is remarkably inconsistent between browsers, or even between the same browser versions in different environments. It's a big headache. Glad you dig the music :)
- deleted 11y ago[deleted]
- ryan-allen 11y agoI guess you can't talk much about the AI as it's proprietary? It sounds pretty interesting though. What harpsichord concertos did you feed it? Is every session that is created unique? So you are not listening to the same thing each time?
- ahewett 11y agoIt is proprietary I guess, but I don't really mind talking about it :) I did a talk recently at Northwestern (The Garage) and they were interested, so I spilled the beans. I'd like to get that talk up actually. I used the Bach's harpsichord concertos - Allegro/Presto/etc, since we're doing focus in that case. It's actually the 2nd most popular theme on the site! I made that one for myself to be honest - I grew up with those things and it was a labor of love, that one. Took some major reconfiguring, but it was worth it I think. You're definitely not listening to the same thing each time. There's a huge variety. It doesn't generate the sessions in real-time (audio processing of this kind is very, very CPU intensive), but we take the data we get and process it for later use. At this point there's so many sessions "cached" that you get huge variety right off the bat and we're building up an infrastructure to create more sessions faster I'll be adding more "themes" later. To explain, in some cases there are sessions that use a specific protocol, like the harpsichord one. That's static. But other themes are more flexible, and so different protocols can be used for the same theme. By protocol I mean what we're actually trying to stimulate in the brain.
- tarblog 11y ago>We take the data we get and process it for later use What data do you collect/use to make the music?
- ryan-allen 11y agoThat is pretty cool. Some people here have questioned the science behind the claims of focus and relaxation etc, but even without that as a product feature what you're making is pretty awesome. I can imagine a product where you can combine a bunch of composers and genres and it'll just write songs for you to listen to :) I'm signing up just to listen to the music your thing makes! P.S. I played a few Bach pieces while learning Piano, he's one of my favourite composers!
- bonoboTP 11y agoWhat makes you use the word "AI" as opposed to "algorithm"? What kind of AI techniques do you use just broadly speaking (I mean techniques that are described in AI textbooks, AI courses, AI conferences)?
- ahewett 11y agoSure! Happy to explain it. Although I have to say I'm not sure what textbooks are saying these days. When I talk to programmers right out of college sometimes there's a bit of confusion as they talk about patterns I know, but using different names. I grew up programming on an 8088. :) In a podcast called College Info Geek and recently in I did a talk at Northwestern (The Garage) and I called what I'm doing "Emergent" because there are many competing little pieces. Let's see if I can explain it quickly here, though please don't be too hard on me I'm trying my best to answer a lot of questions, but I'm really happy to go more into later after all this dies down :) Conceptually, you could think of it as first creating what I'll call "song-bot", which acts a kind of overlord, and has some instructions from me (like maybe there's some specific chords I want it to use, keys to avoid, tempo, brainwave protocols, genre, etc, etc). This song-bot guy then spawns a bunch of little other bots that compete with each other for the right to play/fade in/or generally be a part of the final result. These little guys have different characteristics, like a "drum-bot" might has different places it "wants" to be placed, and so generally competes with other drums, but not always. Sometimes I'll even have little "bots" for individual notes of a certain instrument. They obey certain rules of course, to form a background, drum line, or a simple melody, and then they pass that information along to subsequent incarnations (there's some learning involved in that process, though I hesitate to give it any textbook term - man, you have me terrified here of defining something wrong! :) ). Through that learning, the pattern the original little guys made has more weight and will tend to repeat. But again, not always. After a while, a song... emerges. A kind of "emergent intelligence." The resulting song can be quite complex and varied. Of course there's more to it, because songs have sections, but all in all the genres I'm using are very structured. Techno especially, is very easy for the AI. Sometimes I'm tasked with creating a theme in a particularly difficult genre, and that's when it gets really tricky/fun (such as some of the Indian ones, which were labors of love). In these cases, I may have to re-rerun many "generations" of the AI through the same song from beginning to end, with different parameters/instruments, but with the same patterns/learning, because what can happen in these cases is that it starts out simple, and increases in complexity as it goes, so the start can sometimes be a bit boring. Also keep in mind this is just a conceptual explanation. The code is much less amusing. Thinking of naming processes "bots" though just for fun. I hope I explained it OK. Listen, I'm not saying it's Watson or anything, it's really just a necessary step I had to take in order to make the computer do what I wanted it to do. I tried out some different ideas, and this one worked the best. I like the result at least :)