Tutorials
this tutorial series will walk you through the core concepts of anupars with interactive demos.
since the actual application is a terminal-based, these demos are simplified web-based simulations that illustrate the underlying mechanics in a more visual way.
Basic Movement
anupars has four movement modes that control how the playhead traverses the grid each beat. The active mode is shown in the status bar.
Regex Matching
The regex you type determines which cells are active - only columns whose character matches the pattern will trigger MIDI when the playhead lands on them. Everything else is a silent pass-through.
Regex Matching
this tutorial assumes you have a basic understanding of Regular Expressions (RegExp).
If you’re new to RegExp, consider reviewing some introductory resources
to get familiar with concepts like character classes, quantifiers, and anchors (recommended resource: RegexLearn).
In a nutshell, think of RegExp as a more granular way to specify complex search criteria for text.
For example, the pattern [aeiouAEIOU] matches any vowel character, while \d matches any digit.
Playhead Area
The playhead is not a single cursor - it's a 2D rectangle. Every cell inside the area is evaluated against your regex each beat. Move it with h/j/k/l and resize it with Shift+h/j/k/l.
Playhead Area
Control Modes
control modes that modify how the playhead moves and interacts with the grid.
Control Modes
- Arpeggiator mode (
Ctrl+a) skips non-matching cells, the playhead hops only between regex matches in order, turning your pattern into a melodic sequence. - Freeze mode (
Ctrl+z) locks the playhead in place and retriggers MIDI at that cell every beat, turning any matched position into a sustained rhythmic pulse until you release. - Dynamic Length mode (
Ctrl+d) lets you set the playhead’s length in real-time, so you can stretch or shrink the area to create evolving rhythmic textures on the fly.
Sweep Mode
Sweep (Ctrl+s) moves a vertical crosshair across the grid each beat, triggering every matched cell in the swept column simultaneously - like firing a full chord per column. Tilt angles the crosshair diagonally, Row Mode filters which rows participate.
Sweep Mode
Sweep Movement
Press ! to decouple the Sweep crosshair from the normal playhead. Once independent, the crosshair gets its own movement mode: Forward, Reverse, Random, or Pendulum, and traverses the full grid width while the playhead continues on its own path. The MVE status bar shows both at once: [f]<r>dp means normal=Forward, sweep=Reverse.
Sweep Movement
MIDI Channel Splitting
Press 1-7 to split the canvas into independent sub-grids. Each cell is its own playhead area (relative to main playhead), letting you run multiple patterns simultaneously.
Channel Tilt
Tilt (Ctrl+t) angles the Sweep crosshair diagonally - like a Bishop in chess. Because each vertical column band maps to a different MIDI channel, tilting means different rows fire different channels simultaneously. Straight sweeps one channel per step; diagonal sweeps spread the trigger across multiple channels at once.
Channel Tilt
MIDI CC
In CC mode, the Sweeps crosshair's column movement within the playhead area becomes an LFO phase φ ∈ [0,1), scaled to a MIDI CC value v = floor(φ × 127), The waveform shape comes directly from the movement setting.
MIDI CC
Prerequisite:
- ensure
Sweep Modeis active (Ctrl+s) and the crosshair is visible sweeping across the grid. - ensure you have MIDI output configured and a CC destination ready to receive data, such as a synth’s filter cutoff mapped to CC74. This tutorial assumes familiarity with MIDI concepts like CC messages and LFOs. If you’re new to these, consider reviewing basic MIDI documentation or tutorials first to get the most out of this section.
- Forward = Sawtooth (
Ctrl+f) - Reverse = Reverse Sawtooth (
Ctrl+r) - Pendulum = Triangle (
Ctrl+p) - Random = Sample-and-Hold (
Ctrl+d) The regex acts as a mute gate - matched cells transmit the current LFO value, unmatched cells are silent and the device holds its last received value.
Press @ to cycle through CC output modes, it comprised three flavors of MIDI data you can send
- note sends pitch only (displayed as
S(Sis indicator of sweep mode)), - cc sends only the LFO-derived CC value (displayed as eg.
S<cc74>), - both sends pitch and CC simultaneously (displayed as eg.
S<cc74+>). The CC number is configurable independently. The regex gate mutes transmission on unmatched cells; the receiving device holds its last value until the next match arrives.
combine with the previous tutorial on sweep mode to create dynamic, evolving modulation patterns that sync perfectly to your rhythm. For example, set a slow sawtooth LFO on CC74 (filter cutoff) and use a tight regex pattern to create a pulsing, rhythmic filter effect that dances in time with your sequence. The possibilities are endless when you can modulate any parameter with a perfectly synced LFO derived from your grid patterns!