使い方
目次
- ウィンドウ
- トレイとフライアウト
- Windows 起動時に開始
- CLI モード
- キャプチャモード
- コーデック比較
- aptX ファミリーと aptX Adaptive
- 最大メディアパケットサイズ(デバイスごと)
- 送信ストリームの検証(bluecaster_decode)
- 通信品質と AFH
- 遅延
- 対向受信テスト(tools/linux_sink)
- サービスとペアリングキー
- LE Audio
- 更新
- トラブルシューティング
ウィンドウ
スタートメニューの BlueCaster(または bluecaster.exe)で起動します。左のメニューには次の画面があり(ホーム、コーデック、オーディオデバイス、アダプタ、診断、設定、このソフトについて、開発者モードでは開発者と、そこでオンにしたときは音量ミキサー)、ウィンドウの幅が狭いときはアイコンだけに畳まれます。ウィンドウは常駐の bluecaster-core.exe の状態を表示しているだけなので、閉じても配信は止まりません(トレイとフライアウトを参照)。
ホーム
- 保存したオーディオデバイスごとのカードが横に並びます: 状態、バッテリー、接続済みのものには使用中のコーデック(名前の代わりにリスト。下記を参照)とビットレート。選んだものとは別のコーデックで接続したときは、コーデックの行の名前の横に数秒間理由が出て(例: aptX Adaptive(Opus 非対応)。ほかに 使用中)、そのあとは警告の印だけが残ります(マウスを重ねると理由が出ます)。状態の行は 接続済み とだけ表示します
- 各カードの下に 接続 / 切断。接続できるデバイスは一度に 1 台です。別のデバイスで 接続 を押すと、使用中のものを切断してそのデバイスに接続します
- 音量: ヘッドホンの音量(音量を参照)。スピーカーをクリックするとミュート(無音を送ります)、もう一度クリックするとミュート解除します。ほかのデバイスのカードにもスライダーが無効の状態で残ります
- 使用中のデバイスのコーデックは、そのカードのリストから選んですぐ切り替えられます(ゲーム用と音楽用など): デバイスが対応するコーデック(コーデック と同じ選択肢)が名前だけで並びます。自動選択 の間も使用中のコーデックを表示し、コーデックを選ぶと自動選択はオフになります(オンに戻すのはコーデック画面で)。選ぶとすぐに反映されます(デバイスはそのコーデックで接続し直します。コーデック画面と同じく、次の選択は接続し直すまで待ちます)
- 使用中のデバイスの通信品質(小さなグラフ付き)を、配信中はそのカードに表示します。出力ソースは オーディオデバイス で選びます。出力ソースに設定したアプリケーションがまだ起動していない間は、デバイスのカードにそう表示されます
- エラーには原因と、あればその直し方のボタン(WinUSB ドライバに置き換える、ダウンロードページを開く、Bluetooth を再起動、もう一度試す、コーデック、オーディオデバイス など)が付きます
- カードの上には、閉じるまで次の警告が出ます: Windows でほかの Bluetooth アダプターが有効なとき、OPPO のイヤホンが Hi-Res をオンにしたとき(コーデックを参照)
サイドバーには、どの画面でも各デバイスについて同じ内容が表示されます。トレイのフライアウトには、使用中のデバイスについて表示されます。
コーデック
保存したオーディオデバイスごとのコーデックを、デバイス 1 台につき 1 つのセクション(接続中は緑になる点、名前、ペアリング済み / オーディオ のタグ。アドレスは オーディオデバイス にあります)にコーデックのカードを並べて表示します。カードは、自分で並べ替えていなければ音質の高い順に並び、どれも 3 本のバー(音質・低遅延・安定性)と、デバイスが前回の接続で提示したかどうか(対応(緑の印)/ 非対応(赤の印))が付きます。対応しているコーデックのみ表示 がオン(既定)のときは、表示されるカードには 対応 のタグが不要なので付きません。一度も接続していないデバイス(Windows から取り込んだデバイスなど)には、どの Bluetooth オーディオデバイスにもあるコーデックである SBC のカード(とそのデバイスに選んだコーデック)だけが表示されます。ほかのカードは、初めて接続したあとか、このスイッチをオフにすると表示されます。Huawei と Honor のイヤホンは、LDAC を提示するまで LDAC のカードを 未確認 として残します。LDAC を選んだあとでないと提示しないことがあるためです。LHDC V5 の最大ビットレートを通知する OPPO のイヤホンには、LHDC V5 で配信するとき(自分で選んだときも自動選択のときも。音質 低音質 や ABR のときは除く)に一度だけ Hi-Res を求めます。そのためにイヤホンは一度だけ接続し直し、それでビットレートが上がったときはホームにそう表示されます。その後 Hi-Res はイヤホン側でオンのままです(効果のなかったイヤホンは元に戻します)。開発者モードでは、LHDC V5 の設定の Hi-Res をもう一度要求 で、デバイスが通知した内容と、Hi-Res を求めたことを忘れるので、次の接続でもう一度求めます。
- 対応するコーデックのうち最も音質の高いものを自動で選ぶ(画面上部の、すべてのデバイス共通の設定。既定でオン): 各デバイスが対応する最も音質の高いコーデックを LHDC V5 > LDAC > aptX Adaptive > Opus > aptX HD > aptX > aptX LL > AAC > SBC XQ > SBC の順で選び、その既定の設定(高音質、コーデックが対応していれば 24 bit、48 kHz。デバイスが 48 kHz を通知していなければ通知した別のレートで、44.1 kHz を優先します。Windows 側のレートはリサンプリングします)で使います。コーデックの設定の 自動 と同じです。カードは順番の入れ替え(下記。自動ではデバイスが対応する最初のカードを選びます)以外は読み取り専用で、使用中(または自動で選ばれる)コーデックが強調表示されます。カードやその … をクリックすると、自動選択をオフにするか尋ねます(自動選択をオフにする / キャンセル)。オフにすると、クリックしたカードが選ばれます(その … では設定が開きます)。オフにすると、デバイスごとにコーデックとその設定を選べます(まだ選んでいないデバイスは自動の選択のまま)。オンの間も、デバイスごとに選んだコーデックは保持されます。2.0.2 より前にいずれかのデバイスでコーデックを選んでいた場合は、オフで始まります
- 自動選択がオフのときは、カードをクリックするとそのデバイスのコーデックになり、すぐに保存されます。配信中のデバイスは、そのコーデックで接続し直します。デバイスが対応していないカード(対応しているコーデックのみ表示 がオフのときに表示)も選べます。BlueCaster はそれでもそのコーデックをデバイスに求め、デバイスが拒否すると、そう伝えるエラーで接続が止まります(別のカードを選ぶか、自動選択をオンにしてください)。ホーム、サイドバー、トレイのフライアウトとアイコンのツールヒントには原因が短く表示されます(例: LDAC 非対応)。コーデックが原因で止まったとき(デバイスが対応しない、拒否した、別の機器で使用中のコーデック)はいつも同じです。そのデバイスで別のカードや別の設定を選ぶか、自動選択をオンにすると、接続し直します。デバイスが提示していたときに選んだコーデックを、後でデバイスが提示しなくなった場合(イヤホンが別のコーデックに切り替えたときなど)は、デバイスの順番で対応している最初のカードを使います。順番を変えていなければ、対応する最も音質の高いコーデックです(指定したコーデックがない場合を参照)
- デバイスのカードをドラッグする(手の形はボタンを押している間だけ出ます。自動選択がオフのときは、カード上で Alt+矢印キーでも可)と、そのデバイスのコーデックの順番を好きなように並べ替えられます。順番はデバイスごとに保存され、コーデックの順番をリセット で元に戻ります(このボタンは、表示中のカードが既定の順番から外れている間だけ出ます。並べ戻せば既定の順番に戻ります)。自動選択と、まだコーデックを選んでいないデバイスは、この順番でデバイスが対応する最初のカードを使います。選んだコーデックにデバイスが対応していない場合も同じです。FastStream と Opus 05(Opus (PipeWire) のカード。開発者モードのときだけ表示され、オフのときは選んでいても使いません)は、どこに置いても選んだときだけ使います。使用中のストリームのコーデックが変わる場合は接続し直します
- 配信中のデバイスで別のコーデックを選ぶと、そのコーデックで接続し直します。そのあとカード(とホームとトレイのフライアウトのコーデックのリスト)は接続し直すまで次の選択を待つので、続けて素早くクリックしても設定中の接続が途中で切れることはありません。コーデックの切り替えでは接続の通知は出ません(デバイスの接続では出ます)
- 対応しているコーデックのみ表示(既定でオン。オフにすると対応していないコーデックも表示します): デバイスが提示しなかったコーデックを表示しません。デバイスを初めて接続する前は、SBC(とそのデバイスに選んだコーデック)だけが表示されます
- カードの … でそのコーデックの設定が開きます。変更はすぐに反映されます。使用中のコーデックでは保存してデバイスが接続し直します(ビットプールは再生中にそのまま変わります。下の切り替えも、どちらでもストリームの設定が同じなら接続し直しません)。ほかのコーデックでは、そのコーデックを選ぶときのために保存します。コーデックごとに設定を別々に覚えているので、別のコーデックを選んでから戻ると元の設定に戻ります。そのコーデックで使える項目のうち、デバイスが前回の接続で通知したものだけが出ます。上部の デバイス が対応しているオプションのみ表示(既定でオン。デバイスが通知したあとに表示)をオフにすると、デバイスが通知していないサンプルレート・ビット深度・音質・ビットプールなども含め、そのコーデックのすべての項目が出ます((非対応) と表示)。デバイスが拒否することがあり、そのときは、そう伝えるエラーで接続が止まります。オンに戻すと、デバイスが通知していない項目は自動に戻ります。この切り替えはコーデックごとにあり、自動選択では使いません:
- 音質: LDAC は 高音質 / 中音質 / 低音質(990 / 660 / 330 kbps)、LHDC V5 は 高音質 / 中高音質 / 中音質 / 低音質(1000 / 900 / 500 / 400 kbps、Android の 4 段階)。aptX Adaptive は 高音質 / 低遅延(aptX Adaptiveを参照)。LHDC V5 の ABR がオンのときは、音質はグレー表示になります(ABR は 400 kbps 以下にとどまります)。AAC、Opus、Opus 05、SBC、SBC XQ は 高音質 の 1 つだけで、選ぶのではなく表示だけです: デバイスが受け付ける最大のビットレート(ABR や VBR がある場合は、それで変動します。SBC と SBC XQ は、ビットプールとフレームの設定で決まるビットレートを表示します)。aptX、aptX HD、aptX LL、FastStream はコーデックでビットレートが決まっています。以前のバージョンで保存した、今はそのコーデックにない品質(aptX Adaptive の標準 / モバイル、AAC の低い段階など)は高音質として読み込みます
- ABR(適応ビットレート): LDAC、LHDC V5、aptX Adaptive、SBC、SBC XQ(ABRを参照)。AAC は VBR
- サンプルレート: 自動は、それで決まるレートと一緒に表示され(例: 自動(48000 Hz))、48 kHz です(デバイスが 48 kHz を通知していなければ、通知した別のレートで、44.1 kHz を優先します)。96 kHz は遅延や相性の問題が増えるわりに聞き分けられる差がなく、Windows のミキサーも 48 kHz で動いているためです。96 kHz を使うにはここで選びます。デバイスが通知したレートだけを選べます(LHDC V5 には 88.2 kHz がありません。aptX Adaptive の 96 kHz は通知したデバイスだけ。aptX Adaptiveを参照)。通知したレートが 1 つだけのデバイスでは、自動なしでそのレートを表示します
- ビット深度: LDAC と LHDC V5 は 16 / 24 ビット(自動は 24 ビット。LHDC V5 ではデバイスが通知したときだけ。どちらもデバイスが通知したものだけ)、aptX HD と aptX Adaptive は 24 ビット、それ以外は 16 ビット。LDAC の 24 ビットは 32 ビットのサンプルとしてエンコーダーに渡ります。Android の 32 ビットと同じです。ビット深度は LDAC の設定に含まれないため、ヘッドホンが受け取るストリームはどちらでも同じです
- ビットプール(SBC、SBC XQ): 最小と最大のビットプールを 2 つのつまみで決める 1 本のスライダーで、デバイスが通知した範囲の中で動きます。最大が使うビットプールで、最小は使う中で最も低いもの(接続で設定する範囲の下限で、ABR が下げられる限度)です。自動 で両方を戻します: 最大は音質に合わせ、最小はデバイスと ABR 自身のものになります。下の行には、コーデックごとに決まったチャンネルモードを表示します: SBC はジョイントステレオ、SBC XQ はデュアルチャンネルです。SBC XQ のビットプールは 44.1 kHz で 47、48 kHz で 43 までで、デバイス が対応しているオプションのみ表示 をオフにすると 53 まで上げられます。
- フレーム設定(SBC と SBC XQ。開発者モードのときだけ): ブロック数、サブバンド数、ビット割り当て、SBC ではチャンネルモード。Auto は 16 ブロック、8 サブバンド、Loudness、Joint stereo のままです。デバイスが受け付けない値は、接続時に Auto に戻ります。ユーザーが試した Sony のデバイスでは、12 ブロックにすると音が崩れ、切断することもあります(エンコーダーの出力は正しくデコードでき、ほかのブロック数は再生できます)。選んだ値は保存されたままですが、開発者モードをオフにすると使いません。AAC と LHDC V5 のビットレートは、デバイスが通知した最大値を超えません
初期設定のままで一番良い音になります。ほとんどのデバイスは 自動 のままで足ります。LE Audio デバイスのカードは LC3 と LC3 低遅延 の 2 枚です(LE Audioを参照)。
クラシックのデバイスのマイクが開いている間(オーディオデバイスを参照)、音楽用のカードは、使える通話コーデックのカードに替わります。LC3(32 kHz)、mSBC(16 kHz)、CVSD(8 kHz)で、開いているものが選ばれます。自動選択 がオンの間は通話のリンクが双方の対応する最良のものを選び、カードをクリックすると自動選択をオフにするか確認します。オフのときは、カードをクリックすると通話コーデックを選べます。マイクはそのコーデックで開き直し、ヘッドホンが対応していなければ、対応している一つ下のものを使います。… で設定を読み取り専用で確認できます。マイクが閉じると、音楽用のカードに戻ります。選んだ通話コーデックは、自動選択をオンにしている間も保持されます。対応しているコーデックのみ表示 をオンにすると、ヘッドホンが対応していないものは表示されません。
LE Audio デバイスのマイクが開いている間は、音楽用のカードの下に マイク のカード(LC3、モノラル)が出ます。自動選択がオフのときは、その … でヘッドホンが対応するサンプルレートからマイクのレートを選べます(自動 は先頭のものを使います。変えるとデバイスが接続し直します)。自動選択がオンの間は使用中のレートを表示します。
内部では、BlueCaster はデバイスごとに 1 つの項目を profiles.json に持ち(コーデック、コーデックごとの設定、コーデックの順番)、そこでは「デバイス | コーデック」という名前です。ウィンドウとトレイのメニューにはデバイスの名前が表示されます。以前のバージョンでは 1 台のデバイスに複数のプロファイルを作れました。コーデック画面のあるバージョンで初めて起動すると、最後に使ったプロファイル(なければ最初のもの)を残して他をそこにまとめ、コーデックごとの設定(品質、サンプルレート、ビット深度、ABR、SBC の設定)はそのコーデックのものとして引き継ぎます。元のプロファイル名、出力ソース、パケットサイズは引き継がれません。元の profiles.json は、設定フォルダーに profiles-before-codecs.json として一度だけ保存されます。2.0.2 のプレリリースにあった 自動選択の順番…(開発者モードの、すべてのデバイス共通の順番)は使われなくなり、今はデバイスごとに順番を持ちます。 |
オーディオデバイス
BlueCaster が配信できるヘッドホンやスピーカーを、それぞれの設定とともに表示し、その下に オーディオデバイスを追加 があります: デバイスを検索 で USB アダプターを使って近くのデバイスを探します(30 秒。応答した順に表示し、検索を停止 で終わります。ヘッドホンはペアリングモードに。デバイスの接続中は、先に切断するか尋ねます)。追加 で、見つけたデバイスを保存して接続します。BlueCaster で以前ペアリングしたデバイスには ペアリング済み と付きます。検索で見つからないときは 手動入力: にアドレスを入れて 追加 を押します。入力・貼り付けたアドレスはその場で整形されます(aa-bb-cc-dd-ee-ff、AABBCCDDEEFF、AA BB CC DD EE FF はどれも AA:BB:CC:DD:EE:FF になります)。ヘッドホンからは、アダプターが PC の名前に BlueCaster を添えた名前(例: Taro-PC (BlueCaster))で見え、Windows 自身の Bluetooth と区別できます。Windows が別のアダプター(PC 内蔵の Bluetooth など)でペアリングしているデバイスは、先に確認します(Windows でペアリング済み: Windows で削除するか、このまま追加)。Windows がこのアダプターでペアリングしたデバイスでも同じく確認します(そのペアリングの取り込みはセットアップで行います。サービスとペアリングキーを参照)。保存したデバイスは名前の変更と削除ができ(削除するとその設定とペアリングも消えるので、ペアリングし直すまで接続できません)、次の設定があります:
- 出力ソース: 一覧の先頭に単独で並ぶ Windows の既定(Windows の既定の出力。括弧内にその名前が出ます。仮想デバイスのこともあります。新しいデバイスの初期値)、サウンドデバイス の下の 1 つの出力デバイス、仮想デバイス、またはアプリ(キャプチャモードを参照)。横には、取り込むデバイスを Windows がミックスする形式(サンプルレートとビット深度。読み取り専用)が表示されます。デバイスが別の形式で配信しているとき(接続していなければ、コーデック設定が別の形式を求めているとき)は琥珀色になり、下の行に両方の形式が出ます(変換して配信は続きます)。その下にはソースの説明が表示されます
- 接続中は Windows の既定の出力にする(仮想デバイスのとき)
- 入力ソース: ヘッドホンのマイク(下記を参照)
入力ソースは各デバイスにあり、ヘッドホンのマイクを Windows に届けて通話やボイスチャットに使えるようにします。BlueCaster は独自のオーディオドライバーを持たないため、マイクの音は VB-CABLE のような仮想オーディオケーブルに再生されます。一覧には各ケーブルが、アプリが録音する側の名前(VB-CABLE なら CABLE Output)で並びます。これがアプリでマイクとして選ぶものです。入力ソース の右で オフ・自動・オン から選びます。自動 はアプリがそこから録音している間だけマイクを使うので、それ以外は元の音質で再生します。オン は常にマイクを使います。オフ の間も一覧はグレー表示のまま残ります。これから追加するクラシックのデバイスは、出力ソース がそのケーブルでない限り、VB-CABLE が入っていればそれで、なければ Hi-Fi Cable で 自動 から始まります。足りないケーブルは オーディオデバイス とセットアップが勧めます(キャプチャモードを参照)。あとで BlueCaster が初めてケーブルを見つけたときに、マイクの出力が使えなかったデバイス(未選択、または出力ソース自身のケーブル)はそこで再生し、使えているマイクの出力はそのままです。マイクを Hi-Fi Cable に再生していて、Windows のサウンド設定でその再生側と録音側のサンプルレートが違うときは、警告が出ます。アプリに何も聞こえないときは、両方を同じレートにしてください。一覧には、アプリが録音できるケーブルだけが並びます。BlueCaster 自身がキャプチャしているケーブル(出力ソース、または Windows の既定 のときの Windows の既定の出力)は一覧に入らず、同じケーブルのもう一方も入りません(VB-CABLE の CABLE In 16ch は CABLE Input と同じ CABLE Output に録音されます)。マイクの音が再生中の音と混ざってしまうためです。同様に、入力ソース が オフ でない間は、出力ソース の一覧にマイクを再生しているケーブルが入りません。開発者 > アプリ設定 > ソースの一覧にすべてのオーディオデバイスを表示 がオンのときは、どちらの一覧にもすべてのデバイスが並びます。録音側のない出力(スピーカーなど)はマイクを再生するだけのものとして モニター用 の下に、VB-CABLE の 16 チャンネルのケーブルは CABLE Output · CABLE In 16ch(共有する録音側の名前と、そのケーブル自身の名前)として、出力ソースのケーブルはグレー表示で名前の後に (出力ソースで使用中) が付いて並びます。CABLE Input と CABLE Output は 1 本のケーブルの両端です。仮想デバイスの出力ソースとマイクの両方には、ケーブルが 2 本必要です。お勧めは、音には遅延がいちばん少ない VB-Audio の Hi-Fi Cable(VB-Audio のページの HiFi-Cable & ASIO-Bridge)、マイクには VB-CABLE です。マイクのデバイスを Windows の既定の出力にすることもできません。アプリには再生中の音がマイクと混ざって聞こえ、別のデバイスの出力ソースには何も届かなくなるためで、入力ソース の下に警告が出ます。クラシック Bluetooth のデバイスは、マイクを使っている間は通話用の接続で再生します。通話品質のモノラル(CVSD、mSBC、LC3 のうち双方が対応する最良のもの)になり、その間コーデックは薄く表示されます。マイクを使い終わると、接続し直さずに元のコーデックに戻ります。LE Audio のデバイスはいつもの品質のまま LC3 で再生を続け、マイクも同時に送ります。モードを変えると接続し直します(LE Audio では自動でもマイクを開いたままにします)。ヘッドホンによっては、通話をしていないのに拒否したり通話中の表示を出したりすることがあります。自動 か オン でデバイスを選んであると、デバイスの接続中(接続処理中を含む)は、サイドバー、ホーム、フライアウトのコーデックの下に マイク: の行が出て、マイクの状態を表示します。開いている間はコーデックとサンプルレートに赤い点がつき(マイク: mSBC 16 kHz)、閉じている間はモードとともに薄く表示されます。ホームとフライアウトでは、その横のマイクのボタンをクリックするとマイクを無効にします(斜線つき: オフ と同じくマイクを閉じ、クラシックのデバイスは元のコーデックに戻ります)。もう一度クリックするか、入力ソース でモードを選ぶと有効に戻ります。自動でアプリの録音を待っている間は点線で表示され、マイクを開けなかったときは警告のマークが出て、ツールチップに理由が表示されます。
一覧の上の すべてのオーディオデバイス には、すべてのデバイスに共通のスイッチがあります: 連動する Windows 音量(音量を参照)、オーディオデバイスのボタンで再生を操作、自動で再接続する。デバイスごとの 最大メディアパケットサイズ は 開発者 画面にあります(最大メディアパケットサイズを参照)。
診断
- 配信中の 通信品質: 実効ビットレート、パケット、送信前に破棄したパケット、音声取り込みの欠落、送信キュー、機器が報告した遅延(遅延を参照)、無線時間の使用率、電波の強さ(RSSI)、AFH のチャネル(通信品質と AFHを参照)。ヘッドセットマイクを開いている間は、クラシック機器の通話用の接続を同じように計測します(mSBC などのコーデックと送信量)。戻ってくるパケットは マイク カードに、受信数・電波上で破損した数・補間した数が表示されます
- 電波: 2.4 GHz 帯の Bluetooth 79 チャネルのうち、リンクが使っているものとアダプタが回避しているものを、Wi-Fi チャネルと重ねて表示します。改善のヒントも載せています。開発者モードでは スキャン で周囲の 2.4 GHz Wi-Fi も重ねて表示します(電波タブ)
- 配信中の コーデックの詳細: メディアペイロード、ヘッダー、コーデックのフレームとパケットあたりのフレーム数、デバイスのエンドポイントが通知する内容と使用中のもの。SBC はビットプール、サンプルレート、チャネルモード、ブロック、サブバンド、ビット割り当て、AAC はオブジェクトタイプ、サンプルレート、チャネル、最大ビットレート、VBR、それ以外のコーデックはサンプルレート、ビット深度、最大ビットレート
- マイク: 配信中の Bluetooth Classic 機器のヘッドセットマイクをテストします。録音 でマイクを開き(その間は通話品質で再生されます。その接続でまだマイクを開いたことがなければ、先に接続し直します)、最大 10 秒録音し、音量をバーに表示します。再生 で録音をヘッドホンで再生します。タブを離れるとテストは終わり、再生は元のコーデックに戻ります。LE Audio 機器にはまだ対応していません
- 接続フロー: 直近の接続の 11 の段階(開始、Bluetooth アダプター、ACL / AVDTP 接続、コーデック能力の取得、コーデック選択、音声の取り込み、ストリーム設定、エンコーダー、ストリーム開始、音声送信、接続の維持と切断・再接続)を、かかった時間とともに OK / 警告 / 失敗で表示します。フローをコピー でコピーできます
- ログ: リアルタイムに表示し、レベル(すべてのレベル、情報以上、警告とエラー、エラーのみ)と文字列、今回の接続(現在の接続のみ)で絞り込めます。表示中のログをコピー で表示中の行をコピーします。ログフォルダーを開く でログファイルのフォルダーを開きます。診断情報をコピー と違い、これらのファイルは伏せ字になっていません(Bluetooth アドレスと Windows のユーザー名を含みます)
- HCI キャプチャを開始 / HCI キャプチャを停止(送信ストリームの検証を参照)
- 診断情報をコピー: バージョン・OS・アダプター・オーディオデバイス(コーデック、その設定と順番)・接続フロー・警告とエラー・直近のログをまとめてクリップボードへコピーします(不具合報告にそのまま貼れます)。BT アドレスを伏せる(既定でオン)で、アドレスは
<addr-1>,<addr-2>…(アダプター自身は<adapter>)、デバイス名は<device-1>,<device-2>… に置き換わり、USB のシリアル番号、アプリのフォルダーより上のパス(<path>\BlueCaster\logs\...)、Windows のアカウント(ユーザー名と SID)も隠れます。不具合報告用にコピーするクラッシュレポートやエラーの文面にも同じ伏せ字が掛かります - 問題を報告:
- 詳細ログ: 詳細(debug) または すべて(trace、1 時間) にすると、Bluetooth・USB・音声キャプチャ・エンコードについて大幅に多くのログを記録します。debug は 24 時間有効で再起動後も続き(起動時の問題用)、その後自動でオフになります。オンにして問題を再現し、診断パッケージを保存してください
- 診断パッケージ > 保存…: HCI キャプチャを含めるか(既定ではオフ。アドレスとデバイス名が残るので、求められた場合だけ)、テキストファイルの Bluetooth アドレスを伏せるかを選んでから、
.zipを 1 つ保存します(設定フォルダーのlogs\bundles\、新しい 3 件を保持)。中身は診断情報、コア・ウィンドウ・ドライバー補助のログファイル、クラッシュレポート、システム情報(USB Bluetooth アダプターとドライバー、Windows のペアリング済みデバイス、オーディオデバイス)、設定と各デバイスのコーデック設定(リンクキーは含みません)、HCI フライトレコーダーです。HCI キャプチャにはアドレスが残ります(ペアリングキーは含みません)。できるだけ GitHub の添付上限 25 MB に収まるようにしています(新しいログから最大 48 MB のテキスト、新しい 5 件の記録と 2 件のミニダンプ) - GitHub で報告(保存後): バージョン・Windows ビルド・アダプター・ヘッドホン・コーデック・キャプチャ方式・診断情報(アドレスは伏せた状態)を入力済みの不具合報告を開き、診断パッケージをエクスプローラーで表示します。ファイルを報告にドラッグしてください
一度だけ起きた問題も調べられるよう、次のものは常に記録しています。
- HCI フライトレコーダー: 直近数分の Bluetooth 通信をメモリに保持し(メディアのペイロードは先頭のみ、ペアリングキーは除去)、ストリームが失敗したり接続が切れたりすると
logs\hci\に保存します(新しい 10 ファイルを保持) - クラッシュレポート: BlueCaster がクラッシュすると、
.dmpミニダンプと.txtをlogs\crash\に保存します(プログラムごとに新しい 5 件を保持)
ディスク使用量には上限があります。通常の 1 日分のログは 1 MB 未満で、7 日分を保持します。詳細ログ中は 1 日のファイルにつき debug・trace の行は 100 MB まで(それ以降は翌日まで info 以上のみ)です。フライトレコーダーのファイルは最大でも数 MB で、10 件を保持します。
開発者
設定 > 開発者モード がオンの間だけ表示されます。ほとんどの人は使う必要がありません。デバイスのテストや問題の切り分けのためのもので、設定によっては一部のデバイスでしか働きません。タブは 6 つです:
- アプリ設定: 音量ミキサーを使う(既定でオフ): 音量ミキサー 画面、フライアウトのアプリ一覧、出力のミュート(キャプチャモードを参照)。おすすめしません。PC から音を出さないようにするには VB-CABLE のほうが適しています。ソースの一覧にすべてのオーディオデバイスを表示(既定でオフ): オーディオデバイス の 出力ソース と 入力ソース に、向いていないものも含めてすべてのデバイスが並びます(オーディオデバイスを参照)。アップデート確認にアルファ版を含める(アルファ版では既定でオン): アルファ版も提案します(更新を参照)
- コーデック設定: デバイスが無音のままになる原因を調べるためのスイッチ(RTP マーカービット、最初のメディアパケットのログ出力、AAC の設定とエンコーダーのオプション)、保存した各デバイスの 最大メディアパケットサイズ(最大メディアパケットサイズを参照)。コーデックの自動選択でも、各コーデックの設定を使う: 自動選択がオンのままでもコーデックのカードの … が開き(自動選択はオフになりません)、自動で選ばれたコーデックは自動の設定ではなくその設定で接続します。サンプルレートとビット深度を PC の出力に合わせる: 自動のサンプルレートやビット深度を、48 kHz ではなく Windows のサウンド設定にある出力デバイスの形式に合わせます。レートはデバイスがそのコーデックで申告するものから、PC と同じレート、なければ同じ系列(44.1 kHz または 48 kHz の倍数)でいちばん近いもの、それもなければすぐ上のものを選びます。16 ビットの出力なら 16 ビットで送ります。デバイスの最大ビットレートを無視: デバイスが示す上限(LHDC V5・AAC・Opus 05 のビットレート、SBC の bitpool)がもっと低くても、どのコーデックも選んだ音質のビットレートで動かし、コーデック 画面ではすべての音質と bitpool を選べます。上限を超えると、デバイスの音が途切れたり出なくなったりすることがあります。送信キューの上限: メディアパケットが捨てられるまでに送信キューで待てる長さ。50~2000 ms(空欄なら 350 ms)。通信が良好なときの遅延は減りません(遅延を参照)。どれも既定でオフで、次にストリームを開始したときから反映されます。どれかがオンの間はバナーで知らせます。すべてオフ で元に戻します
- ベンダー: BlueCaster がイヤホン独自のプロトコルを使うとき(Huawei: LDAC、OPPO: Hi-Res。コーデックを参照)、それぞれに 独自プロトコル があります: 自動(名前からそのベンダーのものと分かるイヤホン。既定)、常に(どのデバイスでも)、使わない。OPPO には 接続のたびに Hi-Res を要求(毎回再接続) もあります。変更は次にストリームを開始したときから反映されます。どれかを変えている間はバナーで知らせ、すべてオフ で元に戻します。開発者モードをオフにすると使いません
- ログ: ログファイルの保存日数(既定 7 日)、1 日のサイズ上限(既定 100 MB)、ずっと有効な詳細ログ(24 時間や 1 時間の制限がなく、コアの起動直後から有効)、10 秒ごとのストリーム状態の行、マーカーを追加(その時点をあとで見つけられるよう、番号付きの行をログに入れます)。開発者モードをオフにすると既定値に戻ります
- 対向受信テスト: 別の PC で動く測定用の受信機に送り、送った内容と届いた内容を比べます(対向受信テストを参照)
- チップ: WinUSB のアダプターでチップスクリプトを実行します。入力するかファイルから開いたチップへの要求で、チップへの対応を追加する人のためのものです(チップ対応の追加を参照)。チップを変更するおそれのある行は、実行を許可 を押したあとでだけ実行されます。そのあいだ Bluetooth は止まり、次に使うときに起動し直します
- Debug: 実験的な機能。どれも既定でオフです。Realtek: RTL8761B のファームウェアをこの PC の Realtek 製 Windows ドライバから読み込む をオンにすると、ファームウェアフォルダのものの代わりに、Realtek の Windows ドライバが入れたファームウェア(アダプタを WinUSB にした後も残ります)を読み込みます。設定ファイルは引き続きフォルダのものを使い、そのドライバが無いときはフォルダのファームウェアを読み込みます。アダプタが新しい Bluetooth バージョンを報告することがありますが、それ以外に改善があるかは確かめていません。ペアリングキーと Windows: 元のドライバに戻すとき、LE のキーも Windows に渡す をオンにすると、元のドライバに戻す で BlueCaster の LE のキー(Long Term Key、EDIV、Rand、キーの長さ、Identity Resolving Key)を Windows に書き込みます。対象は、Windows がそのアダプターで LE のキーをすでに持っているデバイスだけです。Windows の古いキーは
pairing\replaced_windows_keys.jsonに、あなたの Windows ユーザーだけが読める形で残します。Windows と比較(管理者の許可が必要)は、1 つのアダプターについて、リンクキーと LE のキーが BlueCaster と Windows で一致・不一致・片方だけのデバイスの数を数えます。表示もログも数だけで、アドレスやキーは出さないので、結果をそのまま共有できます。Windows がアダプターと LE のデバイスについて持っている値の名前・型・サイズも表示します(中身は出しません)
アダプタ
- 検出した USB Bluetooth アダプターと、そのチップ、アドレス、USB ID、Bluetooth バージョン、ドライバ、ファームウェア。アダプターを抜き差しすると一覧は自動で更新されます。ドライバは 元のドライバ(Windows かメーカーが入れたもの。マウスを重ねると名前が出ます)か WinUSB ドライバ(BlueCaster が使うもの)のどちらかです。Realtek のアダプターは、まだ使っていなくても USB のシリアル番号からアドレスを表示します。それ以外のアダプターのアドレスと Bluetooth バージョンは、Windows の Bluetooth か BlueCaster がそのアダプターを使うと表示されます(出ていない理由はマウスを重ねると出ます)。BlueCaster が使えないアダプター(一部の MediaTek と Qualcomm)はドライバがそのままで、WinUSB とファームウェアのボタンは押せません。開発者モードではそれでも WinUSB を割り当てられ、WinUSB のアダプターで チップ情報を読む を押すと、いくつかの読み取りコマンドへのチップの応答を
logs\probe\に保存します。そのチップへの対応を追加する人のためのものです(そのあいだ Bluetooth は止まり、次に使うときに起動し直します)。続けて GitHub で報告 を押すと、その内容を記入した issue が開きます。ファームウェアを BlueCaster が自分で読み込むアダプター(Intel、MediaTek、Qualcomm)の起動中は、読み込みの様子と、失敗したかどうかが表示されます - WinUSB ドライバに置き換える / 元のドライバに戻す(セットアップを参照)。毎回 Windows が管理者の許可を求めます(盾のアイコンが付いたボタンはどれも同じです)。元に戻すとき、Windows もこのアダプターでペアリングしているデバイスについて、BlueCaster の新しいペアリングを Windows に渡すため、Windows でペアリングし直さずに接続できます。制限: LE のキーは渡さないため、Windows が LE(LE Audio)で使うデバイスは Windows でペアリングし直す必要があります(開発者モードで試せます: 開発者 > Debug)
- ファームウェア用の Bluetooth チップ と、ファームウェアをダウンロード、ダウンロードページを開く、ファームウェアフォルダを開く(ファームウェアを参照)。ほかのメーカーのアダプターでは代わりにファームウェアの入手元を表示し(MediaTek のドライバーから、ファームウェアフォルダーから、不要 など)、BlueCaster が読み込んだあとは 読み込み済み になります
- Wi-Fi チャネルの回避: 自動、オフ、手動。横に Wi-Fi のチャネルが表示されます: 自動では今避けているチャネル、オフでは何も表示されず(どちらも読み取り専用)、手動では入力したチャネル(通信品質と AFHを参照)
- Bluetooth スタック: 停止中(最初の検索か接続で起動)、起動中、準備完了、エラーの表示と Bluetooth を再起動
設定
| 項目 | 設定 |
|---|---|
| 表示 | 言語、テーマ(システム / ライト / ダーク) |
| 起動 | Windows 起動時に開始 と トレイに入れた状態で起動(Windows 起動時に開始を参照)、システムトレイに最小化、トレイウィンドウを開く場所(トレイとフライアウトを参照) |
| 通知 | デバイスの接続時に通知する(デバイス、バッテリー、コーデックとその設定。既定でオン)、バッテリー残量が少ないときに通知: 20% 未満(既定)、10% 未満、5% 未満、通知しない。1 回の接続につき 1 回だけです(バッテリーが 5 ポイント上まで戻ってから、また通知します) |
| 更新 | アップデートを確認、起動時にアップデートを確認、アップデート確認にプレリリースを含める(ベータ版も通知)、今すぐ更新(更新を参照) |
| 詳細 | 開発者モード(開発者 画面、コーデックの設定の SBC の フレーム設定、オーディオデバイス の サービス タグのペアリングキー(サービスとペアリングキーを参照)、コーデック Opus (PipeWire)、アダプタ の チップ情報を読む を追加し、ログを詳しくします。再起動は不要)、設定フォルダ と 設定フォルダを開く、セットアップを実行 |
BlueCaster を終了 は一番下にあります。バージョン、ライセンス、サードパーティライセンス は このソフトについて 画面にあります。
初回セットアップ
初回の起動(オーディオデバイスがまだないか、WinUSB のアダプターがない)では セットアップウィザード が、一度完了またはスキップするまで開きます: アダプタを選ぶ、ドライバとファームウェア(Windows がこのアダプターでペアリングしたデバイスは Windows で使えなくなるため、先に示されます)、オーディオ機器を探す(「接続」でデバイスを最良の設定で保存して接続。Windows がペアリングしたデバイスでは先に確認します。Windows のペアリングを取り込む で、Windows がこのアダプターでペアリングしたデバイスが一覧になります。サービスとペアリングキーを参照。次へ はデバイスがなくても押せ、デバイスはあとで オーディオデバイス で追加できます)、そして 全般設定: テーマ、Windows 起動時に開始 と トレイに入れた状態で起動(初めてのセットアップでは両方オンにします)、通知、起動時にアップデートを確認。セットアップを参照してください。設定 > セットアップを実行 でもう一度開けます。
トレイとフライアウト
BlueCaster はウィンドウの有無にかかわらず、システムトレイで動き続けます。
- トレイのアイコンを 左クリック するとフライアウトが開きます: デバイスと状態、接続 / 切断、音量、デバイスの切り替え、コーデック(ホームと同じくリストで選べます)、通信品質、アプリを開く。高さは表示する内容にちょうど合わせます。Esc かほかの場所のクリックで隠れます。エラーの直し方がメインウィンドウの画面(コーデック、オーディオデバイス、アダプタ)にある場合は、ボタンでウィンドウのその画面を開きます
- 設定 > トレイウィンドウを開く場所(既定は トレイアイコン): Windows 11 で クイック設定(音量ボタン) にすると、トレイアイコンではメインウィンドウが開き、クイック設定を開いたときにそのパネルの上にもフライアウトが開き、一緒に閉じます。操作してもクイック設定は閉じません。画面の高さが足りないときは左側に開きます。開かない にすると、フライアウトは開かず、トレイアイコンでメインウィンドウが開きます。
- 右クリック でメニューが開きます: BlueCaster を開く、最初の 10 台のデバイス(名前で表示。LE Audio の項目には「(LE Audio)」が付きます。配信中のものにチェック。クリックするとそのデバイスに接続)、切断、終了。メニューはウィンドウを起動せずにすぐ開きます
- アイコンのツールチップで待機中か接続済みかが分かります
設定 > システムトレイに最小化 がオン(既定)のときは、ウィンドウを最小化しても閉じてもトレイに隠れるだけで、配信は続きます。オフのときは、最小化するとタスクバーに入り、ウィンドウを閉じると BlueCaster が終了します。トレイのメニューの 終了 か 設定 > BlueCaster を終了 で、配信を止めてアダプターを放し、BlueCaster を完全に終了します。
Windows 起動時に開始
設定 > Windows 起動時に開始 をオンにすると、サインイン時に BlueCaster が起動します。トレイに入れた状態で起動 がオンならバックグラウンドで起動し、出るのはトレイのアイコンだけで、ウィンドウはそこから開きます。オフ(既定)ならメインウィンドウが開きます。中身は HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run の値 BlueCaster(データは "<フォルダー>\bluecaster-core.exe"。トレイに入れた状態で起動 がオンなら後ろに --background が付きます)です。手動で無効にするには、この値を削除してください。v1 に v2 を上書きでインストールすると、トレイに入れた状態で起動 はオンになります(v1 は常にトレイに入れた状態で起動していたため)。
CLI モード
bluecaster-core.exe --cli で、ウィンドウと同じコアを使ってコンソールから配信します。先に BlueCaster を終了してください(トレイ > 終了)。アダプターを使えるのは一度に 1 つのプログラムだけです。CLI は保存したデバイスの設定を読みません。すべてオプションで指定します。
基本
# 最適なコーデックを自動選択
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF
Ctrl+C で配信を止めます。CLI は状態、コーデックとビットレートを表示し、最後に送信したパケット数と破棄したパケット数を表示します。
コーデック選択
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac # LDAC
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxhd # aptX HD
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxll # aptX Low Latency
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptx # aptX
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aac # AAC
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c sbc # SBC
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c lhdcv5 # LHDC V5
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c opus # Opus(48 kHz、256 kbps)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c opus05 # PipeWire の Opus 05(相手が PipeWire のとき)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxad # aptX Adaptive(48 kHz。96 kHz は --rate 96000)
自動選択の優先順位: LHDC V5 > LDAC > aptX Adaptive > Opus > aptX HD > aptX > aptX LL > AAC > SBC XQ > SBC(FastStream、Opus 05 は明示的に選んだときだけ)
指定したコーデックをヘッドホンが提供していない場合、CLI は理由を表示してエラーで止まります。ヘッドホンが提供する一番良いコーデックを使うには -c auto(既定)にするか、--fallback を付けると、アプリと同じく指定したコーデックの代わりに提供されている最良のコーデックを使います – aptX ファミリーと aptX Adaptiveを参照してください。
品質
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -q hq # 高音質 990 kbps(既定)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -q sq # 中音質 660 kbps
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -q mq # 低音質 330 kbps
# LHDC V5: hq 1000 / mhq 900 / sq 500 / mq 400 kbps
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c lhdcv5 -q sq # 中音質 500 kbps
# aptX Adaptive: hq 427 / ll 265 kbps
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxad -q ll # 低遅延
ほかのコーデックには品質の選択がなく、hq(ヘッドホンが受け付ける最大のビットレート。aptX、aptX HD、aptX LL、FastStream はコーデックで固定)で動きます。そのコーデックにない段階(LHDC V5 以外の mhq、aptX Adaptive の sq / mq、aptX Adaptive 以外の ll)は hq として扱います。
ABR(アダプティブビットレート)
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c ldac -a
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c lhdcv5 -a
bluecaster-core.exe --cli -d AA:BB:CC:DD:EE:FF -c aptxad -a
ABR は Bluetooth 接続が不安定な場合にビットレートを自動的に下げ、安定すると引き上げます。LDAC は品質モード間を移動し、LHDC V5 は Android と同じ方針で 160〜400 kbps の範囲で動き、aptX Adaptive は高音質のとき段階を移動します(aptX Adaptiveを参照)。ウィンドウでは、コーデックの設定(コーデック 画面のカードの …)にあります。
デバイス検出
# USB アダプターで近くのデバイスを探す(10 秒。長くするには --scan 20 など)
bluecaster-core.exe --cli --scan
先にヘッドホンをペアリングモードにしてください。
オプション一覧
| オプション | 説明 |
|---|---|
-d <addr> | ヘッドホン / 受信機の Bluetooth アドレス(AA:BB:CC:DD:EE:FF。既定: Windows でペアリングした最初のオーディオデバイス) |
--device-name <name> | -d と一緒に使い、保存済みのデバイスと同じようにその名前を伝えます(Huawei のイヤホンは名前で見分けます) |
-l | Windows でペアリングした Bluetooth デバイスを表示して終了 |
-u <adapter> | WinUSB のアダプターが複数あるときに使う USB アダプター: インスタンス ID、デバイスパス、または VID:PID(例: 0bda:8771) |
-c <codec> | ldac、aptxhd、aptxll、aptx、aptxad、aac、sbcxq、sbc、lhdcv5、opus、opus05、faststream、auto(既定: auto) |
-q <mode> | 品質: hq(高音質、既定)。LDAC と LHDC V5 は sq(中音質)と mq(低音質)も可、LHDC V5 は mhq(中高音質)も可。aptX Adaptive は ll(低遅延)も可。ほかのコーデックはどの段階も hq として扱う |
-a | ABR(LDAC、LHDC V5、aptX Adaptive。SBC / SBC XQ はビットプールの適応) |
--fallback | -c のコーデックをヘッドホンが提供していなければ、エラーにせずアプリと同じく提供されている最良のコーデックを使う |
-m <mode> | キャプチャモード: loopback(既定)、virtual、app |
--audio-device <id> | -m virtual で使う再生デバイス |
--app <exe> | -m app で使う実行ファイル(例: spotify.exe) |
--headset-mic | ヘッドセットマイク(オーディオデバイスを参照): ヘッドホンのマイクを --mic-output に再生します。その間、クラシックのデバイスは通話品質で再生します。--le-audio と一緒に使うと、マイクも運ぶ LE Audio の構成にします |
--mic-output <名前> | マイクを再生する出力デバイス。名前の一部で指定します(例: "CABLE Input"。既定: Windows の既定の出力)。.wav ファイルを指定するとそこに書き込みます |
--voice-codec <cvsd\|msbc\|lc3_swb> | --headset-mic と併用、クラシックのデバイス: 使う通話コーデックの上限(ヘッドホンが対応していなければ一つ下のもの。既定: 双方が対応する最良のもの) |
--mic-rate <Hz> | --headset-mic --le-audio と併用: マイクのサンプルレート(例: 16000。ヘッドホンが対応していないレートは、対応している先頭のものになります) |
--rate <hz> | 取り込みのサンプルレート(既定: 48 kHz。デバイスが 48 kHz を通知していなければ、通知した別のレート) |
--bits <16\|24> | ビット深度(既定: コーデックが対応していれば 24) |
--max-packet <バイト数> | 最大メディアパケットサイズ、679〜1679、既定 1023(最大メディアパケットサイズを参照) |
--sbc-blocks <n>、--sbc-subbands <n>、--sbc-alloc <method>、--sbc-bitpool <n> | SBC / SBC XQ のフレーム設定: ブロック数 4/8/12/16(既定 16)、サブバンド数 4/8(既定 8)、割り当て loudness(既定)または snr、ビットプール(既定: 品質で決まる) |
--sbc-mode <mode> | SBC のチャンネルモード: joint_stereo(既定)、stereo、mono(デュアルチャンネルは -c sbcxq) |
--afh <auto\|off\|6,11> | AFH ホストチャネル分類(通信品質と AFHを参照) |
--remote-sink <host[:port]\|auto> | 対向受信機が受け取った内容を表示。-d がなければその受信機へ送信(対向受信テストを参照) |
--scan [秒] | 近くのデバイスを表示して終了(既定 10 秒) |
--probe | 読み取りコマンドへのアダプターの応答を logs\probe\ に保存して終了。BlueCaster がまだ使えないアダプター向けです(チップ対応の追加を参照) |
--script <file>, --allow-writes | アダプターでチップスクリプトを実行し、その結果を保存して終了。--allow-writes で、チップを変更するおそれのある行も実行します(チップ対応の追加を参照) |
-h | ヘルプを表示 |
開発・テスト用に --hci-tcp <host:port>(WinUSB アダプターの代わりに TCP 経由の仮想コントローラー)、--test-tone(キャプチャ音声の代わりに左 1 kHz / 右 1.5 kHz)、--duration <秒>(指定秒数で停止)、--sessions <n>(アプリでの切断 / 接続のように、n 回続けて配信)、--restart(--sessions と一緒に使い、その合間に Bluetooth を再起動)、--restart-on-link(接続中に設定を変えたときのように、リンクがつながるとすぐセッションを始め直す)、--wait-off(ヘッドホンの電源を切っても実行を終えない)、--hci-capture <file.pklg>(実行全体の HCI キャプチャ)もあります。ビルドを参照してください。LE Audio のオプションは -h で表示されます(LE Audioを参照)。--services は、ストリーミング開始後にデバイスが SDP で公開しているサービスを表示します。
--cli を付けない bluecaster-core.exe は常駐のプログラムで、ウィンドウも起動します。--background を付けるとトレイのアイコンだけで起動します(トレイに入れた状態で起動 がオンのとき Windows 起動時に開始 が使います)。bluecaster-core.exe --quit は、動いている BlueCaster に配信を止めて終了するよう頼みます(インストーラーが使います)。
キャプチャモード
BlueCaster は 4 つのオーディオキャプチャモードに対応しており、先頭に単独で並ぶ Windows の既定 と、サウンドデバイス、仮想デバイス、アプリ の下に並びます。モードによって、音声経路のどこを取り込むかが違います:
| モード | 取り込むもの |
|---|---|
| Windows の既定 | Windows の既定の出力デバイスで再生される音(全アプリのミックス) |
| 仮想デバイス | 選んだデバイス(VB-CABLE 等)にアプリが出力した音 |
| 1 つのサウンドデバイス | 1 つの出力デバイス(スピーカー、USB ヘッドセット、テレビなど)で再生される音。Windows の既定の出力がどれであっても取り込む |
| アプリ | 1 つのアプリ(とその子プロセス)が再生する音だけを、アプリ自身の処理の後で取り込む。Windows 11 または Windows 10 バージョン 2004(ビルド 19041)以降が必要 |
---
config:
flowchart:
wrappingWidth: 480
rankSpacing: 30
---
flowchart TD
apps["アプリ"] --> out["出力デバイス<br>(スピーカー、HDMI のテレビなど)"]
apps --> virt["仮想デバイス<br>(VB-CABLE など)"]
out --> there["そこでも鳴る"]
out -.->|"Windows の既定 /<br>1 つのサウンドデバイス"| bc["BlueCaster"]
virt -.->|"仮想デバイス"| bc
apps -.->|"アプリ:<br>1 つのアプリだけ"| bc
bc --> hp["Bluetooth ヘッドホン"]
オーディオデバイス 画面でも、出力ソースの下に同じ説明が表示されます。新しいデバイスは Windows の既定 を取り込み、ほかに何もインストールしなくても使えます。ほかのソースにするときは、そこで選んでください。
Windows の既定 のキャプチャは音声をコピーするだけで、既定の出力デバイスから音声を奪わないので、そのデバイス(スピーカー、有線ヘッドホン、HDMI 接続のテレビなど)からも音が出ます。Bluetooth ヘッドホンだけで聞くには、VB-CABLE などの仮想デバイスを使ってください。
開発者モードで 開発者 > アプリ設定 > 音量ミキサーを使う がオンのときは、接続中は Windows の既定の出力をミュートする(音量ミキサー 画面、既定でオフ)が、ストリーミング中そのデバイスをミュートし、終了時に元に戻します(テストトーン以外のすべてのキャプチャ元で)。BlueCaster が取り込む音には影響しません。このとき Windows のミュートキーは代わりにヘッドホンをミュートし(無音を送ります。もう一度押すと再生)、デバイスはミュートのままです。音量キーは Windows ではミュートも解除しますが、デバイスはミュートのまま、ヘッドホンは再生したままです。LE Audio のデバイスでは、ミュートキーはデバイスをミュートのままにするだけです。もともとミュートしていたデバイスはミュートのままです。BlueCaster が異常終了した場合はミュートのまま残るので、Windows で解除してください。開発者モードがオフのときは、この設定にかかわらずミュートはしません。
このスイッチがオンなら、ミュートの有無にかかわらず、音量ミキサー 画面とフライアウトでアプリごとの音量を変更できます。出力のミュート中も使えます(Windows のミキサーでは音が途切れることがあります)。既定の出力が仮想デバイスのときは、ミュートでストリームも無音になることがあるので、ミュートをオフにしてください。
仮想デバイスモードで 接続中は Windows の既定の出力にする をオンにすると、ストリーミング中は選択したデバイスが Windows の既定の出力になります。Windows の設定を変えなくても、アプリの音声がそのデバイスに出力されます。ストリーミングを止めると、元の既定デバイスに戻します。
- 出力ソース の一覧の仮想デバイスには、BlueCaster が仮想オーディオデバイスと判定したデバイスだけが表示されます。
- 仮想ケーブル: 音には VB-Audio の Hi-Fi Cable(遅延がいちばん少ない)、ヘッドホンのマイクには VB-CABLE をお勧めします。足りないものがあれば オーディオデバイス とセットアップが勧めます。× でその案内を閉じられ、設定 > 仮想ケーブル には両方が残ります。VB-CABLE をインストール は VB-Audio の VB-CABLE パッケージを VB-Audio からダウンロード(1.3 MB)し、そのままインストールします(管理者の許可を求められます。ダウンロードに失敗したときは、代わりに VB-Cableをダウンロード が VB-Audio のページを開きます。許可が表示されないときは Windows を再起動してください)。Hi-Fi Cable をダウンロード は VB-Audio のページを開きます。どちらも VB-Audio のドネーションウェア(vb-cable.com)で、寄付は VB-Audio に届きます。企業などの組織では、VB-Audio はインストールごとのライセンスを求めています(ライセンス)。VB-CABLE が出力ソースのときは Hi-Fi Cable を勧める案内が出ます。Hi-Fi Cable を使う を押すと Hi-Fi Cable を出力ソースにし、そこに再生していたマイク、または出力先のないマイクを VB-CABLE に移します。選ぶまでは何も変わりません。
- 既定の通信デバイス(通話アプリが使うもの)は変更しません。
- アプリによっては、再起動するまで元のデバイスで再生し続けます。
- BlueCaster が異常終了した場合、既定デバイスは元に戻りません。Windows のサウンド設定で変更してください。
出力ソース の一覧の サウンドデバイス には、Windows の出力デバイスがすべて 1 回ずつ並びます(VB-CABLE の 16 チャンネルのケーブルは 開発者 > アプリ設定 > ソースの一覧にすべてのオーディオデバイスを表示 がオンのときだけ)。BlueCaster は選んだデバイスで再生している音を、Windows の既定の出力がどれであっても取り込み、既定にすることはありません。連動する Windows 音量 はそのデバイスの音量と連動します。接続するときにそのデバイスがなければ(抜かれている、無効になっている)、代わりに Windows の既定 を送り、接続の状態にそう表示されます。オーディオデバイス 画面では未接続と表示されます。
アプリモード
アプリモードは、1 つのアプリ(音楽プレーヤー、ブラウザー、エフェクトアプリなど)の音声を送ります。出力ソース の一覧のアプリから選んでください。現在音声を再生しているアプリが表示されます。見つからない場合は、そのアプリで再生を始めてから一覧の横の 更新 を押してください。子プロセスも含むので、別プロセスで音声を再生するブラウザーでも使えます。
- アプリが起動していなくても接続できます。BlueCaster はヘッドホンに接続し、アプリが起動すると送信を始めます。ストリーミング中にアプリを終了しても接続は保たれ、アプリを起動し直すと自動で再び取り込みます。
- アプリ自身の出力先デバイスからも音は出続けます。ヘッドホンだけで聞くには、その出力先デバイス(マスター音量)をミュートしてください。BlueCaster が取り込む音には影響しません。ただし、Windows の音量ミキサーでアプリ自体をミュートすると、ヘッドホンも無音になります。
- Windows の音量ミキサーにあるそのアプリのスライダーで、ヘッドホンに送る音量が変わります(出力先デバイスの音量も一緒に変わります)。マスター音量や音量キーでは送る音は変わりません。連動する Windows 音量 がオンなら、代わりにヘッドホンの音量が変わります(音量 を参照)。
- Windows が BlueCaster の指定したサンプルレートに変換するので、サウンド設定のデバイス形式に左右されません。
- Windows 10 バージョン 2004(ビルド 19041)より前には、アプリ単位のキャプチャがありません。その PC でアプリモードのキャプチャに設定したデバイスで接続すると、別の出力ソースを選ぶよう求めるエラーになります。
音量
ストリーミング中、ホームとトレイのフライアウトの 音量 スライダーは、ヘッドホンが AVRCP 絶対音量に対応していれば使えます(対応していなければ無効のままです)。ヘッドホン側の音量を変えるので、送る音声のビット数は削られません。横のスピーカーでミュート(ヘッドホンの音量を 0 に)とミュート解除(元の音量に戻す)ができます。音量が 0 のときは、どの方法で 0 にしても(スピーカー、スライダー、Windows、ヘッドホンのボタン)BlueCaster は無音を送ります。多くのヘッドホンは最小の音量でもかすかに音が出るためです。ヘッドホンの音量ボタンやタッチ操作で変えた値もスライダーに反映されます。
連動する Windows 音量(オーディオデバイス で全デバイス共通。初期状態でオン)で、ストリーミング中に Windows の音量とヘッドホンの音量を一つの音量として連動させます。連動するのは BlueCaster が取り込むデバイスの Windows の音量で、Windows の既定 とアプリでは既定の出力デバイス、仮想デバイスと 1 つのサウンドデバイスでは選んだデバイスです。オフにすると、Windows の音量とヘッドホンの音量は別々になります。
- ヘッドホンの音量ボタンやジェスチャー、音量 スライダーで変えると連動先の Windows の音量が変わり、サウンド設定でそのデバイスのスライダーを動かすとヘッドホンの音量が変わります。
- 音量キーと Windows の音量フライアウトは常に既定の出力デバイスに働くので、ヘッドホンの音量が変わるのは連動先が既定の出力デバイスのときだけです(基本的に常にそうなります。仮想デバイスモードで 接続中は Windows の既定の出力にする がオフの場合を除く)。
- ストリーミング開始時は Windows の音量をヘッドホンの音量に合わせ、終了すると元の音量に戻します。
- 音声は Windows の音量がかかる前に取り込むので、音量を下げるのはヘッドホン側の 1 回だけです。連動先の音量で取り込む音も変わる場合は音量が二重にかかるので、連動をオフにしてください(システム全体のエフェクトアプリ を参照)。
- ミュートは連動しません。出力デバイスをミュートして PC から音を出さないようにしても、ヘッドホンはミュートされません。
以前のバージョンでは、デバイスが別の出力デバイスの音量に連動するよう選べました(開発者モード)。この選択は使われなくなりました。
BlueCaster はオーディオ機器ごとに音量を保存し、接続したらすぐ、音声を送る前に設定し直します。ある機器の音量が別の機器に引き継がれることはありません。
ヘッドホンのボタン
ストリーミング中は、ヘッドホンの再生/一時停止・曲送り・曲戻しの操作(ボタンやタッチ操作。WH-1000XM4 のダブルタップなど)で PC の再生を操作できます。BlueCaster はこれを Windows のメディアキーとして渡し、Windows のメディアコントロールに表示されているアプリ(Spotify、ブラウザー、メディアプレーヤーなど)が受け取ります。停止も渡します。
- 再生と一時停止はどちらも Windows の再生/一時停止キーとして扱うので、ヘッドホン側の再生状態の認識がずれていても、タップのたびに再生と一時停止が切り替わります。
- BlueCaster は再生中かどうか(キャプチャする音声があるかどうか)をヘッドホンに伝えるので、外すと一時停止するヘッドホンも正しい操作を送れます。
- 早送り・巻き戻し(ボタンの長押し)は Windows に対応するメディアキーがないため無視します。
- 音量の操作はヘッドホン自体の音量を変えます。連動する Windows 音量 で連動先の Windows の音量も変わります(音量 を参照)。
- オーディオデバイス > オーディオデバイスのボタンで再生を操作 でオフにできます(すべてのデバイスに共通のスイッチです)(別のプログラムもメディアキーに反応して二重に動く場合など)。
ヘッドホンが AVRCP に対応している必要があります(ほぼすべてのヘッドホンが対応しています)。対応していない場合も、ボタンが使えないだけでストリーミングは通常どおり動作します。
システム全体のエフェクトアプリ
システム全体にかかるエフェクトアプリ(イコライザー、音質補正、バーチャルサラウンドなど)の多くは、自分の仮想出力デバイスを追加します。他のアプリはそのデバイスに音を再生し、エフェクトアプリは処理した音を、エフェクトアプリで選んだ出力先デバイスに再生します。BlueCaster でどのモードを選ぶかで、エフェクトがかかった音になるかが決まります:
| 設定 | ヘッドホンに届く音 |
|---|---|
| 仮想デバイス: エフェクトアプリ自身の仮想デバイス | エフェクト前の音(アプリがエフェクトアプリに渡す音) |
| アプリ: エフェクトアプリ | エフェクト後の音(エフェクトアプリが再生する音。おすすめ) |
| 仮想デバイス: エフェクトアプリの出力先デバイス(出力先を VB-CABLE にした場合など) | エフェクト後の音(アプリモードが使えない Windows 向け) |
アプリモードでは、エフェクトアプリの出力先はどのデバイスでも構いません。BlueCaster が取り込むのはアプリが再生する音で、デバイスが鳴らす音ではないので、出力先は音の行き先として置いておくだけです。PC でも同時に鳴らないように、誰も聞いていない出力(モニターの HDMI 音声など)を選ぶか、そのデバイスのマスター音量をミュートしてください。VB-CABLE などの仮想デバイスを音の捨て場にしてもよいですが、必須ではありません。出力先のデバイスは有効で、接続されている必要があります。
エフェクトアプリ自身の仮想デバイスが Windows の既定の出力デバイスの場合、その音量はエフェクトアプリが受け取る音も下げます。連動する Windows 音量 がオンだと、音量の変更が二重に(エフェクトアプリの入力とヘッドホンの両方に)かかります。これをオフにして、ヘッドホンの音量か 音量 スライダーを使ってください。
BlueCaster が自分の仮想出力デバイスを持たない理由
Windows の出力デバイス一覧に Bluetooth ヘッドホンを出し、エフェクトアプリから直接選べるようにするには、カーネルモードのオーディオドライバーが必要です。BlueCaster はこれを含めていません:
- カーネルのオーディオドライバーを作って保守するのは大がかりな作業で、不具合があると Windows ごと停止(ブルースクリーン)します。
- Windows 10 / 11 は Microsoft の署名があるドライバーしか読み込みません。署名を受けるには EV コード署名証明書(年に数百米ドル)と Microsoft Partner Center のアカウントが必要で、通常は法人として登録します。
- 署名を回避する方法は Windows のテスト署名モードだけですが、システムのセキュリティが下がり、一部のソフト(アンチチートのあるゲームなど)が動かなくなります。BlueCaster はこの方法を使いません。
同じ用途には、アプリモードか、無料の仮想デバイス(VB-CABLE など)を使ってください。
- 既定デバイスを変更する公開 API は Windows にないため、他の音声切り替えツールと同じく非公開の IPolicyConfig インターフェースを使います(Windows 10 / 11)。
サウンドデバイスと仮想デバイスは WASAPI 共有モードを使用します。サンプルレートが自動のとき(自動選択も)は、BlueCaster が 48 kHz(ヘッドホンが 48 kHz を通知していなければ、通知した別のレートで、44.1 kHz を優先)を要求し、デバイスの「既定の形式」から WASAPI がそのレートにリサンプリングします。LDAC の 96 kHz を利用するには、コーデックの設定で 96 kHz を選んでください。サウンド設定 → デバイスのプロパティ → 詳細 → 既定の形式 を変える必要はありません。
コーデック比較
| コーデック | 最適な用途 | トレードオフ |
|---|---|---|
| LHDC V5 | 最高のビットレートとサンプルレート(最大 1000 kbps、192 kHz) | 対応機器が少ない、安定した接続が必要 |
| LDAC (HQ) | 多くの Sony 製や Android 向けの機器で最高音質 | レイテンシーが高い、安定した接続が必要 |
| LDAC (ABR) | 音質 + 安定性 | 接続状況に応じてビットレートが変動 |
| aptX Adaptive | Qualcomm 系の機器で、高音質と低遅延モード | 接続状況でビットレートが変わる |
| Opus | 効率が良く、256 kbps で良い音質 | 対応する受信側が少ない(Android の A2DP Opus、PipeWire) |
| aptX HD | 高音質、幅広いデバイス対応 | 固定 576 kbps |
| aptX | aptX 対応機器が最も多い | 16-bit、352/384 kbps |
| aptX LL | ゲーム、動画(低レイテンシー) | 音質が低い (16-bit) |
| AAC | Apple デバイス、良い効率 | 中程度の音質 |
| SBC XQ | SBC が対応していればどの機器でも、SBC よりずっと良い音質 | デュアルチャンネルとビットプール 29 以上が必要。約 385〜552 kbps |
| SBC | 最大の互換性 | 最低の音質 |
コーデック 画面では、同じ比較を各コーデックのカードの 3 本のバーで表示します。
aptX ファミリーと aptX Adaptive
BlueCaster は libopenaptx でエンコードする 3 種類の aptX コーデックと、AKS-Logic/aptx-adaptive-linux のエンコーダーでエンコードする aptX Adaptive に対応しています。
aptX HD・aptX Low Latency は Android / PipeWire の実装に合わせ、エンコード→デコードの往復テストは通っていますが、実機のヘッドホンでの検証はまだです。
クラシック aptX だけが目的なら、Windows 10 標準の Bluetooth スタックがクラシック aptX に対応しています(aptX HD・aptX LL・aptX Adaptive は非対応)。その場合 BlueCaster は不要です。BlueCaster が主に役立つのは LDAC・aptX HD・aptX Low Latency です。
| コーデック | Vendor ID / Codec ID | RTP ヘッダー | 対応状況 |
|---|---|---|---|
| aptX Adaptive | 0x000000D7 / 0x00AD | あり | 対応(265-427 kbps、48 / 96 kHz、24-bit) |
| aptX HD | 0x000000D7 / 0x0024 | あり | 対応(576 kbps、24-bit 入力) |
| aptX | 0x0000004F / 0x0001 | なし | 対応(44.1/48 kHz で 352/384 kbps) |
| aptX Low Latency | 0x0000000A または 0x000000D7 / 0x0002 | なし | 対応(352 kbps) |
aptX Adaptive
aptX Adaptive は 48 kHz で実際のヘッドホンでの動作を確認済みです。 2.0.2-beta.6 で EarFun Air Pro 4+ に送り、途切れも音飛びもなく、クラシック aptX と同じくらい安定していたと報告がありました(#86)。また、単体テスト、上流のビット単位で一致するテスト一式、仮想 Bluetooth シンク(tools/emu。RTP ヘッダー、パケットの大きさ、フレームの種類を確かめます。公開されたデコーダーがないため音声は復号しません)とのエンドツーエンドテストには合格しています。上流は Linux / PipeWire で Bose QuietComfort Ultra(第 1 世代)と B&W Px7 S2e での 48 kHz・高音質と低遅延の動作を報告しています。96 kHz(高音質 646 kbps)も実際のヘッドホンで動作を確認しました(#86)。コーデックの設定で 96 kHz を選んだとき(CLI は --rate 96000)、ヘッドホンがそれを通知する R2 のシンクなら使います(設定で選べるのもそのときだけです)。低遅延では使いません。自動(自動選択も)は 48 kHz です。報告を歓迎します。
エンコーダーは AKS-Logic/aptx-adaptive-linux の Rust だけで書かれた aptX Adaptive エンコーダー(MIT)です。上流はこれをクリーンルームでの再実装とし、数値テーブルは合法に入手した Qualcomm の出荷済みバイナリと無線のキャプチャから再構成したと説明しています。Qualcomm のコード、SDK、バイナリは含みません(ライセンスを参照)。
- 選び方: ヘッドホンが LHDC V5 も LDAC も提供していなければ、自動選択で選ばれます。コーデック 画面で aptX Adaptive を選ぶか、
-c aptxadを指定することもできます。 - 形式: 48 kHz ステレオ、24 bit。96 kHz を選べば、96 kHz を通知するデバイス(aptX Adaptive R2)には高音質で 96 kHz。44.1 kHz を指定しても 48 kHz で取り込みます。
- ヘッドホン: R1 のシンク(能力の拡張がないもの。例: B&W Px7 S2e)と R2 のシンク(R2 のビットストリーム)。
品質(… / -q) | R1 のシンク | R2 のシンク | パケット |
|---|---|---|---|
高音質(hq) | 427 kbps | 427 kbps | 12 ms、656 バイト |
低遅延(ll) | 265 kbps | 270 kbps | 10 ms、348 バイト |
ll を使うのは aptX Adaptive だけです。ほかのコーデックでは高音質として扱います。標準とモバイル(R1 は 364 / 318 kbps、R2 は 270 / 204 kbps)は品質としては選べなくなりました。それで保存したデバイスや -q sq / -q mq は高音質で動きます。ABR は今もこれらの段階を使います。
ABR(コーデック設定の ABR、CLI の -a): 高音質のとき、送信キューに 3 パケット以上ある間はビットレートを 1 段下げ(標準、モバイルの順で、それより下げません。最短でも約 0.5 秒おき)、約 3 秒間キューが 1 パケット以下なら 1 段上げます(高音質まで)。低遅延には ABR はありません。
aptX Adaptive から aptX への「フォールバック」ではありません
接続時、ヘッドホンは対応コーデックの一覧(AVDTP ストリームエンドポイント)を通知し、BlueCaster はその中から 1 つを選びます。aptX Adaptive とクラシック aptX は一覧の中の別々の項目なので、コーデックの中で一方からもう一方へ「フォールバック」するわけではありません。
- ヘッドホンがクラシック aptX も通知している場合 – Qualcomm は aptX Adaptive を aptX / aptX HD と下位互換があると案内しているため、多くの aptX Adaptive 対応ヘッドホンがこれに該当します。Auto は aptX Adaptive を選びます(aptX HD・aptX より上位)。クラシック aptX は選んだときに使われ、ヘッドホンの一覧にある独立したコーデックであって、aptX Adaptive の縮退モードではありません。
- ヘッドホンが aptX Adaptive のみを通知している場合(クラシック aptX・aptX HD・aptX LL がない) – aptX を選ぶと、ヘッドホンが提供する最良のコーデック(コーデック 画面のデバイスの順番で最初のもの。通常は aptX Adaptive)にフォールバックします。
自動選択の優先順位: LHDC V5 > LDAC > aptX Adaptive > Opus > aptX HD > aptX > aptX LL > AAC > SBC XQ > SBC(FastStream、Opus 05 は明示的に選んだときだけ)
指定したコーデックがない場合
ヘッドホンが通知していないコーデックを明示的に指定した場合の動作です。
| 場所 | 動作 |
|---|---|
| アプリ(コーデック、自動選択オフ) | デバイスの順番(カードを並べ替えていなければ自動選択の優先順位)で、ヘッドホンが提供する最初のコーデックで、自動選択と同じように接続します(Opus を選び、ヘッドホンが aptX Adaptive・aptX・AAC・SBC を提供する場合は、Opus の下の aptX ではなく aptX Adaptive。SBC XQ を先頭に並べていれば SBC XQ)。代わりに使ったコーデックとその理由はコーデックの行に数秒間表示します。これはヘッドホンが提供していたときに選んだコーデックの場合で、コーデック 画面には使われるコーデックを選んだものとして表示します。ヘッドホンが(前回の接続で)提供していなかったときに選んだカードは、別のコーデックに切り替えずにそのまま求めます。拒否されると、接続はエラーで止まります。 |
CLI(-c <codec>) | エラー(「デバイスは … に対応していません」)で止まります。aptX・aptX HD・aptX LL を指定し、ヘッドホンが aptX Adaptive しか提供していない場合は、その旨を表示します。アプリと同じように切り替えるには --fallback を付けるか、-c auto にしてください。 |
---
config:
flowchart:
wrappingWidth: 480
rankSpacing: 30
---
flowchart TD
q{"選んだコーデックを<br>ヘッドホンが提供している?"}
q -->|"はい"| use["そのコーデックで接続"]
q -->|"いいえ"| how{"どう選んだか"}
how -->|"アプリ:<br>提供されていたときに<br>カードを選んだ"| fb["デバイスの順番で、提供される<br>最初のコーデック(自動と同じ)。<br>理由はコーデックの行に出る"]
how -->|"アプリ:<br>提供されていないときに<br>カードを選んだ"| force["それでも要求する。<br>断られたらエラー"]
how -->|"CLI: -c"| cli["エラー<br>(--fallback ならアプリと同じ)"]
以前のバージョンには このコーデックが使えない場合は、対応している別のコーデックを使う というオプションがありましたが、今は常にこの切り替えを行います。2.0.2 の一部のプレリリースは、最良のものではなく、選んだコーデックの次に低いコーデックを使っていました。
ヘッドホンが別の機器とも接続中でコーデックが出てこない
ヘッドホンはコーデックごとにストリームエンドポイント(SEP)を提供します。デュアル(マルチポイント)接続でスマホや PC へ再生中のエンドポイントは 使用中 と通知され、その再生が止まるまでそのコーデックは使えません。また、接続が 1 台のときだけハイレゾコーデック(LDAC・L2HC など)を提供するヘッドホンもあります。この場合 BlueCaster はログに次のように記録します。
remote SEP 6: sink audio, IN USE (codec not queried)
remote SEPs in use by another connection: 1 of 6 audio sink SEP(s); ...
capability discovery complete (LDAC=false ... , 1 of 6 audio sink SEP(s) in use)
エラーも「別の機器が使用中」と表示します。スマホや PC との接続を切る(またはヘッドホンのアプリでデュアル接続をオフにする)と、もう一度接続してください。PC 内蔵の Bluetooth がヘッドホンとペアリングされたままの場合も「別の機器」にあたります。
Sony の WH-1000XM4 などのヘッドホンは、2台の機器と同時接続(マルチポイント)がオンの間は LDAC を提供しません。Sony Sound Connect アプリでオフにしてから、もう一度接続してください。WH-1000XM6 など、マルチポイントと LDAC を同時に使える機種もあります。
ヘッドホン純正アプリ(バッテリー、ノイズコントロール、EQ)は、スマートフォンかこの PC の内蔵 Bluetooth から、ヘッドホンへの独自のリンクを必要とします。アプリが接続している間、ヘッドホンは2台接続の状態になり、BlueCaster でのコーデック変更に時間がかかったり失敗したりします。コーデックを変える前に、スマートフォンを切断するか、アプリを終了してください。EncoDeck は BlueCaster 自身のリンク経由でヘッドホンを制御するので、2台目の接続を増やしません。
サンプルレート
aptX・aptX HD・aptX LL が対応するのは 44.1 kHz と 48 kHz のみです(aptX Adaptive は 48 kHz。96 kHz を選び、ヘッドホンが通知していれば 96 kHz)。BlueCaster はヘッドホンが通知したサンプルレートから 1 つを選び(自動のときは 48 kHz、なければ 44.1 kHz)、WASAPI にリサンプリングさせます。aptX のために Windows のサウンド設定を変更する必要はありません。
ヘッドホンが提供するコーデックの確認方法
- ヘッドホンに接続します。
- 診断 を開き、ログの絞り込みに
remoteと入力します。
同じ行は設定フォルダーのログファイル(%APPDATA%\BlueCaster\logs\<YYYY-MM-DD>\core.log。伏せ字になっていないので、報告に添付する前に確認してください)にもあり、CLI モードではコンソールに表示されます。以下の行で、ヘッドホンが通知しているコーデックを正確に確認できます。
remote supports aptX (SEID ..., [...])
remote supports aptX Adaptive (SEID ..., [...])
remote vendor codec 0x........./0x.... (SEID ...) - unsupported
capability discovery complete (LDAC=false aptX HD=false aptX LL=false aptX=true aptX Adaptive=true SBC=true SBC XQ=true AAC=true LHDC V5=false Opus=false Opus 05=false FastStream=false)
aptX=true– クラシック aptX を使用できます(aptX Adaptive=trueであっても同様)。Auto はこちらを使います。aptX=false・aptX HD=false・aptX LL=falseかつaptX Adaptive=true– ヘッドホンは aptX Adaptive しか提供していません。aptX Adaptive を選ぶか、Auto・AAC・SBC を使ってください。aptX Adaptive=true [not usable]– ヘッドホンの aptX Adaptive に、BlueCaster が必要とする 48 kHz ステレオがありません。remote vendor codec ... - unsupported– BlueCaster が実装していないその他のベンダーコーデックです。
最大メディアパケットサイズ(デバイスごと)
各デバイスの 最大メディアパケットサイズ(開発者 画面に保存済みデバイスごとの欄があります。CLI では --max-packet <バイト数>)で、Bluetooth パケット 1 つに入れる音声データの上限を 679〜1679 バイトの範囲で設定できます。オーディオ機器ごとに別の値を使えます。開発者画面は開発者モード(設定 > 開発者モード)のときに表示されます。ほとんどの人は使う必要がありません。オーディオ機器側の上限(MTU)も常に適用され、BlueCaster は小さい方を使います。変更は次回の接続から反映されます。以前はプロファイルの設定(詳細設定 の中)でした。デバイスは、そのデバイス用に残したプロファイルの値を引き継ぎます(コーデックを参照)。1.1 より前の v1 で保存したプロファイルには、そのとき全体で設定していた値が入ります。
既定値の 1023 を推奨します。 Bluetooth のベースバンドパケット(3-DH5)1 つに収まる大きさです。大きくしても削減できるオーバーヘッドは 1〜2% 程度で、パケットが失われたときに失われる音声が長くなります。679 は 2-DH5 パケット 1 つ分で、LDAC が受け付ける最小値です。
送信ストリームの検証(bluecaster_decode)
多くのヘッドホンは、使用中のコーデックを表示できません。診断 > HCI キャプチャを開始 / HCI キャプチャを停止 で、HCI パケットログ(設定フォルダーの logs\hci\hci_<日付>_<時刻>.pklg)を記録できます。コーデックの交渉内容と送信したすべてのメディアパケットが記録されます。LDAC 990 kbps では 1 時間あたり約 0.5 GB 増えるため、必要な間だけ記録してください。CLI モードでは --hci-capture <file.pklg> で実行全体を記録します。
キャプチャは接続前でもストリーミング中でも開始できます。接続中に開始した場合は、BlueCaster が記憶していた接続確立時のパケット(L2CAP チャネルの確立と、コーデック交渉を含む AVDTP シグナリング)を先に書き込むので、途中からでも解析できます。記録中と停止後は、診断にファイルのパスが表示されます。
キャプチャは Wireshark で開けるほか、開発者向けツール bluecaster_decode(ソースからビルド。ビルドを参照)で検証できます。
bluecaster_decode "%APPDATA%\BlueCaster\logs\hci\hci_20260925_120000.pklg" -o C:\temp\check
このツールは AVDTP シグナリング(SET_CONFIGURATION / RECONFIGURE と、ヘッドホンがそれを受け入れたか)を追跡し、BlueCaster が送信したメディアパケットを取り出して、交渉した設定と照合します。
| コーデック | 検証内容 | 出力 |
|---|---|---|
| SBC・SBC XQ・FastStream・AAC・aptX・aptX HD・aptX LL・Opus・Opus 05 | リファレンスデコーダーで全体をデコード。フレームのパラメーターと設定の一致、メディアペイロードヘッダーのフレーム数 | 試聴用の <prefix>.<n>.<codec>.wav |
| LDAC | フレームヘッダーのみ(同期ワード、サンプルレート、チャンネルモード、フレーム長)、フレーム数、ビットレート。オープンソースの LDAC デコーダーは存在しません | レポートのみ |
| LHDC V5 | フレームヘッダーのみ(メディアペイロードヘッダーのフレーム数、シーケンス番号)、ビットレート。オープンソースのデコーダーは存在しません | レポートのみ |
| aptX Adaptive | 独自の RTP ヘッダー(サンプル数のタイムスタンプ、遅延モード)とコーデックのパケットヘッダーのみ。オープンソースのデコーダーは存在しません | レポートのみ |
bluecaster_decode --le-audio は、LE Audio のキャプチャ(CIS 上の LC3)について同じことを行います。
各ストリームについて、RTP シーケンス番号の欠落、RTP タイムスタンプの進み方、ビットレート、Bluetooth コントローラーが送信完了を報告した ACL パケット数も表示します。最終行は RESULT: OK か RESULT: PROBLEMS FOUND です(終了コード 0 / 1)。
これで分かるのは、BlueCaster が何を送信したかと、その内容が交渉したコーデックとして正しいかです。受信側は交渉したコーデックでしかデコードできないため、ヘッドホンから正しく音が出ていて、かつレポートに問題がなければ、そのコーデックが実際に使われている強い根拠になります。
通信品質と AFH
診断 > 通信品質 には、ストリーミング中に BlueCaster が送信している内容を表示します: 実効ビットレート、送信パケット数、送信前に破棄したパケット(送信キューがあふれた = 電波が追いつかない)、音声取り込みの欠落、送信キュー、無線時間の使用率、そして 電波(理想との差): 接続の RSSI(コントローラーの適正な受信範囲との差。0 なら適正、マイナスは弱すぎ。絶対値ではありません。マイナスのときは、実際の強さの上限を dBm で添えます)と、79 ある Bluetooth チャネルのうちホッピングに使っている数(AFH)。ホームとトレイのフライアウトでは、これを 良好 / やや不安定 / 不安定 にまとめて表示します。通信は問題ないのに PC が音声を取りこぼしたときは PC処理落ち と表示します。
Bluetooth は混んだチャネルを自分で避けます(AFH)が、Wi-Fi のことはエラーから学ぶしかありません。BlueCaster は、避けるべきチャネルをコントローラーにも伝えます(AFH ホストチャネル分類)。すべての接続に適用されます:
| AFH | |
|---|---|
| 自動(既定) | この PC が接続している 2.4 GHz の Wi-Fi のチャネルだけ(接続中は 30 秒ごとに確認し直します)。2.4 GHz の Wi-Fi につながっていないとき(未接続、5 GHz、有線)は何も伝えません。読むのはチャネル番号だけで、位置情報の許可は要りません。1〜14 番の 6 GHz のチャネルは 2.4 GHz として扱います |
| オフ | 伝えない(コントローラーに任せる) |
手動(例: 6,11) | 指定した Wi-Fi チャネル(1〜14) |
自動では、聞こえるだけの Wi-Fi(近所のアクセスポイントなど)はコントローラー自身の AFH に任せます。混んだチャネルでも避けるとホッピングの幅が 22 MHz 減り、かえって通信が悪くなることがあるためです。それでも避けたいチャネルは手動で指定してください。
Bluetooth のチャネルは常に 20 以上残します。設定は アダプタ 画面、settings.json(設定フォルダ)の "afh"、CLI モードの --afh で行います。避けている Wi-Fi チャネルは電波の行に表示されます。効果は環境次第なので、対向受信テストで測って確かめてください。
電波タブ
診断 > 電波 は、アダプタが報告するリンクのチャネルマップ(Read AFH Channel Map)を描きます。Wi-Fi のない PC でも、どこで干渉を受けているかがわかります。赤いチャネルはアダプタ自身の AFH が外したものです。ある Wi-Fi チャネルの幅の大半が赤いと、そのチャネル名を表示します。BlueCaster がアダプタに回避を指示したチャネル(上の自動・手動)には枠が付きます。
開発者モードの スキャン は、Windows に Wi-Fi のスキャンを依頼し、2.4 GHz のネットワークを帯域の上に描きます(強いほど高く)。Windows 11 24H2 以降ではこの一覧が位置情報扱いのため、位置情報へのアクセスを求められることがあり、「デスクトップ アプリに位置情報へのアクセスを許可する」がオフだと一覧は得られません。スキャンは AFH を変えません。自動が避けるのは引き続きこの PC 自身のチャネルだけです(理由は上記)。
ブレンド
開発者モードでは、Wi-Fi チャネルの回避 に ブレンド も加わり、強さを 弱・中・強 から選べます。自動が避けるチャネルに加えて、二つの手がかりが干渉を示す Bluetooth チャネルを避けます。一つは 11 MHz 以内に聞こえる Wi-Fi ネットワーク(-90 dBm から数え、-50 dBm で最大)、もう一つはアダプタ自身が最近のチャネルマップでそのチャネルを外した頻度です。アダプタが問題なく使い続けている強いネットワークだけでは、弱と中では避けません。強いほどチャネルを避けやすくなり、常に使うチャネルの下限は 79 のうち 56(弱)、48(中)、40(強)です。
ブレンドの間、BlueCaster は 2 分ごとに Wi-Fi をスキャンします。スキャン と同じく位置情報へのアクセスが必要で、許可がなければアダプタのマップだけで決めます。ブレンドは実際のアダプタではまだ測定しておらず、自動より悪くなることがあります。使い続ける前に 対向受信テスト で比べてください。開発者モードでなければ自動として動きます。settings.json と --afh では blend-mild、blend-medium、blend-strong です。
遅延
PC の音より聞こえる音が遅れる分は、いくつかの遅延の合計です。PC 側は、オーディオエンジンの 10 ms 周期、エンコーダーの 10 ms 単位の処理、コーデック自体のフレーム(AAC の 1024 サンプルは 21 ms、LDAC のパケットは約 5 ms)、そして送信キューです。送信キューは通信が良好なら、ほぼ空のままです(診断 > 通信品質 に表示されます)。最も大きいのはオーディオデバイス側です。電波の途切れに備えてストリームをためてから再生し、LDAC や LHDC V5 のビットレートではさらに多くためます。この分は、スマートフォンから送っても同じです。
遅延報告(Delay Reporting)に対応したデバイスは、ストリームの準備ができたときと遅延が変わったときに、その遅延を BlueCaster に伝えます。診断 > 通信品質 の 機器の遅延(報告値) に表示され、診断情報をコピー にも含まれます。対応していないデバイスではダッシュのままです。Android はこの報告をもとに映像を遅らせて音と同期させますが、Windows にはその仕組みがないため、動画プレイヤーの映像はこの遅延の分だけ音より先に進みます。多くのプレイヤーには音声または映像を指定した分だけ遅らせる設定(音声オフセット、音声遅延)があります。報告された値を入れるか、口の動きが合うまで値を変えてみてください。ゲームはこの方法では直せません。低めのビットレート(LDAC の中音質・低音質、フレームの小さいコーデック、aptX Adaptive の低遅延、aptX LL)にすると、ためる量を減らすデバイスもあります。
開発者モードの 送信キューの上限(開発者 > コーデック設定)は、パケットが捨てられるまでに待てる長さの上限で、遅延そのものではありません。通信が良好なら、どのパケットも上限には近づきません。効くのは電波が止まったときだけで、上限を短くすると、その後の遅延が減る代わりに音が途切れます。
対向受信テスト(tools/linux_sink)
通信品質に表示されるのは BlueCaster が送信した内容です。実際に何が届いたかを見るには、Linux の 2 台目の PC で tools/linux_sink/bluecaster_sink.py を起動します。その PC の普通の Bluetooth アダプター(内蔵で可)を直接(Bumble、HCI ユーザーチャネル)A2DP シンクとして動かし、LDAC を含む全コーデックで届いたメディアパケットをすべて測定して、統計をネットワーク経由で提供します。
tools/linux_sink フォルダを Linux PC にコピーして(フォルダだけで動きます)、次を実行します:
sh setup.sh # 初回のみ: デコーダーライブラリと Python 環境(Ubuntu / Debian、Python 3.11 以上)
sudo sh run.sh # 受信側を起動(Bluetooth アダプターを使うため root)
Windows の PC では BlueCaster を終了して(トレイ > 終了)、次を実行します:
bluecaster-core.exe --cli --remote-sink auto -c ldac --test-tone
--remote-sink auto はローカルネットワークから受信側を見つけ、-d で別のデバイスを指定しなければ受信側の Bluetooth アダプターへ送信し、受信側の統計を 5 秒ごとと終了時に表示します: ビットレート、欠落・遅延パケット(RTP シーケンス番号)、ジッタと間隔、模擬した再生バッファの音切れ・音飛び、ストリーム/デコードのエラー、受信側の RSSI(適正な受信範囲との差。0 なら適正、マイナスは弱すぎ)。--test-tone を付けなければシステムの音を送ります。--remote-sink <host[:port]> で、探さずに受信側を指定できます。
同じテストはウィンドウでもできます。設定 > 開発者モード をオンにして 開発者 > 対向受信テスト を開きます。受信側 を空欄にするとローカルネットワークから探します(またはアドレスを入れます)。接続 でその統計に接続し、コーデック、その設定、音源(テストトーン か システム音声)と、必要なら受信側が提示する L2CAP MTU と再生バッファを選んで 開始 を押します。手順ごとに確認し、この PC が送った内容と受信側が数えた内容を並べて表示します。何も終了する必要はありません。ウィンドウは動いている BlueCaster を使います。
パケット数は送信側・受信側ともストリームの最初のパケットから数えるので、送信数と受信数を比べられ、通常は一致します。Bluetooth は届かなかった無線パケットをコントローラーの中で再送し、BlueCaster はリンクが続く限りパケットをあきらめないため、電波が悪いときは欠落ではなく受信側の間隔・ジッタ・音切れとして現れます。電波が追いつかないときは、送信側で送信前に破棄されます。再送の回数は送信側・受信側のどちらからも取得できません。
ツールの実行中、受信側 PC の Bluetooth スタックはそのアダプターを使えません。検出は UDP ブロードキャスト(ポート 51201)なので、2 台は同じネットワークセグメントにある必要があります(そうでなければアドレスを指定します)。オプションと統計のプロトコルは tools/linux_sink/README.md を参照してください。
サービスとペアリングキー
オーディオデバイス の保存済みのデバイスに サービス タグが付きます。LE Audio エントリーのタグは、前回の接続時の GATT サービスを一覧表示します (キーは表示しません)。クラシックデバイスのタグをクリックすると次が開きます。
- 開発者モードでは、まず ペアリングキー(クリックするまで折りたたまれています。サービスと同じく 名前 と 値 の表です):Link Key(BlueCaster がそのデバイス用に保存しているリンクキーとその種類)、Long Term Key (LTK)(鍵長 16 のように鍵長付き)と Identity Resolving Key (IRK)(デバイスの LE のキー)。LE のキーはリンクキーから得られます。BlueCaster はペアリング直後に、またはペアリング済みのデバイスなら次の接続時に(デバイスごと、Bluetooth を起動するたびに 1 回)デバイスにそれを求めます。Long Term Key は双方がリンクキーから導出し(クロストランスポート鍵導出)、Identity Resolving Key はデバイスが渡します。渡すのは対応するデバイスだけで、BlueCaster が主導する接続(たいていは BlueCaster から始めた接続)に限られ、
"le_audio_experimental": falseのときは求めません。BlueCaster が持っていないキーは なし と表示され、値を作り出すことはありません。LE のキーがないときは、キーの下にその理由を表示します(LE Audio がオフ、まだ求めていない(BlueCaster から開いた接続でだけ求めます)、またはデバイスの答え(渡せない、断った、応答なし))。キーは Bluetooth が送る順(最下位バイトが先)で表示します。キーの横のコピーボタンで 1 つずつコピーできます。たとえば同じ PC の別のシステムで、同じアダプターの同じペアリングを使うときに使います。これらのキーを知っていれば誰でもそのデバイスになりすませるので、人に渡さないでください - その下に(開発者モード以外ではこれだけ)、デバイスが公開しているサービスを、名前(Bluetooth の名前、なければデバイス自身の名前、それもなければ Qualcomm GAIA や Google Fast Pair など既知のメーカーの名前。どれもないものは 不明なサービス)と GUID の表で表示します。デバイスの接続中に問い合わせ、未接続のときは最後に接続したときの一覧を表示します
初回セットアップのデバイスの手順にある Windows のペアリングを取り込む(WinUSB のアダプター。BlueCaster に保存されていないデバイスを Windows がそのアダプターでペアリングしていたときに表示)は、それらのデバイスをすべてチェックした状態で一覧にし、そのアダプタに WinUSB を割り当てる前に Windows の Bluetooth が保存したリンクキーを引き継ぎます。Windows でこのアダプタを使ってペアリングしたヘッドホンは、ペアリングし直さずに BlueCaster に接続できます。この鍵はシステムしか読めないため、管理者の許可を求められます。BlueCaster がすでに鍵を持っているデバイスはそのまま残します(後から BlueCaster でペアリングしたもので、Windows の鍵のほうが古いため)。PC 内蔵の Bluetooth など別のアダプタで Windows が作った鍵は使えません。ペアリングはアダプタのアドレスに結びついています。Windows は鍵の種類を保存しないため、取り込んだ鍵の種類は 4 になります。デバイスの LE のキー(Long Term Key と Identity Resolving Key)もリンクキーと一緒に取り込み、LE Audio で使います。取り込んだヘッドホンは、Windows での名前で保存済みのデバイスに加わり、そのまま接続できます。Windows がペアリングしたデバイスはふつうペアリングモードではないため、検索には出ません。取り込みなら、ペアリングモードにせずに引き継げます。検索に出たときやアドレスを入力したときは、追加(セットアップでは 接続)で先に Windows がペアリングしたデバイスであることを警告します。このまま追加 は新しいデバイスとしてペアリングし直します。
LE Audio
BlueCaster は LE Audio のヘッドホンやイヤホンにも送れます(BAP ユニキャストで LC3 を接続型アイソクロナスストリームに乗せる)。ヘッドセットの音量(VCP)、メディアボタン(MCP)、左右のイヤホンの組(CSIP)、ゲーミングヘッドセット向けの低遅延モード(GMAP)にも対応します。デバイスごとに選び、デバイスの LE Audio の項目だけが使います。これまでに確かめたのは 1 つのアダプター(MediaTek MT7925)と Bluetooth のエミュレータだけなので、お使いのアダプターではまだ動かないこともあります。実績があるのは従来の A2DP です。
必要なもの:
- Bluetooth 5.2 以降でアイソクロナスチャネル(ISO)に対応した USB Bluetooth アダプター(A2DP と同じく WinUSB を割り当てる)。ISO に対応していないアダプターでは「adapter does not support LE Audio (no ISO buffers)」で止まります。
- LE Audio(LC3)に対応したヘッドホンやイヤホン。機種によっては、先に専用アプリで LE Audio を有効にする必要があります。
使い方:
- ヘッドホンをペアリングモードにして、オーディオデバイス でデバイスをスキャンします。LE Audio のデバイスには LE Audio、左右一組のイヤホンには LE Audio セット の印が付きます(どちらか片方を選べば、もう片方は BlueCaster が探します)。A2DP にも対応したヘッドホンは、1 つだけ表示されます。追加 で両方の種類に保存され、どちらで接続するかは 利用可能な場合は LE Audio を使用する で決まります。ヘッドホンが対応していれば、どちらか一方でペアリングすれば両方に使えます(クラシックのペアリングのあと、BlueCaster は LE キーを問い合わせます)。
- コーデック 画面では、デバイスに 2 枚のカードがあります。LC3 はヘッドホンが受け付ける一番よい LC3 の設定、LC3 低遅延(既定で選択)は、GMAP のゲーム用の役割に対応したヘッドセットでは短い LC3 フレームを使い、それ以外のヘッドセットではどちらでも通常の設定になります。… で再生中のレートとビットレートを確認できます。取り込めるのはサウンドデバイスと仮想デバイスだけです。
- オーディオデバイス の 入力ソース でイヤホンのマイクも PC に送れます。再生は LC3 の品質のままです(オーディオデバイスを参照。CLI モードでは
--headset-mic)。
LE Audio は既定でオフです。使うときは アダプタ 画面の 利用可能な場合は LE Audio を使用する をオンにします。このスイッチはアダプターが LE Audio に対応しているときだけ表示され、切り替えると Bluetooth が再起動します。接続中のデバイスはすぐに、LE Audio またはクラシックの接続でつなぎ直されます。
CLI モードでは --le-audio -d <アドレス> で LE Audio のデバイスに送ります。--le-device <アドレス> でグループのもう 1 台(もう片方のイヤホン)を加え、--le-scan で近くの LE Audio デバイスを一覧し、--le-low-latency / --le-preset <名前> で設定を選びます(LE のオプションの一覧は bluecaster-core.exe --cli -h)。
更新
BlueCaster は GitHub Releases を 1 日に 1 回まで確認します(設定 > 起動時にアップデートを確認。アップデート確認にプレリリースを含める でベータ版も通知)。新しいバージョンがあれば、新しい点を数行にまとめたダイアログを表示します(全文はリンク先)。今すぐ更新(ポータブル版は ダウンロードページを開く)と 後で があり、後で を選ぶと次のバージョンまでは設定にだけ表示します。設定にも表示されます。
- インストール版: 今すぐ更新 で署名付きの更新をダウンロードします。オーディオデバイスの接続中は待ち、切断したときにインストールするので、更新で音が切れることはありません。BlueCaster はいったん終了し、新しいバージョンをインストールして、自動で再び起動します。
- ポータブル版(または更新の署名がないビルド): ダウンロードページを開く でリリースのページを開きます。
開発者モードでは 開発者 > アプリ設定 > アップデート確認にアルファ版を含める でアルファ版も提案されます。アルファ版はベータ版の間に出るビルド(新しいチップへの対応など)で、より頻繁に出る代わりにテストは少なめです。開発者モードがオフのときは提案されません。
トラブルシューティング
音が途切れる、音飛びする、接続に失敗する、ビットレートが想定より低い: 音切れと接続の問題 に、これまでの報告が結局何だったのかと、まず確かめることをまとめています。
コアが動いていないと表示される
ウィンドウは隣にある bluecaster-core.exe を自分で起動します。「BlueCaster のコアが動いていません」は起動できなかったという意味です。BlueCaster をインストールし直してください(ポータブル版なら zip を展開し直します)。「コアのバージョンが合いません」は、2 つのプログラムのバージョンが違うという意味です。両方を同じバージョンにしてください(最新のリリースをインストールすればそうなります)。
ドライバーの割り当てや復元に失敗する
- 「管理者の確認が拒否されたため、ドライバは変更していません」: もう一度ボタンを押し、確認を許可してください。
- 「ドライバを変更できませんでした」: 詳しくは 診断 のログを見てください。
- 「元のドライバには戻りませんでした」: Zadig で設定したアダプターでは、Windows がまた Zadig の WinUSB ドライバーパッケージを選ぶことがあります。デバイスマネージャーでそのドライバーパッケージを削除し(アダプター > デバイスのアンインストール、「このデバイスのドライバーを削除しようとしました」にチェック)、アダプターを抜いて挿し直してください。
- 「ドライバは戻りましたが、Windows が同時に使える Bluetooth アダプタは 1 つだけで…」: ほかの Bluetooth アダプター(PC の内蔵のものなど)が Windows で使われています。代わりにこのアダプターを Windows で使うには、デバイスマネージャーでそちらを無効にしてから、このアダプターを抜いて挿し直してください。
- アダプターのドライバーを戻したあと、デバイスが Windows で接続できない: Windows の設定で削除して、ペアリングし直してください。BlueCaster が Windows に渡すのは、Windows がこのアダプターでペアリングしていたデバイスのペアリングだけで、LE のキーは渡しません。
Bluetooth アダプターが応答しない
開いたアダプターから何も返ってこない(HCI Reset に応答しない)場合、BlueCaster は 5 秒で見切り、もう一度だけ開き直します。それでも応答しなければ「Bluetooth アダプターが応答しません」と表示します。アダプターを抜いて挿し直してから、もう一度お試しください(または Bluetooth を再起動)。BlueCaster の再起動は不要です。開始に失敗してもアダプターは解放され、次の開始で初期化し直します。
アダプターが固まらないよう、BlueCaster は開くときに USB パイプをリセットし、閉じるときに HCI Reset を送ります。
アップデート後にペアリングがうまくいかない
BlueCaster は SSP(Just Works)と General Bonding でペアリングし、リンクキーを保存するため、次回以降はペアリングし直さずに再接続できます(v2 は v1 のリンクキーを読みます)。以前のバージョンの BlueCaster でペアリングしたヘッドホンにつながらなくなった場合は、ヘッドホン側で BlueCaster のペアリング情報を削除し(ペアリング履歴の消去方法はヘッドホンの説明書を参照)、改めてペアリングしてください。
接続がタイムアウトする
BlueCaster は SDP レコード(A2DP Source、AVRCP Controller / Target)を登録し、ヘッドホンがオーディオソースとして認識できるようにしています。接続がタイムアウトした場合は中途半端な接続が破棄されるため、BlueCaster を再起動せずにそのまま再試行できます。ヘッドホンの電源が入っていること、通信範囲内にあること、他の機器に接続されていないことを確認してください。
接続が確立した後に通信が届かなかった場合と、ヘッドホンが応答しなかった場合は、自動で再試行します(最大 3 回)。ヘッドホンがペアリング情報を失っている場合(リセットや別の PC とのペアリング)は、保存したキーを破棄して 1 回だけペアリングし直します。失敗したときは、何が起きたかを表示します:
| メッセージ | 意味 |
|---|---|
| デバイスが応答しません | 電源オフ、範囲外、または接続できない状態(新しいデバイスはペアリングモードに) |
| 接続は確立しましたが、その後の通信が届きませんでした | 電波状態: もう一度試すか、アダプターとデバイスの位置を見直す |
| デバイスは応答しましたが、デバイス側から接続を切られました | 今は接続を受け付けない状態: 電源を切る途中、充電中、別の機器と接続中など |
| 認証に失敗しました(ペアリングし直しても失敗) | デバイスをペアリングモードにするか、デバイス側のペアリング情報を削除して再試行 |
ヘッドホンへの最初の接続にはペアリングモードが必要です。2 回目からは保存したリンクキーで再接続します。ペアリングモードにしても失敗するときは、ヘッドホンがスマホや別の PC にまだ接続されている(LE Audio 経由も含む)ことがあります。そちらの接続を切り、ヘッドホンのアプリに LE Audio の設定があればオフにしてから、ペアリングモードにしてもう一度接続してください。ログには signaling connection failed (0x66)(セキュリティ上の拒否: この PC の Windows Bluetooth などとの以前のペアリングのキーをヘッドホンが保持している)や (0x67)(リソース不足による拒否: 別の機器が使用中)が出ます。
切れた接続は自動で再接続します(最大 10 回)。配信中に PC がスリープに入ったときは、復帰した後に再接続します。この再接続は回数に数えません。
ヘッドホンの電源を切って入れ直すことで PC とスマホの間で切り替えている場合は、オーディオデバイス > 自動で再接続する をオフにしてください。切れた接続はそのまま切断した状態になり、BlueCaster が Bluetooth アダプターを放すので、ヘッドホンはスマホに接続できます。PC にもう一度接続するには、ホームの 接続 を押します。