MIDI 取得 API
インターフェースの説明
MIDI インターフェースは、ステム分離が完了したトラックを標準 MIDI ファイルに変換し、編曲・二次創作・DAW への取り込みに使えるようにします。
Suno は MIDI ファイルのダウンロード先を提供しておらず、各トラックの音符データ(音高・開始終了時刻・ベロシティ)だけを提供します。本エンドポイントはその音符データを標準 MIDI ファイル(SMF format 1)に変換してそのまま返すため、返ってくるのは必ず DAW で開ける本物の .mid ファイルです。
エンドポイント: POST /api/music/download-file
本ページは MIDI 専用の例です。ダウンロード一式(メディアアドレス、単一ファイル、一括パッケージ、生成中の試聴)の完全な説明は 楽曲メディアのダウンロードと試聴 APIをご覧ください。
課金: 無料。本エンドポイントは既存ステムの音符データを読み取るもので、残量は消費しません。
リクエストパラメータ
Headers
| パラメータ名 | 型 | 必須 | 説明 |
|---|---|---|---|
| Authorization | string | はい | Bearer YOUR_API_KEY |
| Content-Type | string | はい | application/json |
ボディパラメータ
| パラメータ名 | 型 | 必須 | 既定値 | 説明 |
|---|---|---|---|---|
| song_id | string | はい | - | 分離後の単一トラックの楽曲 ID(/api/music/separate が返す各 clip id) |
| kind | string | はい | - | 固定で midi |
リクエスト例
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id",
"kind": "midi"
}' \
--output track.mid
レスポンス結果
レスポンスボディは MIDI ファイルのバイナリ内容で、JSON ではありません。
| レスポンスヘッダ | 値 |
|---|---|
| Content-Type | audio/midi |
| Content-Disposition | attachment; filename="<曲名>.mid" |
ダウンロード先の取得
先にアドレスを取得してからダウンロードしたい場合(例: 一括パッケージ)は、まずこちらを呼び出します:
curl -X POST https://www.suno-api.io/api/music/download-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id":"stem_clip_id","kind":"midi"}'
{
"success": true,
"message": "",
"data": {
"song_id": "stem_clip_id",
"kind": "midi",
"url": "https://www.suno-api.io/api/music/download?song_id=stem_clip_id&kind=midi"
}
}
このアドレスも Authorization リクエストヘッダが必要です。API Key を付けないと 401 が返ります。
MIDI ファイルの説明
| 項目 | 値 | 説明 |
|---|---|---|
| ファイル形式 | SMF format 1 | Tempo トラック 1 本 + 楽器ごとに 1 本のトラック |
| 時間精度 | 480 PPQ | 1 拍 480 tick |
| テンポ | 120 BPM | Suno は秒数しか返さず BPM を返さないため、固定テンポで時間軸を書き込みます |
| 時間軸 | 1 秒 = 960 tick |
プラットフォームが返す秒数と 1 対 1 に対応し、DAW に取り込んだ後に必要に応じてテンポを変更できます |
| ベロシティ | 0–127 | プラットフォームは 0–1 の浮動小数で返すため、本エンドポイントで ×127 換算済みです |
| ドラム | MIDI チャンネル 10 | プラットフォームがドラムと判定したトラックは自動的にパーカッションチャンネルに配置されます |
注意事項
- ステム分離済みのトラックにのみ有効:
song_idには/api/music/separateが返すトラック ID を指定してください。元の楽曲 ID は使えません。 - 音符がないステムも正常な結果: FX など一部のトラックには転譜できる音符がなく、その場合はエラーではなく音符を含まない正当な MIDI ファイルが返ります。
- MIDI に含まれるのは音符情報だけ: 音量・パン・エフェクターなどのミックス情報は MIDI には含まれず、DAW 側で音色を設定する必要があります。
- トラックごとに個別にリクエスト: 1 回のリクエストで 1 トラックの
.midが返ります。複数トラックは 1 本ずつ呼び出すか、Create UI の一括パッケージダウンロードをご利用ください。