← フルバージョンへ戻る

🐱 cat-oscilloscope 簡易デモ

ライブラリとして利用する方法を示す最小限のサンプル

📘 このデモについて

このページは、cat-oscilloscopeをnpmライブラリとして使用する方法を示す最小限の実装例です。 GitHubリポジトリからインストールしたライブラリを使って、BufferSourceで波形データを可視化しています。

💡 ポイント: このデモはBufferSourceを使用しており、 オーディオ再生なしで波形データを可視化できます。これはwavlpfのような音声処理ライブラリとの統合に最適です。
4周期表示(今回の波形)
フレームバッファ
波形選択:

📊 ステータス

状態
待機中
推定周波数
--- Hz
ゲイン
---x

💻 実装コード

このデモのコアとなる実装は以下の通りです:

// install from github でライブラリをインポート
// npm install git+https://github.com/cat2151/cat-oscilloscope.git
import { Oscilloscope, BufferSource } from 'cat-oscilloscope';

// Oscilloscopeインスタンスを作成
const canvas = document.getElementById('oscilloscope');
const previousWaveformCanvas = document.getElementById('previousWaveformCanvas');
const currentWaveformCanvas = document.getElementById('currentWaveformCanvas');
const similarityPlotCanvas = document.getElementById('similarityPlotCanvas');
const frameBufferCanvas = document.getElementById('frameBufferCanvas');

const oscilloscope = new Oscilloscope(
  canvas,
  previousWaveformCanvas,  // previousWaveformCanvas
  currentWaveformCanvas,   // currentWaveformCanvas
  similarityPlotCanvas,    // similarityPlotCanvas
  frameBufferCanvas        // frameBufferCanvas
);

// 440Hz サイン波データを生成
const sampleRate = 44100;
const duration = 1; // 秒
const frequency = 440; // Hz
const audioData = new Float32Array(sampleRate * duration);

for (let i = 0; i < audioData.length; i++) {
  audioData[i] = Math.sin(2 * Math.PI * frequency * i / sampleRate);
}

// BufferSourceを作成してループ再生
const bufferSource = new BufferSource(audioData, sampleRate, { 
  loop: true 
});

// 可視化を開始
await oscilloscope.startFromBuffer(bufferSource);

// 推定周波数を取得
const estimatedFreq = oscilloscope.getEstimatedFrequency();
console.log(\`推定周波数: \${estimatedFreq} Hz\`);

🔗 詳細なドキュメント

📦 インストール方法

GitHubリポジトリからインストール(推奨):

npm install git+https://github.com/cat2151/cat-oscilloscope.git
import { Oscilloscope, BufferSource } from 'cat-oscilloscope';
⚠️ 注意: npm経由でインストールする場合は、WASMファイルのセットアップが必要です。 詳細はLIBRARY_USAGE.mdをご覧ください。