Skip to content

はじめに

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

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

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

インストール

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

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

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
git clone https://github.com/libraz/midi-sketch-bach.git
cd midi-sketch-bach
make build
./build/bin/bach_cli --form fugue --key d_minor -o output.mid

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

bash
./build/bin/bach_cli --form toccata_and_fugue --key d_minor -o toccata.mid

共通の既定値

JavaScript API と CLI は、どちらも 100 BPM と short スケールが既定です。オプションの一覧は 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.