2021年10月20日水曜日

Windows11では音系が少し変わっているらしい

Windows 11のBluetoothまわりをつついていて、ヘッドホン/イヤホンの確認をしてみたところ、変更点が2つほどあった。

同時接続

Bluetoothオーディオが複数同時接続可能になっている。1つを接続したまま、別のBluetoothオーディオデバイスを接続することができる。Windows10では通話用、オーディオ用、それぞれで1つのデバイスを切断しないと別のオーディオデバイスは接続できなかった。

音質改善

出力周波数が48kHzになっていた。Windows10ではこれがCDでしか使われない44.1kHzだったのでひっそり変更された点で間違いなさそうだ。オーディオCODECはSBC、aptXに対応していたがWindows10でAAC対応予定もあるようなのでWindows11にもAACが既に入っているので間違いないかな。[設定][システム][サウンド]からデバイスを開くと出力の設定でステレオかモノラルも選択できるようだ。左右個別の音量調節も可能。接続方式は不明。LDACにも対応するようなら96kHzにも対応していたりするかもしれない。

音声の劣化

48kHzと44.1kHzの違いは何かというと、44.1kHzはCDやmp3などCD由来の音源。48kHzやその倍の96kHz、192kHzはCD以外の音源でよく使われる。CDも録音時には96kHzや192kHzで収録されてから44.1kHzに落とされる場合が多い。

Windowsはハードウェアのドライバで384kHzくらいまで対応していたが、ミックス過程でどの周波数をどのように変換しているのかわからないのでどのように劣化しているかはわかりにくい。標準ドライバのBluetoothは44.1kHz固定だったので、48kHzのものはオーバーサンプリングなどしていないと44.1kHzへのミックスに困る。

おまけ デジタル再生でも外部のノイズが入る要因はいろいろある

  • 他アプリ/警告/通知/マイクなどの音が入る
  • 不可逆圧縮/展開での劣化(データ化とBluetoothなど2度圧縮される場合もある)
  • データ転送が遅延する、データ展開ループが壊れる
  • ミックスでリミッターがかかる
  • ミックス過程のデータの周波数変換
  • ケーブルのアナログ部分にデジタル回路/配線や電源からのノイズが乗る場合(ノイズ対策が弱い機器限定/CPU近辺の信号ノイズ、蛍光灯On/Offなど)
  • 電波が混雑する場合
などが該当する。

違いがわかるかどうかは、さらにヘッドホン/イヤホンと耳の性能次第。

2021年10月5日火曜日

自作PC Windows 11 チェックとセキュアブートの設定変更してみた

Windows 11がリリースされるようなので、自作PCの要件チェックしてみた。

  • ASUS TUF X470 PLUS GAMING
  • AMD Ryzen 2600X
  • DDR4 8GB x2
  • トランセンドのNVMe
  • GeForce RTX 2070ぐらい

というような環境。

BIOS UpdateでfTPMだかなんだかの初期値はクリア。

 https://www.microsoft.com/ja-jp/windows/windows-11

互換性確認ツールがあるので実行するとセキュアブートのところで引っかかった。

BIOSのCSMという設定で、UEFIと旧式のどちらでブートするかの設定が旧式のCSMになっている。

ここだけ変更しても対応したデバイスがないのでブートできない。

元に戻してWindowsを起動、[Win] + [x] で[ディスクの管理]を開く。 

メニューだと、いつもの[設定]ではなく、[Windows管理ツール] の中の[コンピュータの管理]を開いて[記憶域]の[ディスクの管理]。

下側左のディスク0を右クリック、GPTディスクに変換、MBRディスクに変換のどちらかが薄く表示されているので、変換前はその逆になっている。

[プロパティ]を開いて[ボリューム]タブの[パーティションスタイル]のところでも確認できる。

MBRだった場合はUEFIとSecure Boot対応のGPTというものにしてインストールしていないといけないとか。

OS再インストールか、とも思ったが変換ツールもあるようなのでMBRをGPTに変換してみたり。

管理者として実行で[コマンドプロンプト]を開いてみた。

タブ止めしている場合は右クリック、さらに[コマンドプロンプト]を右クリックすると[管理者として実行]がある。PowerShellなんかでもいいのかもしれない。

メニューから開く場合。

