10/06/26 21:05
Instruction

Live Music Coder M^2  :  Music Composer by Mathematics

This application calculates note number and play its sound in real-time operated by using command line style interface. It looks like Unix but also has new feature of our one-line-coding rule and reversed scroll.

Try to play music by a sequence of numbers and formula instead of a score!

We make an effort at simple and real-time operation. You can do all operation of the parameter change and parameter etc. while playing music in real-time.

[function]
define parameters
start/stop sequencer
view data list
save/load/delete parameters
view current status
show help

[calculator]
1)  user parameter
r1,r2 : array of note number
 - note : 4 octave from 1 to 48,  except for them are silence. 1tick = sixteen note.
 - sound: sine wave which decreases envelope , no volume controller.
 - tempo : 40 - 160 BPM
a0, b0, c0,  d0 : 4 output sound channels. calculate each formula.

 - simple example
define parameters: r1=1 3 5 6, r2=13 15 17, a0=r1, b0=r2    
-> 
         output A track : C1 D1 E1 F1 C1 D1 E1 F1 C1 ……. repeated
         output B track : C2 D2 E2 C2 D2 E2 C2 D2 E2 …….repeated
             as sixteen note

2) operator

 +, -, *, / , % ( add, subtract,multiply,divide,residue)

3) controller
 ?,:, !, <, =, >,| (if, else, not, smaller, equal, larger, separator)

4) embedded parameter
q : tick. increment this per sixteen note.
s : slider value (0~99)
x : random value (0~range) range:0~99
v1,v2,v3,v4 : store the value before separator(|) and branch(?,:), then reference in the expression.
 (1|2|3|4| -> v1=1, v2=2, v3=3, v4=4)
a1~8, b1~8, c1~8, d1~8 : history of a0, b0, c0, d0 (a0->a1->a2->a3->a4->a5->a6->a7->a8)

5) formula samples
** First of all define the array (sequence) "r1/r2" of note number and then calculate them in the sound track (ax, bx, cx, dx).

r1=1 3 5 6 8 10
a0=r1+1  ->   2 4 6 7 9 11 ….
a0=r1?>5+12  ->  1 3 5 18 20 22  ….
a0=r1?>5+12:12|v3   -> 12 12 12 18 20 22 ….
a0=r1?>5|24:12|v4  ->  12 12 12 24 24 24 …..

r2=1 0 1 1 2 0 2 2  (0: rest)
b0=r2            -> 1 0 1 1 2 0 2 2 1 0 1 1 2 0 2 2 …


->Additional Information