← muzungumaschin

changelog

MUZUNGUMASCHIN — all updates, newest first

beta-8 2026-05-23

fixed

  • PRIMATOR — parameters no longer copy between voices (the real fix): editing a value (velocity, note, N, density, ...) on one voice and then selecting another voice could copy that value onto the new voice. the inspector wrote each edit to the currently-selected voice, but a field commits its value slightly later (slider release, typing, focus loss) — by then the selection had moved, so the value landed on the wrong voice. the inspector now writes to the voice whose values it is actually showing, fully decoupled from selection timing. beta-7's partial attempts at this are superseded.

beta-7 2026-05-22

fixed

  • PRIMATOR voices bled into each other: switching the focused voice could carry a setting from the previous voice into the new one (an open field or the refresh tick wrote the stale value). the inspector now hard-reloads every field on a voice switch, so each voice keeps its own N / density / note / velocity / gate / accent. this was the nasty one.
  • INFO overlay drifted from the cursor after resizing: the hover tooltip is now positioned in the scaled content space, so it sits right at the mouse pointer at any window size.
  • inconsistent output-port order: MIDI OUT now sits at the top on every node (it was top on POLYGON but bottom on PRIMATOR). purely visual — saved cables are unaffected.

beta-6 2026-05-22

new

  • PRIMATOR — now 8 voices: the indispensability generator holds eight independent voices in one node (each with its own N / density / note / channel), just like the polygon's eight layers. build whole prime-factor grooves from a single PRIMATOR, pick a voice from the strip, edit it in the inspector.
  • layer mini-geometry: the layer strip now draws each layer's real polygon shape (vertices at their actual phase, active pulses highlighted) instead of a plain colour swatch.
  • multiple reroute anchors per cable: double-click a cable as often as you like to add bends — new anchors drop into the correct segment, so cables stay tidy.

fixed

  • state persistence hardened: floating popups, the window size and the Sequencer window now reliably survive saving, closing and reloading a project — including the switch to the host's generic plugin window.
  • polygon canvas clipping: rotating the global phase no longer clips the polygon at the edges (the canvas now spans the full window diagonal).
  • layer selection: touching any control of a layer (mute/solo, N, K, repulsor) now selects that layer, so the inspector always follows what you're editing.

changed

  • streamlined node set for this tester build: the add-node menu shows only what is fully working — POLYGON, PRIMATOR, the MIDI tools and I/O (incl. DAW Param Out). the harmony nodes, FUNK!, the controller / converter / transform nodes and Clone/Slave are temporarily hidden and return once polished. (older patches that use them still load.)
  • POLYRHYTHM / POLYMETER is now per node, on a clean segmented toggle in the node header.
  • Ableton Live: the manual now describes the two-track MIDI routing (second track "MIDI From" → MUZUNGUMASCHIN, Post FX, monitor "In").

beta-5 2026-05-15

new

  • PRIMATOR node: a new generator node based on Barlow's indispensability theory (1987). it builds rhythms from the prime-factor structure of the meter — the indispensability of each pulse decides which notes fire. fully patchable, MIDI out, own inspector with an animated Quastl-tree visualization.
  • harmony nodes are usable now: three new nodes turn polygons into chords and scales — ScalePreset (13 scales, triad / 7th / 9th chords, inversions), PolygonHarmony (polygon on the tone circle becomes a chord, the Coltrane principle, rotation = modulation), and HarmonyToMidi (converts harmony to playable MIDI: Root / Arp / Chord voice modes).
  • node patch routing works: the patch canvas is now a real signal graph. transform nodes (Transpose, Velocity Map, MIDI Filter, Split, Merge) actually process signal — connect generators → transforms → MIDI out with bezier cables.
  • multiple independent polygon nodes: each PolygonNode owns its own engine with independent layer state. run several polygon generators side by side in one patch.
  • mute / solo overhaul: every node has M/S buttons (mute = green, solo = red), consistent colors and size plugin-wide. global SOLO KILL clears all solos at once.
  • inspector dropdowns: ROOT / N / OCTAVE are now dropdowns instead of sliders — faster, exact selection.

fixed

  • hard crash in the WELL-FORMED / MOS section: moving the L/s ratio slider could crash the host instantly. an unclamped vertex count overran fixed-size internal buffers. fixed — the count is now clamped before any buffer access, with a regression test guarding it.
  • PRIMATOR solo didn't mute polygon layers: soloing a PRIMATOR node now correctly silences polygon layers too.
  • ANGLE output stayed empty: the polygon ANGLE port now emits the current cycle phase, so it can drive PolygonHarmony rotation and other receivers.
  • TRIGGER output was silent since the internal 4.3 refactor — the polygon TRIGGER pulse port is filled again.
  • trigger fired nothing when MIDI out was unconnected: generators now run into a scratch buffer, so the trigger port works even without a MIDI cable.
  • inspector slider sync: inspector sliders now follow values changed by the audio thread.