メニューに[Windowsシステムツール]に[コマンドプロンプト]があるはず。PowerShellなどが入っているとなくなるかも。一度開いてからタスクバーで右クリックして管理者モードで開き直すと簡単。

見当たらないのでWindows Terminal の場合。

WindowsのメニューからWindows Terminal を右クリック。 [その他]の中に[管理者として実行]があるのでクリック。

タブ止めしていたり開いていたりしたら、タスクバーのWindowsターミナルを右クリック。中の下段に[Windows Terminal] があるのでさらに右クリック。[管理者として実行]をクリック。

どちらにしても管理者モードで実行できていることが必要らしい。

MBRをGPTに変換するコマンドはWindows 10の最新版(1703以降)なら入っているっぽい。

mbr2gpt.exe /convert /allowfullOS

 これでしばらく待つと、メッセージがいろいろ出て変換完了。

なんかxmlが失敗したみたいなメッセージも出てるけど気にしない。

これでUEFI Secure Boot用に変換されたのでBIOSの設定をそれ用に変更しないと起動しなくなる。

ASUSの場合、BIOSの詳細設定からブートのCSMを無効にしてUEFIか自動でブートする設定に変えて保存。

とりあえずWindows 10は無事に起動できたので再度チェックしてWindows 11の互換性に問題がなくなったところまで確認できた。

Windows Update画面では互換性がないと表示される謎。

Windows  11インストールはWindows Updateを待たなくてもインストールアシスタントでできるようだ。

https://www.microsoft.com/ja-jp/software-download/windows11

参考

https://www.intel.co.jp/content/www/jp/ja/support/articles/000024558/memory-and-storage/intel-optane-memory.html

2021年4月27日火曜日

炊飯器はおどり炊きを買ってみた

 象印の1万円しないくらいのIHでもなんでもなさそうな炊飯器を使っていて、そろそろ買い換えてみるかということでPanasonicの炊飯器を買ってみた。20年以上前っぽいので元はとれすぎていたり。

去年のモデルの中で安め、ということでWおどり炊きを排除、小容量、大容量はお得ではなさそうなので除外。おどり炊きからIHぐらいまでということにしてSR-MPA100、SR-MPB100、SR-STS100、SR-HX100、SR-HB100、SR-FD100などが候補に出てきた。その中でおどり炊きに対応しているのがSR-HX100以上。可変圧力はカタログ上うまさのランクが高くなかったので除外。ということで、スチームのありなしでSR-STS100とSR-HX100に絞り、Amazonで値段がやすかったので大火力おどり炊きのSR-HX100を購入。SR-HB100は大火力おどり炊きがないだけの差。

結果、うまいのでよかったんじゃないかな。スチームも圧力もないので洗いやすい、メニューもやや多めという利点あり。基本はメニューの違い、次にかためとかやわらかめをどれくらい炊き分けられるかという違いで選べばいいのかなと思う。

どれくらい自動になっているのかとカタログを見た結果、水量、米の量は普通、無洗米で変えなくていいとか、炊く前後の浸けたり蒸らしたりまで時間に入れて微熱で甘みを引き出したりしてくれるだとか、タイマー予約がデジタルだとか、20数年の差というより値段の差? 逆に今までどおりにしてしまうと失敗しそうかもしれない。

次はパンか?

2020年12月4日金曜日

JDK8と11の非互換

 仕事などでは古いJava環境を使っている場合もあり、そんななか、JDK11で8互換でビルドしてJDK8で動かないものがあったのでメモ

 NoSuchMethodError が

java.lang.NoSuchMethodError: java.nio.ByteBuffer.xxxx
と発生。
BufferとByteBufferは実装が変わっているようで、実装されている部分が何かで互換性がなくなっているっぽい。 
コードは互換になるがライブラリまでは見てくれないというJDKの罠はよくある。今回もそんなもののひとつか。
 詳細はこっちかな
 https://stackoverflow.com/questions/61267495/exception-in-thread-main-java-lang-nosuchmethoderror-java-nio-bytebuffer-flip

2020年10月14日水曜日

Oculus Quest 2をつついてみた

 Oculus Quest 2、日本で店頭販売されるということでヨドバシのポイントを活用して予約。昨日の昼頃届いたので軽く設定をして夜使ってみた。

まずfacebookのアカウントが必要なので、ない場合は若干苦労することになるのかもしれず、いろいろニュースにもなっているが略。

