Skip to content

はじめに

MIDI Sketch Bach は、バロック音楽理論と対位法の規則に基づいてバッハ風器楽曲の MIDIを生成するアルゴリズム作曲エンジンです。フーガ、トッカータ、パッサカリアなど、編集可能な MIDI データを出力します。

バロック音楽や楽譜用語に慣れていない場合

ライブラリを使うだけなら五線譜を読める必要はありません。声部小節調フーガ対位法などが曖昧な場合は、先にエンジニアのための音楽用語入門を読むと以降のページが追いやすくなります。

インストール

アルファ版 — npm では未公開

このパッケージはアルファ版であり、まだ npm レジストリに公開されていません。以下のコマンドは最初の公開リリースまで動作しません。それまでは本サイトのライブデモでお試しください。

bash
npm install @libraz/midi-sketch-bach
bash
yarn add @libraz/midi-sketch-bach
bash
pnpm add @libraz/midi-sketch-bach
bash
bun add @libraz/midi-sketch-bach

クイックスタート

js
import { init, BachGenerator } from '@libraz/midi-sketch-bach'
import { writeFileSync } from 'fs'

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

// ジェネレータを作成し、ニ短調のフーガを生成
const generator = new BachGenerator()
generator.generate({
  form: 'fugue',
  key: 2,
  isMinor: true,
  character: 'severe',
  bpm: 80
})

// MIDI ファイルデータを取得して保存
const midi = generator.getMidi()
writeFileSync('bach-fugue.mid', midi)

// 構造化されたイベントデータを取得
const events = generator.getEvents()
console.log(events.description)
console.log(`${events.total_bars} 小節、${events.tracks.length} トラック`)

// リソースを解放
generator.destroy()
// 注: サンプルは ESM import を使用 — package.json に "type": "module" を設定(または .mjs を使用)

CLI クイックスタート

コマンドラインから直接 MIDI ファイルを生成できます。

bash
npx @libraz/midi-sketch-bach --form fugue --key d_minor -o output.mid

ニ短調のトッカータとフーガを生成する例:

bash
npx @libraz/midi-sketch-bach --form toccata_and_fugue --key d_minor -o toccata.mid

JavaScript API と CLI で既定が異なります

bpm 省略時、JavaScript API の既定は 100、CLI の既定は 72 です。また CLI ではフーガで --scale を省略した場合のみ medium になります(JavaScript API の既定は常に short)。CLI の既定一覧は CLI 参照 を参照してください。

生成できる楽曲

MIDI Sketch Bach は3つの系統にまたがる10種類の楽曲形式に対応しています。

オルガン系 -- フーガ、前奏曲とフーガ、トリオ・ソナタ、コラール前奏曲、トッカータとフーガ、パッサカリア、幻想曲とフーガ

独奏楽器系 -- チェロ前奏曲、シャコンヌ

変奏系 -- ゴルトベルク変奏曲

各形式はバロック時代の声部進行、対位法、和声構造に関する正統的な作曲規則に従います。

次のステップ

  1. エンジニアのための音楽用語入門 -- この資料で使う最小限の音楽用語
  2. 特徴 -- すべての機能の概要
  3. 楽曲形式 -- 使いたい作曲テンプレートを選ぶ
  4. 対位法コース -- 検証器が音を採用/拒否する理由
  5. インストール -- 詳細なインストール方法
  6. JavaScript API または CLI 参照 -- コードまたはターミナルから使う
  7. アーキテクチャ -- 技術的な仕組み

Dual-licensed: AGPL-3.0 · commercial licensing available. Generated MIDI is yours to use freely.