From: Giles Bowkett Date: 2006-05-13T04:58:09+09:00 Subject: Re: Tab Player (#79) On 5/12/06, Ross Bamford wrote: > On Sat, 2006-05-13 at 01:52 +0900, Giles Bowkett wrote: > > On 5/12/06, Shane Emmons wrote: > > > This is really cool. Now what would be even cooler is if someone could > > > modify their Markov Chain program to read tabs and generate new songs to > > > be played. > > > > I've actually done that already, or at least, something reasonably > > similar. I had a class on serial music and implemented it in Ruby > > generating MIDI files for Reason. Then I expanded the original code > > into an only slightly bigger script I think of as the texturizer, > > which generates ambient soundscapes via midilib, a Fibonacci sequence, > > a Feigenbaum function, and ReDrum (Reason's internal sample-based drum > > machine). > > Very cool! I've just been having a browse with my ears, and I have to > say I'm pretty impressed with some of the sounds you've generated with > this thing. I'm definitely going to be studying your code - although > I've always played, I've only recently gotten interested in > computer-aided composition so this stuff is very new to me. muchas gracias! although I have to tell you, the sounds are only partly programmatically generated -- they come from synths in Propellerhead Reason. (a very large proportion of the parameters defining the sounds which the synths played were automated in real-time programmatically, however.) I generate the MIDI file directly with Ruby and midilib and then pop into Reason. and I'm not above adding a little distortion and reverb to sweeten the overall sound. also, the stuff that's online, I'm very glad you like it, but it probably is fairly easy to recognize as computer-generated. the new thing I'm working on, you can't actually tell the computer-generated texture is computer-generated. it sounds pretty much like your standard cinematic texture in dubby dance music. take out the drums (non-programmatic) and it sounds like seven minutes of very pretty ambient music. (I think the computer-generated groove-maker will (when complete) display similar versimillitude to "human" music, but don't quote me on that.) this new stuff works by triggering samples at times determined by a function almost identical to the function in the code on my site. (I'll put an mp3 and a code sample online soonish.) the Markov chain stuff is very interesting to me because it would be a huge quantum leap for my stuff if I could generate melodies programmatically. Markov chains could be a good method. the other idea I had for doing this, actually, was A*, which is the pathfinding algorithm favored in video games -- the idea being that you define a melody as a path from note A to note B, and create arbitrary "obstacles" in that path to encourage more or less complicated melodies. haven't really got that part started yet but it is a neat idea. -- Giles Bowkett http://www.gilesgoatboy.org