Documentation / Swarm

Swarm — User Manual

Documents version 1.2.1 Download as PDF Product page → Français

Swarm is an audio effect plugin that takes care of one difficult thing: making your tracks get out of each other's way, all by themselves. Drop one instance of Swarm on each track, link them together, and they form a swarm that self-regulates in real time. The mix breathes and balances itself, without you automating EQs or sidechains.


In two sentences

Every Swarm instance watches its own track (where it sits in the spectrum, whether it is loud or quiet, where it is in the stereo field). All instances in the same group then talk to each other in real time through shared memory, ask each other "where are you at?", and each one subtly adjusts its own EQ, gain and pan so the whole stays coherent and clear.

The result: a mix that regulates itself. Colliding frequencies move apart. Levels come together. All of it without you touching a single automation lane.


Installation

macOS

  1. Download Swarm-1.2.1-macOS.dmg.
  2. Open the .dmg and double-click the .pkg.
  3. Follow the installer. Nothing to work around: since 1.2.0 both the disk image and the installer are signed with an Apple Developer ID and notarized by Apple, so macOS opens them normally. The publisher shows as Tony Cuny — that is the legal name behind Xeni Audio, which is what Apple puts on the certificate.
  4. The plugin installs into ~/Library/Audio/Plug-Ins/ (VST3, CLAP and AU).
  5. Restart your DAW and rescan your plugins.

Windows

With the installer (recommended)

  1. Download XeniAudio-Swarm-V1.2.1-Installer.exe.
  2. Run it and follow the steps. The Windows installer is not signed yet — only macOS is — so SmartScreen may warn that the publisher is unknown: click "More info", then "Run anyway". Your antivirus may also flag a brand-new unsigned installer; that is a reputation heuristic, not a detection. If you would rather avoid it, use the .zip below, which contains the same plugin files.
  3. The installer places the plugins in the standard locations:
    • VST3 → C:\Program Files\Common Files\VST3\
    • CLAP → C:\Program Files\Common Files\CLAP\Swarm\
  4. Restart your DAW and rescan your plugins.

The installer registers an entry in "Apps & features", so Swarm can be removed from Windows Settings like any other application.

Manual install (portable ZIP)

  1. Download Swarm-1.2.1-Windows.zip.
  2. Extract the archive.
  3. Copy the contents of the VST3 and CLAP folders into the locations your DAW scans (typically C:\Program Files\Common Files\VST3\ and C:\Program Files\Common Files\CLAP\).
  4. Restart your DAW and rescan your plugins.

Linux

  1. Download Swarm-1.2.1-Linux.tar.gz.
  2. Extract the archive.
  3. Copy Swarm.vst3 into ~/.vst3/ and Swarm.clap into ~/.clap/.
  4. Restart your DAW and rescan your plugins.

Quick start — 3 steps

  1. Insert one instance of Swarm on each track you want in the swarm (for example: guitar, vocals, bass, keys, drums).

  2. Give every instance the same Link Slot. In each plugin window, set "Link Slot" to the same number (0 by default). Every instance sharing a slot forms one swarm. You can run several swarms in the same mix (slot 0 for the rhythm section, slot 1 for the vocals, and so on).

  3. Raise Intensity. Set it to 100% to begin with. You will hear the swarm come alive: clashing frequencies move apart, levels converge, the stereo image opens up. If the effect is too strong, lower Intensity. If you want it more pronounced, push it beyond 100% (up to 300% for an extreme effect).

That's it. Everything else is optional.


Where Swarm goes in the chain

The most common question about Swarm, and the manual used to skip it.

Last on the insert chain, after your corrective processing.

Put your EQ, your de-esser and your compressor first, as you always would. Those decisions belong to the source: a boxy guitar is boxy whether or not anything else is playing, and you fix that once and stop thinking about it. Swarm should see the track you have already decided is right.

What Swarm handles is the other kind of problem — the one that only exists because of what is playing alongside it, and only for as long as it is playing. The guitar and the synth are not individually wrong; they are wrong together, in the chorus, and fine apart in the verse. You cannot fix that with a static setting, because the problem is not static. That is the whole reason Swarm is continuous rather than a set of moves you dial in.

So the rule of thumb:

Bus processing is a reasonable place for it too — one instance per sub-group rather than per track — and that scales better on large sessions. See the hierarchical recipe under Link Slot.


The four forces — what Swarm does

Swarm applies four rules, each adjustable independently. Think of them as four invisible assistants, each looking after one aspect of the mix.

Separation — spectral separation

