gitextract_b_sdr3ak/ ├── .claude/ │ └── plans/ │ └── gha-gpu-runner.plan.md ├── .cursor/ │ ├── commands/ │ │ ├── analyze.md │ │ ├── clarify.md │ │ ├── constitution.md │ │ ├── implement.md │ │ ├── plan.md │ │ ├── specify.md │ │ └── tasks.md │ └── rules/ │ └── specify-rules.mdc ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── BUG_REPORT.yml │ │ └── FEATURE_REQUEST.yml │ ├── prompts/ │ │ ├── analyze.prompt.md │ │ ├── clarify.prompt.md │ │ ├── constitution.prompt.md │ │ ├── implement.prompt.md │ │ ├── plan.prompt.md │ │ ├── specify.prompt.md │ │ └── tasks.prompt.md │ └── workflows/ │ ├── deploy-to-cloudrun.yml │ ├── deploy-to-modal.yml │ ├── github-sponsors.yml │ ├── publish-to-docker.yml │ ├── publish-to-pypi.yml │ ├── run-integration-tests.yaml │ └── run-unit-tests.yaml ├── .gitignore ├── .specify/ │ ├── memory/ │ │ └── constitution.md │ ├── scripts/ │ │ └── bash/ │ │ ├── check-prerequisites.sh │ │ ├── common.sh │ │ ├── create-new-feature.sh │ │ ├── setup-plan.sh │ │ └── update-agent-context.sh │ └── templates/ │ ├── agent-file-template.md │ ├── plan-template.md │ ├── spec-template.md │ └── tasks-template.md ├── Dockerfile.cloudrun ├── Dockerfile.cpu ├── Dockerfile.cuda11 ├── Dockerfile.cuda12 ├── Dockerfile.runpod-cuda11 ├── Dockerfile.runpod-cuda12 ├── LICENSE ├── README.md ├── TODO.md ├── audio_separator/ │ ├── __init__.py │ ├── ensemble_presets.json │ ├── model-data.json │ ├── models-scores.json │ ├── models.json │ ├── remote/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── api_client.py │ │ ├── cli.py │ │ ├── deploy_cloudrun.py │ │ ├── deploy_modal.py │ │ ├── job_store.py │ │ ├── output_store.py │ │ └── requirements.txt │ ├── separator/ │ │ ├── __init__.py │ │ ├── architectures/ │ │ │ ├── __init__.py │ │ │ ├── demucs_separator.py │ │ │ ├── mdx_separator.py │ │ │ ├── mdxc_separator.py │ │ │ └── vr_separator.py │ │ ├── audio_chunking.py │ │ ├── common_separator.py │ │ ├── ensembler.py │ │ ├── roformer/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── bs_roformer_config.py │ │ │ ├── bs_roformer_validator.py │ │ │ ├── configuration_normalizer.py │ │ │ ├── mel_band_roformer_config.py │ │ │ ├── mel_band_roformer_validator.py │ │ │ ├── model_configuration.py │ │ │ ├── model_loading_result.py │ │ │ ├── parameter_validation_error.py │ │ │ ├── parameter_validator.py │ │ │ └── roformer_loader.py │ │ ├── separator.py │ │ └── uvr_lib_v5/ │ │ ├── __init__.py │ │ ├── demucs/ │ │ │ ├── __init__.py │ │ │ ├── __main__.py │ │ │ ├── apply.py │ │ │ ├── demucs.py │ │ │ ├── filtering.py │ │ │ ├── hdemucs.py │ │ │ ├── htdemucs.py │ │ │ ├── model.py │ │ │ ├── model_v2.py │ │ │ ├── pretrained.py │ │ │ ├── repo.py │ │ │ ├── spec.py │ │ │ ├── states.py │ │ │ ├── tasnet.py │ │ │ ├── tasnet_v2.py │ │ │ ├── transformer.py │ │ │ └── utils.py │ │ ├── mdxnet.py │ │ ├── mixer.ckpt │ │ ├── modules.py │ │ ├── playsound.py │ │ ├── pyrb.py │ │ ├── results.py │ │ ├── roformer/ │ │ │ ├── attend.py │ │ │ ├── bs_roformer.py │ │ │ └── mel_band_roformer.py │ │ ├── spec_utils.py │ │ ├── stft.py │ │ ├── tfc_tdf_v3.py │ │ └── vr_network/ │ │ ├── __init__.py │ │ ├── layers.py │ │ ├── layers_new.py │ │ ├── model_param_init.py │ │ ├── modelparams/ │ │ │ ├── 1band_sr16000_hl512.json │ │ │ ├── 1band_sr32000_hl512.json │ │ │ ├── 1band_sr33075_hl384.json │ │ │ ├── 1band_sr44100_hl1024.json │ │ │ ├── 1band_sr44100_hl256.json │ │ │ ├── 1band_sr44100_hl512.json │ │ │ ├── 1band_sr44100_hl512_cut.json │ │ │ ├── 1band_sr44100_hl512_nf1024.json │ │ │ ├── 2band_32000.json │ │ │ ├── 2band_44100_lofi.json │ │ │ ├── 2band_48000.json │ │ │ ├── 3band_44100.json │ │ │ ├── 3band_44100_mid.json │ │ │ ├── 3band_44100_msb2.json │ │ │ ├── 4band_44100.json │ │ │ ├── 4band_44100_mid.json │ │ │ ├── 4band_44100_msb.json │ │ │ ├── 4band_44100_msb2.json │ │ │ ├── 4band_44100_reverse.json │ │ │ ├── 4band_44100_sw.json │ │ │ ├── 4band_v2.json │ │ │ ├── 4band_v2_sn.json │ │ │ ├── 4band_v3.json │ │ │ ├── 4band_v3_sn.json │ │ │ ├── 4band_v4_ms_fullband.json │ │ │ └── ensemble.json │ │ ├── nets.py │ │ └── nets_new.py │ └── utils/ │ ├── __init__.py │ └── cli.py ├── cloudbuild.yaml ├── docs/ │ ├── BIT_DEPTH_IMPLEMENTATION_SUMMARY.md │ ├── BIT_DEPTH_PRESERVATION.md │ ├── CI-GPU-RUNNERS.md │ ├── archive/ │ │ └── 2026-03-22-modal-to-gcp-migration-plan.md │ ├── deton24-audio-separation-info-2026-03-15.md │ └── deton24-model-mapping-and-ensemble-guide.md ├── environment.yml ├── pyproject.toml ├── pytest.ini ├── scripts/ │ └── download_preset_models.py ├── specs/ │ ├── 001-update-roformer-implementation/ │ │ ├── 001-update-roformer-implementation.md │ │ ├── contracts/ │ │ │ ├── fallback_loader_interface.py │ │ │ ├── parameter_validator_interface.py │ │ │ └── roformer_loader_interface.py │ │ ├── data-model.md │ │ ├── plan.md │ │ ├── post-implementation-issues.md │ │ ├── quickstart.md │ │ ├── research.md │ │ └── tasks.md │ └── main/ │ └── plan.md ├── tests/ │ ├── README.md │ ├── TODO.txt │ ├── contract/ │ │ ├── test_parameter_validator_interface.py │ │ └── test_roformer_loader_interface.py │ ├── inputs/ │ │ ├── clocks_piano.flac │ │ ├── fallen24bit20s.flac │ │ ├── levee_drums.flac │ │ ├── mardy20s.flac │ │ ├── mardy20s_(Instrumental)_mel_band_roformer_karaoke_aufr33_viperx_sdr_10.flac │ │ ├── mardy20s_(Vocals)_mel_band_roformer_karaoke_aufr33_viperx_sdr_10.flac │ │ ├── only_time_reverb.flac │ │ ├── reference/ │ │ │ ├── ref_clocks_piano_bass_htdemucs_ft.flac │ │ │ ├── ref_clocks_piano_drums_htdemucs_ft.flac │ │ │ ├── ref_clocks_piano_instrumental.flac │ │ │ ├── ref_clocks_piano_instrumental_karaoke.flac │ │ │ ├── ref_clocks_piano_other_htdemucs_ft.flac │ │ │ ├── ref_clocks_piano_vocals.flac │ │ │ ├── ref_clocks_piano_vocals_htdemucs_ft.flac │ │ │ ├── ref_clocks_piano_vocals_karaoke.flac │ │ │ ├── ref_levee_drums_bass_htdemucs_ft.flac │ │ │ ├── ref_levee_drums_crash_drumsep.flac │ │ │ ├── ref_levee_drums_drums_htdemucs_ft.flac │ │ │ ├── ref_levee_drums_hh_drumsep.flac │ │ │ ├── ref_levee_drums_instrumental.flac │ │ │ ├── ref_levee_drums_instrumental_karaoke.flac │ │ │ ├── ref_levee_drums_instrumental_preset_vocal_balanced.flac │ │ │ ├── ref_levee_drums_kick_drumsep.flac │ │ │ ├── ref_levee_drums_other_htdemucs_ft.flac │ │ │ ├── ref_levee_drums_ride_drumsep.flac │ │ │ ├── ref_levee_drums_snare_drumsep.flac │ │ │ ├── ref_levee_drums_toms_drumsep.flac │ │ │ ├── ref_levee_drums_vocals.flac │ │ │ ├── ref_levee_drums_vocals_htdemucs_ft.flac │ │ │ ├── ref_levee_drums_vocals_karaoke.flac │ │ │ ├── ref_levee_drums_vocals_preset_vocal_balanced.flac │ │ │ ├── ref_only_time_reverb_instrumental.flac │ │ │ ├── ref_only_time_reverb_vocals.flac │ │ │ ├── ref_only_time_reverb_vocals_noreverb.flac │ │ │ ├── ref_only_time_reverb_vocals_reverb.flac │ │ │ ├── ref_sing_sing_sing_brass_instrumental.flac │ │ │ ├── ref_sing_sing_sing_brass_no_woodwinds.flac │ │ │ ├── ref_sing_sing_sing_brass_vocals.flac │ │ │ ├── ref_sing_sing_sing_brass_woodwinds.flac │ │ │ ├── ref_under_pressure_harmonies_backing_vocals.flac │ │ │ ├── ref_under_pressure_harmonies_instrumental.flac │ │ │ ├── ref_under_pressure_harmonies_instrumental_karaoke.flac │ │ │ ├── ref_under_pressure_harmonies_instrumental_preset_karaoke.flac │ │ │ ├── ref_under_pressure_harmonies_instrumental_preset_vocal_balanced.flac │ │ │ ├── ref_under_pressure_harmonies_lead_vocals.flac │ │ │ ├── ref_under_pressure_harmonies_vocals.flac │ │ │ ├── ref_under_pressure_harmonies_vocals_karaoke.flac │ │ │ ├── ref_under_pressure_harmonies_vocals_preset_karaoke.flac │ │ │ └── ref_under_pressure_harmonies_vocals_preset_vocal_balanced.flac │ │ ├── sing_sing_sing_brass.flac │ │ └── under_pressure_harmonies.flac │ ├── integration/ │ │ ├── README.md │ │ ├── generate_multi_stem_references.py │ │ ├── generate_reference_images.py │ │ ├── generate_reference_images_24bit.py │ │ ├── generate_reference_images_ensemble.py │ │ ├── requirements.txt │ │ ├── test_24bit_preservation.py │ │ ├── test_cli_integration.py │ │ ├── test_ensemble_integration.py │ │ ├── test_ensemble_meaningful.py │ │ ├── test_multi_stem_verification.py │ │ ├── test_remote_api_integration.py │ │ ├── test_roformer_audio_quality.py │ │ ├── test_roformer_backward_compatibility.py │ │ ├── test_roformer_config_validation.py │ │ ├── test_roformer_e2e.py │ │ ├── test_roformer_fallback_mechanism.py │ │ ├── test_roformer_model_switching.py │ │ ├── test_roformer_new_parameters.py │ │ └── test_separator_output_integration.py │ ├── model-metrics/ │ │ └── test-all-models.py │ ├── regression/ │ │ ├── test_all_models_stem_verification.py │ │ └── test_roformer_size_mismatch.py │ ├── remote/ │ │ └── README.md │ ├── reproduce_ensemble_bug.py │ ├── unit/ │ │ ├── test_audio_chunking.py │ │ ├── test_bit_depth_detection.py │ │ ├── test_bit_depth_writing.py │ │ ├── test_cli.py │ │ ├── test_configuration_normalizer.py │ │ ├── test_deploy_cloudrun_async.py │ │ ├── test_ensemble_presets.py │ │ ├── test_ensembler.py │ │ ├── test_job_store.py │ │ ├── test_mdxc_roformer_chunking.py │ │ ├── test_model_configuration.py │ │ ├── test_output_store.py │ │ ├── test_parameter_validator.py │ │ ├── test_remote_api_client.py │ │ ├── test_remote_cli.py │ │ ├── test_separator_chunking.py │ │ ├── test_separator_detection.py │ │ ├── test_stem_naming.py │ │ └── test_stft.py │ ├── utils.py │ └── utils_audio_verification.py └── tools/ ├── calculate-model-hashes.py └── sync-to-github.py