Skip to content

Releases: animatek/Animatek-NME

Animatek NME 0.19.0: the one that stops pretending

Choose a tag to compare

@animatek animatek released this 27 Sep 16:10

Animatek NME 0.19.0: the one that stops pretending

This cycle the editor met G1-Emu, the Nord Modular G1 emulated on its own original OS, and
being able to break a synth on purpose turned up every place where the editor believed a slot
matched the synth when it did not. Those are fixed, and the release brings slot sets, scales on
any root for the Key Quantizer, and replacing a module in place.

🔎 The editor says what is true about the synth

  • A patch loaded from the synth's front panel arrives whole. It used to end in "Incomplete
    Patch Load: 0 of 13 sections" and a connection that looked dead. The G1's OS announces a
    panel load with two patch ids in a row; the editor asked for the sections with the first, and
    the synth answers a stale id with nothing. It now follows the id the load ends on.
  • A failed upload no longer looks like a successful one. The slot turns LOCAL and stops
    sending edits to a synth slot that holds another patch.
  • A synth that stops answering is marked "not responding", and the editor reconnects by
    itself as soon as it speaks again.
  • A MIDI port that disappears disconnects the editor with "MIDI port gone": closing G1-Emu
    or unplugging the interface used to leave it saying "Connected".
  • Switching synths no longer shows the previous one's patch as synced. Slots are LOCAL until
    the new synth's patch arrives, so an edit in between cannot land on the wrong patch.

🎛️ Slot sets

Layered patches, one per slot, only make their sound together, and the G1 cannot store that.
File > Save Slot Set... saves the four slots as one sound, each slot as include,
switch off or leave as is; File > Open Slot Set... (or a double click on a SET in the
Disk tab) loads them back, one upload at a time, and restores which slots are on.

🎼 Key Quantizer scales on any root

The Scale menu opens with what the switches spell now, ticks every scale they match, and lists
every scale on every root from C to B. New scales: Phrygian Dominant (Andalusian), Double
Harmonic, Hungarian Minor, Neapolitan Minor and Major, Hirajoshi, In-sen and Diminished.

🔁 Replace a module with another of its family

Right-click a module, Replace with, and a FilterE becomes a FilterD in place, as one undo
step: position, name, the cables and values that fit, and their knob, morph and CC assignments
are kept; what does not fit is dropped and reported, never rewired to a guess.

Also in 0.19.0

  • Reconnect in the MIDI settings: switching between a real G1 and G1-Emu is one click.
  • The Synth Settings dialog reads the clock source and the master tune the right way round.
    Choosing Internal used to stop the synth's master clock, and 0 cents showed as −64.
  • The keyboard floater no longer leaves notes stuck on the synth.
  • Ctrl+R leaves modules excluded from mutation alone.
  • A failed bank backup keeps the previous one intact.
  • A store to a bank no longer gets lost after an upload, and the bank list follows it.
  • The Disk tab filters are words now (ALL, PATCH, SNIP, BANK, SET).
  • The MCP bridge reads the synth back (status, events, lights, bank names), assigns knobs,
    morphs and MIDI CCs, chooses its MIDI ports and fetches a slot again.

The complete list is in CHANGELOG.md.

Known limitations

  • The editor's keyboard is monophonic, as the synth makes it; chords need the regular MIDI input.
  • Stuck MIDI-IN notes are cleared with the synth's front-panel panic.

Animatek NME 0.18.0: the one that stopped corrupting patches

Choose a tag to compare

@animatek animatek released this 10 Sep 14:18

Animatek NME 0.18.0: the one that stopped corrupting patches

This release fixes a chain of patch-synchronization faults behind a particularly misleading symptom: the G1 stopped answering MIDI when an oscillator was added, but the damage had been done by an earlier module deletion. It also makes sequencer notes easier to read and presets quicker to audition.

Patch integrity and synth synchronization

  • Deleting modules no longer leaves their assignments on the synth. The G1 protocol has no incremental morph-unassign command. Leftover morph and knob assignments could return when a patch was read back, be saved into the .pch, and attach themselves to a new module reusing the same index. Deletions now synchronize through a coalesced full upload.
  • Incoming patches are cleaned of orphaned assignments, whether loaded from disk or read from the synth. Invalid morph, knob and MIDI CC references are discarded rather than carried into the next upload.
  • Front-panel knob lights follow assignment changes correctly, including multi-module deletions and orphaned assignments discovered when reading a patch. Deassign messages are sent while the synth still holds the module they refer to; uploads assert the assignments the new patch actually contains.
  • Replacing a slot's patch no longer reads freed memory. The Inspector now detaches fully before the old patch is destroyed, covering synth downloads, New Patch, file opening and MCP patch replacement.
  • NewModule packets use the correct six-bit patch ID and carry module custom settings, including OscA's frequency-display unit.
  • An unanswered PatchPacket closes its transfer, allowing the synth to leave bulk-receive state instead of remaining unresponsive until a power cycle.

