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.

It is not a replacement for the User Manual: Features explains what exists and how the firmware is shaped; the manual explains how to use it in practice.

This documentation line is aligned through the active 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.

Known limits and real-hardware validation status (including external clock scope, Voltage Mode edge-cases, and BeatStep Pro coverage) are tracked centrally in User Manual - Known Limits / Validation Scope.

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 long-sequence and non-zero subrange cases.
  • 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 for First/Last and related sequence-window controls.
  • 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, non-chromatic user scales are preserved on the covered paths, and routed transpose on Arp/Stochastic remains inside the selected scale/root instead of shifting the root chromatically.
  • 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 explicit apply/cancel behavior.
  • Chaos preview flow is now stricter and deterministic: editing targets or intensity does not silently reroll the result, and apply remains guarded until a 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, sequence-scoped storage, and further hardening of Wreck Pattern backup handling to reduce reboot-prone persistent memory pressure.
  • Wreck Pattern was streamlined so safety is concentrated in the preview/cancel/apply workflow instead of an extra intermediate warning step.

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 / Eucl Phrase split.
  • Layer mode projects behavior onto a single layer (Gate, Note, or Slide), while Phrase and Eucl Phrase write coordinated Gate + Note + Slide material; Eucl Phrase adds a Euclidean-shaped rhythmic structure to the acid phrase workflow.
  • 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 for Layer, Phrase, and Eucl 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.
  • On the Note layer, Range now behaves as a musical span around the current register and Bias shifts that center lower/higher, with a center-weighted note distribution. Other layers keep the older generic random mapping.
  • 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 expose the full generator family, while Curve/Stochastic/Logic/Arp expose the compatible subset, with aligned compare, reset, cancel, apply, and undo 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.

  • The mode provides a 16 knobs + 16 pads control path: knobs edit visible step notes, pads toggle visible step gates, and longer sequences are handled in 16-step banks.
  • Compatibility is map-driven rather than brand-driven; Launch Control XL is the maintainer-validated reference controller, while BeatStep Pro is template-supported and still needs broader hardware validation.
  • Entry/exit is explicit through an armed/disarmed state, so the mode can temporarily focus the current 16-step window and then restore the previous loop range.
  • 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.

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 Reset Pulse behavior for safer external sync.
  • 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/Eucl 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, with a clearer distinction between source material, preview generation, comparison, cancel, and apply.
  • Generate opens on the current 16-step bank and keeps navigation aligned to the active context.
  • The Euclidean generator was reworked around compare behavior, intentional pulse-shape 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.

Routing & CV Control

Routing remains a performance control layer, but the current line makes it safer and more explicit before adding more targets.

  • Routing target evaluation now distinguishes continuous, discrete, and boolean/trigger-like destinations, so CV and MIDI modulation are stabilized according to the kind of parameter being controlled.
  • Discrete targets use hysteresis to reduce boundary jitter, while boolean and trigger-like targets use stable threshold behavior instead of flickering around the midpoint.
  • Track-target compatibility is checked before writing routed values, so a route only affects tracks whose current mode actually supports that target.
  • Previously exposed Stochastic bias targets now write the corresponding routed values instead of silently doing nothing.

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. Project LOAD slot browsing also caches slot info and hardens STM32 SD reads to reduce reboot risk with populated project folders. 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.
  • A printable black-and-white manual PDF is now generated from the current manual content and available as vinx-performer-user-manual.pdf.
  • 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 and scale/root-safe transpose are aligned on the covered Note / Arp / Stochastic paths; uncommon notesPerOctave > 12 Arp/Stochastic cases still benefit from broader testing.
  • 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.