Realtek HD Audio Driverをインストールする(アンインストールループから抜ける)

目的

実は1年以上前に,使用しているマザーボードRealtek HD Audio Driverを最新にしようとして無限にUninstallを繰り返すループになっていたので諦めていた.

Realtek HD Audio Driver(Ver.6.0.9373.1)へアップデート完了
今回,2024年になって,なんとかインストールできたのでその手順をまとめておく.確認環境は以下のとおり

名称 規格 製造会社 備考
オペレーティングシステム Windows 10 Pro 64ビット,22H2 マイクロソフト
マザーボード B450 AORUS M GIGABYTE Realtekオンボードオーディオ搭載
オンボードオーディオドライバー HD Audio Driver,6.0.9373.1 Realtek GIGABYTEサイトからダウンロード(2022年7月25日公開)

結論

参考サイト(ドライバインストールが進まない。実は途中でループしていた。)に従って

  1. Windows Updateの無効化
  2. バイスWindows Updateの無効化

を実施するとともに,その操作後,LANケーブルを抜いて(環境によってはWi-Fiを無効にもして),インターネット接続しないようにしてRealtekインストーラーを実行すると

  1. 既存ドライバーのアンインストール
  2. 再起動
  3. 新しいドライバーのインストール
  4. 再起動
  5. インストール完了

という手順で進む.今までは,既存ドライバーのUninstall→再起動を繰り返すのみであったが,Windows Update関連の機能により,ドライバーが補完されてしまうようである.

参考サイトに従っただけでは,Windows Updateを無効化しても再起動後に自動的に実行されてしまっていたのだが,そもそもインターネット接続がなければ実行されてもドライバーが補完されることはないのではないか,という予測の元でLANケーブルを抜いた状態でドライバーインストールを行ったところ,無事にインストール完了までたどり着けた.

Windows Updateの無効化

  1. Windowsキー+Rキーを押してファイル名を指定して実行のウィンドウにて,services.mscと入力する
    services.mscの入力
  2. サービスの中からWindows Updateを選び,スタートアップの種類から無効を選択してOKを押す
    Windows Updateの無効化

バイスWindows Updateの無効化

  1. Windowsキー+Rキーを押してファイル名を指定して実行のウィンドウにて,SystemPropertiesHardware.exeと入力する
    SystemPropertiesHardware.exeの入力
  2. システムのプロパティにて,デバイスのインストールをクリックする
    バイスのインストールをクリック
  3. バイスのインストール設定にて,いい絵を選択して,変更の保存をクリックする
    いいえを選択して変更の保存をクリック

その他

アップデート後のオンボードオーディオについて

アップデート作業において,何度もスピーカーが消えるので,PCIe接続のサウンドカードを使用した状態だったため,スピーカーの3.5mm端子に何も挿していなかった.そのため,正常にインストールできているにもかかわらずRealtek Digital Outputしかサウンドのウィンドウに表示されず*1,数回この作業を繰り返すことになった.同じことをしている方は,注意されたし!

参考サイト

  1. B450 AORUS M (rev. 1.x) サポート | マザーボード - GIGABYTE Japan
  2. ドライバインストールが進まない。実は途中でループしていた。
  3. Windows Update を無効にしてもトリガー開始される原因について | Windows10

*1:Realtek Digital Outputは,3.5mmジャックと異なり挿入状態検出がないので常に表示される

VoicemeeterでSound BlasterのASIOを使えるようにする

目的

Voicemeeter(本記事ではBananaを使用)にてSound BlasterのASIO(A1出力)が初期状態では以下のバッファーサイズが2048サンプルより大きくできないというエラーが表示されて使えないが,使えるようにできる方法を紹介する.

A1出力選択画面 エラー画面 Output Device not Working...
ASIO: Creative SBZ Series ASIO Device
Failed to Open Main Output Device (A1) Buffer size cannot be above 20480 samples.

なお,確認環境は以下のとおり

