linetiny (not so, since v0.8) command-line midi sequencer and language for live coding music

Launch line

line v0.8.1 Manual

Every command can be combined in one single line

"_" underscore char adjacent after any command

Commands Reference

Commands by number of arguments


Launch line

If line's folder in your Desktop

<<< line is now running >>>

Now run your favorite synth, sampler, DAW, or other MIDI receiver!


line v0.8 Manual

With line running, type:

Send a MIDI message:

4 1/4 midi notes

45 46 47 48 or a3 as3 b3 c4

1/4 1/8 1/8 1/4 1/4 notes

45 .34 35. 48 49 or a3 .as2 b2. c4 cs4

'-' for a rest note

36 .37 38. 41 .- 46.

C Major chord + C Major arpeggio. All 1/4

(c3 e3 g3) g5 e6 c2

d note with 0.5 of amplitude

d3~.5

C Minor chord with 0.7 of amplitude

(c4 eb4 g4)~.7

Note: amplitude is 1.0, by default

More on chords:v0.8.1

For major, minor, half-dimished, diminished chords, add 7th and 9th, line has chord cipher shortcuts.

D Minor minor 7th chord

(dminm7)

B Half-Diminished

(bhalfdim)

B Dim

(bdim)

G Dominant

(gmajm7) (g4majm7)

C# Major add 9

(cs2majM9)

Create a C major phrase with 8 notesv0.8.1

seq(8) major // resulting phrase: c d e f g a b MIDI equivalent: 0 2 4 5 7 9 11 0

Create a D scale phrase with 8 notesv0.8.1

seq(8) major raise(2) soct(4) // resulting phrase: d4 e4 f#4 g4 a4 b4 c#4 d4 MIDI equivalent: 50 52 54 55 57 59 61 50

Create a sequence of 16 notes, 2 octaves of C Major scalev0.8.1

seq(16) major(c4)

seq(16) major soct(4) // same as above

Create a 4 notes chord with the first 4 notes of D locrian scalev0.8.1

(_ _ _ _) locrian(d4)

Set a MIDI channel:

channel 2

sch(2)

Set bpm:

120 bpm

sbpm(120)

Set a range of values (MIDI range is default):

range [0 -> 1000]

range(0 1000)

minimum is 100

mi100

maximum is 1000

ma1000

Set overall relative amplitude:

50% of previous overall amplitude

am(50)

Concatenate phrase n times:

concat phrase 4x

mult(4)

Set phrase duration n times:

Increase phrase duration 8x

slow(8)

Mute and unmute:

m and um

Reverse:

r

Scramble:

scrambles notes within each rhythmic part and rhythmic structure

s

Extra scramble:

scrambles notes across the phrases and rhythmic structure

x

Amplitude Scramble and Extra Scramble:

sa and xa

Save phrase to a queue:

place it on top of the queue; position 0

sp

replace phrase in position 3

sp(3)

Load phrase:

load postion 0 phrase; it will play next

lp(0)

List saved phrases

l

Save queued phrases to .line (= txt) file

Will assume prompt name as file name

sf

Save file with mysynth.line name

sf(mysynth)

Note: Will also save line instance parameters (prompt, channel, notes/cc, range of values)

Load .line file to line

Load sampler.line

lf(sampler)

Note: Will apply to line instance saved parameters

Switch between notes and cc modes:

notes mode

n

cc mode on channel 2

scc(2)

Relabel prompt:

from default line> to _my_synth>, type:

lb(my_synth)

Exit:

q or quit

Display commands standard menu/extended menu:

ls or le


Every command can be combined in one single line

Plays 4 different octaves of c, 4 of each, total 16 notes, all randomly positioned. mult and s will run once.

c4 c5 c6 c7 mult(4) s


"_" underscore char adjacent after any command

The same previous combo but randomly positioned every new cycle/bar, forever

c4 c5 c6 c7 mult(4) s_

The same previous combo but randomly positioned next 2 cycles/bars

c4 c5 c6 c7 mult(4) s_2


