My own Csound-based project: The Platonic Music Engine
Date | 2016-12-14 00:31 |
From | David Bellows |
Subject | My own Csound-based project: The Platonic Music Engine |
Hey folks, A few weeks ago I hit a major milestone with my music-generating software the Platonic Music Engine: http://www.platonicmusicengine.com The software is still very much in alpha meaning there are bugs and features missing but most importantly there is no friendly graphical front-end. You interact entirely by editing whichever file you want corresponding to the style of music you want to create. The software is in Lua so hopefully editing those files won't be too difficult. My software aims to create music in any style of music that has ever existed or ever will exist. It does this algorithmically but instead of using fancy computer sciency things like neural nets and Markov chains (I have no idea what either of those things are), the algorithms are created by hand. You analyze the musical idea you want to include and program it in allowing room for the pseudo randomly generated numbers the software produces to be incorporated. It's probably the least intelligent algorithmically produced music in the field but it is very flexible and should be able to handle pretty much anything. In addition to music it produces standard sheet music (via Lilypond) and graphical notation (via LaTeX and TikZ). I'm not a programmer but I have been working on this for two years and plan on another 3-5 years just to reach the first general public release (with an online generator). It's written in Lua and is licensed under the GPL (with the Affero clause) and all the art it produces is under a liberal CC license. I use Csound very simply. I've only just learned how to use it so it has to be simple. And the Csound files are all generated automatically so it's even more simplistic than what you might imagine. Right now it produces simple files that use MIDI Soundfonts and one musical style that uses very simple synthesized sounds (taken nearly verbatim from the manual). Please feel free to browse my code and suggest any changes, especially to those files that generate the Csound files. For a more in-depth look into this recent release please check out two posts I did on Reddit. The first looks at the underlying features like setting the tuning (pretty much any tuning imaginable), scale (ditto even though only a few are programmed in currently), durations, dynamics, emphasizing scale degrees (tonic, perfect 5th, etc in any tuning), tempo, etc. The second one looks at the few specific musical ideas that I've written so far plus examples of scores. I know it's Reddit but please give my write-ups a chance. Part 1: https://www.reddit.com/r/musictheory/comments/5fdrj0/please_let_me_introduce_to_you_my_own_music/ Part 2: https://www.reddit.com/r/musictheory/comments/5gp4gx/part_2_of_my_introduction_to_the_platonic_music/ The Csound stuff in my software would not have been possible without the help of people in this mail list and at /r/csound. Thank you! Dave Bellows Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2016-12-14 00:42 |
From | Peter Burgess |
Subject | Re: My own Csound-based project: The Platonic Music Engine |
Hi! Sounds like a very interesting project! Just to clarify what you said here: "You analyze the musical idea you want to include and program it in allowing room for the pseudo randomly generated numbers the software produces to be incorporated" Are you saying the end user of your app does this, or do you mean that you are currently doing this to develop the app? I don't know how long you've been on this mailing list, and you may or may not have seen this already, but if you haven't, check out the website for my app here: http://algorythmradio.com It sounds like we might be doing very similar things ;) On Wed, Dec 14, 2016 at 12:31 AM, David Bellows |
Date | 2016-12-14 01:00 |
From | David Bellows |
Subject | Re: My own Csound-based project: The Platonic Music Engine |
Thanks! > Are you saying the end user of your app does this, or do you mean that you are currently doing this to develop the app? Ah, I was trying to be concise! The general user just makes simple choices like the musical style, the scale, instrument, tempo, etc. For the composer/music theory person who wants to contribute musical ideas for others to play with into the software (it's GPL and I want people to contribute!) they have to figure out how to algorithimize that particular musical idea from scratch and program it in. For example, the one currently included that mimics a Bach Prelude (Well-Tempered Clavier) forces the music to follow Bach's original contours and durations. The specific notes are pseudo-random and are transposed in octave leaps to fit Bach's pattern. Here's the page for the Bach followed by an example score: http://www.platonicmusicengine.com/praeludiumI.html https://drive.google.com/open?id=0B5Jk3Yrq1rrdRTQwMUlFM3BqbU0 (The audio is available at the first link) > I don't know how long you've been on this mailing list, and you may or may not have seen this already, but if you haven't, check out the website for my app here: I wasn't familiar with this but it does look very cool! I imagine we are taking different approaches to the algorithm bits. I'm guessing yours are pretty sophisticated and maybe even use some kind of AI analysis stuff? The bandwidth where I am is horrible so I'm not able to easily listen to your samples but whereas yours sound really good mine are more about the user interacting with the musical ideas to produce something unique to them. The genres you've chosen allow for the mixing feature you've added and that's a very cool and clever idea! My software doesn't really have anything even resembling that but on the other hand it can create music based on the music of any culture and and any idea anyone has ever had. Not included in this release was a Style Algorithm using ancient Greek music theory combined with the poetry of Sappho. Your approach produces some very cool results and I am very impressed! I can't to see the final product. On Tue, Dec 13, 2016 at 4:42 PM, Peter Burgess |
Date | 2016-12-14 01:18 |
From | Peter Burgess |
Subject | Re: My own Csound-based project: The Platonic Music Engine |
Thanks! I can't wait to finally get to a position where I can release public test versions. My development took a festive for about 6 months, and I'm finally picking it back up only recently, haha. It does sound like you've got some good novel ideas going on in your project, sounds like some impressive stuff. That Bach piece is sounding good! I considered adding more user interaction with my app for a while, but I decided to keep it purely as a music player, it's getting complacated enough! Haha. As for how I've made it, it is in fact all by hand aswell. I have ideas for AI implementations to help with certain aspects of development, but at the moment it's all human crafted! Except the actual music obviously ;) So I'm guessing from what you've said so far, that you can use any temperament? That's something that I've had on my app from the start too, and I have personally listened to it playing in wacky temperaments... But I've not yet shown this to the public, I wasn't sure if that would scare people off or not, haha! I'll save that secret until later on ;) I've also not publicly shown any scale but Bmaj if I remember rightly... Not because I can't, I've just not bothered changing it yet. That's waaaaay down my list of priorities... Luckily, I don't think anyone's noticed yet, haha! I'm. Looking forward to seeing where your project goes man! On 14 Dec 2016 1:00 a.m., "David Bellows" <davebellows@gmail.com> wrote: Thanks! |
Date | 2016-12-14 01:32 |
From | David Bellows |
Subject | Re: My own Csound-based project: The Platonic Music Engine |
> That Bach piece is sounding good! Thank you! And it's actually a lot of fun to play with. You change the scale and do things like it tell it to use more major thirds and fewer perfect fourths and then recompile. You can't control the specific notes but you can control the probability that certain things happen. > I considered adding more user interaction with my app for a while, but I decided to keep it purely as a music player, Yours is perfect as a music player. I would think you'd want to keep the choices pretty simple like the genres. Mine is more about the interaction, though I do have plans for custom radio stations as well. > So I'm guessing from what you've said so far, that you can use any temperament? Yep, from 0-EDO to around 30 million-EDO (or wherever the software craps out) including fractional EDOs (like pi). And it doesn't have to be octaves but equal divisions of any interval. And of course just about any other pre-computed turning you want like any Just Intonation, Pythagorean, Harry Partch's 43 tone system, Bohlen-Pierce, Wendy Carlos's tunings, etc. And it was all made super easy thanks to Csound allowing me to use specific audio frequencies with MIDI soundfonts (I used MIDI before and it was a pain in the ass!). > I wasn't sure if that would scare people off or not, haha! I'll save that secret until later on ;) For your project the alternate tunings probably aren't that essential. I want my software to appeal to hardcore music nerds too so I've tried to make it as hardcore nerdy as possible. Plus, of course, tunings from other musical cultures. > I'm. Looking forward to seeing where your project goes man! Thank you! I spend nearly all my time on it -- it's all I do. I have high hopes for it! On Tue, Dec 13, 2016 at 5:18 PM, Peter Burgess |
Date | 2016-12-14 01:50 |
From | Peter Burgess |
Subject | Re: My own Csound-based project: The Platonic Music Engine |
Yeah, algorythm radio is nearly all I do too! Aside from those 6 months of slacking... Haha. 3000000 EDO huh? Haha. That's essentially just random frequencies ready set out in a logarithmic manor ;) you're right though, it's probably not as important for my app, and utilising different tunings has made my app a fair bit more complex... But I am a hardcore experimental musician, so that's really just for me ;) I've got blends of different EDO too, I can't remember if this is right now, but I think they two I tried were 5EDO mixed with 3EDO, both with a common pitch, and also 2EDO mixed with 3EDO, again with a common pitch. I really liked the 5 and 3 blend. Now I think about it, that will just be a particular scale of 15EDO, still good fun to listen to though! On 14 Dec 2016 1:32 a.m., "David Bellows" <davebellows@gmail.com> wrote: > That Bach piece is sounding good! |
Date | 2016-12-14 18:43 |
From | David Bellows |
Subject | Re: My own Csound-based project: The Platonic Music Engine |
> 3000000 EDO huh? Haha. That's essentially just random frequencies ready set out in a logarithmic manor ;) Yeah, I didn't set out to do 30 million-EDO but once the math was in place it just worked. Getting 0<=n<=1 EDOs working were actually trickier (due to the way data is handled). The Xen Wiki lists 6,796,263-EDO as the largest one it has an article for (even though there is no actual article there) so at least I wanted to make sure I supported that many equal divisions. Of course Csound can handle even bigger numbers, something like 11 quadrillion-EDO. > Now I think about it, that will just be a particular scale of 15EDO, still good fun to listen to though! Definitely. I like to do something like use a blues scale with a weird tuning like 13.1-EDO (that way there are no 2:1 octaves). The software figures out which intervals in the tuning are closest to the ideal versions and uses them for things like scales (which I think results in a very flat minor third and noticeably sharped perfect fifth). On Tue, Dec 13, 2016 at 5:50 PM, Peter Burgess |