
DIN Is Noise 
Copyright (c) 2006-2017 Jagannathan Sampath <jag@dinisnoise.org>.

------------
| Mondrian |
------------

Inspired by the work of Dutch artist Piet Mondrian.

Balls bounce in boxes.
Pass thru slits.
Sound on impact.
Pitch from impact position.
Volume from Menu > Parameters > Voices
	More voices means less volume per voice and vice-versa.

Horizontal goes from Key note to octave above.
Vertical goes Key note to octave above.

Set Key note and choose notes of the scale from Settings screen.

Boxes:

Create boxes within boxes.

r - split box under cursor into two new vertical boxes
		or Menu > Tools > Split box vertically

SHIFT + r - split box under cursor into vertical boxes placed 
						on the notes of the scale

CTRL + r -	split box under cursor into a number of vertical 
						boxes set via the command line with command:

							set-var mondrian.num_boxes <value>

f - split box under cursor into two new horizontal boxes
		or Menu > Tools > Split box horizontally

SHIFT + f - split box under cursor into horizontal boxes placed 
						on the notes of the scale

CTRL + f  - split box under cursor into a number of horizontal boxes 
						set via the command line with the command:
							
							set-var mondrian.num_boxes <value>

v - delete box under cursor or Menu > Delete box

SHIFT + v - delete all boxes in Mondrian

t - make a grid of boxes on all the notes of the scale

SHIFT + t - make a N x N grid of boxes. set N with command from
						the command line:

							set-var mondrian.num_boxes <value>

h - assign random color to box under cursor

Click on a box's edge and just move mouse to move the edge. 
Click again or ESC to stop.

Slits:

Slits let balls of a box pass thru its walls or ceilings into
other boxes.

	You can make or close slits or let wrecking and healing balls 
	[see below] make and close them automatically.

	/	-	Click on an edge of a box to slit. If a slit already exists, 
			it will close.
			
			Cannot slit if balls will escape the entire playing area.
			Cannot slit corners.

	NUM_PAD + - Increase default slit size
	NUM_PAD - - Decrease default slit size

	To adjust an existing slit, edit one of its two lips:
	Click once on a lip, just move mouse to move the lip and click 
	again to stop.

	Also,

	F9	- remove all slits on the current edge
	F10 - remove all slits in the current box
	F11 - remove all slits

Balls:

b - to launch bouncers or Menu > Tools > Add balls
SHIFT + b - to launch wreckers.
CTRL + b - to launch healers.

Click, drag and release to launch with an initial velocity

The shortcuts below affect selected balls, balls in box under cursor 
or if cursor is outside all boxes, all the balls in Mondrian. 

[ - decrease speed
] - increase speed

; - decrease attack time
' - increase attack time
SHIFT + ; - decrease attack time increment
SHIFT + ' - increase attack time increment

, - decrease decay time
. - increase decay time
SHIFT + , - decrease decay time increment
SHIFT + . - increase decay time increment

o - rotate direction anti-clockwise
p - rotate direction clockwise
SHIFT + o - decrease angle of rotation
SHIFT + p - increase angle of rotation
CTRL + o - toggle auto rotate direction anti-clockwise
CTRL + p - toggle auto rotate direction clockwise

j - flip direction of travel

SPACE - freeze or thaw  balls
SHIFT + SPACE - freeze balls
CTRL + SPACE - thaw balls

- - decrease trail length
= - increase trail length

Ball types:

	A wrecking ball slits walls and ceilings. Red in color.
	A healing ball closes slits.  Blue in color.

	F3	- turns selected balls into wrecking balls
				or wrecking balls into bouncing balls.
	
	F4	-	turns selected balls into healing balls
				or healing balls into bouncing balls.
	
	F5 -  turns selected balls into bouncing balls.

	F6 -  change all wrecking balls into healing balls
				and vice-versa.
	
	F7 -  select all wrecking balls.

	F8 - 	select all healing balls.

Ball selection:

Click once and just move mouse to draw a box to select 
some balls. Click again to stop.

Hold down SHIFT to add to existing selection
Hold down CTRL to toggle existing selection

i - invert current selection
k - select all balls in box under cursor
l - select all balls in all boxes
n - clear selected balls

Ball manipulation:

c - delete selected balls

m - move selected balls
			just move mouse to move balls, click or ESC or m to stop.

Miscellaneous:

1 - switch instrument or Menu > Instrument
2 - edit waveform 
3 - edit attack curve
4 - edit decay curve

z - shift instrument or selected balls an octave down
x - shift instrument or selected balls an octave up
			balls are gray if they trigger notes without modulation (default)
			balls are black if they trigger notes shifted down
			balls are white if they trigger notes shifted up

y - decrease number of voices
u - increase number of voices

Visual:

Mondrian draws a regular polygon when & where it triggers a note.

9 - decrease radius of note polygon
0 - increase radius of note polygon
SHIFT + 9 - decrease points in note polygon
SHIFT + 0 - increase points in note polygon

F2	-	Turn the UI ON or OFF
				Only draws triggered notes.

More fine tuning is possible by setting these variables from 
the command line:

set-var mondrian.fill_rects 0 ;# doesnt fill the boxes
set-var mondrian.label_notes 0 ;# doesnt label the notes
set-var mondrian.draw_notes 0 ;# doesnt draw triggered notes

use 1 in commands above to restore.

w, a, s, d - move viewpoint

q, e - zoom in and out

Recording:
	
	CTRL + ENTER - to start/stop sound recording
	or Click on the Record button at the bottom of the microtonal-keyboard

	LALT + ENTER - clear existing recording
	or choose Menu > File > Clear

	Menu > File > Save to save the recording as a .WAV file on the desktop.


Console:

TAB : enter/leave command mode
UP_ARROW / DOWN_ARROW: scroll up/down
LSHIFT + UP_ARROW / DOWN_ARROW: scroll up/down command history

In command mode, type help to reveal available commands. Or type
help command_name
to get help for a particular command.

PgUp, PgDn: page up, page down
BACKSPACE : delete all text in console
` : fold/unfold console

Notes:

Voices determines the maximum note volume. Increasing Voices lowers maximum 
note volume and vice-versa.
