{"id":29253714,"url":"https://github.com/pd3v/line","last_synced_at":"2025-10-30T01:05:46.375Z","repository":{"id":40201380,"uuid":"201965356","full_name":"pd3v/line","owner":"pd3v","description":"tiny command-line midi sequencer and language for live coding music","archived":false,"fork":false,"pushed_at":"2024-09-11T12:35:16.000Z","size":11718,"stargazers_count":75,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"ableton_link_compatible","last_synced_at":"2024-09-11T19:09:56.370Z","etag":null,"topics":["audio","c-plusplus","cli","command-line-tool","live-coding","lua","midi","music","sequencer"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pd3v.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-12T16:11:56.000Z","updated_at":"2024-09-11T12:35:21.000Z","dependencies_parsed_at":"2024-03-12T13:52:47.063Z","dependency_job_id":"2d2cd5f8-df21-4cd9-80fa-1913e77d5dee","html_url":"https://github.com/pd3v/line","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/pd3v/line","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pd3v","download_url":"https://codeload.github.com/pd3v/line/tar.gz/refs/heads/ableton_link_compatible","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fline/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263432374,"owners_count":23465577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","c-plusplus","cli","command-line-tool","live-coding","lua","midi","music","sequencer"],"created_at":"2025-07-04T02:07:55.946Z","updated_at":"2025-10-30T01:05:46.366Z","avatar_url":"https://github.com/pd3v.png","language":"C++","readme":"# line [![line build macOS](https://github.com/pd3v/line/actions/workflows/cmake.yml/badge.svg)](https://github.com/pd3v/line/actions/workflows/cmake.yml)\u003c!--\u0026nbsp;[![Github All Releases](https://img.shields.io/github/downloads/pd3v/line/total.svg)]()\u003c/span\u003e--\u003e\n\u003cspan style =\"font-size:12pt;font-weight:bold\"\u003eA tiny command-line midi sequencer for live coding.\u003c/span\u003e \u003cspan style =\"font-size:10pt\"\u003e(**ableton link** compatible version)\u003c/span\u003e \u003cspan style =\"font-size:11pt\"\u003e\n\n+ Sends MIDI messages to a chosen MIDI channel. Default is 1.\n\n+ 1 instrument or 1 CC\n\nTo some videos live coding with it [go here.](https://x.com/search?q=%23linelivecoding\u0026src=hashtag_click\u0026f=live)\u003cspan style =\"font-size:8pt\"\u003e(on X)\u003c/span\u003e\n\n\u003cimg src=\"https://github.com/pd3v/line/blob/develop/line 0.4.3 (7 running).png\" alt=\"7 instances of **line** running simultaneously. 1 synth. 6 cc.\" style=\"width:60%;height:60%\"/\u003e\n\n7 instances of **line** running simultaneously. 1 for notes, 6 cc. (Using tmux to split macOS terminal into 7 terminals)\n\n---\n### MacOS ready-to-run builds\n\n#### Up-to-date Mac/Intel and Linux builds\n\n+ \u003ca href=\"https://pd3v.github.io/downloads\" target=\"_blank\"\u003eDownload them from https://pd3v.github.io/downloads\u003c/a\u003e\n+ Go to the **build** folder, type `./line` and press Enter\n\n\u003c!--#### There's a Mac/M1/M2 build ready\n\n+ Go to [Actions page](https://github.com/pd3v/line/actions) \u003e latest workflow run \u003e section *Artifacts*, download and unzip the file\n+ Go to the **build** folder, type `./line` and press Enter\n--\u003e\n\n#### There's a Mac/Intel build ready\n\n+ Just unzip **line_0.5.25_ablt_lnk_Mac_Intel_build.zip** file\n+ Go to the **build** folder, type `./line` and press Enter\n\n### What you need to build *line* yourself\n\n+ **readline** library (should be already on your system, if not, you have to install it)\n+ **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)\n+ **CMake**\n\n\u003c!-- ### Get *line* binaries --\u003e\n\n\u003c!-- [macos binaries](https://github.com/pd3v/line/actions/runs/1802392423) --\u003e\n\n### To clone this repo with *rtmidi* and *link* submodules included\n\n`git clone --recursive https://github.com/pd3v/line.git`\n\n#### Build and run *line* yourself\n\n(CMake is necessary)\n\n+ Go to *line*'s folder\n\nIn command-line, type each of the following + Enter:\n\n1. `./build.sh` \n\n2. `cd build`\n\n3. `./line`\n\n**Now run your favorite synth, sampler, DAW, or other MIDI receiver!**\n\n## Manual\n\nWith *line* running, type:\n\n\n**Send a MIDI message:**\n\n4 1/4 midi notes\n\n`45 46 47 48` or `a3 as3 b3 c4`\n\n1/4 1/8 1/8 1/4 1/4 notes\n\n`45 .34 35. 48 49` or `a3 .as2 b2. c4 cs4`\n\n'-' for a silent note\n\n`36 .37 38. 41 .- 46.` \n\nC Major chord + C Major arpeggio. All 1/4\n\n`(c3 e3 g3) g5 e6 c2`\n\nd note with 0.5 of amplitude\n\n`d3~.5`\n\nC Minor chord with 0.7 of amplitude\n\n`(c4 eb4 g4)~.7`\n\n*Note: amplitude is 1.0, by default*\n\n**Set a MIDI channel:**  \n\nchannel 2\n\n`ch2`\n\n**Set bpm:**  \n\n120 bpm\n\n`bpm120`\n\n**Set a range of values (MIDI default):**\n\nminimum is 100\n\n`mi100`\n\nmaximum is 1000\n\n`ma1000`\n\n**Set overall relative amplitude:**\n\n50% of previous overall amplitude\n\n`am50`\n\n**Concatenate phrase n times:**\n\nconcat phrase 4x \n\n`*4`\n\n**Set phrase duration n times:**\n\nIncrease phrase duration 8x \n\n`/8`\n\n**Mute and unmute:**\n\n`m` and `um`\n\n**Reverse:**  \n\n`r`\n\n**Scramble:**  \n\nscrambles notes within each rhythmic part and rhythmic structure\n\n`s`\n\n**Extra scramble:**  \n\nscrambles notes across the phrases and rhythmic structure\n\n`x`\n\n**Amplitude Scramble and Extra Scramble:**\n\n`sa` and `xa`\n\n**Save phrase to a queue:**\n\nplace it on top of the queue; position 0\n\n`sp`\n\nreplace phrase in position 3\n\n`sp3`\n\n**Load phrase:**  \n\nload postion 0 phrase; it will play next\n\n`lp0` or `:0`\n\n**List saved phrases**\n\n`l`\n\n**Save queued phrases to *.line* (= txt) file**\n\nWill assume prompt text as file name\n\n`sf`\n\nSave file with *mysynth.line* name\n\n`sfmysynth`\n\n*Note: Will also save line instance parameters (prompt, channel, notes/cc, range of values)*\n\n**Load *.line* file to line**\n\nLoad sampler.line\n\n`lfsampler`\n\n*Note: Will apply to line instance saved parameters*\n\n**Switch between notes and cc modes:**  \n\nnotes mode\n\n`n` \n\ncc mode on channel 2\n\n`cc2`\n\n**Set cc sync:**  \n\nIn-sync or Out-sync\n\n`i` or `o`\n\n**Relabel prompt:** \n\nfrom default **line\u003e** to **_my_synth\u003e**, type:\n\n`lbmy_synth`\n\n**Exit:**\n\n`ex`  \n\n**Display commands menu/extended menu:**\n\n`ms` or `me`\n\n**Set latency:** (ableton link's compatible *line* version only)\n\nsubtract 10 ms \n\n`lt10`\n\n","funding_links":[],"categories":["Languages","\u003ca name=\"music\"\u003e\u003c/a\u003eSound and music","Table of Contents"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpd3v%2Fline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpd3v%2Fline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpd3v%2Fline/lists"}