loop192 - live MIDI sequencer
loop192 [OPTION...]
loop192 is a MIDI looper that works like sooperlooper but with MIDI instead of audio.
Only the following events are recorded: notes, pitchbend, control changes and program changes. When a loop is muted or when the transport is stopped, notes off will be emitted automatically as well a pitchbend with a value of zero if the loop contains any pitchbend events. This behavior can be extended to control changes using the --release-controls option, this can be especially useful for controls such as sustain.
-h, --help-p, --osc-port port
-r, --release-controls [int ...]-j, --jack-transport-n, --no-gui-v, --versionThe main window consists in a toolbar and a list of loops.
The toolbar contains the following controls
Panic button: mute all loops
Stop button: stop transport
Play button: start or restart transport
Tempo entry: set beats per minute
Length entry: set eighth notes per cycle
Each loop contains the following controls
Undo button: undo last overdub/record or cancel queued record start.
Redo button: redo last overdub/record
Record button: start/stop recording at next cycle beginning. Blinks when recording is starting/stopping.
Overdub button: start/stop overdubbing immediately
Mute button: mute/unmute loop
Clear button: clear loop and undo history
Each loop contains a timeline that shows the note events in the loop and a vertical marker indicating the playback position.
When --jack-transport is set, loop192 will
- follow start/stop commands from other clients
- send start/stop commands to other clients
- use the transport master's bpm
- set its position to 0 whenever the transport stops or restarts
- **not** attempt to reposition within loops
/play/stop/set <string: parameter> <float: value>/loop/#/hit <string: command>/status <string: address>
{
"playing": int,
"tick": int,
"length": int,
"tempo": float,
"loops": [
{
"id": int,
"length": int,
"mute": int,
"recording": int,
"waiting": int,
"overdubbing": int
},
...
]
}
Looper status
playing: playback state
tick: playback tick (192 ticks = 1 quarter note)
length: cycle length in ticks
tempo: current bpm
Loops statuses (1 per loop)
id: loop id (starting at 0)
length: loop length in ticks (multiple of engine's length)
mute: 1 if muted, 0 otherwise
recording: 1 if recording, 0 otherwise
waiting: 1 if waiting for next cycle to start/stop recording, 0 otherwise
overdubbing: 1 if overdubbing, 0 otherwise
loop192 is written by Jean-Emmanuel Doucet.
Copyright © 2021 Jean-Emmanuel Doucet jean-emmanuel@ammd.net
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Sources: https://github.com/jean-emmanuel/loop192