Neural Analog API endpoint

Audio to MIDI Transcription API

Queue an audio-to-MIDI transcription for an original track, stem, restored version, or mastered version.

post/transcribe
Get a key
Audio to MIDI Transcription API

Queue audio-to-MIDI transcription on a T4 GPU.

Convert an original track, stem, restored version, or mastered version into a polyphonic MIDI transcription.

Use POST /transcribe, poll GET /status/transcription/{id}, then download the MIDI file with GET /download/transcription/{id}.

Parameters

x-api-key
optionalheaderstring | null
No description provided.

Request Body

audio_id
requiredstring

Parent audio asset ID.

stem_id
optionalstring | null

Optional source stem ID.

upscaled_id
optionalstring | null

Optional restored-version source ID.

mastered_id
optionalstring | null

Optional mastered-version source ID.

temporary_mix_key
optionalstring | null

Short-lived Current Main Mix or Current All Stems Mix R2 source key.

selection
optionalobject | null

Optional time range from the selected source to transcribe.

model
optionalstring

Audio-to-MIDI transcription model.

Default: "muscriptor-large"

instrument_mode
optionalstring | null

How instrument tracks are chosen and arranged. Omitted requests keep the legacy behavior inferred from instruments.

"auto""select""combine_melodic"
instruments
optionalarray<string>

Optional instrument guidance. Leave empty to let MuScriptor detect instruments automatically.

Example: ["piano","bass"]

quantize_precision
optionalstring | null

Note start and release quantization grid. Null preserves the transcription timing.

"1/4""1/8""1/8T""1/16""1/16T""1/32""1/32T"

Audio to MIDI Transcription Model

Use muscriptor-large in the model field for polyphonic audio-to-MIDI transcription. Leave instruments empty for automatic detection.

muscriptor-largeMuScriptor large

Transcribes polyphonic audio into instrument-colored MIDI notes.

Example

Python
import os
import requests
response = requests.post(
    "https://api.neuralanalog.com/transcribe",
    headers={"X-API-Key": os.environ["NEURALANALOG_API_KEY"]},
    json={
        "audio_id": "00000000-0000-0000-0000-000000000000",
        "model": "muscriptor-large",
        "instruments": [
            "piano",
            "bass",
        ],
    },
)
print(response.json())

Success Response

200Successful Response
id
requiredstring

ID of the queued transcription.

Example: "d66cf940-bf26-45bb-80f7-332f26b6859a"

status
requiredstring

Queueing status for the transcription job.

Example: "starting"

message
requiredstring

Human-readable queueing result.

Example: "MIDI transcription started successfully"