Skip to content

Latest commit

 

History

History
112 lines (81 loc) · 4.16 KB

File metadata and controls

112 lines (81 loc) · 4.16 KB

midi-sketch

CI codecov Version License C++17 Platform

ポップス楽曲のMIDIスケッチを自動生成するC++17ライブラリです。 外部ライブラリに依存せず、WebAssemblyとしてブラウザ上でも動作します。



特徴

  • 8トラック出力 — Vocal / Chord / Bass / Motif / Arpeggio / Aux / Drums / SE
  • 豊富なプリセット — 曲構成(18) × スタイル(17) × ムード(20) × コード進行(22)
  • 高度なメロディ — フレーズベース生成、HookIntensity、MelodicComplexity、VocalStyleProfile
  • 音楽理論 — ボイスリーディング、非和声音、テンションコード、セクション別ダイナミクス
  • 作曲スタイル — MelodyLead、BackgroundMotif、SynthDriven
  • 再現性 — シード値による再現可能な生成

ビルド

make build              # ネイティブビルド
make test               # テスト実行
./build/bin/midisketch_cli  # output.mid を生成

# WASMビルド(要 Emscripten)
source ~/emsdk/emsdk_env.sh && make wasm

使い方

C++ API

#include "midisketch.h"

midisketch::MidiSketch sketch;
midisketch::GeneratorParams params;
params.structure_id = 1;   // BuildUp (0-17)
params.mood_id = 0;        // StraightPop (0-19)
params.chord_id = 0;       // カノン進行 (0-21)
params.seed = 12345;

sketch.generate(params);
auto midi = sketch.getMidi();       // SMFバイナリ

JavaScript / TypeScript (WASM)

import { init, MidiSketch } from '@libraz/midi-sketch';

await init();
const sketch = new MidiSketch();

sketch.generate({
  structureId: 1,
  moodId: 0,
  chordId: 0,
  seed: 12345
});

const midiData = sketch.getMidi();  // Uint8Array
sketch.destroy();

出力トラック

トラック Ch Program 役割
Vocal 0 Piano メロディ
Chord 1 E.Piano コード
Bass 2 E.Bass ベース
Motif 3 Synth Lead 背景リフ
Arpeggio 4 Saw Lead アルペジオ
Aux 5 Warm Pad サブメロディ
Drums 9 GM準拠
SE 15 マーカー

ドキュメント

ライセンス

AGPL-3.0 / 商用 デュアルライセンス。AGPL-3.0 の条件下では自由に利用・改変・再配布できます。クローズドソース製品やプロプライエタリな SaaS への組み込みには商用ライセンスが必要です。商用利用のお問い合わせ: libraz@libraz.net

スコープについて

本プロジェクトは MIDIスケッチ生成エンジン を提供するものです。 完成された楽曲制作システムではありません。

音源・ボーカル合成・オーディオレンダリングは本プロジェクトのスコープ外です。

作者

libraz libraz@libraz.net