When two tracks step on each other in the same frequency range (say, a guitar and a keyboard fighting over 2 kHz), Separation gently pulls one back and pushes the other forward, so they make room for each other. It is the equivalent of a dynamic EQ, except you never have to say where to cut: the swarm decides on its own, in real time, based on what the other tracks are playing.

Alignment — level alignment

Alignment helps tracks settle at a common level and move together. When one track jumps in volume, the others gently follow. This is the "groove" of the mix. Alignment is not aggressive compression: it adjusts each track's gain very subtly so the whole holds together, like a band of musicians listening and adapting to each other in real time.

Cohesion — tonal cohesion

Cohesion gently pulls each track's timbre towards a shared centre of gravity. If one track is very bright and another very dark, Cohesion brings them closer without flattening them out — each track keeps its identity, but the whole sounds coherent. A dead zone protects the extremes (a big bass will not suddenly turn bright).

Pan Spread — stereo separation

Pan Spread pushes apart tracks that are piling up in the same spot of the stereo image. Guitar to the left, keys to the right — without you touching a pan control. It is mono-compatible: no phase colouration, no delay. If you want a track to stay dead centre (drums, bass, kick), enable "Pin Center" on that instance and it will be excluded from the stereo motion.


The main controls

Control What it does Tip
Intensity The overall strength of the swarm. Drop to 0% to disable everything. Push to 300% for an extreme effect. Start at 100%. This is your master swarm level.
Separation The weight of spectral separation (anti-masking). If two tracks are stepping on each other, raise it.
Alignment The weight of level alignment. Light by default (20%). Too strong and the mix loses dynamics.
Cohesion The weight of tonal cohesion. 50% by default. A good balance between identity and coherence.
Pan Spread The weight of stereo separation. 30% by default. Raise it for a wider mix.
Reactivity How fast the swarm reacts. At 0% it is glacially slow. At 100% it reacts bar by bar. 50% is the original setting, validated on three mixes.
Bias Which end of a spectral clash this track claims. Positive = it takes the highs, negative = the lows, centre = position decides. Leave at centre until two tracks separate the wrong way round. Per instance, never shared.

Advanced controls

Crest — the transient designer

The Crest knob works on the track's transients. It analyses the difference between the peaks (attacks) and the body of the signal, then adjusts each instance's dynamics.

Important: Crest needs at least 8 dB of dynamic range to work properly. If your track is already heavily compressed (less than 8 dB of crest), the knob greys out — that is expected, there is nothing left to sculpt.

Pin Center — lock to the centre

Enable "Pin Center" on tracks that must stay in the middle of the stereo image: drums, bass, kick. Those tracks are excluded from Pan Spread's motion.

Every instance sharing the same Link Slot number forms one swarm. By default everyone is on slot 0. Change the number to create separate groups.

There are 16 slots (0–15), and Swarm supports 64 instances in a session, spread across those slots however you like. That is enough to give a full orchestral template one slot per section — strings, woodwind, brass, percussion, and so on — instead of forcing everything into one swarm.

Instances only ever regulate each other within a slot. Nothing crosses from one slot to another, so a busy percussion group cannot pull on your strings.

A practical note: a swarm gets its character from how different its members are. Twenty near-identical string tracks in one slot will mostly cancel each other out, which is why splitting into sections tends to sound better than one giant group — not just tidier.

Recipe: hierarchical slots

This one came from a user, and it is better than anything suggested above. Rather than putting every track in one swarm, negotiate at two levels:

  1. Inside each sub-group, give the stems their own slot. Drums on slot 1, guitars on slot 2, keys on slot 3, and so on. Each set of stems sorts itself out among things it is actually comparable to.
  2. Then put one instance on each sub-group bus, and give all of those the same slot — say slot 0. Now the sub-groups negotiate with each other, as whole entities.

The reason it works is the practical note above: a swarm only has something to say when its members are different enough to be worth separating. Two levels means each swarm compares like with like, and a kick is never asked to get out of the way of a backing vocal.

It also scales. Sixty tracks in one slot is a swarm where everything is pulling on everything; the same session as six groups of ten plus a six-member top level stays well inside the 16 slots and 64 instances, and each negotiation stays legible in the feature space.

Enable "Link Params" so that every instance in a given Link Slot shares the same force settings — the first 8 bars: Intensity, Separation, Alignment, Cohesion, Pan Spread, Reactivity, Crest and Crest Spread. (Bias is not among them; see below.) When you change a setting on one instance, all the others in the same group inherit it. This is handy when you want to steer the whole swarm from a single window, without opening every instance.

Pin Center, Bypass and Link Slot stay local to each instance, even when Link Params is on.

