PER|FORMER

features

forked and maintained by Vinx Scorza

Features

This page is the curated web summary of the Vinx Scorza line. It reorganizes the work by topic instead of strict release order so it is easier to understand what this branch actually adds.

This documentation line is aligned through the active v0.4.3 development line. If you want the exact chronological log, including inherited upstream history and older v0.3.2-vinx.* releases, the repository CHANGELOG.md remains the technical reference.

Core Sequencing

The fork started with core sequencing stability work, and this foundation still supports everything built above it.

  • Step shifting was stabilized across Note, Logic, Curve, Stochastic, and Arp, including the legacy 64-step crash/reboot path and shift operations inside non-zero subranges.
  • Step selection behavior was refined with more consistent shift handling and a shared selection-or-all fallback used across step-edit and generator paths.
  • Quick Access step-range editing is now bank-aware: in PAGE-hold overlays for First/Last and Seq First/Seq Last, PREV/NEXT moves 16-step banks and S1..S16 selects inside the active bank.
  • Curve tracks were extended with per-step Gate Offset and Gate Length, including edit-page support, overview rendering, Launchpad handling, and simulator bindings.
  • Note tie editing became chain-aware: tied steps now keep persistent linkage and share note edits as one pitch group (encoder, MIDI note input, and shortcut note input paths), with clearer tie rendering.
  • Scale-selection limits were fixed so the full built-in plus user-scale set is reachable again across Project, Note, Logic, Stochastic, and Arp.
  • Voltage Mode is now coherent across Note, Arp, and Stochastic: octave wrapping follows the intended 1.2V span and non-chromatic user scales are preserved on the covered paths instead of forcing semitone/1V/oct fallback.
  • Project-scale quantization remap now preserves octave register on Note tracks (Project Scale path with sequence Scale = Default), avoiding octave-collapse when changing Project scale.

Chaos generators

Chaos is the boldest Vinx-specific branch so far: intentionally rough, selection-aware, destructive when needed, and built around explicit preview/apply safety.

  • Chaos is now framed as an experimental event generator with an explicit preview/apply safety model: a selection-aware multi-layer macro-random engine driven by global Amount and a dedicated target-layers matrix.
  • The workflow expands into CHAOS MODE with Vandalize Sequence (local, sequence-level), Wreck Pattern (pattern-wide, multi-track, more destructive), and non-Note Entropy, all with consistent A/B preview and dedicated popups.
  • Chaos preview flow is now stricter and deterministic: target/selection/amount edits no longer auto-reroll, CHAOS press stays the only reroll trigger, and APPLY is blocked while no valid preview exists.
  • System -> Chaos Defaults now carries separate masks for sequence vandalizing, pattern wrecking, and non-Note entropy unleashed targets.
  • Pivot and octave-quantized Span controls were added for Chaos register control, replacing the old fixed note-window assumption with a user-steerable mutation window.
  • Performance and memory behavior were tightened through target-step backup only, in-place regeneration, and sequence-scoped storage.

Acid generators

Acid is one of the clearest Vinx-specific expansions of the generator system: more musical, more structured, and layered.

  • Acid is now a consolidated Note-track generator with non-destructive preview and a stable Layer/Phrase split.
  • Layer mode projects behavior onto a single layer (Gate, Note, or Slide), while Phrase mode writes coordinated Gate + Note + Slide material across the current selection or full pattern.
  • Parameter behavior was tightened (density, slide behavior, deterministic target counts) to keep outputs more intentional and repeatable.
  • Dedicated visual previews replaced generic generator rendering, and ordering/mapping are aligned across machine pages and Launchpad (Layer → Phrase).

Random generator

Random evolved from a quick reroll utility into a controlled generator with identity, stability, and compare workflow.

  • Random now runs on a non-destructive preview/apply model with A/B, Cancel, Apply, and reroll actions built around predictable state transitions; Variation follows the same per-step keep/replace semantics used in Acid.
  • Seed handling moved to stable 32-bit hexadecimal values, and seed edits remain intentional while parameter edits avoid unwanted seed drift.
  • Preview rendering is richer and layer-aware (especially on Note tracks), and footer actions stay in context without unexpected page exits.

