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, --version
The 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