BYPASS ALL (top right, next to BYPASS) is the exception: it is a group switch like Link Params. Clicking it on any instance bypasses every instance sharing that Link Slot, and clicking it again brings them all back. It works whether or not the other windows are open, and it crossfades rather than switching hard, so you can flip it mid‑playback without a click on every track.

Use it to answer "what is the swarm actually doing to my mix?" — the per‑instance BYPASS next to it only silences the processing on the one track you are looking at. Bypassed instances stay members of the swarm: they keep feeding their own analysis to the others, they just stop applying the swarm's moves to themselves.

Link Params is a group switch. Clicking it on any instance turns it on — or off — for the whole Link Slot at once. You do not need to enable it on each instance, and you cannot have some instances linked and others not within the same slot.

Turn it off when you want per-track control. Intensity is one of the shared settings, so while Link Params is on, every track yields to the swarm by exactly the same amount. That makes it impossible to give one track priority over another — see the next section.


Setting priority — which track wins

Swarm has no leader. No instance is in charge, and none of them negotiates on behalf of the others. So how do you tell it that the kick matters more than the bass?

You set priority with Intensity, per instance.

Intensity scales the forces applied to that instance only. What an instance publishes to the swarm — where it sits in the spectrum, its level, its pan, its crest — does not depend on its own Intensity at all. So an instance at low Intensity yields less, while still pushing everyone else exactly as hard.

Take that to the limit and you get an anchor:

Intensity at 0% on the kick makes it a pure anchor. The swarm never moves it, and it still moves everything else. Keep the instance loaded — that is what feeds the kick's position into the swarm.

That is the whole mechanism. There is no leader flag because you do not need one: priority is simply who yields. Give the tracks that must stay put a low Intensity, and the tracks that can move a high one.

Remember that Intensity is shared when Link Params is on. Turn Link Params off before setting priority, otherwise every track gets the same value and nothing can take precedence.

Bias — choosing the direction

Intensity decides who yields. Bias decides which way.

By default Separation works purely on position: whichever instance sits higher in the spectrum than the rest of the swarm gets pushed brighter, whichever sits lower gets pushed darker. Nothing knows that one of them is a guitar. So when two sources genuinely occupy the same range — a guitar and a synth in the same register is the classic case — the force is at its strongest and the direction is decided for you.

Bias is how you overrule that. It is the ninth bar, to the right of the force bars, and it is per instance:

Bias Meaning
Centre (0%) Position decides. The default, and how every version before 1.2.0 behaved.
Positive "I take the highs." This track claims the top of any clash it is in.
Negative "I take the lows." It yields the top and takes the bottom.

Set the guitar to -40% and the synth to +40% and the split stops being arbitrary: the synth gets the air, the guitar keeps the body, and they still separate by exactly as much as they actually overlap.

Two things worth knowing:

For a pair, biasing one of them is usually enough. Push both in opposite directions only when you want the split to be emphatic.

Recipe: kick and bass

This is the hardest pair in any mix, because the two genuinely overlap exactly where Separation pushes hardest.

Track Intensity Bias Pin Center Why
Kick 0–30% -30% On Stays put, keeps the low end anchored, and claims the bottom
Bass 100%+ +30% Off Does the moving, and moves upward out of the kick's way

The Bias column is what stops the pair separating the wrong way round. Kick and bass sit close enough in centroid that, left to position alone, which of them brightens on any given bar depends on the arrangement. Two small opposite biases make it consistent: the kick keeps the sub, the bass finds the room above it.

If it still sounds busy, lower Reactivity on the bass. Lower is slower. Most of what people hear as two tracks "fighting" is simply the two of them moving at each other faster than the music does.

And if you would rather they never interact at all, put them in different Link Slots.


The interface — what you see

Swarm's interface is designed to be readable at a glance, even while you are mixing.

The feature space (the big central area)

This is Swarm's signature. Each instance is drawn as a glowing dot in a graph. The horizontal axis shows where the track sits in the spectrum (left = lows, right = highs). The vertical axis shows its level (higher = louder).

That distinction matters, so it is worth being precise about it.

The markers show the input. Swarm measures each track before it processes it — deliberately, because an instance has to keep its place in the swarm even while it is bypassed. So a marker does not move because Swarm corrected something; it moves because the music moved.

The arrows show the output. The vertical part of an arrow is the level correction, in dB, read directly off the same dB scale as the axis. The horizontal part is the tilt EQ, converted to a distance using a fixed convention: 6 dB of tilt is drawn as one octave of apparent brightness. It is a legible convention, not a measurement — a tilt EQ does not literally move a track's spectral centroid.