Sequencer notes and keyboard editing

  • Optional note names for sequencer steps in Editor Options (#76). NoteSeqB displays absolute pitches such as C4; NoteSeqA displays transposition intervals such as +7 (G). Hover values, dragging, the F5 overlay and the Inspector follow the setting, and the Inspector accepts note-name input.
  • NoteSeqB's piano-roll drag shows the note being set, and its note arrows align with their steps.
  • Loop starts enabled on newly added NoteSeqA and NoteSeqB modules, matching the original editor.
  • + and - now step arrow-pair controls, including Vocoder bands and NoteSeqB notes (#76, #77). Numeric-keypad minus also works for stepping and zooming out on Linux.

Faster preset auditioning

  • The Inspector marks the recalled module preset, and Up/Down recalls each visible preset as you move through the list (#60).
  • Previous/next buttons in the disk preset browser load adjacent visible entries. Keyboard navigation with Enter also works, and both search and type filters define the entries being browsed (#60).

Also fixed and improved

  • A synth switched on after the editor connects automatically again: incoming synth activity triggers a rate-limited handshake retry while disconnected (#73).
  • An unopened slot clearly says "No patch open" instead of showing an empty working canvas with an unusable add-module hint (#75).
  • Vocoder button labels are readable, and its Rnd button randomizes routing bands without changing output gain (#77).
  • Mixer input controls are called "In level", matching their attenuation function (#78).
  • The About box credits Patreon supporters on the EUR 5 tier and above.

Availability and known limitations

Source code is available from this tag. Packaged builds for Linux, macOS and Windows are distributed through Patreon; private build assets are not attached to this public release.

  • macOS builds are unsigned. Use right-click > Open on first launch, or clear the quarantine attribute if needed.
  • Stuck MIDI-IN notes are cleared with the synth's front-panel panic.

The release commit passed CI and the three-platform build workflow. The tag records hardware verification against a Nord Modular G1 before tagging.

Full changelog: v0.17.0...v0.18.0

Animatek NME 0.17.0: the one where cables move

Choose a tag to compare

@animatek animatek released this 19 Aug 08:13

Animatek NME 0.17.0: the one where cables move

Two gestures the original editor had and this one did not: a cable can be lifted off a
connector and dropped on another one, and a patch can be dragged straight onto a slot. Around
them, four faults that only ever showed on somebody else's machine, including a Mac menu bar
with no keyboard shortcuts on it and a patch that reloaded itself every three seconds.

🔌 Cables can be re-routed, not just cut

Hold Ctrl (Cmd or Alt also work) and drag a connector that already has a cable: the cable
comes off that end and follows the pointer from the end that stays put, ready to drop on another
connector. This is what moving a patch's wiring onto a replacement module one cable at a time
needs, and it is the gesture the original editor had.

Nothing happens to the patch until you let go. The cable is only hidden from the canvas while
you carry it, so a re-route that lands nowhere legal costs nothing, sends nothing to the synth
and leaves nothing on the undo stack. Where a connector has several cables the one drawn on top
comes off first, and repeating the gesture takes the ones underneath. The move itself is one
undo step.

🎯 Drag a patch onto a slot to load it there

From both browsers: a patch in the synth's banks from the Synth tab, and a .pch from the
Disk tab or the Ctrl+B window. Two places accept the drop, the slot's own sub-window and
its row in the slot bar down the left side, which is the one that still works when that slot's
window is closed (it opens on the way). The target lights up while you are over it.

Each drop ends in the load that already existed, so nothing new goes to the synth. The Ctrl+B
preset window could not start a drag at all until now, snippets included.

🔤 The macOS menus have their keyboard shortcuts back

The Mac menu bar is the system's own, and it only prints a shortcut that comes from a JUCE
command manager: the hint field that the Windows and Linux menus right-align is thrown away
there. Moving the hints into that field in 0.16.0, so the Mac would stop printing a literal tab
character, took every shortcut off the Mac menus.

They are now written into the item's own text on macOS, in the symbols a Mac reads: New Patch
⌘N
, Save As... ⇧⌘S, Slot A ⌥⌘1. They also stop saying "Ctrl" for what is Cmd there.
Nothing changes on Windows or Linux. (#74)

🔁 The patch stops reloading itself every few seconds

The canvas jumped back to its top-left corner on its own and the status bar flashed "loading
patch 1/13", with nobody touching anything. The G1 does not only answer an IAm, it announces
itself: the SysEx dumps on the report have one arriving roughly every three seconds for as long
as the synth is on. The editor read each announcement as a connection that had just come up and
re-ran its whole opening sequence, so the patch was pulled down again on top of the one being
worked in.

An announcement from a synth the editor is already talking to now changes nothing. It is still
listened to while disconnected, so a synth switched on after the editor still brings the
connection up by itself. (#73)

🎚️ Cable opacity moved where every platform can reach it

It was a slider inside the View menu, and a native Mac menu cannot host a custom control: JUCE
dropped it and left a blank line, so the setting was untouchable on macOS. It now sits under
File → Editor Options, next to the cable style, as a percentage slider. The canvas follows
it while you drag so you can see what you are choosing, and Cancel puts the old value back.

It also survives a restart now, which it never did from the menu on any platform. (#74)

Also in this release

  • An ABCD button that puts the slot windows back in order (#51), right of MUT in the header
    bar, its four letters drawn in the quadrants they land in. One click re-tiles the open
    sub-windows and puts the slots back into A, B, C, D order whatever order you opened them in.
    View > Slots > Reset Slot Order (ABCD) is the same thing.
  • Pinch to zoom on a trackpad (#72), around the pointer, the same zoom Ctrl/Cmd+wheel
    already did.
  • The editor can show itself on the synth's own display. Off by default; turn on Show the
    editor on the synth display
    in Editor Options and any dialog borrows the G1's display for
    ANME 0.17v while it is up, giving the patch name back when it closes. Nothing happens to the
    patch.
  • Uni/Bip switches say which polarity they are in (#69). The inherited panel data labelled
    both states "Uni" on Constant, LevMult, LevAdd and the Control Sequencer.
  • A patch opened from a bank backup no longer keeps the position number in its name.
    Loading 35 - BELLS++ stored it on the synth under that name instead of BELLS++.
  • The empty-canvas hint is readable on every theme (#70) and the status bar follows the
    theme
    (#71), including when the theme changes while it is on screen.

Known limitations

  • macOS builds are unsigned. Right-click → Open the first time, or clear the quarantine
    attribute, until code signing exists.
  • Stuck MIDI-IN notes are cleared with the synth's front-panel panic.

Animatek NME 0.15.1: deleting a module no longer takes the editor with it

Choose a tag to compare

@animatek animatek released this 10 Aug 07:32

Animatek NME 0.15.1: deleting a module no longer takes the editor with it

A hotfix, and only that. If you are on macOS and 0.15.0, this one is worth taking straight away.

What's fixed

💥 Deleting a highlighted module crashed the editor on macOS

Click a module so it takes the yellow border, press Del or pick Delete Module from the
right-click menu, and the editor quit on the spot. Deleting a module you had not highlighted
worked, which is the detail that gave the fault away. Reported by Nocticore (#61), with a
crash log that pointed straight at it.

The Inspector keeps a reference to whatever module is selected so it can show its name, its cost
and its assignments. Deleting one destroyed the module and then redrew the Inspector, which went
looking at a module that no longer existed. On Linux and Windows that memory happens to still be
readable, so nothing showed and the bug sat there unseen since the Inspector was written; macOS
does not extend that courtesy and the editor stopped there and then.

The selection is now let go of before anything is deleted, and both the Inspector and the canvas
check with the patch that a module is still there before touching it.

💥 The same crash, undoing an Add Module or a paste

Nobody had reported this one, because it takes the same combination: the modules a paste or an
Add Module just created are left selected, so Ctrl+Z destroyed them out from under the
Inspector by exactly the same route. Also fixed, and it was another hard crash on macOS.

Nothing else changed

0.15.1 is 0.15.0 plus the fix above. Everything in
0.15.0's notes still applies.

Thanks

To Nocticore, again, for a report precise enough to name the trigger ("if you don't have the
module highlighted, deleting works") and for sending the macOS crash log with it. That is what
turned a bug that cannot be reproduced on Linux into a fifteen-minute diagnosis.

Animatek NME 0.15.0: the module bar, and a synth that stops going quiet

Choose a tag to compare

@animatek animatek released this 09 Aug 09:33

Animatek NME 0.15.0: the module bar, and a synth that stops going quiet

The module palette comes back as a bar under the header, the frequency displays answer in
whichever units you ask for, and the three faults that made a large patch impossible to send to the
synth are fixed. This release also carries everything prepared for 0.14.0, which never went
out, so if you are coming from 0.13.0 you are getting both.

What's new

🎛️ The module bar

The original editors put the module palette in a bar grouped by category, right where you are
working, and plenty of people reach for a module there rather than through a tree. It is back,
laid out the way Clavia's is: category tabs across the top, In/Out, Osc, LFO, Env, Filter,
Mixer, Audio, Ctrl, Logic, Seq
, and the modules of the chosen category underneath, each in a
thin chip with its name.

Drag a chip onto a patch area, or click it and the module hangs off the pointer until
you click where you want it, which is the same gesture Add Module uses and lets one click
choose the area and the slot as well as the spot.

The bar remembers the tab you left it on, and View > Module Icon Bar turns it off if you
would rather have the pixels for the canvas.

The original shows pictograms rather than names, and so will this, once the artwork is our own
and takes the theme's colour like everything else on the canvas does.

📐 Frequency displays that change units

Click the frequency box on an oscillator, a slave LFO or a filter and it changes the units it
reads in, the way the original does. An absolute frequency alternates between hertz and the
note it lands on. A slave oscillator goes round three: the partial ratio, the interval in
semitones, and the frequency its master actually puts it at.

Hovering shows the units the box is not displaying, so a suboscillator can be set to
-12(Oct) and checked in hertz without touching anything. The choice belongs to each module
and is saved with the patch, in the same place the original keeps it.

Fixed

📤 A big patch can be uploaded again

A patch with around a hundred modules always failed to upload: the synth rejected it with a
checksum error partway through and the transfer died, so a patch like SY-1 RndBlips1 could be
downloaded but never sent back.

The bytes were right; the shape was wrong. Each of the sixteen sections was going out as one
packet, which works only while every section stays small, and the module-name section grows
with the module count. The synth is built to receive one continuous stream cut into small
packets, and that is what it gets now.

🔇 A failed upload no longer leaves the synth deaf

The synth waits for a packet marked as the last one before it leaves bulk-receive mode, and an
upload that simply stopped never sent one. Parked there it answered nothing at all: no
acknowledgements, no reply to the editor's handshake, not even its own idle stream. It looked
like dead hardware that needed a power cycle. It never did, and now every way out of an upload
closes the transfer properly.

🔄 Loading from the synth's bank refreshes the editor

Load a patch into a slot from the front panel and the editor follows again. A synth still
writing a large patch was not answering the request that follows, and the editor gave up
without a word and sat on the previous patch. It asks again now, and says so if the synth
really is not answering.

⚡ Buttons answer as readily as knobs

Every press of KBT, a mute or a waveform selector was putting the same message on the wire
twice and rebuilding the morph list and the DSP figures behind it, which walk the whole patch.
A knob pays that once per drag; a button was paying on every click. A parameter edit adds and
removes nothing, so none of it can have changed.

🎹 Zooming the Note Sequencer no longer retunes it

The piano roll's zoom is a display setting, but it was being sent to the synth as an ordinary
parameter, and it shares an index with the sequence's first note. Every zoom in or out moved
that note.


Also in this release: everything from 0.14.0

0.14.0 was prepared but never published, so its changes arrive here for the first time:

  • Paste and Add Module hand you the modules on the pointer, and the click that follows
    places them, which also chooses the area and the slot. Poly to Common and back, and pasting
    into Common at all, work for the first time.
  • Nothing gets buried: dropping a module on another moves the column down to make room,
    and undo puts it back.
  • Paste and Duplicate can be undone, which they never could.
  • Knobs answer vertical movement by default, and circular control reads the dial rather
    than counting turns.
  • The Drum Synthesizer's 29 factory presets ship with the editor.
  • The overlay readouts are on the View menu as well as on their function keys, and Cut,
    Copy, Paste and Duplicate are on the Edit menu
    .

The full list is in CHANGELOG.md.

Animatek NME 0.13.0: four slots, one window

Choose a tag to compare

@animatek animatek released this 02 Aug 12:49

Animatek NME 0.13.0: four slots, one window

The biggest structural change since the editor was renamed. The four slots stop being
separate operating-system windows and become sub-windows inside the main window, tiled the
way the original Clavia editor and Nomad arranged patches, and the way a tiling window
manager arranges anything else.

What's new

🪟 The four slots live inside the main window

The per-slot pop-out windows are gone. They got lost behind other applications, could not be
arranged, and meant every feature that touched the canvas had to be written twice: once for
the main window and once for a pop-out. There is one canvas now, wired once per slot.

Open slots tile themselves. One fills the work area, two split it down the middle, three
go in thirds, four go 2x2, and the layout re-flows as you open and close them. Nothing to
arrange unless you want to: drag or resize a sub-window and the windows stay where you put
them from then on, with View > Slots > Tile Slots to re-flow.

  • Ctrl+Shift+1..4 shows or hides a slot's sub-window (so does right-clicking its row in
    the slot bar).
  • Ctrl+1..4 switches to a slot, opening it if it was closed.
  • F11, or a sub-window's maximise button, blows the focused slot up to the whole area and
    back again for a closer look.
  • Ctrl+Shift+ an arrow moves the focused slot to the neighbouring tile, so the patch you
    are working on goes where you want it without closing and reopening anything.
    View > Slots > Rotate Slots shifts them all round at once.

The sub-windows slide to their new places rather than jumping. Turn that off with Animate
Slot Tiling
in Editor Options if you prefer it instant.

The inspector, header bar, browsers and status bar stay shared and follow whichever slot has
focus, and the focused sub-window is edged in the theme's text colour so you can always see
which one you are editing. Each canvas keeps its own selection while it sits in the
background, so the inspector picks up where that slot left off instead of going blank.
Dragging a module out of the browser now works into any sub-window, which never worked in the
pop-outs.

Which slots you had open, which one had focus and how they were arranged all come back when
you reopen the editor. Connecting to the Nord then lines the work area up with the slots the
synth actually has enabled, once; after that the windows are yours alone, and pressing slot
buttons on the front panel moves focus without ever closing one.

Telling the synth which slot you moved to is now coalesced, so walking focus across four
windows no longer sprays slot messages down the MIDI cable, and a front-panel slot press will
not steal focus in the middle of a cable drag.

📥 Load a synth patch into a slot you name

Double-clicking a patch in the Synth browser still loads it into the slot you are on.
Right-clicking now offers Load to Slot A..D, so with several sub-windows open you can pull
a patch into a particular one without leaving the slot you are working in first.

🔠 Bigger text across the application

Panels, browsers, the inspector, the header bar, the status bar and every dialog had their
text sizes chosen by hand, file by file, and had drifted small next to the rest of the
desktop. They now share one scale, which lifts them together and keeps their relative weights
intact. Module bodies on the canvas are deliberately untouched: their text sits inside a fixed
grid that comes from the hardware.

Fixed

  • The macro captions were painted in their own macro colour, which made green M2
    unreadable on the light Nord Classic chrome. M1 to M4 above the morph dials, and the
    Macro 1..4 headers in the Inspector, now use the theme's text colour: light on the dark
    themes, dark on Nord Classic. The dials and the colour stripes still carry the colour, which
    is what identifies a macro in the first place.

  • "Press Enter to add modules" could pile up on itself on an empty canvas. The hint was
    centred on whatever rectangle was being repainted rather than on the canvas, so a partial
    repaint left a copy behind at its own position.

  • Removed the "Recycle Windows" editor option, which never did anything: it was saved,
    loaded and drawn as a checkbox, and nothing ever read it.

Notes

Still beta. Back up any patch you care about before using this with your Nord Modular.

Animatek NME 0.12.0

Choose a tag to compare

@animatek animatek released this 01 Aug 10:45

Animatek NME 0.12.0: the patch tells you what it costs

A release about seeing what a patch is made of. Every module's DSP cost is on screen where
you choose modules, every parameter's value is a hover away, and presets stop being a
DrumSynth curiosity and become a library you can share. Plus four reported bugs fixed, two
of them in the sequencers.

What's new

📊 What everything costs, everywhere you choose it

The Nord Modular's DSP budget is the constraint that shapes every patch, and until now the
editor gave you one number for the whole thing. Each module's share now appears wherever a
module is picked or inspected: in the right-click Add Module menu ("Audio In (2.2%)"),
in the module browser, on every Quick Add row, and in the Inspector for the selected module.

The figures are rounded to the two significant figures the original Clavia editor prints,
so a patch optimised against the hardware editor reads the same numbers here. Every value
quoted in the bug report reproduces to the digit.

Double-click a module for its own cost, as the original editor does, or press F10 to
label every module at once, which is the view you want when a patch is over budget and you
are looking for what to cut.

Fixed alongside it: the Load meter kept showing the previous patch's cost after any edit
that did not come from the canvas. Adding modules over the MCP bridge read 0.0%.

🔍 Values on hover, and the function-key readouts

Rest the cursor on a knob, slider, button or display box and its value appears, in the
parameter's own units, so a cutoff reads "440 Hz" rather than "64". Drag a control and the
value follows live with no delay, which is the moment you actually want the number.

F5 reads out the whole patch at once. It existed before but only drew parameters
assigned to a morph group, and showed the raw morph range instead of a value, so what should
have been a patch readout was in practice a morph inspector. A morphed parameter now reads
out the span the morph sweeps it across, matching the original's "46Hz-2.30kHz".

F7, F8 and F9 complete the set the original editor documents: morph groups, knob
assignments and MIDI CC assignments, each labelled over the parameter it belongs to. All of
them toggle, so you can leave a readout open while you work rather than holding a key down.

🎛️ Module presets became a library

Presets used to be a DrumSynth feature hidden behind a right-click on a preset display box
57 pixels wide, and even there you could delete a preset but not recall one.

Selecting any module now puts a Presets section in the Inspector, under its assignments:
click a name to recall, the x to delete, right-click to rename, and Save current settings
to capture the module as it stands. The section folds away from a chevron in its title.
Recalling a preset is a single undo step rather than one per parameter. The same list is on
the module's own right-click menu.

Underneath, a preset is now any module's named parameter snapshot rather than a DrumSynth
structure, so the sequencers or anything else can have presets without new code. They live
in a Presets folder in your patch library, next to Patches, Snippets and Banks, as one
.pchp pack per module type. The format is plain text and meant to be edited by hand, since
transcribing the original editor's own presets is done by hand. Values are keyed by parameter
rather than by position, so a preset that names two parameters sets those two and leaves the
rest of the module alone. Presets saved by earlier versions are migrated on first run.

🍎 macOS runs on High Sierra again

The macOS package claimed Catalina as its minimum, which left older Intel Macs out for no
technical reason. Release builds now target macOS 10.13, and packaging verifies both the
bundle's minimum version and the Intel binary's own so the metadata cannot drift back.

Fixes

  • The sequencers' arrow buttons step both ways again (issue #34). The four sequencer
    modules draw their arrows as a left/right pair, but the click was split top against bottom,
    so the direction depended on which half of an arrow you hit and both arrows appeared to do
    the same thing. Only the sequencers were affected; the editor's other 50 arrow pairs are
    stacked and were always correct.
  • Clr clears the steps, not the sequencer (issue #34). It reset every parameter to its
    minimum, taking the step count down to 1 along with the loop and transport settings. It now
    empties only the per-step values, the same set Rnd randomises.
  • The Filter Bank's jacks and bypass are back inside the module (issue #35). Its artwork
    was drawn taller than the module is, so the bottom row of controls fell onto the canvas
    behind it. The row was rearranged rather than the module made taller, which would have
    overlapped whatever sat below it in existing patches. A sweep of all 110 modules found this
    was the only one affected.
  • Ctrl+I works in the main window (issue #38). It only ever worked in the pop-out slot
    windows. It now collapses the left inspector column, Ctrl+Shift+I collapses the right
    patch browser, and each panel remembers the width it was dragged to.
  • Replacing a patch in a slot no longer crashes the editor. Creating an empty patch or
    loading a file into a slot holding a patch with knob or MIDI CC assignments killed the app.
  • Module DSP costs rebuilt from Clavia's own figures. The inherited table had 47 of 109
    values outside the rounding interval of what the original editor prints, nearly all too
    high, which is why a full patch read just over 100%.

Known limitations

  • Stuck MIDI-IN notes are cleared with the synth's front-panel panic.
  • macOS builds are unsigned; Gatekeeper needs the usual right-click → Open on first launch.
  • F12 (current MIDI controller values) from the original editor is not implemented: nothing
    tracks incoming controller values yet.

Animatek NME 0.11.0: Slot windows come alive, safer uploads, more MCP reach

Choose a tag to compare

@animatek animatek released this 24 Jul 20:32

Animatek NME 0.11.0: Slot windows come alive, safer uploads, more MCP reach

A round of multi-window polish and hardware-safety fixes, plus more control for MCP
clients driving the editor.

What's new

🪟 Slot windows now track the synth live and take Randomize/Save

A popped-out slot window used to be edit-only: turning a physical knob (or watching a
light or meter move) on the front panel animated the main window's canvas but never the
slot window's, even when it was showing the very slot you were touching. Now the live
fan-out from the synth (parameter values, morph knobs, lights and meters) reaches the
focused slot's own window too, so it animates just like the main one.

Two global commands also work per-window now: Ctrl+R / Ctrl+Shift+R (Randomize,
simple/Gaussian) and Ctrl+S / Ctrl+Shift+S (Save / Save As) act on that window's slot,
honouring its own module selection. The top settings bar (macros, CPU and voice meters)
stays on the main window only, matching the original Nord Modular editor.

📂 Slot chooser when opening a patch, with a "Local" option

Opening a .pch used to silently target the active slot and, when connected, always
upload, so there was no way to just look at a patch without overwriting the synth's
current slot, and no way to load into a slot you hadn't visited yet.

Opening a patch (File > Open and both preset browsers) now shows a chooser listing A/B/C/D
with the patch currently in each slot, defaulting to the active one, plus a Local
option that loads into the editor only, without uploading. Slots whose editor patch isn't
known to match the synth (loaded Local, or loaded/built while disconnected) carry a
LOCAL badge in the slot bar; it clears once the patch is uploaded to, or fetched from,
the synth.

🤖 The MCP bridge can now persist and rename

Building a patch through the bridge used to leave it stranded in memory. Three new tools
close the loop:

  • save_patch writes a slot's patch (and its .var sidecar) to a .pch on disk.
  • store_to_bank (bank 1–9, position 1–99) uploads a slot's patch and writes it to the
    synth's internal memory once the upload is acknowledged.
  • rename_module renames a module as an undoable operation. Modules could be created
    with a name but never renamed from the bridge before.

The browsing tools are also far lighter for clients that aren't sitting on the source tree:
describe_module_type fetches a single type, list_module_types is compact with a category
filter, and list_modules reports each module's connectors and takes a container_index
filter. A new mutate_patch runs the editor's own Mutator as one undoable, throttled step.

Fixes

  • Rapid Voices changes no longer corrupt the synth slot (issue #28). Each voice change
    re-uploads the whole patch, and pressing the arrows quickly fired overlapping uploads that
    interleaved on the wire, leaving the slot corrupt (it read back as a patch named "Error"
    with no modules). Voice-change uploads are now debounced and coalesced, and a new upload
    never starts while one is still in flight. Verified on hardware.
  • The front-panel Voices arrows actually reach the synth now (issue #25). They updated
    the on-screen number but sent nothing, so the voice count never changed unless you went
    through Ctrl+P Patch Settings.
  • Renaming a module is undoable (issue #23). From the canvas menu, the Inspector, or a
    slot window. It previously changed the title outside the undo system, so Ctrl+Z couldn't
    take it back.
  • The Windows build is fixed (issue #24). An MSVC-only parse error in the Editor Options
    dialog's revert timer broke the Windows build while Linux and macOS were fine.
  • The Patch Mutator no longer wrecks pitch and cutoff. Mutate and Randomize slammed
    oscillator frequency, slave detune, filter cutoff and some LFO rates to almost nothing,
    because those parameters were read against the wrong internal range. Present since the
    Mutator shipped in 0.7.0; Interpolate and Cross were unaffected.

Grab 0.11.0 from the downloads below. Back up your patch libraries before upgrading, and
keep each patch's .var sidecar next to its .pch to preserve variations and mutation
exclusions.

Thanks for supporting Animatek NME.

Animatek NME 0.10.0

Choose a tag to compare

@animatek animatek released this 23 Jul 09:38

Animatek NME 0.10.0 — Nord Classic, the MCP Bridge, and a Theme Overhaul

The biggest visual pass since the editor got themes at all, plus a genuinely new way to
work: the editor can now be driven by an AI assistant, if you want it to be.

What's new

🎛️ "Nord Classic" — the original editor's look

A new light, warm-grey theme that echoes the Clavia Nord Modular editor: flat grey module
bodies over a darker lavender-grey canvas, black labels, grey knobs, indigo LCD-style value
readouts, and the classic signal-cable colours — all sampled from the original.

A subtle procedural grain now sits over the patch canvas on every theme, giving it a
soft paper feel instead of a flat fill. It's most noticeable on Nord Classic.

Two housekeeping notes: the old "Classic" theme (which used Nomad's own colours, not
Clavia's) is now called "Nomad", and the little-used "Frost" theme has been removed.

🤖 MCP bridge — drive the editor from an AI assistant

The standalone editor can expose a local control channel that lets an MCP client (Claude
Code, Claude Desktop, OpenCode…) work the patch as if it were you at the canvas: adding and
moving modules, connecting and cutting cables, setting parameters, creating patches and
opening them from your preset library. Everything goes through the normal undo system, so
an assistant's edits are reviewable and undoable exactly like your own.

It is off by default — no port is opened unless you ask for it. Turn it on under
Editor Options → MCP Bridge, which also shows whether the bridge is listening and gives
you the exact command to register it with your client. It binds to 127.0.0.1 only, is off
the wire entirely when the toggle is off, and can be compiled out with
-DNME_MCP_BRIDGE=OFF. Standalone app only — deliberately not in the plugin, where several
instances would fight over the same port.

🖥️ Light themes are actually usable now

A lot of the chrome had hard-coded light greys that were invisible on a light background.
Header, status bar, slot list, inspector rows, module browser, the empty-canvas hint and
the settings dialogs all follow the palette now. The menu bar repaints when you switch
themes instead of keeping the first theme's colours, and the Theme submenu's checkmark
finally follows the theme actually in use.

Buttons, pressed labels, menu highlights, combo arrows and toggles across every dialog
dropped their unrelated green/orange/red accents for neutral palette roles, so Patch
Settings, Synth Settings, Editor Options, MIDI Settings, Store to Bank and the bank
transfer dialogs all look like one application. Editor Options also picked up the standard
Ctrl+, shortcut.

🎚️ Hardware knob-assignment map in the Inspector

A compact four-panel, 18-LED diagram mirroring the physical Nord Modular knob layout sits
beside the Assignments heading. Assigned knobs glow a bright lamp green; free ones keep the
hardware's dark unlit-lens tint. It updates immediately after edits and undo/redo, and the
Knob Floater's lamps match.

Fixes

  • Editing one slot no longer waits on another slot's transfer. An upload used to hold
    back parameter edits for every slot, and a fetch discarded them outright — so with a slot
    window open, turning a knob in slot A while B was transferring did nothing. Only the slot
    actually transferring is held now. A related fix stops a background slot's acknowledgement
    from overwriting the focused slot's patch identifier. Verified on hardware, including a
    patch at 100% DSP load with two slot windows open.
  • DSP load reads to one decimal (e.g. 47.6%), matching the original editor. The
    previous whole-number rounding could nudge a 99.5% patch up to a misleading 100%.
  • Heavy editing sessions no longer run out of module slots. New modules took "highest
    index + 1", so enough add/delete cycles walked that seven-bit counter past 127 and started
    producing patches the synth rejected. Lowest free index is reused now.
  • Sequencer step numbers line up with the LEDs below them again.
  • Reversed vertical selectors show the right labels — on blocks drawn bottom-to-top
    (LFOA/LFOB among others), the displayed label could belong to a different setting than the
    one actually selected.
  • Quick Add opens on the monitor your mouse is on, not always the primary display.
  • Disk browser: a new PCH2 toggle hides legacy 2.10 patches from the list.

As always, binaries are distributed to Patreon supporters.

Animatek NME 0.9.0

Choose a tag to compare

@animatek animatek released this 21 Jul 08:54

Animatek NME 0.9.0 — Slot Window Polish & Reliability Fixes

A follow-up to 0.8.2 — one UI improvement for the new pop-out slot windows, and a batch
of correctness fixes found during a review pass right after that release shipped.

What's new

🧰 Collapsible inspector in slot pop-out windows

A slot's own window can now hide its Inspector panel (morph/knob/MIDI-CC assignments)
so the canvas gets the window's full width — handy once you've got a window sized
narrow. Click the thin arrow strip at the canvas's left edge, or press Ctrl+I while
the window is focused, to toggle it back and forth.

🩹 Reliability fixes from a post-0.8.2 review pass

  • A stale internal flag could let a real patch fetch get mistaken for an abandoned
    background prefetch and get corrupted.
  • Opening a .pch file while viewing a slot that didn't have hardware focus could
    silently upload it to the wrong physical slot.
  • A queued batch of parameter changes for one slot (e.g. a Mutator audition in a
    background window) could be wiped out by an unrelated fetch on a different slot.
  • Morph keyboard (velocity/note) assignment could target the wrong slot.
  • Importing a legacy 2.10 patch with a morph keyboard assignment set could silently
    corrupt that assignment — an over-broad string match was catching it alongside the
    intended output-routing fix from 0.8.2.

As always, binaries are distributed to Patreon supporters.