Skip to content

学習順ガイド

このページは、libsonare のドキュメントを初学者向けに読むための道案内です。DSP、MIR、WebAssembly、マスタリング用語を最初から理解している必要はありません。

最初に出る略語

DSP は音を数値として測定・加工する信号処理、MIR は BPM・キー・コードなどを音楽から読み取る処理です。

WASM / WebAssembly はブラウザで使う実行形式、API はアプリから呼ぶ関数やクラス、CLI はターミナルで使うコマンドです。

ここでは用語を完全に覚えるより、「どの種類のページへ進むか」を選べれば十分です。

ドキュメントを先頭から順に読む場合は、次の順序で読むと前提が積み上がります。

  1. イントロダクション で用語と音声解析パイプラインの全体像を読む。
  2. 学習順ガイド で、解析・ストリーミング・編集・ミキシング・マスタリング・研究用途のどれを作るか決める。
  3. はじめにインストール使用例 で小さなプログラムを 1 つ動かす。
  4. 機能マップ で必要な API ファミリーを探す。
  5. 作りたいもの別 から該当する機能ガイドを 1 つ読む。
  6. 利用環境別 API から実行環境に合うリファレンスを 1 つ読む。
  7. 実装詳細、アルゴリズム根拠、検証範囲、性能が必要になったときだけ、詳説ページを読む。

作りたいものから選ぶ

作りたいもの最初に読むページ次に読むページ
BPM、キー、コード、セクションを表示するブラウザアプリはじめにWebAssembly ガイドJavaScript API
音声解析を行う Python スクリプトやノートブックはじめにPython API
ターミナルでの簡易確認やバッチ解析はじめにCLI リファレンス
ピッチ、長さ、声質、音源分離の編集編集 DSPJavaScript API
領域指定のスペクトル編集(時間×周波数の矩形を減衰・ミュート・ゲイン・修復)スペクトル編集編集 DSP
ブラウザまたはネイティブのミキサーミキシングエンジンミキシングシーン JSON
マスタリング UI や自動マスタリングマスタリングアシスタントマスタリングプロセッサ
MIDI を音声にレンダリングするシンセ/インストゥルメントアプリ組み込み楽器MIDI 入力リアルタイムとストリーミング
DAW、アレンジ、MIDI シーケンスツールプロジェクト編集MIDI 入力プロジェクトバウンス
内蔵プレイヤーでの SoundFont(SF2)再生SoundFont 2 プレイヤー組み込み楽器MIDI 入力
ライブ可視化、リズムゲーム補助、AudioWorklet ツールリアルタイムとストリーミングWebAssembly ガイド
マイク入力のリアルタイムボイスチェンジャーリアルタイムボイスチェンジャーWebAssembly ガイド
ルームの響き、推定、生成された部屋らしさルーム音響解析JavaScript APIPython API
メル/MFCC 特徴量をプレビューやデバッグ用に逆変換する逆変換特徴量librosa 互換性
librosa からの移行librosa 互換性機能マップ

目的別ページの読み方

「作りたいもの別」の各ページは、同じ順序で読めるようにしています。

  1. 最初に判断基準を示す。
  2. 次に最小コード例を示す。
  3. 最後に注意点と関連ページを置く。

ブラウザ / WASM、Python、CLI の 3 つで同じワークフローを安全に示せる場合は、::: code-group で併記しています。

リアルタイムエンジンや AudioWorklet のように実行環境が WASM / C++ 側に寄る機能では、Python / CLI に同じライブコールバック API があるかのようには書きません。代替となるバッチ API や参照先を明記します。

ルーム音響には、残響時間、明瞭度、ブラインド推定、等価ルーム推定、RIR 合成、ルームモーフィングが含まれます。

実装者向けチェックポイント

目的別ページを読んだあと、実装に入る前に次を確認してください。

確認すること見る場所判断のしかた
入力がファイルか、エンコード済みバイト列か、デコード済みサンプルか、ライブブロックか各ページの「いつ使うか」「どちらを使うか」ブラウザ / WASM は多くの場合 Float32ArraysampleRate を受け取ります。エンコード済みバイト列には Audio.fromMemory* やブラウザ codec を使います。Python / CLI はファイル入力を直接扱えます。
同じ処理をどの実行環境で呼ぶか::: code-group のブラウザ / Python / CLI 例3 つを併記しているページでは、API 名、引数名、戻り値の形の違いを見比べてください。
用語を UI や実装コメントで説明できるかページ内の ::: tip / ::: info / ::: warning / ::: details用語集実装判断に効く用語は本文に短く置き、長い背景は VitePress の補足ボックスや用語集へ逃がしています。
ランタイム差分があるかバインディング対応表 と各 API リファレンス目的別ページの例がないランタイムでは、対応 API が未公開または用途違いの可能性があります。

4 つの層で考える

libsonare は、4 つの層に分けて読むと理解しやすくなります。

内容ページ
概念BPM、キー、STFT、クロマ、LUFS、トゥルーピークなどの意味イントロダクション用語集
目的解析、ストリーミング、編集、ミキシング、マスタリングなど、作りたい機能機能マップ、各機能ガイド
実行環境ブラウザ、Python、Node、CLI、C++ のどこで動かすかはじめに、利用環境別リファレンス
根拠実装の構造、アルゴリズム、検証状況DSP 実装解説アルゴリズム根拠実装検証

多くの利用者は、最初に概念、目的、実行環境の 3 つを読めば十分です。実装と根拠のページは、必要になった時点で開いてください。

最初のプロジェクトまでの最短ルート

  1. イントロダクション で基本用語を確認する。
  2. はじめに で利用環境を選ぶ。
  3. 使用例 から小さなサンプルを 1 つ動かす。
  4. 必要な API ファミリーを探すときは 機能マップ を使う。
  5. 実行環境をまたいでコードを移すときだけ バインディング対応表 を確認する。

深掘りページを読むタイミング

DSP のパラメータを UI に出す、レンダリングレポートを説明する、リアルタイム用途に向く処理か確認する、アルゴリズム上の根拠を確認する、といった場面で実装ページを開きます。最初の組み込みでは必須ではありません。