jagilley
/
demucs
Get individual instruments/vocals from any music file
Run jagilley/demucs with an API
Use one of our client libraries to get started quickly. Clicking on a library will take you to the Playground tab where you can tweak different inputs, see the results, and copy the corresponding code to use in your own project.
Input schema
The fields you can use to run this model with an API. If you don't give a value for a field its default value will be used.
Field | Type | Default value | Description |
---|---|---|---|
audio |
string
|
The audio file to separate
|
|
two_stems |
string
(enum)
|
Options: drums, bass, other, vocals |
If you want to separate into two stems, enter the name of the stem here.
|
int24 |
boolean
|
False
|
If you want to output 24 bit wav files, set this to true.
|
float32 |
boolean
|
False
|
If you want to output 32 bit wav files, set this to true. Keep in mind this is 2x bigger.
|
clip_mode |
string
(enum)
|
rescale
Options: rescale, clamp |
Strategy for avoiding clipping: rescaling entire signal if necessary (rescale) or hard clipping (clamp)
|
mp3 |
boolean
|
False
|
If you want to convert the output wavs to mp3, set this to true.
|
mp3_bitrate |
integer
|
320
|
The bitrate of the converted mp3.
|
shifts |
integer
|
1
|
Number of random shifts for equivariant stabilization. Increase separation time but improves quality for Demucs. 10 was used in the original paper.
|
workers |
integer
|
0
|
Number of jobs. This can increase memory usage but will be much faster when multiple cores are available.
|
split |
boolean
|
False
|
If you want to split audio in chunks, set this to true. This can use large amounts of memory.
|
overlap |
number
|
0.25
|
Overlap between the splits.
|
{
"type": "object",
"title": "Input",
"required": [
"audio"
],
"properties": {
"mp3": {
"type": "boolean",
"title": "Mp3",
"default": false,
"x-order": 5,
"description": "If you want to convert the output wavs to mp3, set this to true."
},
"audio": {
"type": "string",
"title": "Audio",
"format": "uri",
"x-order": 0,
"description": "The audio file to separate"
},
"int24": {
"type": "boolean",
"title": "Int24",
"default": false,
"x-order": 2,
"description": "If you want to output 24 bit wav files, set this to true."
},
"split": {
"type": "boolean",
"title": "Split",
"default": false,
"x-order": 9,
"description": "If you want to split audio in chunks, set this to true. This can use large amounts of memory."
},
"shifts": {
"type": "integer",
"title": "Shifts",
"default": 1,
"x-order": 7,
"description": "Number of random shifts for equivariant stabilization. Increase separation time but improves quality for Demucs. 10 was used in the original paper."
},
"float32": {
"type": "boolean",
"title": "Float32",
"default": false,
"x-order": 3,
"description": "If you want to output 32 bit wav files, set this to true. Keep in mind this is 2x bigger."
},
"overlap": {
"type": "number",
"title": "Overlap",
"default": 0.25,
"x-order": 10,
"description": "Overlap between the splits."
},
"workers": {
"type": "integer",
"title": "Workers",
"default": 0,
"x-order": 8,
"description": "Number of jobs. This can increase memory usage but will be much faster when multiple cores are available."
},
"clip_mode": {
"enum": [
"rescale",
"clamp"
],
"type": "string",
"title": "clip_mode",
"description": "Strategy for avoiding clipping: rescaling entire signal if necessary (rescale) or hard clipping (clamp)",
"default": "rescale",
"x-order": 4
},
"two_stems": {
"enum": [
"drums",
"bass",
"other",
"vocals"
],
"type": "string",
"title": "two_stems",
"description": "If you want to separate into two stems, enter the name of the stem here.",
"x-order": 1
},
"mp3_bitrate": {
"type": "integer",
"title": "Mp3 Bitrate",
"default": 320,
"x-order": 6,
"description": "The bitrate of the converted mp3."
}
}
}
Output schema
The shape of the response you’ll get when you run this model with an API.
Schema
{
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Output"
}