PER|FORMER

eurorack sequencer

forked and maintained by Vinx Scorza

Important project compatibility warning

The 0.4.6 beta can open projects saved by 0.4.4 and 0.4.5, but saving them upgrades the file to Version41. Firmware 0.4.5 and earlier cannot reopen that upgraded file. Back up the SD card or keep a separate copy of every project before opening and saving it with the beta.

Stable Firmware

Current stable

Vinx FW v0.4.5

Download the stable UPDATE.DAT from GitHub Releases, copy it to the root of the SD card, then update from the PER|FORMER bootloader.

GitHub Releases Firmware update manual Manual PDF

File
UPDATE.DAT
Size
740,692 bytes
MD5
965933b5dee316ae5680891007046bf4
SHA-256
aed77ef663923de8f57dd36c5c85b2b341b48a8f07986b058f85702c64e65985

The bootloader verifies UPDATE.DAT before writing it. If you are moving from another firmware line or fork, back up projects and settings before flashing.

Beta Firmware

Current beta

Vinx FW v0.4.6-beta.1

This prerelease identifies as 0.4.6 on the module. It updates saved projects to Version41, adds project-level MIDI input filters, and includes the current editing, Fill, routing, and scale fixes. v0.4.5 remains the stable release.

Beta release + assets Firmware update manual

File
UPDATE.DAT
Size
758,040 bytes
MD5
fe24653b56880af9611a066954fd2e0b
SHA-256
5dc2fa9f9ff148097023efa1138e69dad13bbf85ac9e8de96647506289dec432

Back up the SD card before testing. Projects from v0.4.4 and v0.4.5 load in this beta, but after the beta saves them as Version41, firmware v0.4.5 and earlier cannot reopen those saved files. Keep the original project files separately if you may return to older firmware.

PER|FORMER is a eurorack sequencer module designed for both live performance and work in the studio.
This firmware is a personal fork of the Mebitek fork of the original Westlicht PER|FORMER firmware, and is shaped by real performance use, custom behavior, and focused interaction and UI changes.

github.com/VinxScorza/performer

If you believe free software has value, accept that the work of the people who develop it has value too. Free as in freedom does not mean free labor. If this project is useful to you, consider supporting the people behind it. DONATE.
If you notice any bug or weird behavior, please report it. This fork moves fast, and I really need the feedback.
Documentation note: the User Manual and LP Cheatsheet include the current v0.4.6-beta.1 behavior, while the site keeps v0.4.5 clearly marked as the stable release.

Major Features

This fork remains intentionally personal, exploratory, and performance-driven.
What I'm aiming for is a solid machine for live performance, but also a crazy one for experimenting.
The goal is not simply to add more options, but to push PER|FORMER toward stronger creative generators, safer destructive workflows, better live interaction, and a more complete simulator and documentation ecosystem.

Historical baseline: Mebitek and original Westlicht lineage.

Generators & Performance Workflow

  • Random, Euclidean, Acid, and Chaos now form a broader generator ecosystem built around preview/apply safety, A/B comparison, and live-performance use.
  • Acid includes Layer, Phrase, and Eucl Phrase; Chaos expands into Vandalize, Wreck, and non-Note Entropy.
  • Launchpad Generators Mode, Init actions, Undo/Redo, and safer cancel/apply behavior make the generator workflow playable from both the module and external controllers.

Step Editing, Timing & Sequencing

  • External 16-step Editing Mode adds direct note/gate editing for Note tracks with 16-knob + 16-pad controllers.
  • Core sequencing gained bank-aware range editing, chain-aware note ties, improved step selection, Curve gate timing layers, and per-track Gate/Trigger output behavior.
  • Clock/reset behavior, scale handling, Voltage Mode paths, and Arp/Stochastic scale-safe transpose were tightened for more predictable performance use.
  • In the 0.4.6 beta, selected-step Copy/Paste/Duplicate is safer across Note, Curve, Stochastic, Logic, and Arp, and double-clicking a track button provides direct access to its Steps editor where available.
  • Held Fill controls can temporarily change a track's playback divisor from the module encoder, including fills initiated from Launchpad, without replacing the divisor stored in the sequence.

Memory, Runtime & Build Robustness

  • Reduced STM32 memory pressure and improved runtime efficiency, with additional hardening around the heaviest generator paths.
  • Build and simulator paths were cleaned up and aligned with current firmware behavior. The Vagrant setup now stops on errors, verifies the CMake download checksum, and installs the required CMake and Python tooling.

Core Engine & Safety

  • Generator and modal UI paths were hardened against wrong-target apply/cancel behavior, stale state, and controller retargeting edge cases.
  • Routing/CV control now treats continuous, discrete, and trigger-like targets more safely and filters writes by compatible track mode.
  • Load, Save, Save As, project browsing, and slower SD-card boot paths were hardened to reduce race and reboot-prone behavior.
  • The 0.4.6 beta adds per-project filters for MIDI Notes, CC, Program Change, Pitch Bend, and Aftertouch. Their state is stored in project format Version41; custom Program Change mapping is not included.
  • Routing Divisor Min/Max now follows valid musical divisions, while Stochastic and the related Arp pitch path preserve scale-note interpretation across project reloads.

Docs, Site & Ecosystem

  • The site now separates roles clearly: Home for overview, Features for the curated feature map, User Manual for practical use, Build Guide for hardware/build/simulator setup, and Cheatsheet for Launchpad reference.
  • The online manual includes search/navigation and a printable manual PDF.
  • The Web Simulator now runs the 0.4.6 beta firmware, with its beta status shown separately from the stable v0.4.5 download.

And much more across the wider firmware line.
For the broader curated overview, see FEATURES. For the exact technical chronology, including inherited upstream history, see the repository CHANGELOG.

Known Limits / Validation Scope

Current real-hardware validation snapshot. Full scope and detailed notes are maintained in the User Manual validation section.

  • Beta validation The v0.4.6-beta.1 firmware and simulators build successfully; the focused real-hardware upgrade smoke test remains to be completed.
  • Validated 16-step Editing Mode maintainer-side hardware validation is on Launch Control XL (Factory Preset #1).
  • Pending hardware test BeatStep Pro template/mapping is code-supported but still needs dedicated maintainer-side on-device validation.
  • Partially validated Voltage Mode is fixed across Note/Arp/Stochastic; uncommon notesPerOctave > 12 cases on Arp/Stochastic still benefit from broader field tests.
  • Partially validated Desktop Simulator USB MIDI is currently validated on macOS / OS X with Launchpad Mini MK3, not yet across all devices/OS combinations.
  • Known architecture limit One external USB controller workflow at a time; USB hubs (including powered hubs) are not supported by the current firmware USB host stack.
  • Stability hardening Save/Save As/Load race conditions were strongly mitigated, but full architectural closure is still in progress.

License

For licensing information please refer to the License page.

Donations

If you would like to support this fork financially, please refer to the Donate page.
If you would like to support the development lineage behind this fork, you can also donate to Mebitek or to Simon Kallweit / Westlicht.

I would love to have a second PER|FORMER unit for testing new fixes and new features, but I cannot really afford a second one just for development. If you have one sitting unused and gathering dust, I would gladly give it a good home in my studio/lab.