名称 規格 製造会社 備考
オペレーティングシステム Windows 10 Pro 64ビット,22H2 マイクロソフト
バーチャルオーディオミキサー Voicemeeter Banana,2.0.6.8 VB-Audio
ASIO設定ツール VB-Audio ASIO Test 32Bits,1.0.1.4 VB-Audio 32Bitsのほうを起動する
オーディオインターフェース Sound Blaster ZxR Creative ドライバーバージョンは6.0.102.78
オーディオインターフェースソフトウェア Sound Blaster Command,3.5.10.0 Creative ダイレクトモードを有効にしているが,ASIO入出力有効無効に直接は関係しない

結論

  1. Voicemeeterを終了する*1
    Shut Down Voicemeeterにより終了する
  2. VB-Audio's Forumsのある記事から,VB-Audio ASIO Testをダウンロードする
  3. 32ビット版のVBASIOTest32.exeを起動する*2
    起動するVB-Audio ASIO Test
  4. VB-Audio ASIO Test 32Bits起動後,DevicesメニューからASIO: Creative SBZ Series ASIO Deviceを選択する
    ASIOデバイス選択
  5. 選択後,ウィンドウ内に情報が表示されるため,再度,DevicesメニューからOpen ASIO Control Panelを選択する
    Open ASIO Control Panelを選択する
  6. Creative SBZ Series ASIOウィンドウが表示されるため,Latencyを50 msより小さい値に設定する
    Creative SBZ Series ASIOウィンドウ(デフォルトのLatencyは50 ms)
  7. Voicemeeterを起動してA1にASIO: Creative SBZ Series ASIO Deviceを設定すると,今度はエラーが出ずに設定できる
    A1にCreative SBZ Series ASIOが設定できる(Latencyは2 msに設定時の画面)

その他

VoicemeeterとSound BlasterシリーズのASIO

今回のSound Blaster ZxR以外にも,Sound Blaster Z SEおよびSound Blaster Digital Music Premium HDで試したときも同等のエラーが表示された*3.そのときは,使用不能と判断していたのでこの手順を試さなかったが,おそらく同様の手順で使用できるようになると思われる.

参考サイト

  1. How to fix "Failed to Open Main Output Device (A1) Buffer size cannot be above 2048 samples."? - VB-Audio's Forums
  2. ASIO Driver Tester - VB-Audio's Forums

*1:×ボタンではウィンドウを閉じるだけなので,メニューからShut Down Voicemeeterを実施する

*2:Sound Blaster ZxRのドライバーが32ビット版であることによるようである

*3:Sound Blaster Digital Music Premium HDの場合はASIOドライバー名は異なる

(WIP)OBS配信レイアウトをテキトーに考える

目的

自分のOBS配信レイアウトをまとめておく!

結論

第6世代

ゲーム画面+ゲーム画面外にコメント一覧表示+ゲーム画面外に字幕+ゲーム画面外に視聴者数表示+ゲーム画面外に配信時刻+ゲーム画面外に配信者からの一言コメント+ゲーム画面外に配信タイトル.

第5世代に変更を加えて,画面上部に配信タイトルを追加する.

レイアウト計算メモ

第5世代

ゲーム画面+ゲーム画面外にコメント一覧表示+ゲーム画面外に字幕+ゲーム画面外に視聴者数表示+ゲーム画面外に配信時刻+ゲーム画面外に配信者からの一言コメント.

第3世代の右側のコメント表示の上部に,時刻表示とTwitch・YouTubeの視聴者数を表示する.右下に,自分の一言または体組成計のスクショ(リングフィットのみ)を配置する.

第4世代

ゲーム画面+ゲーム画面外にコメント一覧表示+ゲーム画面外に字幕+ゲーム画面外に視聴者数表示.

ニコニコ動画風のコメントも画面上をやめた. (TypingLandの配信画面をのせる)

第3世代

ゲーム画面+ゲーム画面上にコメント表示+ゲーム画面外に字幕.