internals

  • complete Phase 10 node-engine migration: PatchEngine with topological sort + cycle detection, per-connection buffer pool, every node has a real process().
  • 348/348 unit tests pass.

known issues / work in progress

  • FUNK! modulation system: still partial
  • no undo in patch edit mode yet
  • AU / mac build: now built by CI, only lightly tested

beta-4 2026-05-07

new

  • reset buttons everywhere: every slider in the inspector (ROT, EUC, VEL, GATE, JITTER, vertex-rotation, probability, jitter, MOS-g, MOS-r) now has its own small reset button next to it. one click resets that parameter to its default.
  • vector reset icon: the reset button icon (curved arrow) is now drawn as a vector path, not as a Unicode glyph. it looks identical on every system, regardless of available fonts.
  • changelog link permanently visible in the footer (was previously only shown when an update was available).

fixed

  • garbled symbols throughout the UI: every place that used em-dashes, arrows, fractions, or special operator characters in user-visible text (tooltips, INFO overlays, button labels, panel headers, math node operators, sequencer markers, play/stop indicator) now uses ASCII equivalents. renders correctly on systems with any default font.
  • WORKSPACE / KONSTRUKTOR tooltips: previously empty or wrong, now correctly say NOT YET IMPLEMENTED in this beta.
  • version number color: now always red in the footer (was sometimes blue when no update banner).
  • inspector panel header: shows INSPEKTOR again (German spelling with K) instead of INSPECTOR.

beta-3 2026-05-07

fixed

  • garbled characters in tooltips and INFO overlays: source files are now compiled with /utf-8 (MSVC). previously special characters (em-dashes, German umlauts, arrows) showed as random symbols on systems whose locale was not UTF-8.
  • false “NEW VERSION AVAILABLE” banner on freshly downloaded installs: version.txt is now also served from /muzungumaschin/version.txt (the URL the plugin actually checks). previously a 301 redirect to index.html made the version comparison always fail.

new

  • release zip includes documentation: the download bundle contains the VST3 plus manual.html (full user manual) and CHANGELOG.md (version history). unzip everything into one folder for offline reference.

beta-2 2026-05-06

new

  • perfect balance visualization: every selected layer shows its centroid (balance vector) as an arrow from the center of the polygon canvas. when the polygon is perfectly balanced, the arrow disappears and a BALANCED badge lights up. the magnitude |B| is displayed as a continuous 0..1 score next to the arrow.
  • euclidean rotation per layer: new EUC slider in the inspector. same E(K,N) rhythm, different starting offset — son clave / rumba clave / bossa nova are rotations of each other.
  • snap to balance: button in the inspector. moves active vertex phases via gradient descent until the polygon's centroid hits the center. first active vertex stays as anchor.
  • MOS / well-formed generator: full implementation of carey & clampitt's moment of symmetry scales (also xronomorph's r-slider concept). drag g to morph through the stern-brocot tree of musical scales, drag r to morph the L:s step ratio. press GEN MOS to apply. default g = log2(3/2) (perfect fifth) → diatonic family. pattern label shows the L/s structure (e.g. "5L + 2s" for diatonic, "2L + 3s" for pentatonic).
  • version label in the footer, next to the update banner

fixed

  • mode-switch bug: switching from POLYMETER back to POLYRHYTHM now correctly preserves the K-mask. previously all N vertices fired even when the inspector showed K=3.

internals

  • new PolygonAlgorithms.h engine module: centroid, balance magnitude, mask rotation, DFT coefficient, snap-to-balance gradient descent, MOS generator with three-gap-theorem analysis
  • 97/97 unit tests pass

beta-1 2026-04-21

new

  • first beta release for selected testers
  • euclidean polygon node fully working: free vertex placement, euclidean / well-formed / perfect-balance patterns
  • 8 concentric rings, 8 independent polyrhythm layers, full DAW transport sync
  • rotating line playhead with vertex glow on trigger
  • swing, scatter, velocity / gate / probability randomisation per layer
  • layer mute / solo
  • CTRL curve editor per layer (velocity / gate / probability as drawn curves)
  • step sequencer view across all 8 layers
  • patch canvas: node graph with bezier cables
  • INFO mode: hover over any control to see what it does — active by default
  • welcome dialog on first launch
  • all controls have english hover tooltips

known issues / work in progress

  • harmony node: not yet usable
  • node / patch routing: partially implemented
  • FUNK! modulation system: not yet complete
  • AU (mac) build: not tested
  • no undo in patch edit mode yet