Commands Reference

with 0 arguments

l - list all phrases in stack

lbk - list all phrases in stackv0.8

le - commands extended list

ls - commands standard list

n - play mode

play - play modev0.8

q - quit linereplace

quit - quit linereplace

print - current phrase pretty printv0.8

push - push current phrase to stackv0.8

pushed - list all phrases in stackv0.8

m - mute

um - unmute

ga - random gains to all values in phrase

r - reverse current values' order

rev - reverse current values' orderv0.8

rgain - generate random gains to all values in phrasev0.8

roct - replace every value/note with with a new one in a random different (or not) octavev0.8

rvalue - generate random values between 0 and 127 for every placeholder in phrasev0.8

s - random reordering current values within each rhythmic part and rhythmic structure

sa - random reordering current gains within each rhythmic part and rhythmic structure

scramble - random reordering current values within each rhythmic part and rhythmic structurev0.8

save - save .line file with prompt namev0.8

sf - save .line file with prompt name

sp - push current phrase to stack

wbpm - what BPMreplace

wcc - what CCreplace

wch - what channelreplace

wrange - what rangereplace

wslow - what slowreplace

x - random current values across the phrases and rhythmic structure

xg - random current gains valuesv0.8

xgain - random current gains valuesv0.8

xs - random current phrase's rhythmic structures

schromatic - fills out a phrase with a chromatic sequence starting in cv0.8.1

whole - c whole scale sequencev0.8.1

major - c major scale sequencev0.8.1

minor - c minor scalev0.8.1

harmonicminor - c harmonic minor scalev0.8.1

ionianv0.8.1

mdorianv0.8.1

phrygianv0.8.1

lydianv0.8.1

mixolydianv0.8.1

maeolianv0.8.1

locrianv0.8.1

with 1 argument

am(n) - same as relamp

relamp(n) - increases every amplitude in phrase by n%replace

raise(n) - adds n to all values in current phrase within range

rotl(n) - rotates all values left by nv0.8

rotr(n) - rotates all values right by nv0.8

rl(n) - same as rotl

rr(n) - same as rotr

sgain(n) - sets all values to gain n. 0.0 - 1.0 rangereplace

mult(n) - concatenates current phrase n timesreplace

prog(n) - creates sequence of values where next value is (current + n)v0.8

seq(n) - creates a sequence of n (value:64, amp:127) pairs

slice(n) - creates sequence of n valuesv0.8

soct(n) - set octave n to every valuev0.8

label(s) rename prompt with s namev0.8

lb(s) - same as label

lf(s) - open file with s name

open(s) - same as lfv0.8

save(s) - save file with s namev0.8

sf(s) - same as save

with 2 arguments

pick(v1 v2) - pick randomly v1 or v2v0.8

range(min max) - change the default MIDI range to [min-max]replace

roct(min max) - random octave values between min and maxv0.8

rgain(min max) - random gain values between min and max. Decimal gain values between 0.0 and 1.0v0.8

rvalue(min max) - random MIDI values between min and maxv0.8

with 3 arguments

pick(v1 v2 v3) - pick randomly v1, v2 or v3v0.8

prog(min max incr) - creates sequence of values where next value is (current + n) within [min - max] scopev0.8

slice(min max n) - creates sequence of n values within [min - max] scopev0.8

with 7 arguments

pick(v1 v2 v3 v4 v5 v6 v7) - pick randomly from v1 to v7v0.8



Commands by number of arguments
0 args l lbk le ls n play q quit print push pushed m um ga r rev rgain roct rvalue
s sa scramble save sf sp wbpm wcc wch wrange wslow x xg xgain xs schromatic whole major minor
harmonicminor ionian mdorian phrygian lydian mixolydian maeolian locrian
1 arg am relampk raise rotl rotr rl rr sgain mult prog seq slice soct label lb lf open save sf
schromatic whole major minor harmonicminor ionian mdorian phrygian lydian mixolydian maeolian locrian
2 args pick range roct rgain rvalue
3 args pick prog slice
7 args pick