ゲーム画面を左上に縮小して,字幕はゲーム画面に被らないように変更.右側には各配信サイトのコメントを表示する.ニコニコ動画風のコメントも画面上に流している.

4:3画面(アスペクト比固定)にゲーム画面に被せない字幕と配信例 4:3画面(引き延ばし)にゲーム画面に被せない字幕と配信例
youtube.com youtube.com

第2世代

ゲーム画面+ゲーム画面上にコメント表示+ゲーム画面上に字幕.

第1世代の画面の左下に,2つの言語または3つの言語字幕を入れて,ゲーム画面にコメントを表示する.ニコニコ動画風のコメントも画面上に流している.

赤い縁文字字幕と配信例
youtube.com

第1世代

ゲーム画面のみ.

1080pこと1920x1080にゲーム画面いっぱい.だれもがみんな最初はこれだと思う.

16:9なら単純に画面いっぱいにゲーム画面,4:3の場合は,アスペクト比固定なら左右に黒帯を入れて画面いっぱい,アスペクト比を変更してもよいなら画面を引き延ばす.

16:9画面と配信例 4:3画面と配信例
youtube.com youtube.com

e2studioのRenesas Viewsからメモリー使用量とスタック解析が表示されない問題を解消する

目的

RL78マイコンをe2studioの環境で開発しているが,自分の環境だけメモリー使用量とスタック解析メニューが表示されなかった.その解決方法と原因を記載する.

対応前(表示されない) 対応後(表示される)

なお,確認環境は以下のとおり

名称 規格 製造会社 備考
オペレーティングシステム Windows 10 Pro 64ビット,バージョン22H2 マイクロソフト
開発環境 e2studio,2023-07 ルネサスエレクトロニクス
コンパイラ CC-RL 1.12.01 ルネサスエレクトロニクス

結論

e2studioのインストール時にLite Install (Recommended)でインストールしてしまったために,メモリー使用量とスタック解析のためのソフトウェア

  • Renesas e2 studio Memory Usage View

がインストールされず,e2studioのインストール詳細のインストールされたソフトウェアの中に入っていなかったことによる.

対応前(リストにない) 対応後(リストにある)

対策方法(のひとつ)は,再度インストーラーを起動し,修復としてインストール作業を実施する.

インストール過程におけるカスタマイズ機能において,チェックが入っていないRenesas e2 studio Memory Usage Viewにチェックを入れて,インストールを実施することで,インストール後にメモリー使用量およびスタック解析が表示できるようになる.

カスタマイズ機能工程でチェックを入れる項目

その他

委託先ではふつうに表示できると言われ,e2studioのチュートリアルではそもそも表示されているチュートリアルで,何が不足しているのか判断に迷っていたが,再インストールすればなんとかなるのではという推測の元たどり着いた結論である.Recommendedは信用してはいけない.

(WIP)ピンクノイズを生成して電子ホタルを実現する

目的

15年前くらいに,ホタルの点滅揺らぎ再現をPICマイコン固定の配列データでPWM点灯させたことがあった(以下,動画参照)が,あれはもっと「ランダムに」できないものかと思い立ち,調べてみている.

youtu.be

マイコンを使わずにできるのでは?

結論

TBD

その他

ノイズ生成について

ホワイトノイズをトランジスターやツェナーダイオードで生成して,フィルターを通すことでピンクノイズにする回路例がある.

ノイズ≒発振させるので,3.3Vや5Vではノイズ生成が安定しないようで,少なくとも9V,できれば12V電源のほうが安定するようである.海外の回路図例を見ても12V以上のものが多い.

9Vの電源と言えば,006P電池とそのバッテリースナップで実現できる.一方,12Vの電源としては,A23Sと呼ばれる電池とそのバッテリーボックスで実現できそう.

参考サイト

  1. ホワイトノイズ回路|トランジスタ、オペアンプ、ツェナーダイオードで作る3つの方法
  2. ピンクノイズ回路|ホワイトノイズとラグ・リードフィルタで作る

RNNoiseをOBS Studio以外でも使う

目的

