MESSYQUEST

TAPEWORM

Cassette-tape degradation for Linux. Saturation, wow, flutter, motor bog, dub generations, dropouts, hiss, hum and a dub spring tank.

TAPEWORM editor: pixel-art cassette deck with Dry/Wet and Output knobs, tape type selector, and four panels of controls: tape drive and tone, motor wobble, wear and degradation, dub spring tank.

Tape Drive & Tone

+10 0 -10 -20 -30 20 50 100 200 500 1k 2k 5k 10k 20k Hz dB
  • Type I Ferric
  • Type II Chrome
  • Micro
Tape type. Small-signal response at Drive 0 dB, Head Bump 3.5 dB. Bump at 93 Hz (Ferric), 122 Hz (Chrome), 198 Hz (Micro); Micro band-limits like a dictaphone.
+10 0 -10 -20 -30 -40 20 50 100 200 500 1k 2k 5k 10k 20k Hz dB
  • 1 pass
  • 2 passes
  • 3 passes
  • 4 passes
Dub generations. Each pass darkens the copy and adds low-mid boxiness. Switching crossfades over ≈ 25 ms.

Saturation

+2 +1 0 -1 -2 -6 -4 -2 0 2 4 6 input × drive out
  • Bias -100
  • Bias +0
  • Bias +100
Transfer curve, from the source: 5/3 · tanh(0.6 · (d + 0.15 · bias · d|d|)). Negative Bias bends the curve back: hard-driven, it folds the wave.
0 -20 -40 -60 -80 -100 -120 harmonic dBc H2 +0 dB H2: -119.3 dBc +12 dB H2: -99.5 dBc +24 dB H2: -92.8 dBc H3 +0 dB H3: -42.7 dBc +12 dB H3: -21.1 dBc +24 dB H3: -10.8 dBc H4 +0 dB H4: -156.9 dBc +12 dB H4: -113.9 dBc +24 dB H4: -94.7 dBc H5 +0 dB H5: -83.8 dBc +12 dB H5: -40.2 dBc +24 dB H5: -17.6 dBc H6 +0 dB H6: -171.6 dBc +12 dB H6: -129.9 dBc +24 dB H6: -97.6 dBc H7 +0 dB H7: -125.1 dBc +12 dB H7: -59.4 dBc +24 dB H7: -23.8 dBc H8 +0 dB H8: -168.7 dBc +12 dB H8: -147.3 dBc +24 dB H8: -101.4 dBc H9 +0 dB H9: -162.0 dBc +12 dB H9: -78.9 dBc +24 dB H9: -30.2 dBc
  • Drive +0 dB
  • Drive +12 dB
  • Drive +24 dB
Harmonics of a 1 kHz tone at −6 dBFS, Type I. Odd orders only; even orders sit at the measurement floor. Bars clip at −120 dBc.

Motor Wobble (Sag)

+40 +20 0 -20 -40 1 s 2 s 3 s 4 s 5 s time cents
  • Default (wow 35, flutter 20)
  • Maximum (wow 100, flutter 100)
Pitch deviation of a 1 kHz tone, 1–5 s into a render. Slow wow plus fast, jittered flutter: ≈ 14 cents peak-to-peak at defaults, ≈ 62 at maximum. Motor Bog adds pitch sag on loud material.

Spec Sheet

Formats
CLAP 1.2 · VST3 (one binary)
Platform
Linux x86_64, glibc ≥ 2.35
Editor
X11 / XWayland + OpenGL, 1152 × 768
Latency
15 ms, reported to host
Latency @ 44.1 / 48 / 96 / 192 k
662 / 720 / 1440 / 2880 smp
Sample rates tested
44.1 – 192 kHz
CPU
≈ 105–150 ns / sample
Worst block (P99)
≤ 3.1 % of deadline
Audio-thread allocations
0
Oversampling
none (1×)
Channels
stereo in / out
Parameters
21, all automatable
CLAP ID
com.messyquest.tapeworm
Built with
Rust 1.99.1 · nih-plug · egui
Tested host
REAPER 7.83
Binary SHA-256
d77736b7…02dc432
ParameterRangeDefault
Tape TypeFerric · Chrome · MicroFerric
Drive0 – +24 dB+6 dB
Bias−100 – +100+15
Head Bump0 – 9 dB3.5 dB
Tape Age0 – 10025
Wow0 – 10035
Flutter0 – 10020
Motor Bog0 – 10045
Pinch Bump0 – 10015
Azimuth Skew0 – 10025
Generations1 – 42
Dropouts0 – 10020
Tape Hiss0 – 1000
Ground Hum0 – 1000
Hum Frequency50 · 60 Hz60 Hz
Spring Level0 – 10025
Spring Decay0 – 10050
Spring Damping0 – 10060
Spring RoutingPre · Post tapePre
Dry / Wet0 – 100 %100 %
Output Gain−24 – +12 dB0 dB

Install

# per user, no root
tar -xzf tapeworm-v0.1.0-linux-x86_64-clap.tar.gz
cp tapeworm-v0.1.0-linux-x86_64-clap/tapeworm.clap ~/.clap/

tar -xzf tapeworm-v0.1.0-linux-x86_64-vst3.tar.gz
cp -r tapeworm-v0.1.0-linux-x86_64-vst3/tapeworm.vst3 ~/.vst3/

# verify first
sha256sum -c SHA256SUMS

Then rescan plug-ins. In REAPER: Preferences → Plug-ins → CLAP / VST → Re-scan.

Known Limits