Launchpad

Launchpad is treated as a first-class performance layer, with coherent defaults, safer generator flows, and stronger routing stability.

  • Launchpad remains a core system layer (LP Style / LP Note Style), with defaults aligned to Blue + Circuit while preserving both Classic and Circuit workflows.
  • Legacy LP regressions were resolved across note-style rendering, targeting, pattern drawing, fill release, and probability handling.
  • LP Generators Mode is track-aware and interaction-consistent. Note tracks use the full map (Random, Acid Layer, Acid Phrase, Vandalize, Wreck, Euclidean, Init Layer, Init Steps), while Curve/Stochastic/Logic/Arp use the subset (Random, Entropy, Euclidean, Init Layer, Init Steps), with aligned A/B, Apply/Cancel/Reset/Undo, reroll behavior, and improved overlay stability, selector alignment, and generator commit behavior.
  • Track/scene retarget remains locked during generator selector/pages, track jump to Steps from system pages is supported, and LP input can wake the display.
  • Launchpad controller internals were refactored with the P1 structural split (routing, LED drawing, and lock helpers) to reduce coupling and regression risk.

16-step Editing Mode

16-step Editing Mode adds a dedicated external-controller workflow for direct per-step note and gate editing on Note tracks. BeatStep Pro template download: PERFORMERstep16_BSP.beatsteppro. On Launch Control XL, use Factory Preset #1.

  • The mode provides a dedicated 16 knobs + 16 pads + 2 function buttons control path for Launch Control XL and BeatStep Pro: knobs edit step notes and pads toggle step gates on the current visible 1..16 bank.
  • Compatibility is map-driven: any controller can be used if it transmits the map on MIDI channel 9 (CC 13..20 + 29..36 for knobs, notes 41/42/43/44/57/58/59/60/73/74/75/76/89/90/91/92 for gate toggles, CC 106/107 for Prev/Next, Prev+Next for arm/disarm).
  • Entry/exit is explicit through armed/disarmed state via controller-side Prev + Next together (LCXL: Track Select < + >, BSP: Ptn 1 + Ptn 2): armed mode forces playback/edit focus to the visible 16-step window, restores the previous loop range on disarm, and keeps longer loops practical through bank-by-bank Prev/Next navigation with the same per-step editing semantics.
  • Target scope is the currently selected Note track: knobs are active only when machine layer is Note, while pad gate toggles stay active on that same track across layers.
  • Current maintainer-side hardware validation is on Launch Control XL; BeatStep Pro is code-supported and mapping-ready but still pending broader real-hardware validation, and controller concurrency is intentionally constrained to one active external control workflow at a time.

Clock & Sync

Clock behavior has been adjusted with real hardware compatibility and safer external sync as priorities.

  • The default output clock pulse was moved from 1ms to 10ms for broader module compatibility.
  • The Swing UI was rescaled to a more natural 0-99% range while preserving original engine timing for backward compatibility.
  • Reset behavior was clarified by separating Reset Gate and introducing Reset Pulse as a distinct external clock mode that reacts only to the rising edge, avoiding implicit start on falling edge.
  • The default Reset CV behavior is now Off, so Note tracks hold their last CV value on stop unless the project explicitly asks otherwise.
  • Track-level gate output behavior can now be switched between Gate and Trigger on Note/Curve/Stochastic/Logic/Arp tracks, with global Trigger Length in System -> User Settings; this is per-track behavior, not per-step trigger editing.

Generator UX