Equalizer APOまたは,VSTホストとVoiceMeeterを使って,RNNoise*1によるマイクのノイズ抑制をWindows上で使う方法を紹介する.

ふだん,配信においてOBS Studio(以下,OBS)でノイズ抑制RNNoiseを使っていたが,そもそもこれはOBS使用時以外にも使えるのではないかと(今ごろ)思い,なんとか適用までに至ることができた.VSTプラグインEqualizer APOも,VSTホストとしてLight Host,VoiceMeeter Bananaも今回,初めて使用した.

OBSでのRNNoise設定画面

名称 規格 製造会社 備考
オペレーティングシステム Windows 10 Pro 64ビット,バージョン22H2 マイクロソフト インターナショナル版
配信ソフト OBS Studio 30.0.0 OBSプロジェクト 2023/11/25時点最新版
USBマイク HyperX SoloCast HP
VST Noise Suppressionプラグイン Real-time Noise Suppression Plugin 1.03 werman
イコライザーソフト Equalizer APO 1.3 Jonas Thedering
仮想ソフトウェアミキサー VoiceMeeter Banana 2.0.6.8 VB-AUDIO Software 上位機種にPotatoがある
VSTホスト Light Host 1.2.1 Rolando Islas クロスプラットフォーム

結論

まず最初に,VST Noise Suppressionプラグインをダウンロードして,C:\Program Files\VSTPluginswin-rnnoiseフォルダーごとコピーする*2

VST Noise Suppressionプラグインのダウンロード

Equalizer APOで使う

この方法では,とりあえず,該当のデバイスに適用できるため,特に考えることなくシステム全体に設定が反映できる.また,Equalizer APOはWindows起動時に自動的に裏で起動するようなので,一度設定してしまえば何も手間がかからない.

  1. Equalizer APOのインストールの最後に,Configuratorウィンドウが表示されるので,とりあえず使用するマイクのチェックを入れてCloseする
    対応デバイスのインストール(画面は既にインストール済のもの)
  2. スタートメニューからEqualizer APOのConfigurator Editorを起動する
    Equalizer APOの起動
  3. Equalizer APO起動後,警告が出るが,対応するマイクに対してインストールはしているのでNoを押す
    Equalizer APO起動時の警告画面
  4. 起動後,Device:の欄から対応するデバイス(今回はHyperX Solocast)を選ぶ
    バイス選択
  5. 緑色の+を押してPlugins→VST pluginを選択する.上部の1~3は今回使用しないので赤色の-を押して削除するか,パワーボタンを押して無効にする
    VSTプラグインの追加
  6. VST pluginの行が表示されたら,あらかじめコピーしておいたVSTプラグインのrnnoise_stereo.dllを開く
    VSTプラグインの指定
  7. この状態で,システム全体でノイズ抑制が効いた状態になる*3.Open panelをクリックすると,パラメーター設定画面が表示され,それらが調節できる.
    VST Noise Suppressionプラグイン設定完了

明示的に適用するデバイスを指定したい場合

  1. 緑色の+を押して→Control→Device (Select device)を選択する
    バイスの選択
  2. Change...→Select all devicesのアンチェックをして,使用したいデバイスを選んでOKを押す
    具体的なデバイス選択画面
  3. バイス設定の順番をノイズ抑制の前に移動し,対応するデバイスに対してのみノイズ抑制を実施するように変更
    バイス設定の適用順序変更

Light Hostを使用してVoiceMeeter Bananaで使う

VSTホストには,さまざまなものが提供されているが,Light Hostを使う.使用理由は,インストール不要で使うできるから.ほかには,Cantabile Liteが有名なもよう.

VoiceMeeter Bananaについては割愛するが,使用したいチャンネル数の違いなので,VoiceMeeterまたはVoiceMeeter Potatoでも大きな違いはないと思われる.

