hermes-official-plugins
☤ The official plugins for Hermes Agent, built and maintained by Nous Research: Home Assistant, Spotify, Claude Subscription DirectSDK and more, one install away from the Hermes plugin catalog.
翻訳待ち
An evil West-Coast style complex oscillator for the Electrosmith patch.Init and VCV Rack — two oscillators where the modulator shapes the primary through through-zero FM, a wavefolder (timbre + symmetry), and AM / ring mod — plus three ways to make it misbehave
翻訳待ち
Loading the full README.
Read the full README ↗Listen to it → Fourteen renders from the same DSP the module runs.
An evil West-Coast style complex oscillator for the Electrosmith patch.Init and VCV Rack — two oscillators where the modulator shapes the primary through through-zero FM, a wavefolder (timbre + symmetry), and AM / ring mod — plus three ways to make it misbehave: self-feedback, chaos (the primary FMs the modulator back) and a Lorenz-attractor modulator, and a unison stack of up to four drifting voices and a sub. Three character macros play all of it from the front panel: FLESH, MALICE and LEGION. One portable DSP core, three targets:
dsp/ portable engine — no heap, no platform headers, volts in / volts out
hw/ Electrosmith patch.Init() firmware (libDaisy)
vcv/ VCV Rack 2 plugin
test/ host tests, WAV renders, aliasing analysis
┌──────── chaos: primary FMs the modulator back ◄─────┐
▼ │
modulator ──┬───────────────────────────────────────► MOD OUT
(sine/tri/ │ linear through-zero FM │
saw/sq/ ├──► primary (sine core) ◄── self-feedback PM ──┤
Lorenz) │ │ ─────────────────────────────────────┘
├──► timbre mod ─► wavefolder (timbre, symmetry; exact DC removal)
│ │
└──► AM / ring ─────►× ─► 4× decimator ─► OUT
Everything runs 4× oversampled and is decimated with a 129-tap Kaiser FIR.
There are no words on the panel, only sigils. The top row is the voice: pitch and the three character macros. Below them are the settings the patch.Init keeps on its shift layer. Each sigil repeats on the jack that modulates it, so the panel reads in columns.
| Sigil | Means |
|---|---|
| Eye (lashes) | Pitch · V/OCT input |
| Zigzag in a circle | FLESH macro · its CV |
| Eight-arrow star | MALICE macro · its CV |
| Four rings | LEGION macro · its CV |
| Vesica (two rings) | Ratio, or modulator pitch when free |
| Triangle in a circle | Modulator shape. The red last stop is Lorenz |
| Hourglass | Symmetry trim · its CV |
| Slit eye | Fine tune |
| Key | Ratio lock. The red arrow is up = locked |
| Crossed ring ⊗ | Routing: FM, + timbre mod, + AM, + ring · its trigger input |
| Spiral | External FM input |
| Pillars and lightning | Sync input |
| Blood drop (solid) | Primary out |
| Blood drop with rings | Modulator out |
Bone rings mark inputs, red rings mark outputs, and the outputs sit on the altar. The hand, the edge runes and the summoning circle are decoration.
Each macro sweeps several parameters at once, each over its own stretch of the knob, so one knob (or one CV) tells one story. +/-5 V at a macro's jack sweeps its whole range, so an envelope into FLESH opens the whole voice.
| Macro | Sweeps | Along the knob |
|---|---|---|
| FLESH | FM index, wavefold, symmetry, modulator → timbre | FM sidebands first, then the fold opens (glassy, then snarling), then asymmetry and a moving fold |
| MALICE | self-feedback, chaos, extra FM | The lower half is feedback only: sine to saw, still harmonic. The edge into chaos runs from about 0.55 to 0.8. The top is possessed |
| LEGION | sub, voices, spread, drift | The sub arrives first, then detuned voices fade in one by one, then they drift apart |
The host tests hold each macro to its story: FLESH's brightness climbs at every
step (220 Hz → 6.8 kHz centroid), MALICE stays harmonic to halfway and is fully
inharmonic by 0.9, and LEGION's beating grows from 2.8× to 4.8×. The curves
live in dsp/Macros.hpp.
| 1V/oct tracking, −3 V … +5 V | worst error 0.09 cents |
| Alias energy, heavy fold @ 2.96 kHz | −9 dB → −84 dB with 4× |
| Alias energy, FM index 1.0 @ C7 | −40 dB → −84 dB with 4× |
| Self-feedback 0 → 0.5 → 1 | pure sine (H2 −117 dB) → saw-like (H2 −10 dB) → noisy |
| 60 s worst-case evil (fb, chaos, Lorenz, all max) | finite, alive, no DC lock-up, at 4 pitches |
| Output range | ±5 V nominal, DC-free; heavy feedback/chaos peaks are soft-capped at 7.2 V |
| FLESH 0 → 1: spectral centroid | 220 Hz → 6.8 kHz, rising at every step |
| MALICE: inharmonic share at 0.5 / 0.8 / 0.9 | 0.00 / 0.97 / 1.00 |
| LEGION 0.4 → 1: beating | 2.8× → 4.8× |
| Unison: 4 voices, no spread vs 1 voice | identical to within 0.05 mV |
| Unison: 4 voices spread, biased fold | beat-rate wobble 0.05 V (0.26 V without the envelope-aware DC fix) |
| patch.Init flash / RAM | 106 KB of 128 KB / 36 KB (arm-gcc 13.3) |
deaths-hand.bin from the latest release.
Every asset is signed; see Verifying releases.deaths-hand.bin and flash.brew install --cask gcc-arm-embedded
brew install dfu-util
git submodule update --init --recursive # pulls lib/libDaisy
make -C lib/libDaisy # once
make -C hw # → hw/build/deaths-hand.bin
make -C hw program-dfu # after BOOT + RESET
make -C hw CPU_METER=1 builds a variant that prints DSP load once a second over
USB serial (screen /dev/tty.usbmodem* 115200). That's the number to watch as
the engine grows.
Each knob has two jobs. Hold the button to reach the shift layer. A parameter only moves once its knob passes through the stored value (soft takeover), so switching layers never makes the sound jump.
This is the beginning of the README. Read the rest at the original. Read the full README ↗