アカウントがあればQuest 2購入前でもゲーム、アプリは購入できるので、無料のものをいくつか購入?しておいてもいい。 アカウントがbanされると困るので有料アプリはあとがいいのか。

Rift用のGoogle Earth、Quest用のBeatSaber Demo、YouTube VR、Firefox Realityなど。

でQuest 2の開封。ゴーグル、右左コントローラ、メガネ用スペーサ、あとはUSB電源とケーブルが入っているかもしれない。説明書などは見なかった。 

サイズ感などはOculus Goからあまり変わらない印象。トラッキング用カメラがついているのと電源ボタンなどの位置が違うのと。

コントローラはボタンが多い。フィードバック(振動)的なのもついている。

瞳孔間距離の調整は3段階かな、Oculus Goで問題なければ2の状態で使って問題なさそうだ。1や3でも大きく違いが出るわけでもない。 

頭から外すときにメガネが引っ張られて外れてしまう。Oculus Goより横幅が狭いのかもしれない。密着間は上がるかもしれないが要注意。

電源を入れてWi-Fiに繋ぐ、Wi-Fi接続は失敗することが多いので難関。繋がればアップデートがされて再起動後、スマートフォンアプリと連携になる。

AndroidのOculusアプリは以前から使っていた場合に接続できるVRゴーグルの一覧が更新されないという不具合らしいものに遭遇。キャッシュをクリアすれば改善されるようだが再インストールでもログインするだけで設定が回復するのでおすすめは再インストールか。

Oculus Link的なUSB-C to CケーブルでPCと繋いでみたところ、PC側の設定は完了したがOculus Quest 2側はスマートフォンでないと設定できないので要注意。

その後何度かケーブルをつけたり外したりしてみたが認識されなくなったりはしなかった。Oculus Linkも改善されているということかな。

Androidアプリの方は連携用番号も入れずにリンクできたので、ホーム画面が立ち上がるのを眺める。Goより細かいメニューがさくさく動くのがよい。

立って使うのと座って使うのが選べるので、 安全エリアの設定方法が少し違う。

Oculus Linkとの切り換えも簡単なので、Oculus Link用にケーブルは用意しておいた方がいい。 PC側でOculusアプリが起動している必要があるくらいで、Streamやその他いろいろのVRアプリも使える状態になる。定番といわれているものから少し外れてGoogle Earth、Minecraft などを体験してみるのもおすすめか。

画質はみっちりという感じなのか、Questは使っていなかったがGoと比べて似たような解像度なのでそこまで差があるわけでもないが、なんとなく滑らかではあるように思う。

BeatSaberはOculusQuest用のDemo版を座ったままやってみようと思ったが、座り込むと低すぎて無理だった。座るにも椅子が必要なのかどうか。

Google Earth はミニチュアを上から眺める感じだったり、Minecraft (PC統合版VR)は巨大に見えるブロックの木を刈ってみたり、Quest 2のコントローラはボタンも多いのでやや迷う。

映像系はOculus Goだとメニューが選びにくかったり、途中で停止したりといろいろ限界に近かったが、Oculus Quest 2では操作も再生も問題なくVR180やVR360のYouTube VRなどを使うことができた。動画はOculus Goでいいか、というわけでもなくなった。 

Quest 2ではアプリの入手先はいろいろあって、Oculus公式ストアのRift系、Quest系アプリが使える他、SteamなどでもRift系VRアプリが豊富に販売されている。何か変わったものに遭遇できればいいなと思いながらいろいろ試してみた半日。

2020年10月8日木曜日

Oculus Quest 2のススメ

 Oculus Quest 2が発表され、予約もされているのでおすすめ点を。

Oculus QuestはVRヘッドセットです。360度の立体映像の中に入ることができ、3D映像も見ることができます。

比較対象

テレビと比べると、視野が全体に広がり。

3Dテレビと比べると、枠がないぶん没入度は上です。

3Dヘッドセットと比べると、頭を動かしても映像は顔の前に張りつかず動かせます。

VR機器ではCardboardなどスマホの3Dと比べると、コントローラがある分操作感が上がり、装着も簡単。

Oculus Goと比べると、両手操作ができる分自由度が高くなり、歩くこともでき、PCと繋ぐことも可能。Snapdragonは高性能。

Oculus Rift、PSVRと比べてPC、PSなしでも使える。解像度が高い。