なお,この設定では,Equalizer APOと異なり, Light HostおよびVoiceMeeter Bananaが起動しているときのみ,ノイズ抑制が効くようになる.VoiceMeeter Bananaは,左上Menu内のRun on Windows Startupにチェックを入れることで常時起動できるが,Light Hostは常時起動させる設定がないため,別途,その設定が必要となる.

VoiceMeeter Banana側の設定

  1. HARDWARE INPUT 1にマイクを指定しておく.
    HARDWARE INPUT 1にマイクを割り当て
  2. 右上のMenu→System Settings / Options...を選択する
    VoiceMeeter Bananaでのメニュー内のシステム設定
  3. 表示されたSystem settings /Options...の画面にて,左下のPATCH INSERT欄からin1 Leftおよびin1 Rightをクリックして青い状態(挿入可能状態)にしてウィンドウを閉じる
    PATCH INSERT有効化

Light Host側の設定

  1. https://github.com/rolandoislas/LightHost/releasesから,対応するzipをダウンロードする
    Light Hostのダウンロード
  2. 任意の場所に解凍*4して,Light Host.exeを実行する.実行後,ウィンドウが立ち上がるわけではなくて,タスクバーに起動することに注意
    Light Hostはタスクバーに起動する
  3. 左クリックするとメニューが表示されるので,Preferencesを選択する
    設定メニューの選択
  4. デフォルト設定ではAudio device type:がWindows Audioで,規定のデバイスが選択されているが,すべての欄を以下の設定して閉じる*5
    Audio Settingsの変更内容
  5. 次に,Edit Pluginsを選択する
    Edit Pluginsの選択
  6. 表示されるAvailable Pluginsウィンドウ左下のOptions...を押して,Scan for new or updated VST plug-insを選択する
    VSTプラグインのスキャンウィンドウ表示
  7. スキャン先がC:\Program Files\VSTPluginsになっていることを確認し,Scanを押す
    VSTプラグインのスキャン実行
  8. スキャン完了後,以下のウィンドウが表示されるので,rnnoise_stereo.dllが含まれていることを確認してOKを押す
    スキャン完了画面
  9. Available Pluginsウィンドウに利用可能なVSTプラグインが表示されたことを確認し,このウィンドウを閉じる
    利用可能なプラグインにNoise Suppressionプラグインが追加された
  10. 再度,タスクバーのLight Hostを左クリックしてAvailable Pluginsのwerman→rnnoise_stereoを押す
    Available Pluginsからrnnoise_stereoを選択
  11. Active Pluginsの中にrnnoise_stereoが含まれていれば,既に有効となっており,VoiceMeeter Bananaで聞こえるマイク音に適用される.必要に応じてEditを選択してパラメーター設定を実施できる
    Active Plugins内にrnnoise_stereoが追加された
  12. 最後に,Windowsの再起動後も自動でLight Hostが起動できるように,%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startupのフォルダー内にLight Host.exeのショートカットキーを置く

その他

VSTプラグインについて

いくらかバージョンがあるようで,今回はVSTを使用しているが,VST2,VST3がある.イマドキはVST3のようで,各社が販売しているVSTプラグインは,VST3のみの提供に移行しつつあるらしい.また

に置くのが業界標準(?)のよう.

Equalizer APOについて

システム全体にVSTプラグインを適用できる一方で,調べた限りでは,VST2または3は取り扱えない.そのため,最近のVSTプラグイン(≒VST2または3)を取り扱いたい場合は,今回のようにVSTホストを使用するしか方法がない.Audio Stream Input Output(ASIO)に触ってみていて気づいたが,ASIOの場合はWindowsの標準(正しい表現か不明)ドライバーを通らないので,Equalizer APOでのVSTプラグインが適用されない.

VSTホストについて

正直なところ,いろいろありすぎてよくわからない.楽曲製作するわけではないので,無料でなるべく簡単なもの,ということで今回はLight Hostを使用してみた.もっとかんたんなものがあれば,別のものを使用したい.

OBSとVSTプラグインについて