So: markers spreading apart on their own is the music. Arrows pointing apart is Separation. Arrows pointing up or down toward the rest of the flock is Alignment. When nothing is playing, or when the flock is bypassed, the arrows shrink to nothing and disappear.

Earlier versions of this manual said that a dot rising to join the others was Alignment at work. That was wrong: the dots never showed the corrections at all. The arrows, added in 1.2.0, are what fixes it.

The force bars

In front of the feature space you will see 9 coloured horizontal lines. Each one is a control. Click and drag vertically to adjust the value. Double-click to reset to the default. Use the mouse wheel for fine adjustment.

When "Link Params" is on, an orange halo surrounds the first 8 — those are the ones shared across the group. Bias, the ninth, sits deliberately outside the glow: it is local to this instance and is never shared. If the halo is on, anything inside it belongs to the swarm and anything outside it is yours alone.

The flock legend

To the right of Pin Center / Link Slot / Link Params you will find one row per instance in your swarm, each carrying the colour and shape of that instance's marker in the feature space. It answers the question the graph alone cannot: which marker is which track?

Hover a row and that instance's marker gets a ring in the feature space, while the panel below shows exactly what the swarm is applying to it. The rows never move, so there is nothing to chase with the mouse.

Naming your instances

Under the Swarm title, each instance shows its name — this is what the other instances display for it in the legend and in the feature space.

Double-click the name to change it — the small pencil beside it is there to mark it as editable. Type whatever identifies the track to you; it is saved with the project.

On VST3 the name starts as the host's track name, so in most cases there is nothing to do. On AU and CLAP the host does not give us the track name, so instances start as "Swarm #1", "Swarm #2" and so on, and renaming them by hand is worth the thirty seconds — a legend full of numbers tells you nothing.

The action panel — what the swarm is actually doing

Just below the three buttons, four bars show the corrections being applied right now:

Bar What it shows
EQ The 3-band tilt, in dB. Positive lifts the highs, negative lifts the lows.
GAIN The level correction from Alignment, in dB.
PAN The stereo displacement from Pan Spread.
TRAN The transient shaping from Crest, in dB.

Each bar fills from the centre, and takes the colour of the force that produces it — the same colour that force has in the bars above. The label on the left is always the reliable way to read the panel; the colour is only there to tie the row back to its force.

On colour. Up to 1.1.2 Separation was red and Alignment was green, stacked directly on top of each other: the one pairing that disappears for anyone with red-green colour vision deficiency, which is roughly one man in twelve. 1.2.0 moves the whole force palette to a colourblind-safe one, and no part of the interface now depends on telling two hues apart — every bar is labelled, and instance markers carry a shape as well as a colour.

By default the panel shows your track, with an orange strip down its left edge. Hover a row in the flock legend and it switches to that instance, the strip taking the colour of its dot. This is how you check what Swarm is doing to a track without opening its window.

When nothing is playing every bar sits at zero: silent tracks leave the swarm, and a swarm with nothing to arrange applies nothing.

Presets

The preset selector at the top right offers 5 ready-made settings:

You can save your own presets, compare them (A/B), and undo/redo your changes (20 levels).

The meter bar (at the bottom)

Five small horizontal meters give you a technical overview: IN (input level), OUT (output level), GR (gain reduction applied by the swarm), Crest (the track's dynamic range), and LUFS (perceived level, BS.1770 standard, over 3 seconds).

The help bar (right at the bottom)

Hover any control with the mouse and an explanation appears at the bottom of the window. It tells you what that control does, in plain language.


Licensing and demo mode

Swarm runs in demo mode until you activate it. In demo mode the sound is muted for 5 seconds every 60 seconds (with fades, to avoid clicks). Everything else works normally: you can try every feature and save your settings.

Every demo instance mutes at the same moment, so the mix drops out as a whole and comes back as a whole. That way you can still judge how the swarm balances your tracks against each other — which is the whole point of trying it. Offline bounces are unaffected by this and keep the usual cadence.

To activate Swarm:

  1. Click the "DEMO" badge at the top right.
  2. Enter your license key (format XENI-XXXXXXXX-XXXXXXXX, or a Gumroad key).
  3. Click "Activate".

You can also paste your key with the "Paste" button or the keyboard shortcut (Ctrl+V / Cmd+V).

Once activated, the DEMO badge disappears and the sound is no longer muted.


Mixing tips with Swarm


Supported formats

On macOS the plugin is universal: it runs on both Intel Macs and Apple Silicon Macs (M1, M2, M3...).


Known limitations


Support

Website: https://xeni-audio.com


Swarm v1.2.1 — Copyright 2026 Xeni Audio. All rights reserved.


Something unclear, or missing from this manual? Write to support@xeni-audio.com.