View on GitHub

cat-oscillator-sync

cat-oscillator-sync

Cat Oscillator Sync - Browser Edition

🎵 ブラウザで動作するマウス制御ハードシンク・シンセサイザー

概要

Web Audio APIとAudioWorkletを使用した、ブラウザ上で動作するオシレータ・ハードシンク・シンセサイザーです。マウスの位置によってリアルタイムに音響パラメータを制御できます。

特徴

必要な環境

使い方(エンドユーザー)

  1. ブラウザでページを開く
  2. バージョンを選択(Simple / Smooth)
  3. 「音を開始」ボタンをクリック
  4. マウスを動かして音を制御
    • X軸(横方向): マスター周波数(40-600 Hz)
    • Y軸(縦方向): スレーブ周波数(100-2000 Hz)

開発環境のセットアップ

必要なツール

インストール

# リポジトリのクローン
git clone https://github.com/cat2151/cat-oscillator-sync.git
cd cat-oscillator-sync/src/typescript/browser

# 依存関係のインストール
npm install

開発サーバーの起動

npm run dev

ブラウザで http://localhost:5173 にアクセスしてください。

ビルド

npm run build

ビルド結果は dist/ フォルダに出力されます。

プレビュー

npm run preview

ビルドした結果をプレビューできます。

技術詳細

アーキテクチャ

src/
├── main.ts              # メインアプリケーション(UI制御)
├── synth/
│   ├── simple.ts        # Simple版シンセサイザー
│   └── smooth.ts        # Smooth版シンセサイザー
└── audio/
    ├── simple-worklet.ts   # Simple版AudioWorklet Processor
    └── smooth-worklet.ts   # Smooth版AudioWorklet Processor

AudioWorkletについて

AudioWorkletは、Web Audio APIの低レイテンシなオーディオ処理を実現する仕組みです。 従来のScriptProcessorNodeと比べて、以下の利点があります:

実装の違い

Simple版

Smooth版

ハードシンクとは

ハードシンク(オシレータ同期)は、一つのオシレータ(マスター)が別のオシレータ(スレーブ)の位相を強制的にリセットする音響合成技術です。

パフォーマンス

ブラウザ互換性

ブラウザ 最小バージョン AudioWorklet対応
Chrome 66+
Firefox 76+
Edge 79+
Safari 14.1+

トラブルシューティング

音が出ない

  1. ブラウザのオーディオ再生が許可されているか確認
  2. システムの音量設定を確認
  3. ブラウザのコンソールでエラーを確認
  4. AudioWorkletをサポートしているブラウザか確認

レイテンシが高い

ライセンス

このプロジェクトは MIT License の下で公開されています。

関連リンク