6DoF対応なので移動も可能。センサー設置も不要。

カメラ6DoF、ハンドトラッキング、PC接続のできるVRなので手軽方向に振り切っている形です。 

Oculus Go、Oculus Riftの系統も廃止、統合する方向のようなので価格も今まで以上に手頃。

アプリはOculus Rift、Oculus Quest両方のものがほぼそのまま使える形です。Oculus Goとは互換性がないが同じアプリ、ゲームは多いので有料のものは買い直す必要があるかもしれません。

あと足りないのは全身フルトラッキング系、PC連携のフル映像ぐらいだと思います。

とりあえず必要なのはOculus Quest 2、使える空間、Wi-Fiネット環境ぐらいかな。

Facebook アカウントとスマートフォン(またはPC?)の設定アプリが必要なので、AndroidまたはiPhoneが必要。たぶん。

Oculus Rift用PCアプリが使えるOculus Linkには6コア以上CPU、GeForce RTX 2070ぐらいの強いPCがあると快適なのかもしれない。

Oculus Linkケーブルは純正が細くて無難だが、Ankerなども推奨されている。ただし太かったり、短かったり、中華メーカーなどの規格外の長さのものは接触が悪かったりする。おすすめはUSB Type-C to USB-Type-C の3.xケーブル。理由はType-A to Type-Cでは電源供給が足りないから。USB PDではなくUSB BC系の電源供給だと思うが、長時間Oculus Linkを使う予定ならType-Aはやめておきたいところ。安いケーブルなら駄目元でためしてみるのもありかもしれない。 

アプリは、ゲーム以外で動画だけでなく、どれくらいおもしろいものが出てくるか、といったところはOculus次第なのかどうか。

2020年6月8日月曜日

Java API for JSON Processing,JSONBと比較してみた

ABNFパーサを作ったおまけでてきとーにRFCだけ見てなんとなく作ったJSON実装(SoftLibJSON)がどれくらいJava標準(Java API for JSON Processing と JSONB)に近いのかなと思い、比較してみた。
結果、一応元のRFCがあるのでほぼそっくりではあるのだけど、微妙に違うのでそのあたりの解説と、今後どうするのかとか。
 Java API for JSON Processing
SoftLibJSON
 
TEXTぱーす  
どこか
JSON.parse()             
 JSON TEXT化 JSONValue.toString()
 
 Object→JSON JSONValue.valueOf()
 
 JSON→Object JSONValue.map()
 
 値JsonValueJSONValue
     
 NULLJsonValue.NULL
JSONNULL 
 trueJsonValue.TRUE
JSONBoolean
 
 falseJsonValue.FALSEJSONBoolean 
 数値JsonNumber
JSONNumber 
 配列JsonArray
JSONArray
 
 構造体JsonObject
JSONObject
 
こうしてみると、JsonValue からの継承関係はだいたいおなじ。JsonArrayはList,JsonObjectはMapを継承するのに対して、SoftLibJSONではJSON Pointerに対応するための機能も埋め込んだため、JSONArrayとJSONObjectではJSONCollectionとしてまとめたものを継承しているのが違い。
値の取り出し方はJava APIの方が型変換の呪縛でいろいろごっちゃりしているのに対し、SoftLibJSONではvalue()やmap() で取り出すのみでお手軽。
JSONへの変換、JSONからのパースは、Java APIでは別になっているが、SoftLibJSONではいろいろと融合している。JSONValue.valueOf() でなんでも済まそうとしている。
具体的に変換できそうなものは
  • List,配列 と JSONArrayの相互変換
  • class,Map と JSONObjectの相互変換
というものをReflectionを駆使して実装した結果、JSONB的なことは、ざっくり実装してしまっているが、オブジェクトの生成はコンストラクタの方に追従してみた方がいいのか? と思いJSONArrayからコンストラクタの変換にも挑戦中。
今後どういう変換機能をつけていけばいいだろか。

https://github.com/okomeki/SoftLibJSON
https://github.com/okomeki/SoftLibABNF

Windows11では音系が少し変わっているらしい

Windows 11のBluetoothまわりをつついていて、ヘッドホン/イヤホンの確認をしてみたところ、変更点が2つほどあった。 同時接続 Bluetoothオーディオが複数同時接続可能になっている。1つを接続したまま、別のBluetoothオーディオデバイスを接続することがで...