I'm in the process of programming an algorithmic composer that will generate rhythms as midi signals.

A random number generator feeds into each patch and some sort of probability determins weather or not that number triggers a note or not.

I would like to give these probabilities some sort of mathematical significance rather than just random values.

Something to do with the golden ration perhaps or the fibbonachi sequence? i haven't studied maths for years so my memory is a bit rusty and i'm having trouble figuring out which way to go with this particular aspect of my project...

i know this isn't really the place to ask but i wasn't sure where else to look... so anyone with any ideas or who could direct me to some starting points it would be very much appreciated.

BTW, 2 of the people listed in the "thanks" section are avid SuperCollider users (Nick Collins and Thor Magnusson), both of whom I had the pleasure to meet at the sc symposium in Birmingham this year. Nice chaps.

I'm also doing algorithmic rhythm programming in sc, will share some thoughts later. Right now I've a small project to try to finish today, so not much time for chitchat...

I'm not so much into litteral algorithmic rithem creation but lately I've been quite deeply into using algorthems to modify hand-programed rithems (X0X style) based on live input (think breakdowns/ fill-in, etc). this is in ChucK.

Anyway, no time for me either tonight (I have to spin some records) so let's share notes later!_________________Kassen

I'm in the process of programming an algorithmic composer that will generate rhythms as midi signals.

A random number generator feeds into each patch and some sort of probability determins weather or not that number triggers a note or not.

I would like to give these probabilities some sort of mathematical significance rather than just random values.

I base a lot of my songs on random numbers, or 'filtered' random numbers as I like to say. There's a chance that if you based your input sources on something more structured it might create something interesting, but I've found that just plain old random numbers and some range tweaking (min/max values, trigger frequencies, etc) give really decent results.

I find that random numbers give a good overall 'average' effect, rather than always totally rising like the fibbonacci sequence (in that case you'd have to do some modifications to the input values, thus losing the fibbonacci sequence anyways).

Don't get stuck in the idea of using Pi (&pi;) though; it may have a whole lot of mathematical significance, but it's just another random number generator in the end...

I'd say stick with random numbers and tweak them; randomness contains the most information out of any transmission and filtering it allows you to find the best part for your purposes, whether you know it's there at the start or not . It's not easy sometimes, but like anything, it gets easier with practice, and sometimes, I hear, it can almost be a substitute for creativity...

funny you should say all that, but that's exactly what i've been doing anyway. I decided to get my head round just building the thing before i worried about stuff like that. No time to fully explain now but will be backs soon to explain and post the patch

There are some interesting 'candle flicker' circuits that generate nonrepeating random signals; IE a 2mhz oscillator being sampled by a ~100hz oscillator through a flip-flop. I breadboard these to control vactrols to provide 'random' variation, and the samplng oscillator can be clocked to give discrete pulses or higher frequency noise. So far I've used 3 stages of this circuit in a 3-color LED lamp, which drives my LDR controlled instruments in cool ways. Another source of randomness can be feedback, where the output of the instrument feeds back into it in complex ways. I played a bit with that on this LDR controlled 556 (APC) +741 wsg VCF thingy, breaking the CD4040 and LFO driven LED feedback up through LDR gated oscillators:

Is this not an elegant way to describe what is happening? It can be expanded for more states, perhaps a state for a woodblock, or a rest.

Math stuff:
1. Each column must add up to 1. That means there is a 100% chance that there is a "next time".

2. "Whats the probability that 100 beats from now, it will play a snare?!" Well, just take the matrix to the 100th power. Then add up the column called snare. That's the answer! This assumes a 50/50 chance of starting on snare/kick.Last edited by williamsharkey on Tue Dec 18, 2007 9:43 am; edited 1 time in total

I would like to give these probabilities some sort of mathematical significance rather than just random values.

I think that you should use probabilities that make interesting/compelling music. I think that the beauty of mathematical ratios would not be expressed when it is translated to trigger probabilities. Have you ever listened to an image mapped to a frequency-time plot? It does not matter if the image is of car or a ladybug, basically it sounds the same because the native meaning is lost in that translation.

The markov chains could also be note lengths, or multiple things triggered by an event...after a whole note bass drum (or bass on 1 beat), you can have probabilities that intertwine the probabilities of other instruments. 50% chance of snare, 75% chance of hi-hat 16th notes, etc. Or have 2 markov chains triggering the same sound, so you get the complexity of 2 patterns mingling (and since the sound triggers, one pattern effects the other!).

I'm exploring the use of chaos generators. Chaos in the correct mathematical sense, not the common sense of "random". Chaotic signals are deterministic but irregular. The amount of irreguarity depends on the mathematical system and its parameters. I have some simple demos of results from some hardware I have made over the past few years on my website:

I'm in the process of programming an algorithmic composer that will generate rhythms as midi signals.

A random number generator feeds into each patch and some sort of probability determins weather or not that number triggers a note or not.

I would like to give these probabilities some sort of mathematical significance rather than just random values.

Consider trying my Boolean Sequencer if your implementation supports logic input. You make a binary counter, then create logic expressions off the counter that say when the drums beat. Can sound really good without much logic. I say "my" because I rediscovered it, but it really originates back to the early days of synthesizers, I think. If you're interested I can explain more and there are posts about it. Good luck.

Oh, wait, you said MIDI, not transistors, sorry - then you could use ChucK to implement the sequencer, and I already have several files for that done, just add midi commands i guess.

Maybe have a chain of a few arpeggiators that do switching in various ways such as a tempo change every-other time an arp plays. Same for delayed notes, overlaping, rests, muting, and number of notes each arp plays in turn, and so on...

There's nothing random about this, but its cool to get accurate results from playing with the controls.

BTW this has already been done, but perhaps someone can do it better -
but then, since it was me who already did it, I doubt it

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum

Please support our site. If you click through and buy from our affiliate partners, we earn a small commission.