Team Ai
Datasetpublic

nakas/stemflipper-dataset

StemFlipper — synth & effects parameter-estimation dataset (scaffold) A synthetic (audio → parameters) dataset for the inverse problems StemFlipper targets: recover a synth patch from its sound, and recover an effect chain from wet audio. No public dataset pairs real audio with the synth-patch / effect-chain parameters that produced it — this fills that gap with deterministic synthetic generation. The moat is the generator + seeds, not stored audio: every example here… See the full description on the dataset page: https://huggingface.co/datasets/nakas/stemflipper-dataset.

sourceHugging Facecc-by-4.0updated 3mo agoView on Hugging Face
0likes12downloads
Dataset Card

StemFlipper — synth & effects parameter-estimation dataset (scaffold)

A synthetic (audio → parameters) dataset for the inverse problems StemFlipper targets: recover a synth patch from its sound, and recover an effect chain from wet audio. No public dataset pairs real audio with the synth-patch / effect-chain parameters that produced it — this fills that gap with deterministic synthetic generation. The moat is the generator + seeds, not stored audio: every example here regenerates bit-for-bit from its seed.

Configs

  • —`synth` — torchsynth Voice renders (audio, params); params is the 78-dim normalized parameter vector (adsr_1.attack, vco_1.tuning, …).
  • —`effects` — a known dasp-pytorch chain (parametric_eq, compressor, distortion) applied to clean synth voices → (wet audio, params); param_names labels each value.
python
from datasets import load_dataset
synth = load_dataset("nakas/stemflipper-dataset", "synth", split="train")
fx    = load_dataset("nakas/stemflipper-dataset", "effects", split="train")

Reproduce / extend from seeds

The published splits are a small demo. Regenerate or scale up deterministically:

python
from dataset.synth_gen import SynthGenConfig, iter_examples
list(iter_examples(SynthGenConfig(batch_indices=[0, 1, 2])))  # 3 batches

Generation spec (seeds):

json
{
  "sample_rate": 44100,
  "synth": {
    "generator": "dataset/synth_gen.py",
    "batch_size": 32,
    "batch_indices": [
      0,
      1
    ],
    "param_names_count": 78
  },
  "effects": {
    "generator": "dataset/effects_gen.py",
    "chain": [
      "parametric_eq",
      "compressor",
      "distortion"
    ],
    "seeds": [
      0,
      1,
      2,
      3
    ],
    "n_dry": 8,
    "param_names": [
      "parametric_eq.low_shelf_gain_db",
      "parametric_eq.low_shelf_cutoff_freq",
      "parametric_eq.low_shelf_q_factor",
      "parametric_eq.band0_gain_db",
      "parametric_eq.band0_cutoff_freq",
      "parametric_eq.band0_q_factor",
      "parametric_eq.band1_gain_db",
      "parametric_eq.band1_cutoff_freq",
      "parametric_eq.band1_q_factor",
      "parametric_eq.band2_gain_db",
      "parametric_eq.band2_cutoff_freq",
      "parametric_eq.band2_q_factor",
      "parametric_eq.band3_gain_db",
      "parametric_eq.band3_cutoff_freq",
      "parametric_eq.band3_q_factor",
      "parametric_eq.high_shelf_gain_db",
      "parametric_eq.high_shelf_cutoff_freq",
      "parametric_eq.high_shelf_q_factor",
      "compressor.threshold_db",
      "compressor.ratio",
      "compressor.attack_ms",
      "compressor.release_ms",
      "compressor.knee_db",
      "compressor.makeup_gain_db",
      "distortion.drive_db"
    ]
  }
}

Generated by dataset/build.py in the StemFlipper repo.