Beyond individual generators, the Vinx line made generator pages more coherent, safer, and easier to perform with in real time.

  • The generator ecosystem across track families (Random, Euclidean, Acid Layer/Phrase, Chaos Vandalize/Wreck/Entropy) now follows a more coherent preview/apply safety model shared between machine pages and Launchpad Generators Mode.
  • All generators now enter on ORIGINAL; first preview is created only on explicit reroll.
  • Generate opens on the current 16-step bank and keeps navigation aligned to the active context.
  • The Euclidean generator was reworked with compare behavior, explicit reroll, direct parameter editing, and a strict Beats ≤ Steps constraint.
  • Footer and context action layouts were rewritten and normalized across generator pages for faster, less error-prone operation in performance use.
  • ResetGen now restores neutral defaults instead of quietly rerolling generator state.
  • Init Layer, Init Steps, and Init Seq were separated again with a consistent selection-aware fallback.
  • Transport remains responsive inside generator pages so the sequencer stays playable while shaping material.

UI & Display

UI and display work focused on readability, signal clarity during performance, and more intentional visual feedback.

  • Generator previews were redesigned around full 64-step views with a clearly visible active 16-step bank and a playback-following playhead.
  • Random and Acid rendering was cleaned up with better lane alignment and clearer visual separation.
  • Step graphics were refined to make gate offset, length, retrigger, condition, and slide states easier to read at a glance.
  • UI load was reduced by lowering refresh to 30 fps and skipping redraws when the frame is unchanged.

System & Defaults

System behavior and defaults were refined to make machine-level settings more coherent, safer to manage, and easier to persist.

  • System now includes direct save and a simplified settings flow, with an explicit save prompt when leaving System -> Settings after changes (including Chaos Defaults) instead of silently discarding edits.
  • Chaos Defaults was returned to the normal machine-settings save path instead of being treated as a separate auto-written case.
  • Project file-task flow (Load/Save/Save As) was hardened by serializing requests and delivering results on UI thread, reducing race-prone overlap paths; UI now exposes busy-state feedback while operations are active. This is a strong partial hardening, not yet a full architectural closure.
  • SD boot tolerance was hardened for slower cards by extending init tolerance and feeding watchdog during long SD bring-up waits, while keeping runtime watchdog behavior strict during normal operation.
  • Menu Wrap was added as an on-by-default preference for cyclic list navigation.
  • Screensaver behavior, wake behavior, and the System landing tab were refined for more predictable daily use.
  • Memory footprint was improved versus the upstream baseline, with lower SRAM/CCRAM pressure compared to Mebitek 0.3.2.

Simulators

The simulator side of the fork is now a real part of the ecosystem: useful for development, useful for testing, and documented as such.

  • The simulator stack now works as two complementary tools: the browser-based Web Simulator for immediate access and quick checks, and the native Desktop Simulator for deeper MIDI/controller workflows and development work.
  • The Desktop Simulator gained configurable DIN/USB MIDI routing via CLI, starts with MIDI disabled by default, and includes built-in status/tracing support (--trace-midi, --trace-dio).
  • Launchpad support was improved with model inference and port mirroring to keep controller behavior more predictable in simulator sessions.

Documentation

Documentation evolves together with the firmware.

  • The manual was realigned to current Vinx firmware behavior and kept text-first with technical clarity.
  • Online manual search/navigation behavior was improved and aligned with the current documentation structure.
  • The Launchpad cheatsheet was fully reworked and synchronized with current firmware workflows.
  • Simulator documentation pages were refreshed, and the build guide was expanded with simulator, MIDI, Launchpad, and tracing workflows.
  • Ecosystem pages (Forks, Features, and related references) were kept updated as part of the wider site/docs cleanup.

Current Validation Scope

The system is actively used and locally verified, but some areas benefit from broader testing.

  • External clock modes (Reset Pulse / Reset Gate) still benefit from real hardware validation.
  • Voltage Mode user scales need broader testing across Note / Arp / Stochastic.
  • Desktop Simulator USB MIDI has been validated well on macOS / OS X with Launchpad Mini MK3, but not yet across other Launchpads or operating systems.

Versioning

  • Transition from v0.3.2-vinx.* lineage to standalone semantic versioning (v0.x.y) starting from the first standalone Vinx release.
  • Previous lineage retained for documentation/reference only.