INSTRUCTIONS

If you haven't seen the demo video, i recommend watching it to get familiar with the concept of this prototype.

Here's a reference of the controls:

arrow keys move cursor
1 zooms in
2 zooms out
ctrl toggles draw mode
y sets a Receiver at the beginning of the current line
a sets a Receiver at current cursor position
q sets an Emitter at current cursor position
l adds a Distortion Lens to the current Line
b shows/hides the grid
c shows/hides channel overview and distortion controls
+/- cycles channels
w toggles CC solo mode
e toggles solo-ed CC number
t triggers the first line you have drawn to run

Now if you start the software, first thing you see is the midi setup. Choose the appropriate midi output device here, the one you set up before, with the adorable name.
The greyed-out devices are midi input, nothing to worry about them.

The main software then consists of several elements which you can create and interact with:

the Grid
the grid is the drawing surface. In this prototype 40 by 20 points in size.

Cursor
your view always centers on the cursor. Move the cursor with the arrow keys. It jumps between points on the grid. You use it to draw lines and to place Emitters and Receivers on a line.

Line
you create lines by entering draw mode (hit ctrl once), then moving your cursor. If you hit ctrl again, you leave draw mode and the line is done. Each line has a beginning (where you started drawing) and an end (where you finish drawing). Time in a line flows from beginning to end. The length and hence the time of a line is measured in points it spans on the grid, not the visual representation on the screen.

Receiver
a Receiver is an object you place on your line. Whenever a Receiver gets motivated by an Emitter, it starts sending a signal from its position on the line towards the end of the line.
To place a Receiver on the current cursor position, press a.

Emitter
an Emitter is another object you place on a line. When a signal passes an Emitter, that Emitter sends a midi note to your virtual midi device, and also acts on any Receivers (no matter which line they belong to) that are at the same location as the Emitter.

So what you do is: draw a line, press [t] to trigger it, add Receivers and Emitters, draw the next line, connect one or some of its Receivers to the first line's Emitter, make a loop at some point and so on.

Flaws:
In the current prototype you cannot delete anything you've done. Also, you can only trigger the first line you have drawn manually by pressing [t]. All other lines have to be triggered through other lines' Emitters. If you have a loop, and you press [t] more than once, you have more than one 'playhead' moving along the line (which might not be a bad thing necessarily). But it's pretty easy to overcharge everything by feeding some line's output back into itself or a line that came before it. If this is not what you want, right now there's nothing you can do about it other than quit the program and start over, sorry.

[to be continued...]