New Syntax: c+ (sharp), g- (flat), n0+ (next note)
c d e f g a b, numbered notes for custom tunings n0 n1 n2..., and absolute cents 0c 700c -50.5c. Rests are r.[c e g], [n0 n4 n7], [0c 400c 700c].L4 (quarter note). Override per-note: c8 (8th note). Add . for dotted notes (c4.).V12 (0-15 range).K120 is default. K60 doubles duration, K240 halves it. Also works with ratios: K*3/2.# to comment out the rest of a line.o4. Shift up/down with > and <. This works inside chords too: [c > c]. The jump size depends on the active tuning (1200c for default, or the last interval for custom tunings).+ for sharp, - for flat. E.g., c+, gb.c[+22.5], g[-10]. Supports addition: c[200+200].c*3/2 or d/2. Can be chained: c*3/2*3/2.T0=[0, 200, 386, 702, 900] (values are cents). Activate with U0. Revert to 12-TET with U-1.X+10 (cents), X=702 (cents), X*3/2 (ratio).S3#386 sets the 3rd degree to 386c. Supports #=+-*/.~ to glide pitch and volume. E.g., v4 c8 ~ v15 e8.I#={...} and activate it with @#.
I0={"oscillator":{"type":"sine"},"envelope":{...}}I1={"type":"fm", "harmonicity":1.5, ...}."envelope" for the carrier (volume) and "modulationEnvelope" for the modulator (timbre).c<{"volume":-20}> or [ceg]<{"envelope":{"attack":0.5}}>.M#={...} and apply to a note with c{M#}.
M0={"type":"pitch","frequency":6,"min":-15,"max":15}M1={"type":"volume","curve":"linear","start":1,"end":0}