Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.apikley.ru/llms.txt

Use this file to discover all available pages before exploring further.

Generate MIDI from Audio

Convert separated audio tracks into MIDI format with detailed note information for each instrument.

Usage Guide

  • Convert separated audio tracks into structured MIDI data containing pitch, timing, and velocity information
  • Requires a completed vocal separation task ID (from the Vocal Removal API)
  • Generates MIDI note data for multiple detected instruments including drums, bass, guitar, keyboards, and more
  • Ideal for music transcription, notation, remixing, or educational analysis
  • Best results on clean, well-separated audio tracks with clear instrument parts

Prerequisites

You must first use the Vocal & Instrument Stem Separation API to separate your audio before generating MIDI.

Parameter Reference

NameTypeDescription
taskIdstringRequired. Task ID from a completed vocal separation
callBackUrlstringRequired. URL to receive MIDI generation completion notifications

Developer Notes

  • The callback will contain detailed note data for each detected instrument
  • Each note includes: pitch (MIDI note number), start (seconds), end (seconds), velocity (0-1)
  • Not all instruments may be detected - depends on audio content
  • Billing: Check current per-call credit costs at https://app.apikley.ru/billing
Rate limits and quotas are enforced by Apikley and may differ from upstream providers.

OpenAPI

suno-api/suno-api.json post /api/v1/midi/generate
openapi: 3.0.0
info:
  title: Suno API
  description: Apikley Suno API Documentation
  version: 1.0.0
  contact:
    name: Technical Support
    email: support@apikley.ru
servers:
  - url: https://api.apikley.ru
    description: API Server
security:
  - BearerAuth: []
paths:
  /api/v1/midi/generate:
    post:
      summary: Generate MIDI from Audio
      description: >-
        Convert separated audio tracks into MIDI format with detailed note
        information for each instrument.


        ### Usage Guide

        - Convert separated audio tracks into structured MIDI data containing
        pitch, timing, and velocity information

        - Requires a completed vocal separation task ID (from the Vocal Removal
        API)

        - Generates MIDI note data for multiple detected instruments including
        drums, bass, guitar, keyboards, and more

        - Ideal for music transcription, notation, remixing, or educational
        analysis

        - Best results on clean, well-separated audio tracks with clear
        instrument parts


        ### Prerequisites

        - You must first use the Vocal & Instrument Stem Separation API with
        `type: split_stem` to separate your audio before generating MIDI


        ### Parameter Details

        - `taskId` identifies a completed vocal separation task 

        - `callBackUrl` receives MIDI generation completion notifications


        ### Developer Notes

        - MIDI generation typically takes 30-90 seconds depending on audio
        length and complexity

        - The callback will contain detailed note data for each detected
        instrument

        - Each note includes: pitch (MIDI note number), start (seconds), end
        (seconds), velocity (0-1)

        - Not all instruments may be detected - depends on audio content

        - Generated MIDI data is retained for 14 days
      operationId: generate-midi
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - taskId
                - callBackUrl
              properties:
                taskId:
                  type: string
                  description: >-
                    Task ID from a completed vocal separation. This should be
                    the taskId returned from the Vocal & Instrument Stem
                    Separation endpoint.
                  example: 5c79****be8e
                callBackUrl:
                  type: string
                  format: uri
                  description: >-
                    The URL to receive MIDI generation task completion updates.
                    Required for all MIDI generation requests.


                    - System will POST task status and MIDI note data to this
                    URL when generation completes

                    - Callback includes detailed note information for each
                    detected instrument with pitch, timing, and velocity

                    - Your callback endpoint should accept POST requests with
                    JSON payload containing MIDI data

                    - For detailed callback format and implementation guide, see
                    [MIDI Generation
                    Callbacks](https://docs.apikley.ru/suno-api/generate-midi-callbacks)

                    - Alternatively, use the Get MIDI Generation Details
                    endpoint to poll task status
                  example: https://example.callback
      responses:
        '200':
          description: MIDI generation task created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    description: Response status code
                    example: 200
                  msg:
                    type: string
                    description: Response message
                    example: success
                  data:
                    type: object
                    description: Response data containing task information
                    properties:
                      taskId:
                        type: string
                        description: >-
                          Unique identifier for the MIDI generation task. Use
                          this to query task status or receive callback results.
                        example: 5c79****be8e
              example:
                code: 200
                msg: success
                data:
                  taskId: 5c79****be8e
        '500':
          $ref: '#/components/responses/Error'
components:
  responses:
    Error:
      description: Server Error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All APIs require authentication via Bearer Token.


        Get API Key:

        1. Visit [API Key Management Page](https://app.apikley.ru/keys) to get your
        API Key


        Usage:

        Add to request header:

        Authorization: Bearer APIKLEY_API_KEY


        Note:

        - Keep your API Key secure and do not share it with others

        - If you suspect your API Key has been compromised, reset it immediately
        in the management page


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.apikley.ru/llms.txt