shisoworks
ポートフォリオ一覧に戻る

LoudPolishr(ラウドポリッシャー)

AI生成音楽のためのワンクリック自動マスタリングツール。DistroKid配信基準(-14 LUFS / -1 dBTP)に音源を自動最適化する。

React 19TypeScriptVite 7Tailwind CSS v4wavesurfer.jsZustandFastAPIPythonnumpyscipypyloudnormlibrosa

プロダクト概要

LoudPolishr(ラウドポリッシャー) は、AI生成音楽(Suno / Udio など)向けのワンクリック自動マスタリングツールです。

楽曲をアップロードするだけで、DistroKidなどのサブスクリプション配信プラットフォーム基準(-14 LUFS / -1 dBTP)に音源を自動最適化します。DAWやプラグインの知識がなくても、配信クオリティのマスタリング処理が完了します。

制作背景

YouTubeで音楽制作を始めたことがきっかけでした。AI音楽生成ツールで作った楽曲を公開するにあたって、初めて「マスタリング」という工程の存在を知ります。

音圧・音質を配信基準に合わせるこの工程は、楽曲のクオリティを左右する重要な仕上げ作業。ですが、既存のマスタリングサービスは有料のものばかりで、1曲ごとにコストがかかるのが継続的な負担に感じられました。

「だったら、自分で作ってしまえ」

エンジニアとしてのスキルを活かし、音声処理ライブラリと向き合いながらゼロからマスタリング処理パイプラインを設計・実装。自分の楽曲制作フローに組み込める、オリジナルのマスタリングツールが完成しました。

主な機能

① 音源ファイルをアップロード

Upload screen

WAV / FLAC 形式の音源ファイルをドラッグ&ドロップで読み込みます。

② マスタリングの設定

Setting screen

  • AI Music Mode: Suno / Udio など、AI生成音楽に最適化されたプリセット
  • Intensity スライダー: Gentle 〜 Moderate 〜 Aggressive の範囲で処理強度を調整
  • 配信基準ターゲット: -14 LUFS / -1 dBTP(DistroKid standard)

③ 結果の聴き比べ&ダウンロード

Result screen

  • Before / After を数値で比較(LUFS / True Peak / Dynamic Range)
  • A/B スイッチャーでオリジナルとマスタリング後を瞬時に切り替えて聴き比べ可能
  • 波形を並べて視覚的にも変化を確認できる
  • 納得したら 24bit WAV でダウンロード

技術的なポイント

マルチステップ DSP パイプライン

バックエンドでは、音声処理を以下の順序でパイプライン化しています:

ハイパスフィルタ → インテリジェント EQ → マルチバンドコンプレッサー
  → ステレオエンハンスメント → トゥルーピークリミッター → LUFS 正規化

numpy / scipy / pyloudnorm / librosa を組み合わせ、各ステップをモジュール化。処理の組み替えやチューニングがしやすい構造にしています。

非同期処理でノンブロッキング化

音声処理は CPU 負荷が高いため、FastAPI 上で asyncio.to_thread を使って重処理をスレッドプールに逃がしています。API サーバーをブロックせず、並行リクエストにも耐える設計です。

WebSocket によるリアルタイム進捗表示

マスタリング処理の各ステップ(EQ 適用中、コンプレッサー処理中、正規化中…)を WebSocket でフロントエンドへ逐次プッシュ。ユーザーは処理中も「何が起きているか」が可視化されます。

Intensity パラメータの全段階連動

Intensity スライダー 1 つの値が、EQ・コンプレッサー・ステレオエンハンスメントの 3 モジュールすべてに渡され、処理強度を一括コントロール。設定をシンプルに保ちながら、仕上がりを大きく変えられる設計です。

開発状況

  • Phase 1: ローカル環境での動作 — 完了
  • Phase 2: クラウドデプロイ(Railway / Render + Vercel) — 計画中
  • Phase 3: リファレンスマッチング機能(matchering ライブラリ活用) — 計画中