MIXI-CUT Protocol Specification v0.3.0
Overview
MIXI-CUT is an open-source timecode protocol for DVS (Digital Vinyl System) vinyl, designed from scratch for artisanal lathe cutting. Not reverse-engineered from Serato or Traktor.
v0.3.0 is optimized for EDM (100-200 BPM) with DJ resilience features: Barker-13 sync word, CRC-16 fast-reject, multi-rate encoding, velocity subcarrier, vinyl brake detection, tonearm bounce recovery, PLL integral drain, and low-speed dead zone. Validated with 1000+ Monte Carlo tonearm bounce simulations.
Signal Design
Carrier: Stereo Quadrature at 3000 Hz
- Left channel:
sin(2 * pi * 3000 * t) - Right channel:
cos(2 * pi * 3000 * t) - Amplitude: -1.4 dBFS (0.85 linear)
The 90-degree phase offset provides:
- Instantaneous direction detection without waiting for a full cycle
- 2.5x spatial resolution vs Serato's 1 kHz mono
- 0 ms PLL re-lock after needle skip — validated across 1000 tonearm bounce scenarios
Why 3 kHz: high enough to triple resolution vs legacy systems, low enough to survive vinyl wear, dust, and cheap phono preamps. At 33 1/3 RPM, one groove revolution at the inner radius (~60mm) contains ~5400 cycles.
Position Encoding: Missing Cycle Modulation
Every 50 carrier cycles (~16.7 ms), one cycle's amplitude is modulated to encode a bit:
- Bit 0: Full amplitude (no change)
- Bit 1: Amplitude reduced to 25% via raised-cosine envelope
| Parameter | v1 | v0.1/v0.2 | Why |
|---|---|---|---|
| Position bits | 16 (max 655s) | 24 (max 167772s) | v1 overflowed at 10:55 |
| Cycle interval | 100 cycles | 50 cycles | 2x denser, faster lock |
| Frame period | 1.6s | 0.93s | Position acquired in < 1s |
| Transition shape | Hard cut | Raised cosine | No spectral splatter |
| RS parity | 4 bytes | 4 bytes | Sufficient for 50ms dropout |
Position Frame Format (v0.3)
[13-bit Barker-13 sync][24-bit position][16-bit CRC-16][32-bit RS parity]- 13-bit Barker sync: Frame preamble with sidelobe ≤ 1/13 for fast acquisition
- 24-bit position: Centisecond resolution (0.01s), range 0-167772s
- 16-bit CRC-16: Fast-reject of corrupted frames (CRC-16/ARC, init=0xFFFF)
- 32-bit Reed-Solomon parity: 4 parity bytes (GF(2^8), poly 0x11D)
- Total: 85 bits per frame, 4250 carrier cycles (1.417 seconds)
| Parameter | v0.1 | v0.2 | v0.3 | Why |
|---|---|---|---|---|
| Position bits | 16 | 24 | 24 | 46 hours range |
| Cycle interval | 100 | 50 | 50 | 2x denser |
| Sync word | — | — | Barker-13 | Fast acquisition <500ms |
| CRC | — | — | CRC-16 | O(1) frame rejection |
| Frame period | 1.6s | 0.93s | 1.42s | Room for sync+CRC |
| Inner groove | Normal | Normal | 2x dense | Better SNR compensation |
| Velocity channel | — | — | 500 Hz AM | Bypasses mass-spring lag |
Multi-Rate Encoding (v0.3)
Frame density varies by position to compensate for groove velocity:
- Outer groove (0-300s): Normal rate — 1 frame / 1.417s
- Inner groove (>300s): Double rate — 1 frame / 0.708s
Rationale: inner groove has lower linear velocity → lower SNR → needs more redundancy.
Velocity Subcarrier (v0.3)
A 500 Hz AM-modulated envelope on the carrier encodes instantaneous speed:
- At speed=1.0x: No modulation (envelope = 1.0)
- At speed≠1.0x: ±15% amplitude modulation at 500 Hz
- Decoder can extract speed from the envelope without waiting for mass-spring
Lead-in / Lead-out
| Region | Duration | Purpose |
|---|---|---|
| Lead-in | 2.0s | Digital silence for safe needle placement |
| Fade-in | 10ms | Quadratic ramp (no click) |
| Signal | configurable (8/10/12/15 min) | Timecode carrier + position encoding |
| Fade-out | 10ms | Quadratic ramp (no click) |
| Lead-out | 1.0s | Run-out groove protection |
Loop Mode (Locked Groove)
With --loop flag, signal duration is snapped to an exact number of carrier cycles so the last sample's phase connects seamlessly to the first. This enables locked-groove cutting where the stylus loops infinitely without phase discontinuity.
Phase error: 0.0000 degrees (verified).
File Format
mixi_timecode_v2.wav
Duration: ~903s (15 min signal + 3s silence)
Sample rate: 44100 Hz
Bit depth: 16-bit PCM
Channels: 2 (stereo)
Level: -1.4 dBFS peak
DC offset: removed (< 0.001)Decoder Architecture (v0.2)
The reference decoder uses a 3-stage pipeline with v0.2 DJ resilience features:
Stage 1: Bandpass Filter
Biquad centered at 3 kHz, Q=2.5. Rejects rumble, hum (50/60 Hz), and hiss.
Stage 2: PLL Demodulator
- Bandwidth: 8% of carrier (240 Hz)
- PI ratio: kp/ki ~ 20:1
- Amplitude gate: PLL coasts on silence (< -46 dBFS)
- Lock detection: EMA of cos(phase_error), tau = 50 ms
- v0.2: Integral drain — 2%/sample decay when unlocked, prevents bias accumulation during needle drops for faster re-lock
Stage 3: Mass-Spring-Damper Filter
Simulates Technics SL-1200 platter physics:
- Normal play: inertia=0.95, traction=0.05 — absorbs wow/flutter
- Scratch detected (delta > 0.3): instant snap to vinyl speed
- Spinback detected (speed < -2.0x for > 230ms): triggers digital FX
- v0.2: Adaptive stop — 10x traction when vinyl near-stopped (stop response: 3ms vs 2003ms in v2)
- v0.2: Vinyl brake detection — gradual deceleration triggers responsive tracking
- v0.2: Low-speed dead zone — snaps to 0.0 below 2% speed (prevents PLL noise oscillation)
- v0.2: Signal-aware pipeline — feeds 0.0 to mass-spring when signal disappears (prevents PLL coast drift)
Tonearm Bounce Physics (v0.2)
The protocol is validated against a physics model of the SL-1200 MK2-7 tonearm:
Physical Model
- Effective mass: ~18-22g (with DJ cartridge)
- Tracking force: 2-5g (DJ use range)
- Coefficient of restitution: 0.2-0.6 (vinyl surface)
- Gravity: 9.81 m/s^2
- Groove spacing: 200 lines/inch
Bounce Sequence
- Normal play at 1.0x
- External shock causes skip (bass, bump, DJ pinky nudge)
- Stylus leaves groove — zero signal (free-fall airtime)
- Landing impact — impulse spike
- Brief groove contact (partial/distorted signal)
- Re-bounce with lower amplitude (energy loss per bounce)
- Repeat 2-6 times with decaying height
- Settle into new groove at different absolute position
Skating Bias
90% of skips are inward (toward center) due to the tangential force of the groove on the stylus. This matches real-world observations where skating force biases the tonearm toward the center.
Validated Scenarios
| Scenario | Grooves Skipped | Position Jump | Bounces | Recovery |
|---|---|---|---|---|
| Gentle bump | 2 | 3.6s | 2 | 0ms |
| Kick drum skip | 5 | 9.0s | 3 | 0ms |
| Table bump | 15 | 27.0s | 4 | 0ms |
| Dancer crash | 40 | 72.0s | 4 | 0ms |
| 1cm skip | 80 | 144.0s | 5 | 0ms |
| Catastrophic | 200 | 360.0s | 6 | 0ms |
| DJ pinky nudge | 3 | 5.4s | 2 | 0ms |
| Dirty vinyl | 1 | 1.8s | 6 | 0ms |
| Worn stylus | 10 | 18.0s | 5 | 0ms |
Monte Carlo Results (1000 random scenarios)
| Metric | Result |
|---|---|
| P50 recovery | 0 ms |
| P95 recovery | 0 ms |
| P99 recovery | 0 ms |
| Success rate | 100.0% |
| Skating inward P95 | 0 ms |
| Skating outward P95 | 0 ms |
RIAA Compensation
Generate with --riaa for PHONO input. v0.2 uses cascaded IIR sections (constant memory). Alternatively, use LINE input (RIAA bypass).
Lathe Cutting Parameters
| Parameter | Value | Notes |
|---|---|---|
| Speed | 33 1/3 RPM | Standard DJ turntable |
| Groove spacing | 200 lines/inch | Wider than music vinyl |
| Level | +3 dB above nominal | Compensates artisanal noise floor |
| Duration per side | 4-7.5 min | 8-15 min available |
| Material | PVC / polycarbonate | Lathe cut compatible |
| Inner radius | > 60 mm | Below this, groove velocity too low |
Comparison
| Feature | Serato CV02.5 | Traktor MK2 | MIXI-CUT v0.3 |
|---|---|---|---|
| Frequency | 1.0 kHz | 2.5 kHz | 3.0 kHz |
| Channels | Mono | Mono | Stereo quadrature |
| Position bits | PSK | PSK | 24-bit + CRC-16 + RS(4) |
| Sync word | Unknown | Unknown | Barker-13 |
| Frame period | ~2s | ~1.5s | 1.42s (0.71s inner) |
| Scratch resolution | ~1.0 ms | ~0.4 ms | ~0.33 ms |
| Velocity channel | No | No | 500 Hz AM subcarrier |
| Skip recovery | ~500 ms | ~300 ms | 0 ms |
| Tonearm bounce | Not tested | Not tested | 1000 MC, 100% pass |
| Stop response | Unknown | Unknown | 3 ms |
| Noise tolerance | Unknown | Unknown | SNR = -24 dB |
| ADC bits | 16-bit | 16-bit | 4-bit minimum |
| Hum rejection | Unknown | Unknown | +6 dB immune |
| Channel crosstalk | Unknown | Unknown | 70% tolerated |
| Beat drift (64 bars) | Unknown | Unknown | < 1.2 ms |
| Loop mode | No | No | Phase-continuous |
| Multi-rate | No | No | 2x inner groove |
| DC offset | Uncontrolled | Uncontrolled | Removed |
| Lead-in | None | None | 2s silence |
| License | Proprietary | Proprietary | MIT |
| Vinyl cost | ~40 EUR | ~40 EUR | ~8 EUR (lathe cut) |
License
MIT. No DRM, no vendor lock-in, free forever.