コンテンツにスキップ
JA

サンプルの歩き方

SDK の examples/ は、読んでコピーして自分のものにすることを前提にした単体ファイル/フォルダ集です。 ここでは「どれを土台にすればよいか」と「コピーして使うときの注意」をまとめます。

  1. minimal.pyconnect → play → stop の最小形。まずこれ。
  2. clip_project/ — kit をプロジェクトに同梱する構成。同じ play(id) が command と clip に自動で分かれることが分かる、いちばんのお手本。
  3. osc_remote/ — 触覚ファイルと、外部(スマホ等)からの起動。
  4. 用途別の応用例(下表)。
サンプル向き何が学べる必要な kit
minimal.py全員discover / play / stop の最小形短い one-shot 1 つ
clip_project/アプリ作成者プロジェクト構成、command/clip 自動分岐、stream_pcmkit フォルダ
osc_remote/ライブ・展示触覚ファイル、スマホ(TouchOSC)から起動kit + 触覚ファイル
task_notifier.py開発・ML任意コマンドの成否を触覚で通知短い one-shot 1 つ
metronome.py音楽・ランニング触覚メトロノーム(テンポ操作・変拍子)短い one-shot 1 つ
breathing_pacer.pyウェルビーイング呼吸ガイド(強度ランプ・計測ログ)短く柔らかい one-shot
psychophysics_experiment.py研究検出実験(恒常法・階段法・CSV)短い one-shot 1 つ
morse_text.pyアクセシビリティテキスト → モールス(play/stop で長短)ループ buzz(または 2 つの one-shot)
haptic_pad.pyライブ・WoZキーボードのトリガーパッド(記録・再生)マッピング元(下記)

表の「既定の event id」(sample-kit.sine_100hz など)はプレースホルダで、必ず自分の kit に 含まれる id に置き換えてください。

コピーして使うときの再利用性

Section titled “コピーして使うときの再利用性”
  • 単体ファイルの例(minimal / task_notifier / metronome / breathing_pacer / psychophysics_experiment / morse_text / haptic_pad)はそのままコピーして使えます。
  • clip_project/ はフォルダごと丸ごとコピーできます。kit の場所を __file__ 基準で 解決するので、フォルダを移動しても自分の kit を見つけます。kits/ を自分の kit に 差し替えるだけで土台になります。
  • osc_remote/ もフォルダごとコピーして使います。中の kits/demo-kit/ を自分の kit に 差し替え、haptics.jsonkit をそのフォルダに向けてください。

起点(コード)と触覚設定(ファイル)の分離

Section titled “起点(コード)と触覚設定(ファイル)の分離”

サンプルは、この分離を段階的に見せています。

  • minimal.py — コードに gain を直接書く最小形。
  • clip_project/ — 強度や mode は kitconnect(kit=...))に。
  • osc_remote/ — target や強度は 触覚ファイルconnect(haptics=...))に。

詳しくは プロジェクト構成EventMap リファレンス を参照。

  • scan では見えるのに鳴らない — いちばん多い原因は、配備した kit に無い event id を 指定していること。Studio で kit の id を確認。task_notifier.py --test で疎通を確認できます。
  • command の例が鳴らない — command の波形は Studio でデバイスに書き込む必要があります (SDK は install-clips/ を読みません)。clip の例(WAV を送る)は書き込み不要で動きます。
  • target が自分のデバイスと合っていないtarget が一致しないと鳴りません。まず空 (全台ブロードキャスト)で確認し、その後デバイスのアドレスに合わせます。
  • clip の音がおかしい — clip WAV は 16 kHz モノ PCM16 で用意してください(SDK は resample しません)。
  • gain が想定と違う — gain は 0..1 の絶対値です。ただし haptic_pad.py--master だけは各パッドへの倍率なので注意。