Skip to content

はじめに

MIDI Sketch は、ポップミュージックの MIDI スケッチを自動生成する軽量ライブラリです。WebAssembly を使用してブラウザ上で動作します。

音楽理論が初めての方へ

コード進行・キー・モチーフといった用語に馴染みがなければ、まずコースから始めてください。MidiSketchの各設定の背景にある音楽の基礎を、再生できる譜例つきで解説しています。

クイックスタート

ベータ版

npm パッケージはまだ公開されていません。ベータ期間中はデモページからライブラリをご利用いただくか、ソースからビルドしてください。詳細はインストールを参照してください。

javascript
import { MidiSketch, init, createDefaultConfig, downloadMidi } from '@libraz/midi-sketch'

// WASM モジュールを初期化
await init()

// インスタンスを作成
const sketch = new MidiSketch()

// スタイルプリセット用の設定を作成 (0 = 最初のスタイル)
const config = createDefaultConfig(0)

// 必要に応じてカスタマイズ
config.key = 0           // キー (0 = C)
config.bpm = 120         // テンポ (0 = スタイルのデフォルト)
config.seed = 12345      // ランダムシード (0 = ランダム)

// MIDI を生成
sketch.generateFromConfig(config)

// MIDI データを取得
const midiData = sketch.getMidi()

// ファイルをダウンロード
downloadMidi(midiData, 'my-song.mid')

生成されるトラック

MIDI Sketch は以下のマルチトラック MIDI ファイルを生成します:

トラックチャンネル説明
Vocal0メインメロディ(ピアノロールセーフ)
Chord1ボイスリーディング付きハーモニーバッキング
Bass2アプローチノート付きベースライン
Motif3バックグラウンドパターン(BackgroundMotifスタイル)
Arpeggio4シンセアルペジオ(SynthDrivenスタイル)
Aux5副旋律サポート(パルスループ、グルーブアクセント)
Guitar6伴奏ギター(デフォルトで有効)
Drums9フィル付きリズムパターン(GMドラム)
SE15セクションマーカー

トラックの生成条件

すべてのトラックがすべてのスタイルで生成されるわけではありません:

  • Motif トラック: BackgroundMotif コンポジションスタイルのみ
  • Arpeggio トラック: arpeggioEnabled: true の場合のみ(SynthDriven スタイルでも手動で有効化が必要)
  • Guitar トラック: デフォルトで有効(guitarEnabled: true)。無効にするには guitarEnabled: false
  • Vocal/Aux: skipVocal: true でBGMのみ生成可能

次のステップ