Skip to content

fix(audio): remove hardcoded input device from scsynth boot options#81

Merged
dropcontrol merged 1 commit intomainfrom
80-fix-hardcoded-input-device
Feb 26, 2026
Merged

fix(audio): remove hardcoded input device from scsynth boot options#81
dropcontrol merged 1 commit intomainfrom
80-fix-hardcoded-input-device

Conversation

@dropcontrol
Copy link
Contributor

Summary

  • osc-client.tsboot() で入力デバイス 'MacBook Airの' がハードコードされていた問題を修正
  • bootOptions.device に出力デバイス名のみを文字列で渡す形に変更
  • OrbitScoreは出力のみ使用するため、入力デバイスの指定は不要

問題

外付けオーディオインターフェース使用時、存在しない入力デバイス名 'MacBook Airの' が渡されscynthがクラッシュしていた。

変更内容

- bootOptions.device = ['MacBook Airの', outputDevice]
+ bootOptions.device = outputDevice

Test plan

  • npm test - 225 passed, 23 skipped
  • npm run build - 成功
  • 外付けオーディオインターフェースでの動作確認(手動テスト)

Closes #80

🤖 Generated with Claude Code

osc-client.ts の boot() で入力デバイス 'MacBook Airの' がハードコードされていた問題を修正。
bootOptions.device に出力デバイス名のみを文字列で渡す形に変更。

OrbitScoreは出力のみ使用するため、入力デバイスの指定は不要。
scynthのデフォルト入力デバイスに委任する。

Closes #80

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dropcontrol dropcontrol merged commit e6889fc into main Feb 26, 2026
2 checks passed
@claude
Copy link

claude bot commented Feb 26, 2026

コードレビュー

概要

ハードコードされた入力デバイス名 'MacBook Airの' を削除し、出力デバイス名のみを渡すように変更した修正です。変更は最小限かつ的確で、問題の根本原因に直接対処しています。


良い点

  • 変更が最小限: 問題箇所のみを修正しており、不必要な変更が含まれていない
  • 原因が明確: ハードコードされた日本語デバイス名という根本原因を正しく特定している
  • WORK_LOG.md 更新済み: プロジェクトルールに従ってドキュメントが更新されている
  • テスト通過: 225 passed, 23 skipped — 既存テストに影響なし

検討事項・潜在的な問題

1. 出力専用デバイスでの入力チャンネル問題

bootOptions.device = outputDevice と文字列で渡した場合、SuperCollider(scsynth)はその単一デバイスを入出力の両方に使用しようとします。

外付けオーディオインターフェースによっては入力端子がない(または入力チャンネル数が異なる)場合があり、scsynth が起動時に警告を出したり、クラッシュしたりする可能性があります。

より堅牢な修正案として、入力バスチャンネル数を明示的に 0 に設定することを検討できます:

if (outputDevice) {
  bootOptions.device = outputDevice
  bootOptions.numInputBusChannels = 0  // 入力不要であることを明示
  this.currentOutputDevice = outputDevice
}

ただし、supercolliderjs の BootOptions 型でこのオプションが定義されているかの確認が必要です。

2. 手動テストが未完了

このPRが修正しようとしているまさにそのシナリオ(外付けオーディオインターフェース使用時)の手動確認がチェックされていません。可能であれば、マージ前に実機でテストしていただくことを推奨します。

3. scsynth パスのハードコード(既存問題・スコープ外)

scsynth: '/Applications/SuperCollider.app/Contents/Resources/scsynth' がハードコードされており、macOS 以外の環境では動作しません。このPRのスコープ外ですが、別Issueでの対応を検討してください。


総評

観点 評価
コード品質 良好(最小限の変更)
バグ修正の正確性 根本原因に対処
潜在的な問題 出力専用デバイスでの動作要確認
テストカバレッジ 手動テスト未完了
ドキュメント WORK_LOG.md 更新済み

修正の方向性は正しく、コード品質も良好です。外付けオーディオインターフェースでの手動テスト確認と、必要に応じた numInputBusChannels: 0 の追加を検討してから最終マージを判断してください。

Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: remove hardcoded input device from scsynth boot options

1 participant