Paula audio, MOD tracker and player
Compose ProTracker MOD music in the browser — pattern editor with the ProTracker keyboard, on-screen piano and MIDI, sample editor with WAV/8SVX import, recording and chip waveforms — plus Paula period/note/rate conversion, Paula periods and sample rates on PAL or NTSC, see the complete ProTracker period table with finetunes and DMA timing, and inspect and play MOD files.
Added · updated 28 October 2026
Works with
- ProTracker MOD player and editor Retro computingEdit in MOD tracker opens the tracker tab’s song there
How to use it
-
Tracker — a ProTracker-style MOD editor. It opens with a short demo song (made here from generated samples); after that it reopens whatever you last edited, autosaved in this browser. Save MOD writes a standard ProTracker file; Load MOD (or drop a file) opens one.
-
Playing notes: the computer keyboard is laid out like ProTracker’s —
Z S X D C V G B H N J Mis one octave (white and black keys),Q 2 W 3 E R 5 T 6 Y 7 U I 9 O 0 Pthe octave above. F1/F2/F3 (or Oct 1–3) choose which octaves they reach. Keys always play the current sample, several at once; so do the on-screen piano and a MIDI keyboard (MIDI input; middle C is C-2). -
Entering notes: press Space for edit mode (the grid turns red). A key now also writes the note and current sample at the cursor and moves down by Step rows. In the sample and effect columns type hex digits. While a pattern plays with Follow on, notes land on the row being played — record in real time.
-
Editing: arrows move (left/right walk through note, sample, effect and parameter digits), Tab jumps channels, Del clears, Backspace/Insert delete or insert a row (Shift: in every channel). Shiftarrows or dragging selects a block for copy, cut, paste, transpose (±1, ±12, or *Alt*↑/↓) and Interpolate (fills effect values between the first and last row — fades with
Cxx, for instance). Undo with Ctrl/⌘+Z. Click a channel name to mute it, S (or Shift+click) to solo it; the bar under it is a level meter. -
Song order: positions on the left map to patterns. Insert, Delete, Append, Pat ±, New pat and Clone pat arrange the song; Restart is where it loops to (127 is ProTracker’s "from the start"). Speed and BPM write the
Fxxcommands on the first row. Play the song, loop the pattern you are editing (Enter), or start from the cursor row. -
Samples: 31 slots with name, volume (0–64), finetune (−8…+7) and a loop — drag the green handles on the waveform, or drag a selection and press Loop selection. Load sample takes WAV (8–32-bit, float, any rate, stereo mixed down), IFF 8SVX and anything else your browser can decode; it is resampled so it plays at its original pitch on the Ref. note (C-3 = 16,574 Hz on PAL) and converted to signed 8-bit, optionally normalised. Record mic records straight into the slot. Generate makes looped single-cycle square (with pulse width), saw, triangle and sine waves, or noise — the classic chip sounds. Crop, delete, reverse, fade, normalise, amplify and silence work on the selection (or the whole sample), and Export saves it as WAV or 8SVX.
-
Sound: the stereo slider runs from mono to the Amiga’s hard left-right-right-left split; A500 filter approximates the A500’s fixed output low-pass.
-
-
Period calculator — choose a tracker note and finetune to get the period, the sample rate it plays at, and the pitch a single-cycle waveform of a given length would make. Go the other way from a period or from a sample rate (with the error from rounding). DMA timing shows the words fetched per second and per scan line, the AUDxLEN for a given duration, and how often the audio interrupt fires.
-
Period table — ProTracker’s own table for all 16 finetunes, with copy buttons for assembler
dc.wand C. -
MOD player — drop a
.mod(ormod.) file, or *Load the demo module (Edit in Tracker opens it in the editor). You get the module summary, the sample list (click one for its waveform; ▶ plays it at C-2, WAV saves it), and the pattern viewer, which follows playback. Mute channels with their buttons; the stereo control goes from the Amiga’s hard left-right-right-left split to mono. Everything runs in your browser.
⛶ Full screen gives the pattern editor the whole screen — the browser’s full screen where it is allowed, otherwise a full-window layer (iPhone); ◫ Panels hides the song order (and, on a phone, the song controls, which start hidden). The button toggles it — F is a hex digit in the editor. Escape stops playback as usual; in the full-window layer it also leaves.
Notes
-
Paula’s sample rate is the colour clock divided by the period: 3,546,895 Hz on PAL, 3,579,545 Hz on NTSC. Period 428 (C-2) is 8,287 Hz on PAL. The minimum DMA period is 124, about 28.6 kHz (28,867 Hz on NTSC).
-
Each channel gets one DMA slot per scan line and fetches a word (two samples) in it. AUDxLEN counts words, so one block is at most 65,535 words (131,070 bytes); longer sounds are chained from the audio interrupt.
-
ProTracker notes run from C-1 (856) to B-3 (113). The table is the hand-tuned one from the ProTracker replay routine, so a few entries differ by one from a formula (E-2 is 339). Finetune nibbles 0–7 are 0…+7 and 8–15 are −8…−1, each 1/8 of a semitone.
-
A MOD is a 20-byte title, 31 sample headers (22-byte name, length in words, finetune, volume 0–64, loop start and loop length in words), the song length, a 128-entry order list, and a 4-byte tag at offset 1080:
M.K.,M!K!,FLT4,4CHN(4 channels),6CHN,8CHN,FLT8,OCTA, orxxCH. Without a tag it is a 15-sample Soundtracker module. Patterns are 64 rows × channels × 4 bytes: sample number split across the high nibbles, a 12-bit period, effect, and parameter. Signed 8-bit sample data follows. -
Saving follows ProTracker: a 20-byte title, 31 sample headers with big-endian lengths in words (an empty sample has a repeat length of one word), the song length, restart byte, the 128-entry order list,
M.K.(M!K!past 64 patterns,6CHN/8CHNfor six or eight channels), the patterns up to the highest one in the order list, then the sample data. A module loaded and saved without edits comes back byte-for-byte; 15-sample Soundtracker files are saved as 31-sampleM.K.and FLT8 as8CHN. Patterns not used in the song are kept by pointing the last order entry, past the song’s end, at them. Samples are limited to 65,535 words (131,070 bytes). Imported one-shot samples get ProTracker’s zeroed first word. -
Not modelled: the E0x LED filter switch, E3x glissando, E4x/E7x waveforms, E8x and EFx, and ProTracker’s exact clicks and DMA quirks. Notes held on the keyboard play with the sample’s own volume and finetune.
-
The replayer handles arpeggio, portamento, tone portamento, vibrato, tremolo, sample offset, volume slide, position jump, set volume, pattern break, the E-commands (fine slides, pattern loop, retrigger, note cut and delay, pattern delay, finetune), and speed and tempo. Ticks last 2.5 / BPM seconds (20 ms at 125 BPM).
Sharing
Share link copies a link to the open tab. In the Tracker it carries the song as a ProTracker module packed in ?s=: patterns, order list, tempo, sample names and settings, and sample data for short samples (chip loops up to about 1.5 KB in total). Longer samples — drums, recordings — would make the link too long for many servers and apps, so they arrive named but empty and the page lists them; send the .MOD file for those. In the Period calculator the inputs are readable: ?per=, ?note=, ?ft=, ?cyc=, ?hz=, ?sec=, ?video=ntsc — for example ?per=254&video=ntsc.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.