/line

tiny command-line midi sequencer and language for live coding music

Primary LanguageC++MIT LicenseMIT

line line build macOS

A tiny command-line midi sequencer for live coding. (ableton link compatible version)

  • Sends MIDI messages to a chosen MIDI channel. Default is 1.

  • 1 instrument or 1 CC

To some videos live coding with it go here.(twitter)

7 instances of **line** running simultaneously. 1 synth. 6 cc.

7 instances of line running simultaneously. 1 for notes, 6 cc. (Using tmux to split macOS terminal into 7 terminals)


MacOS ready-to-run builds

Up-to-date Mac/Intel and Linux builds

There's a Mac/Intel build ready

  • Just unzip line_0.5.25_ablt_lnk_Mac_Intel_build.zip file
  • Go to the build folder, type ./line and press Enter

What you need to build line yourself

  • readline library (should be already on your system, if not, you have to install it)
  • jack library (only for Linux. It is not installed by default. If the computer has no audio/music production sofware succefully used then a jack installation is needed)
  • CMake

To clone this repo with rtmidi and link submodules included

git clone --recursive https://github.com/pd3v/line.git

Build and run line yourself

(CMake is necessary)

  • Go to line's folder

In command-line, type each of the following + Enter:

  1. ./build.sh

  2. cd build

  3. ./line

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

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 silent 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

Set a MIDI channel:

channel 2

ch2

Set bpm:

120 bpm

bpm120

Set a range of values (MIDI default):

minimum is 100

mi100

maximum is 1000

ma1000

Set overall relative amplitude:

50% of previous overall amplitude

am50

Concatenate phrase n times:

concat phrase 4x

*4

Set phrase duration n times:

Increase phrase duration 8x

/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

sp3

Load phrase:

load postion 0 phrase; it will play next

lp0 or :0

List saved phrases

l

Save queued phrases to .line (= txt) file

Will assume prompt text as file name

sf

Save file with mysynth.line name

sfmysynth

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

Load .line file to line

Load sampler.line

lfsampler

Note: Will apply to line instance saved parameters

Switch between notes and cc modes:

notes mode

n

cc mode on channel 2

cc2

Set cc sync:

In-sync or Out-sync

i or o

Relabel prompt:

from default line> to _my_synth>, type:

lbmy_synth

Exit:

ex

Display commands menu/extended menu:

ms or me

Set latency: (ableton link's compatible line version only)

subtract 10 ms

lt10