Repository navigation
Releases: animatek/Animatek-NME
Release list
Animatek NME 0.19.0: the one that stops pretending
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+Rleaves 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
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
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.17vwhile 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.
Loading35 - BELLS++stored it on the synth under that name instead ofBELLS++. - 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
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
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
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
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+Iworks 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+Icollapses 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
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_patchwrites a slot's patch (and its.varsidecar) to a.pchon 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_modulerenames 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
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 misleading100%. - 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
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
.pchfile 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.