View  Edit  Attributes  History  Attach  Print  Search

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)
|---------|