|
SONAR SONAR is a cellular automata based programming language idea I've had. Cells are arranged in a circle pattern. You can program "hands" that sweep around the circle reading each cell. You can have more than one hand at a time, and the hands can move in reverse... The cells themselves contain code indicating notes, instruments, effects and code designed to instruct it where to read/write next. You may have a cell that can read from 3 cells "below" (i.e. closer to the center) and depending on the contents of that cell, modify the current working cell. This can allow for really complex modifiable music. I don't have any actual concrete thing, just this concept. Want to eventually flesh it out more. 4 quadrants Upper Right = Red Lower Right = Yellow Lower Left = Green Upper Left = Blue Cells can be stacked arbitrarily high, but default is 4 (i.e. 5 concentric circles (inner circle indicates "master settings" (i.e. bpm, starting number of hands, etc...)) then 4 outward circles. Each quadrant has 3 radial lines to divide the quad into 4 sections. So each quad has 16 cells for a total of 64 cells in the base pattern. Each cell is composed of anywhere from zero to 3 or 4 "layers" A layer is composed of 3 "blocks", or a function, if you will, that can contain input of up to 4 various parameters, and output up to 4 different values. The block is tripartate: |---------| | x x x x | <- input block (4 slots) |---------| | /\/\/\/ | <- data/function (layer types: sample, instrument or function/effect)\\ |---------| | x x x x | <- output block (4 slots) |---------| |