KoDream Improv - usage guidelines anywhere?
KoDream Improv - usage guidelines anywhere?
Hi, buzzers, and merry xml-smas!
I'm trying to wrap my head around Kodream Improv and its possibilities.
Is there anywhere a reasonable explanation on the web on how the grammar works, and how to set it up for my own needs?
I'm trying to wrap my head around Kodream Improv and its possibilities.
Is there anywhere a reasonable explanation on the web on how the grammar works, and how to set it up for my own needs?
Re: KoDream Improv - usage guidelines anywhere?
from the html included in version 1.1The Idea:
Formal languges can be used to make music. A formal language is a language which every sentence can be generated from a set of rules. Each of these lines was a rule, the symbol "->" is pronounced "goes to", and the vertical bar is "or",
S -> verse bridge break chorus break verse
verse -> A B C B A | A B C B A
bridge -> thump thump thump thump
break -> dri ri ri ri ri ri ri ri ri ri ri ri lllll
ri -> ro | ti
chorus -> la la hey
Given the rules above a possible sentence is:
A B C B A thump thump thump thump dri ti ro ti ti ro ro ti ro ti ro ro ro lllll la la hey dri ti ro ro ro ro ti ti ti ti ro ro ro lllll A B C A B
With Improv each of the above symbols would correspond to a number that will be used to control a machine's parameter, and the sentences are generated randomly. This is a type of grammar called an acyclic definite clause grammar, so no cycles(such as S->S you have been warned).
Install:
To install place the .dll in your buzz generators directory. Place the sample grammar in your buzz directory.
Using:
To use the sample grammar. Open buzz, create a new generator, such as M3 or voidlead, then connect the new machine to master. Create an improv machine, in the improv's pattern editor create a pattern with a trigger value of 1 somewhere in it, play the pattern in the sequencer. Now in the machine view, right click on improv, then select Assign Machine Edit Grammar.
This should bring up a pop up window. In the pop up window to load a grammar file from the buzz directory, type its name in the "file:" edit box and click load. To save it to the file name in that edit box click save. Now from the machine combo box select the machine which you wish to generate a melody/rhythm for. Then click assign. Click OK, then play the melody.
Creating your own rules, first select a rule in the rule combo box. The rule "S" will always be the first rule used to produce a sentence. Now type a string of symbols in the production edit box, then click add production. The production will appear in the possible productions for the selected rule. If the symbols have not been defined they will appear in semantics list with an integer next to them. If the symbols have already been defined as rules, they will not apear on the right.
Any unseen symbol is intially assumed to be max int which corresponds to a Note Off or a rest if you will. To change this select the note in the semantics list, and in the note box underneath, type an integer value. Then click update note.
Deleteing a production on the right will delete itself, and any symbols which are not referenced by another rule in the tree of possible sentences.
http://www.buzzmachines.com/machineinfo.php?id=829
Re: KoDream Improv - usage guidelines anywhere?
Yea, I read that, and maybe I'm radically dumb, but it confuses the sh*t out of me.
This, for instance, is mindboggling at best:
I thought maybe someone in the know had managed to write a more didactic explanation. For the radically dumb, such as myself.
This, for instance, is mindboggling at best:
What 'unseen symbol'?Any unseen symbol is intially assumed to be max int which corresponds to a Note Off or a rest if you will.
I thought maybe someone in the know had managed to write a more didactic explanation. For the radically dumb, such as myself.
Re: KoDream Improv - usage guidelines anywhere?
i did not use that gen for a while now, but i think it means that any symbol not used in the semantics list works as a note off or rest.
Assumed your song is S, which has patterns A, B and C and you define A as eefefefe, where e is for example C-4, the f works as a note off if it's not defined otherwise.
I have to try it again, but no time right now.
Assumed your song is S, which has patterns A, B and C and you define A as eefefefe, where e is for example C-4, the f works as a note off if it's not defined otherwise.
I have to try it again, but no time right now.
Re: KoDream Improv - usage guidelines anywhere?
If you're struggling to get it to work, it's probably because it's broken. I managed to contact KoDream and he kindly put the code on SourceForge but it's in an unfinished state and needs either a bunch of Win32 API dialog stuff or a shiny new WPF GUI.
Re: KoDream Improv - usage guidelines anywhere?
aha! okay, that's much more understandable! thanks, i seem to get it now.thOke wrote:Assumed your song is S, which has patterns A, B and C and you define A as eefefefe, where e is for example C-4, the f works as a note off if it's not defined otherwise.
next thing I don't get: what does 'Semantics' box define?
This is one of thoke's examples. What are those values in the Semantics box? Some tunings, or what? And what is zero in this particular example?
hm, I dunno, it seems to work fine by me, with latest Buzz build. Maybe I can't detect the flaw because I'm still learning the way it reacts to my grammars, but thanks for the alert.IXix wrote:If you're struggling to get it to work, it's probably because it's broken.
Re: KoDream Improv - usage guidelines anywhere?
Still working fine here, too.nikto wrote:hm, I dunno, it seems to work fine by me, with latest Buzz build. Maybe I can't detect the flaw because I'm still learning the way it reacts to my grammars, but thanks for the alert.IXix wrote:If you're struggling to get it to work, it's probably because it's broken.
Semantics is where you get down to the nitty-gritty of assigning actual notes to variable names of your choice.
next thing I don't get: what does 'Semantics' box define?
This is one of thoke's examples. What are those values in the Semantics box? Some tunings, or what? And what is zero in this particular example?
0:65535 means that a "0" encountered in parsing a production will cause a note off to be sent.
Eb:52 means that an "Eb" will cause note value 52 to be sent (Buzz 52 rather than MIDI 52, iirc)
etc.
Always excited to see people checking out KoDream Improv - an old favorite that had a huge influence on my thinking when I was creating this Java program.
Re: KoDream Improv - usage guidelines anywhere?
Ok, is there a some kind of reference table to find these values? How do I know that there is a 'buzz value 52' and how do I know that exactly 65535 is a note off?
Re: KoDream Improv - usage guidelines anywhere?
I stand happily corrected. One less thing on the todo list.snowglobe wrote:Still working fine here, too.nikto wrote:hm, I dunno, it seems to work fine by me, with latest Buzz build. Maybe I can't detect the flaw because I'm still learning the way it reacts to my grammars, but thanks for the alert.IXix wrote:If you're struggling to get it to work, it's probably because it's broken.
Re: KoDream Improv - usage guidelines anywhere?
Guys, seriously, is there reference info for the Semantics values?
I don't need dodgy tunings tinga had used, just stadard tuning will do. How do I define standard octave? Does anyone have grammar files for that?
I don't need dodgy tunings tinga had used, just stadard tuning will do. How do I define standard octave? Does anyone have grammar files for that?
Re: KoDream Improv - usage guidelines anywhere?
note value = note + (octave * 16)nikto wrote:Guys, seriously, is there reference info for the Semantics values?
I don't need dodgy tunings tinga had used, just stadard tuning will do. How do I define standard octave? Does anyone have grammar files for that?
C is 1, C# is 2 etc.
So C-0 is 1, C-1 is 17, C-2 is 33 and so on.
Note-off is actually 255 but Improv probably clamps values above that so I expect anything >= 255 is a note-off in Improv
Re: KoDream Improv - usage guidelines anywhere?
Ok, here goes (puts on robe and wizard hat...):
Buzz notes are 2 digit hex numbers where 1st digit is octave and the 2nd is note. But Kodream Improv displays them as decimal.
So here are the lowest notes, from bottom C up:
So with that you can (hopefully) see that C-4 is 0x41 or 65.
...and there you have it.
edit: ninja'd by Ix
double edit: PS, you can't do "dodgy tunings" in Improv, the machine that recieves the notes needs to support microtonality (or be a tracker with samples in an alternate tuning.)
Buzz notes are 2 digit hex numbers where 1st digit is octave and the 2nd is note. But Kodream Improv displays them as decimal.
So here are the lowest notes, from bottom C up:
The red notes shouldn't be valid, but I guess he's repeated them here to avoid crashing machines that would get freaked out by invalid notes.0x01 = 1 = c
0x02 = 2 = c#
0x03 = 3 = d
0x04 = 4 = d#
0x05 = 5 = e
0x06 = 6 = f
0x07 = 7 = f#
0x08 = 8 = g
0x09 = 9 = g#
0x0a = 10 = a
0x0b = 11 = a#
0x0c = 12 = b
0x0d = 13 = c
0x0e = 14 = c#
0x0f = 15 = d
0x10 = 16 = d#
0x11 = 17 = c
0x12 = 18 = c#
0x13 = 19 = d
0x14 = 20 = d#
So with that you can (hopefully) see that C-4 is 0x41 or 65.
...and there you have it.
edit: ninja'd by Ix
double edit: PS, you can't do "dodgy tunings" in Improv, the machine that recieves the notes needs to support microtonality (or be a tracker with samples in an alternate tuning.)
Re: KoDream Improv - usage guidelines anywhere?
Ok, but this last table is different from what IXix wrote:
Do they match?IXix wrote: note value = note + (octave * 16)
Re: KoDream Improv - usage guidelines anywhere?
Kodream improv works, but it can't control another peer machine, in fact it does but with weird methods.
I've a table for the notes somewhere, but where (and also many bmx with a large notes assignements , it's better to use IX split, or polac loader, thereby you make note's assignement one time)
This machine is a fantastic idea, but a little bit disabled in new buzz , the syntax you can use is totaly open, the copy paste is very effective with KoDream, for example indian rhythms are also a syllabic system (many solo on the web in ascii notation), and songs are the name of the notes, many musics use a syllabic systems, i tested it and it's so easy to make music like that, Talvin Singh should use KoDream for his great music.
I've a table for the notes somewhere, but where (and also many bmx with a large notes assignements , it's better to use IX split, or polac loader, thereby you make note's assignement one time)
This machine is a fantastic idea, but a little bit disabled in new buzz , the syntax you can use is totaly open, the copy paste is very effective with KoDream, for example indian rhythms are also a syllabic system (many solo on the web in ascii notation), and songs are the name of the notes, many musics use a syllabic systems, i tested it and it's so easy to make music like that, Talvin Singh should use KoDream for his great music.
Re: KoDream Improv - usage guidelines anywhere?
Yes.nikto wrote:Ok, but this last table is different from what IXix wrote:
Do they match?
C = 1, C# = 2 [...etc]IXix wrote: note value = note + (octave * 16)
Therefore C-4 = 1 +(4*16) = 65
C-0 = 1 + (0*16) = 1
Re: KoDream Improv - usage guidelines anywhere?
Ah yes, that's why I thought it was broken. Back on the todo list thentinga wrote:Kodream improv works, but it can't control another peer machine, in fact it does but with weird methods
Re: KoDream Improv - usage guidelines anywhere?
Just for the record, what Buzz calls a C4, MIDI says is C3, etc.ags wrote:Yes.nikto wrote:Ok, but this last table is different from what IXix wrote:
Do they match?
C = 1, C# = 2 [...etc]IXix wrote: note value = note + (octave * 16)
Therefore C-4 = 1 +(4*16) = 65
C-0 = 1 + (0*16) = 1
I made a chart a few years ago when I was heavily into KoDream Improv
Re: KoDream Improv - usage guidelines anywhere?
snowglobe, thanks a lot for sharing the chart!