Skip to main content
Version: v4

Serato Mode

NUO-STEMS 4 Serato mode queue

Serato mode creates .serato-stems files for Serato DJ and places them right next to the original file.

Example:

  • track.mp3 -> track.1.2.serato-stems
Alpha feature

Serato integration is currently an alpha feature released in 4.1.0-alpha.1 and subsequent releases.

The most important thing to test is:

  1. Create .serato-stems using NUO-STEMS 4.1. It places the .serato-stems file right next to the original file. This is Serato's expected location and cannot be customized.
  2. Open Serato DJ.
  3. Confirm that the original track now has a stems icon next to it.
  4. Confirm that the track loads correctly into the deck and that toggling stems does not make Serato move the .serato-stems file to system Trash or remove the stems icon from the track.

Technical explanation: Serato expects the .serato-stems file to have the exact same decoded sample length as the original file that Serato loads into memory on that machine. I tested around 5000 tracks to make sure these lengths match across different audio types in normal same-platform workflows, and everything I had matched perfectly. But it is still possible that some weird originals may produce a mismatch. If lengths do not match, Serato rejects the .serato-stems file and moves it to Trash.

Overview​

When using Serato mode:

  • NUO-STEMS 4 generates .serato-stems files for the original track.
  • .serato-stems files are always written next to the original file.
  • Serato scans for .serato-stems files when opening a Crate.
  • If the Crate is large, for example around 1000 tracks, Serato may need a bit of time to update the stems icon for each track.
  • Stems generated by NUO-STEMS 4 are marked with the same stems icon in Serato as stems generated by Serato itself.
    • Stems icon next to the track in Serato
  • You can load the track with stems icon into the deck and toggle stems on/off just like Serato's own stems.
Stems loaded into Serato deck

How to tell whether stems came from NUO-STEMS 4 or Serato​

Once Serato accepts the file, both look the same in the library. Two practical ways to tell them apart:

  • Listen to them and hear that the stems are super clean 😅😅😅 (because NS4 generates really clean stems).
  • Use Extract individual stems from .serato-stems in NUO-STEMS 4 and inspect the metadata of the file.
tip

It is recommended to keep Sum of Stems = Original Mix disabled in Serato mode.

Serato plays the original track when all 4 stems are enabled.

If at least 1 stem is disabled, Serato plays the remaining enabled stems simultaneously as a sum. This also means you get slightly cleaner stems and faster processing time when "sum of stems = original" is disabled.

Restart Serato after changing existing stems​

Serato caching behavior

Serato never fully unloads tracks from RAM.

For example, I played around 2000 tracks in Serato without closing it and memory usage was around 11 GB. Fresh restart was around 2 GB.

Stems also seem to be cached. If you already loaded existing Serato stems into the deck, unloaded the deck, generated stems using NUO-STEMS 4, and then loaded the deck again, you may still get the old Serato version even if the .serato-stems file is now different. Restarting Serato resolves this and loads the updated .serato-stems file.

Platform compatibility for AAC / ALAC originals​

AAC / ALAC limitation

.serato-stems created for AAC / ALAC originals on macOS are not compatible with Windows, and vice versa.

This is the same class of issue already documented for TP4 .stem.m4a migration, where AAC / ALAC originals may decode to different sample lengths on different platforms.

Technical explanation: Serato expects the .serato-stems file to have the exact sample length of the original file that Serato loads into memory. If lengths do not match, Serato rejects the .serato-stems file and moves it to Trash.

In my experiments for 5000 tracks, macOS and Windows decoded frame counts matched for every covered type except .m4a:

TypeShared tracksExact same frames% exactMin delta (win - mac)Max delta (win - mac)
.aiff88100.00%00
.flac2222100.00%00
.m4a4167117.07%-4097914
.mp343794379100.00%00
.mp411100.00%00
.ogg103103100.00%00
.wav6666100.00%00
Overall4995465093.09%-4097914

Short version:

  • .mp3, .aiff, .flac, .mp4, .ogg, and .wav all match perfectly across macOS and Windows.
  • .m4a is the only covered type that differs across platforms.

Serato and Traktor cannot be generated in one pass​

You cannot generate stems for Serato and Traktor at the same time.

If you need both, convert them separately in each mode.

Technical explanation: originals are decoded differently, resulting in different sample lengths and offsets.