A modern web-based tracker module player with authentic retro modes and high-quality modern processing.
This player implements several audio processing techniques. Select Modern (8-point Sinc) interpolation to enable all enhancements.
Original tracker samples were recorded at various rates (8-22kHz). Playing them at 44.1kHz requires interpolation between sample points.
π‘ Sinc interpolation is what professional samplers use. It's mathematically optimal for reconstructing a bandlimited signal from discrete samples.
When volume or pitch changes, we don't jump instantly - we smoothly transition using a smoothstep function.
π‘ Used for volume ramping (click-free). The curve mimics physical movement with inertia.
Classic trackers update vibrato at the tick rate (~50Hz). Modern mode computes it at sample rate (44,100Hz)!
π‘ No lookup table needed - modern CPUs compute sin() fast enough for real-time audio!
Instead of point-sampling the sine, we compute the average value over each sample interval. This prevents errors when the modulation frequency is high.
π‘ The integral formula (cos(a) - cos(b)) / (b - a) computes this average analytically - no numerical integration needed!
Matrix-encode 4 virtual channels into stereo that decodes on any Pro Logic receiver!
π‘ The Hilbert transform creates a 90Β° phase shift - surround "disappears" in stereo but decodes in surround systems!
Each sample is analyzed to determine optimal surround placement using both audio analysis and pattern usage detection:
| Type | Detection Criteria | Placement |
|---|---|---|
| Bass | Zero-crossing rate < 0.15 | Center (0.1) |
| Drums | Fast attack + beat-aligned + low note variety | Front (0.2) |
| Lead | Default melodic content | Front (0.3) |
| Pad | Slow attack + high sustain + rare triggers | Rear (0.75-0.8) |
| Texture | High noise + long loop | Surround (0.9) |
π‘ Pattern analysis (π) overrides audio analysis when it detects clear drum patterns - critical for noise-based drums like hi-hats!
| Feature | Sound Blaster | GUS | Modern |
|---|---|---|---|
| Sample Interpolation | None | Linear | 8-pt Sinc |
| Volume Transitions | Linear | Linear | S-Curve |
| Portamento Curve | Linear | Linear | Linear |
| Vibrato Rate | ~50 Hz | ~50 Hz | 44,100 Hz |
| Vibrato Method | Table | Table | Integrated sin() |
In the late 80s and early 90s, before MP3s existed, the demoscene created a revolution in computer music. Groups like Future Crew, Triton, and KFMF composed incredible soundtracks using tracker software β sequencers that played back short audio samples at different pitches.
The format started on the Amiga with 4-channel MOD files, then evolved to Scream Tracker's S3M format on PC with up to 32 channels, stereo panning, and new effects.
Two sound cards defined the era:
The Sound Blaster was everywhere β affordable and compatible. But it had no hardware mixing. Your CPU had to combine all channels into a single audio stream in real-time. On a 33MHz 486, that meant hand-optimized assembly code. Select "Sound Blaster" interpolation mode to hear that raw, crunchy sound.
The Gravis Ultrasound was the holy grail. It had 1MB of onboard RAM and could mix 32 channels in hardware. You'd upload your samples to the card and it did the rest β with smooth linear interpolation. Select "Gravis Ultrasound" mode to hear the difference.
This player is a JavaScript port of FonkPlay by Psyke/DCB and VIP/DCB β written in x86 assembly around 1994-1996. The original source code is available on GitHub.
Key files include the mixing engine, the effect processor, and the GUS hardware interface.
Trackers weren't just samplers β they had powerful real-time effects. All implemented in raw assembly:
Click any effect to see the original x86 assembly. Yes, people wrote this by hand. π€―
The demoscene wasn't just about music β it was a competitive underground culture of programmers, artists, and musicians pushing hardware to its limits. They'd gather at demoparties across Europe to show off their creations.
Names like Purple Motion, Skaven, Basehead, and Lizardking became legends. Their music β often composed on 4MB RAM machines β still sounds incredible today.