今回は,OBS内部で使用するのではなく,OBSの外でそれらVSTプラグインを使いたかったのでOBSの設定にはふれていないが,OBSではVST2のプラグインは使用できるらしい.さらに,VST3のプラグインについてもWaves社のStudioRackというソフトウェアを使用すると,OBSでもVST3のプラグインが使用できるようである.

全般的な感想

VoiceMeeter Bananaを導入しようとしていて,やっぱり単純にマイク入力をするとノイズがしっかり聞こえるなぁと思ったところより,この対策にたどり着いた.

Twitterを見る限りでは,RNNoise否定派もいるし,確かに歌うVTuberさんのRNNoise適用で高音が消える問題もあるようなので,一概にRNNoiseがよいとも言えないところは納得した.カラオケ配信をする予定はまったくないが,RX 10 Elementsに少し興味がわいた.

改訂履歴

# 日付 内容
1 2023/11/26 Equalizer APOでの適用方法を一部修正
Light Hostを使用したVoiceMeeter Bananaの使用方法を追加,その他を追加
2 2023/12/27 ASIOドライバー利用の場合は適用されない一文を追加

参考サイト

  1. RNNoise for Voicemeter (added to OBS studio V26 beta)
  2. Real-time Noise Suppression Plugin
  3. Free and Open Source Software Noise Cancelling for Working from Home
  4. How To Setup VST Plugins with VoiceMeeter (Light Host)
  5. Light Host

*1:正確にはどうやらまったく同じものではなく,VST Noise Suppressionプラグインというもの

*2:正確には使用するプラグインだけでよい.また,Equalizer APOを使用する場合,C:\Program Files\EqualizerAPO\VSTPluginsも存在するが,通常,VSTプラグインはこのディレクトリーに配置する慣習のためここにコピーする

*3:この時点でconfig.txtに保存されるため,明示的に保存操作をしなくてもOK

*4:フォルダー名Light Host 1.2.1 Win64をLight Hostに変更して,C:\Program Filesの中に配置するのがオススメ

*5:必要に応じて,Show advanced settings...にてサンプルレートとバッファーサイズを変更する

RL78マイコンのセキュリティIDを一意に決めたい

目的

RL78の開発環境において,セキュリティID設定というものがある(下図参照).16進数10バイトで設定できるものではあるが,その値を完全な乱数ではなくて,一意に決める方法のひとつを紹介する.

RL78のセキュリティID設定(画面はe2studioの英語版)

上記のセキュリティID設定では,不一致だった場合にフラッシュメモリーのデータ(コード領域およびデータフラッシュ領域両方)を消去するかどうか選択できる.

結論

ファイルのハッシュ値計算と同じ方法で,これを10ケタに区切ることで,特定の文字列に対して一意の16進数10バイト(20ケタ)が得られる:

$ echo -n 0x; echo -n foo-bar | md5sum | cut -c 1-20
0xe5f9ec048d1dbe19c70f

文字列foo-barに対する32ケタのMD5の計算結果の内,先頭の20ケタを切り出して,0xを先頭に付加したものが0xe5f9ec048d1dbe19c70f.これをセキュリティIDの値として使う.PowerShellコマンドプロンプトでは通常実施できないが,近頃はGitを使うことが大半であるため,Git Bashを使うことでWindows環境下でも上記コマンドが実行できる.

その他

セキュリティIDについて

セキュリティIDは,あくまでデバッグ(オンチップデバッグ)開始時のセキュリティ設定であって,RL78のチップへの不正アクセスというよりは,RL78のチップへ不正にアクセスしてデバッグを開始しようとしたときに,有効な機能である.既に書き込まれているセキュリティIDの値と,デバッグしようとしている側のセキュリティIDが異なっていた場合にデバッグを開始できなくするという動作をする.

開発環境におけるデバッグセッション構成

デフォルトでは,デバッグ開始時にフラッシュROMを消去してからデバッグという設定となっている.そのため,セキュリティIDの照合に失敗しても,結局フラッシュROMを消去してからデバッグを開始するので,あまり影響はないと考えられる(e2studioにて確認).