Skip to content
Voro
  1. Audio
  2. Compose

Note Loop

Note Loop is a looper for notes rather than audio. It offers classic record and overdub, and it also keeps an always-running history of the recent note performance, so Capturelast can grab the last bars into a loop after you played them. Loops can be quantized on capture, halved, doubled, and reversed, all without hanging gates.

Wire a note lane into notes and a timeline clock into timeline so bars mean something. Either arm Record for a classic take, or just play and pulse Capturelast when the last few bars were good. Route the notes output to the instrument; Monitor decides whether live playing passes through alongside the loop.

  • Input 0: notes is the note performance to loop. Required.
  • Input 1: timeline is an optional timeline clock for bar-based lengths and quantize.
  • Output 0: notes emits the loop, plus the live input when Monitor is on.
  • Output 1: phase emits the loop playback position.
  • Record and Overdub: classic loop recording; overdub layers onto the existing loop.
  • Capturelast: pulse that captures the recent history into the loop, sized by Capturebars (or Captureseconds without a timeline).
  • Clear: pulse to empty the loop.
  • Play: loop playback on or off.
  • Monitor: pass the live input through alongside the loop.
  • Bars and Loopseconds: loop length in bars with a timeline, or seconds without one.
  • Quantize: snap captured note starts to a grid, off or 1/4 to 1/64.
  • Freegridseconds: grid size in seconds when no timeline is wired.
  • Halflength and Doublelength: pulses that resize the loop.
  • Direction: forward or reverse playback.
  • Retrospective capture is the headline move: nothing needs to be armed in advance, the history is always running.
  • Resizing and reversing are gate-safe; notes are closed properly rather than left hanging.
  • Capture quantize fixes loose timing at the moment of capture without touching the live performance.

Inputs

  • notes row required
    note_voices_f32_v1
  • timeline row
    timeline_state_f32_v1

Outputs

  • notes row
    note_voices_f32_v1
  • phase row
    control_f32_v1
Record (Record) Toggle op('note_loop').par.Record
Default:
Off
Options:
Off, On
Overdub (Overdub) Toggle op('note_loop').par.Overdub
Default:
Off
Options:
Off, On
Capturelast (Capturelast) Pulse op('note_loop').par.Capturelast
Default:
None
Clear (Clear) Pulse op('note_loop').par.Clear
Default:
None
Play (Play) Toggle op('note_loop').par.Play
Default:
On
Options:
Off, On
Monitor (Monitor) Toggle op('note_loop').par.Monitor
Default:
On
Options:
Off, On
Bars (Bars) Int op('note_loop').par.Bars
Default:
4
Range:
1 to 32
Loopseconds (Loopseconds) Float op('note_loop').par.Loopseconds
Default:
8
Range:
0.05 to 60
Capturebars (Capturebars) Int op('note_loop').par.Capturebars
Default:
4
Range:
1 to 32
Captureseconds (Captureseconds) Float op('note_loop').par.Captureseconds
Default:
8
Range:
0.05 to 60
Quantize (Quantize) Menu op('note_loop').par.Quantize
Default:
1/16
Options:
off, 1/4, 1/8, 1/16, 1/32, 1/64
Freegridseconds (Freegridseconds) Float op('note_loop').par.Freegridseconds
Default:
0.125
Range:
0.005 to 4
Halflength (Halflength) Pulse op('note_loop').par.Halflength
Default:
None
Doublelength (Doublelength) Pulse op('note_loop').par.Doublelength
Default:
None
Direction (Direction) Menu op('note_loop').par.Direction
Default:
forward
Options:
forward, reverse