Overview
Serum is a software wavetable synth from Xfer Records, and Serum 2 is its successor. Serum 2 has three main oscillators plus dedicated sub and noise oscillators. Each main oscillator can play a wavetable or switch to other modes such as sample, granular or spectral. The WT POS knob picks the frame, and modulating it sweeps the sound through the table.
Xfer’s manual describes a Serum wavetable as up to 256 frames (it also calls them subtables) joined end to end in one file, with 2048 samples per frame. The largest table is 2048 × 256 samples, which at 32 bits is exactly 2 MB. A good table can have only a few frames, and Serum’s Wavetable Editor can fill in the steps between them by crossfading or spectral morphing. Serum stores the interpolation type rather than the computed frames, so the in-between frames are rebuilt when the table loads.
Xfer says Serum’s playback avoids the aliasing (Nyquist reflection) common on other wavetable synths, at some extra CPU cost. Serum and Serum 2 both use 2048-sample frames and up to 256 of them, so WaveStack has one Export target for the pair.
Wavetables on the Serum and Serum 2
A Serum table is a WAV file of frames played back to back. Serum’s own exports are mono, 16-bit or 32-bit, at 44,100 Hz with 2048 samples per subtable, and the manual calls saved tables “special Serum-saved WAV files”. The special part is a small chunk in the file, known as clm, that records the frame size. A plain WAV doesn’t have one, so Serum treats it as audio to analyze: dragging it onto an oscillator display brings up import methods that detect the pitch or cut the file at a fixed size to find the cycles. Xfer’s advice for audio made for Serum is 2048-sample cycles, since then nothing has to be resampled.
Stereo files get unusual treatment. When you import a stereo file as a wavetable, Serum uses the left channel in OSC A and OSC C and the right channel in OSC B. WaveStack writes mono files for Serum, so every oscillator gets the same table.
In WaveStack’s Export, the Serum / Serum 2 target writes a 32-bit mono WAV with 2048-sample frames and a clm chunk. Tables with a different frame size are resampled to 2048, and tables with more than 256 frames have frames picked evenly down to 256. Serum scans in one direction only, so a 2D grid or 3D volume is flattened to one row, and Export warns you when that happens.
Serum lists the tables it finds in the Tables folder, which holds them in subfolders. Tables sits inside the Serum Presets folder, which Serum installs under /Library/Audio/Presets/Xfer Records/ on macOS and Documents/Xfer on Windows. Xfer recommends saving your own tables in the User folder rather than over factory tables.
Specifications
| Samples per frame | 2048 |
|---|---|
| Maximum frames | 256 |
| File type | WAV |
| Frame size detection | clm chunk written by Serum; plain WAVs go through an import method |
| Stereo files | Left channel to OSC A and C, right to OSC B |
| User wavetable folder | Subfolders of Tables, inside the Serum Presets folder |
From WaveStack to the Serum and Serum 2
- Build or open a table in WaveStack. You can import a WAV, a sample or an image, or start from a seed wave.
- Press ⌘E to open Export and choose Serum / Serum 2 as what the table is for.
- Under Save to, link a subfolder of Serum’s Tables folder, such as your User folder. Export lists the files already in it as ready, needs converting or unreadable.
- Export. WaveStack writes a 2048-sample WAV with a clm chunk straight into that folder, cutting the table to 256 frames if it’s longer.
- In Serum, open an oscillator’s wavetable menu and pick the table from its folder.
Frequently asked questions
How do I import custom wavetables into Serum?
Put the WAV in a subfolder of Serum’s Tables folder and pick it from an oscillator’s wavetable menu. The Tables folder is inside the Serum Presets folder: /Library/Audio/Presets/Xfer Records/ on macOS, Documents/Xfer on Windows. Files that already carry a clm chunk load with the right frame size. A plain audio file can be dragged onto the oscillator display instead, where Serum offers import methods that detect the pitch or slice at a fixed size. In WaveStack, link the Tables subfolder in Export and the file is written there directly.
What frame size does Serum use?
2048 samples per frame, with up to 256 frames per table. Xfer’s manual says Serum uses 2048 samples internally for every single cycle, so audio prepared at 2048 samples per cycle imports without any resampling. Serum’s own WAV exports are mono at 44,100 Hz, in 16-bit or 32-bit. WaveStack’s Serum target always writes 2048-sample frames and tags them with a clm chunk.
Why does my wavetable sound wrong in Serum?
The usual cause is a frame size mismatch. If a WAV has no clm chunk, Serum has to work out the cycle length from the audio, and a table built at 1024 or 256 samples per frame can be cut in the wrong places, which sounds buzzy or jumps between unrelated shapes. Another cause is a stereo file, since Serum sends the right channel to OSC B only. Exporting with WaveStack’s Serum target avoids both: the file is mono, 2048 samples per frame, and tagged. See frame size for the background.
Do Serum wavetables work in other synths?
Often, yes. Vital slices WAVs into 2048-sample frames, Surge XT reads a clm chunk that says 2048, and Bitwig’s Polymer reads Serum-compatible WAVs. Ableton says Live’s Wavetable downsamples Serum files to its own 1024-sample frames. Phase Plant only loads a table of exactly 256 frames, so shorter Serum tables won’t load there as they are. WaveStack can import a Serum-style WAV and export it again for any of those targets with the right frame size and count.