2020年4月19日日曜日

10万円をなににつかうかの私的めも

なんか、知らんけど、国が10万円を渋々ばら撒こうとしてるらしいんです。知らんけど。
本当にもらえるのか確定してないので、現時点ではまだ捕らぬ狸の皮算用って感じなんですが、妄想するのは楽しいのでメモしておきます。
こういうの見るの好きじゃないって人もいると思うけど、自分用メモなのでごめんね。

・PC
満足いく構成のPCを組むなら15万くらい必要なのかなあ、と思っていたんですが、なんか、10万ちょっとあればいいのが組めるっぽいんですよね。
構成を組みました。
良いよね。多分これで動くよね。
AMD Ryzenが人気なのでそっちで組んでもいいと思うんですが、CPUをAMDにするならビデオカードもRadeonにしたいところだと思うんです。(あるいはAPUというものもあるんでしたっけ?)。ただ、dGPUを載せるならぼくはGeForceにしたいなあっていうこだわりがあって、悩んでますね。気が向いたら、Ryzenで構成考えてみたいかな。

ただ、PCを組む必要性は正直あんまり感じてないんです。
まず、そんなにゲームしないんですよね。手元に高性能PCがあればゲーム遊ぶハードルは確かに下がるんですが、ゲーム買うお金あんまりないし、回線が細いのでゲーム落とすのも大変なんです。
これらのマイナス要因のどれかが解消されたらPC購入もアリかなーって思ってるんですけど、PC組むなら、最低限でも光回線とセットにしたいです。
ただ、PC組んじゃうと他のところまで手が回りません。

・PC-98
PC98Factoryってところだと、本体が5万くらい、CRTが3万くらい、キーボードが5000円くらいであるみたいです。
前々から遊んでみたかったので、欲しいんですが、学生にとって10万は結構大金です。なので、こんなのに金突っ込んだら "PC-98熱" が冷めたころに後悔しそうなんで、あんまり積極的に買うのは考えてないです。
あと、色々拡張ボードとか買っていくともっとお金必要になりそうです。

・カメラのレンズ
カメラ関係で欲しいのは山ほどあるんですが、広角~標準の単焦点だったり、望遠ズームだったりが欲しいです。ざっと見積もって1つあたり7万くらいかな。
買ったら満足すると思うけど、もっと他の用途にお金使いたいかなあ。今のところは。

・フィルムカメラ
EOS-1Vが欲しいって言ったら、写真部の先輩に「お前正気か?」と言われました。ええ、分かってます。正気じゃないと思います。

・全自動エスプレッソマシン
これ買ったら生活が豊かになると思うんですよね。
現状、コーヒー飲める手段が、コンビニコーヒーか学内の自販機コーヒーかスーパーの安いドリップパックのコーヒーくらいなんですよね。
スーパーの安いアレはハッキリ言ってマズいと思います。僕の淹れ方の問題かもしれないけど、どうやって淹れても雑味マシマシで全く美味しくないです。マズい。
手軽にコーヒー飲める方法は欲しかったので、結構前向きに検討してます。
デロンギの例のアレが8万くらいらしいので、まあちょうどいいかな。

・車の免許
残念、足りない!!あと20万くれ!!

・光回線
まじめに引きたいんだがコレ?って感じです。
大学の遠隔講義も実施されるし、(遠隔講義には間に合わないと思うけど)回線を見直す機会としては丁度良いと思ってます。
今のところ、ドコモ光を引きたいかなーって思ってます。NTT系のアクセス網はかねてより混雑が指摘されていますが、国内で最もIPv6の対応が進んでいて、それらに関する情報も豊富なうえ、IPoE方式による接続ではネットワークの混雑を大幅に避けられることから導入を検討しています。
ヤマハのエントリールーターも試したかったんですよね。RTXの800番台。ぶっちゃけシスコとかNECにしても良いんですが、国内でオタク層に割と人気なのがヤマハだし、昔からネットワーク機器作ってるメーカーだし、業務向けで安定した品質がありそうなので、ヤマハでいいかなーって思ってます。
問題は解約時の違約金です。いま光回線を引くと、どうしても大学を4年で卒業して引っ越すときに違約金を払わないといけなくなります。(留年すれば解決!とか言ってきたやつは許さねえw)
今はWiMAX2+を固定回線代わりに使っていますが、正直もう無理です。限界が見えています。

・モバイルノートのSSD換装
M.2 SATA 256GBのSSDが今刺さってるんですが、これを1TBのNVMeに換装したいです。正直もう容量足りてないので。
2万じゃ足りないらしい。軽く見積もって3万超えかなあ。

2020年4月15日水曜日

アナログモデムの通信音について

アナログモデムと呼ばれる、電話回線を使ってデータ通信をするための装置があります(多分、今でもFaxモデムとして売ってます)。インターネット接続手段としても利用され、アナログモデムでプロバイダーへ接続する方式をダイヤルアップ接続と呼びます。
まだ光回線やADSLがない時代に最盛期を迎えた方式で、現代の日本ではダイヤルアップ接続によるインターネット接続はほとんど役目を終えています。ですが、アナログモデム自体は「ファクシミリ(Fax)」という形でまだまだ活躍しています。Fax電話機にはアナログモデムが内蔵されていて、画像データを音声周波数帯域に変調して送り合っています。

アナログモデムは独特の通信音、接続音で知られています。「ピーヒョロロー」と表現される音で、当時からパソコンを利用していた方や、家族がパソコンを使っていたという方ならば聞いたことがあるかもしれません。今ではむしろ、リアルタイムでアナログモデムの通信音を聞いたことが無い方のほうが多数派かもしれません。

アナログモデムの通信音を可視化して詳しく解説した動画を何本か見つけました。
Modemowe połączenia dial-up - migawka elektroda.pl | YouTube
Sound of the dialup modem explained | YouTube

1つ目の動画が分かりやすくてオススメです。ポーランド語ですが英語字幕があり、平易な英文なので比較的読みやすいと思います。
2つ目の動画は図が精細に描かれていますが、情報量が多すぎて読みにくいかも。

これらの動画を見て頂くと分かるのですが、あの通信音は接続にあたっての各種設定や下準備を行うという、いわゆるネゴシエーションを行っている音なんですね。
何らかの問題で接続がうまくいかなかったとき、ユーザーが「どこで止まっちゃったんだろう」と調べやすくするために音を出しているんだと思います。
ネゴシエーションが終了して実際に通信を開始すると、うるさい通信音はミュートされてしまいます。あくまでもミュートされるだけなので、実際の電話回線には常に音が流れ続けています。

■ネゴシエーションでは何をしているのか
アナログモデムの規格は高速化のための拡張を繰り返されたため様々な通信モードがあり、接続相手が対応する規格や電話回線の質によってそれらを使い分けます。
そのため、まずは低速かつ確実な通信モードで最小限の接続を確立し、それを起点として「より高速に通信できないか、より確実性の高い通信ができないか」をお互いに探り合います。
高速な通信モードでの通信が確立した場合には、通信を安定させるための音響設定などを調整します。低速な通信モードではそれが必要ないため省略されます。

以下は、先ほど紹介したポーランド語の動画を参考に、ネゴシエーションの手順をまとめたものです。理解するためには電話回線の基礎知識が必要になります。

・交換機から発信モデムへダイヤルトーンの送出
・発信モデムから交換機へ電話番号の送信
・(交換機から相手モデムを呼び出す)
・(相手モデムが応答し、回線接続が完了)
・相手モデムはV.8 bisで接続を試行
・発信モデムはFSK 300bpsで応答、ネゴシエーションのためV.8への切り替えを要求
・相手モデムはV.8への切り替えを了解
・発信モデムはV.8 bisでの接続が終了することを確認
・相手モデムは送信チャンネルにおけるエコーキャンセラーを無効化
・発信モデムは対応する接続機能の一覧をFSK 300bpsで送信
・相手モデムは対応する接続機能の一覧をFSK 300bpsで送信
・互いのモデムが対応する接続機能について、DPSK 600bpsでより詳細に通信
・電話回線の質を測定するために広帯域音声信号を送信
・受信した信号の結果についてDPSK 600bpsで通信
・最終段階で、イコライザーとエコーキャンセラーを調整
・ネゴシエーションが完了し、接続が確立されるとモデムのスピーカーはミュートされる

■なぜ通信が「音」として聞こえるのか
通信に使われる電気信号は交流信号です。
電話回線は、人間が発する音声を、電磁誘導などを利用して交流の電気信号に変換して送ります。実際に回線を流れるのは、音声通話に必要かつ合理的な周波数帯域である300Hz~3.4kHzの信号です。
アナログモデムは、電話回線に流すことのできる、この300Hz~3.4kHzの周波数帯域を使い、コンピューターにおける通信に適したデジタル変調方式を使ってデータをやり取りします。
このアナログモデムの変調信号は人間の可聴周波数帯域に含まれているので、アナログモデムが送り合う電気信号をスピーカーなどで空気の振動に変換すると、いわゆる「ピーヒョロロー」という音として聞こえるわけです。

ちなみに、この「通信音」なんですが、ビットレートによって人間が体感できる音が変わってきます。
ビットレートが低い場合は「ピロピロピロ」といった音がします。まだゆっくりした音です
1200bpsくらいになると、「ガラガラガラガラ」という非常に速いペースの音が聞こえます。
9600bpsやそれよりさらに上のビットレートでは「ジャーッ」というホワイトノイズのような音になります。

2020年4月10日金曜日

PC-98で音源を鳴らして遊びたい話と、環境構築の備忘録的なもの

「PC-98で遊びたい」が正しいのか「MS-DOSで遊びたい」が正しいのか、自分でも分かってないんですが。ふふふ。

事の発端は、自分のTwitterのタイムラインに、ある動画が流れてきたのがきっかけです。
下北沢俊一(@Tani_Century)氏のこの動画なんですが、FM音源特有のちょっとピコピコしたサウンドもさることながら、MIDI(で合ってるかな?)譜面のビジュアライザーの素晴らしいGUIに感銘を受けてしまって、「これすき!これで遊びたい!!」という思いが止まらなくなってしまったわけです。

自分自身、Windows XP x86の時代からPCを触り始め、中学生の頃から自分専用のWindows 7 x64マシンに当たり前のように触れて育つという大変に恵まれた(?)世代なわけですが、そんな自分から見ても、PC-98の当時のマシンだったりUIというのはむしろ現代以上に先進的に見えるわけです。とてつもなくカッコイイし、それだけではなく「このパソコンがあれば何でもできるんだ」という充実感というものを強烈に感じられます。そして、当時の人々もまた、自分と同じような感覚を持っていたに違いありません。

とまあ、ポエムのような前書きはさておき。

自分がやりたいこととしては、MS-DOS環境でFM音源など各種音源をピコピコ鳴らしてみたくて、出来れば各種ビジュアライザー上で音楽を流したい、と。広大な電子の海を漁れば譜面くらい転がっているでしょうし(権利関係が怪しいものも多いかもしれませんが)、最悪なければ自分で打ち込めばいいや(作れるのか?)、くらいに考えています。

元々はFMDSPというビジュアライザーに惚れ込んでしまったのがきっかけなので、それらビジュアライザーをリスペクトして作られたWin32向けのソフトを色々試しました。
まず試したのがWMDSPですが、こちらはあまりにも重くて動作困難でした。
次に試したのがMDXWinです。こちらも予想通りかなり動作が重いですが、WMDSPほど重くはなく、十分余裕を持って動作させられました。Web上で配布されていた「きまぐれオレンジロード」の譜面を鳴らしてみたところ、綺麗なUIと音色で動作しました。
問題としては、古い環境向けのソフトですので、想定されている画面解像度が随分荒いのでしょう、FullHD環境で表示させると表示が小さくて読みにくいというものが一点。
それから、MDX形式の譜面の入手性が悪いというのが一点(これは当たり前の話ですが)。
最後に、「やっぱりFMDSPライクのGUIが欲しい...」ということで、自己満足出来なかったのが一点。

これらを踏まえて、やっぱり実機のMS-DOSでビジュアライザーとか動かしたいなあという気持ちが高まってきました。当時の環境を復刻させたい、というわけです。

自分なりに、当時のハードウェアを使ってFMDSPで譜面を鳴らしている方々の環境を調べつつ、環境構築を自分なりに考えてみました。
参考にしたのはこちらの動画: ナイト・オブ・ナイツ 【東方旧作音源 PC-98】 - ニコニコ動画
まずハードウェアですが...
本体としては、PC-9821Xa10/C4を使っているようです。こちらはPCM音源が内蔵されているようなので、別途サウンド関連のハードウェアを増設しなくても、PCM音源やその下位互換のFM音源くらいなら鳴らせるでしょう(なんにも詳しくないけど)。
ただし、この動画の作者さんはC Bus接続のサウンドボード「PC-9801-118」を増設されています。従って、先ほどの自分の見立ては誤りであり、デフォルトではFM音源は鳴らないという可能性や、音源を鳴らすにあたって様々な制約がある可能性もあります。
スペックは、AMD K6-2 450MHz、SIMM 16MB、HDD(CompactFlash) 4GBとあります。FMDSPは重いそうですから、スペックはできる限り高性能なものが欲しいところです。
HDDに関しては「4GBの壁」というものがあり、4GBを超えるとそれ以上の領域は認識しないことや、当時のHDDはもはや骨董品であり、消耗品でもあることから入手しにくいという問題があります。したがって、IDE互換のインターフェースを採用したCFカードを応用し、物理的なコネクタ形状を変換してHDDの代用とするのが定石のようです。この辺りはあとから考えます。

ソフトウェアとしては、 OSにMS-DOS6.20、音源ドライバーはPMDPPZとあります。OSはFreeDOSで代用しても良いでしょう。ドライバーは盲点となりがちで、これがないと当然音が鳴りません。ドライバーはまだ詳しく調べていないので、今後詳しく調べておきます。
プレイヤーはFMDSPとあります。こちらはVectorで今でも配布されており、既に実行ファイルを入手しています。

あとはキーボードとディスプレイですが、キーボードは専用のものが必要でしょう。配列もキーの種類や役割も独自のものになってしまうので、今どきの日本語配列や英語配列のものではダメでしょう。コネクターもPS/2ですらないようです。マウスはオプション扱いだろうから無くてもいいでしょうし、あったところで使い道はそうそう無いかもしれません。
ディスプレイは信号としてはAnalog RGBで、コネクターはD-Sub形状ですが15ピン3列と15ピン2列の2種類があるようです。どちらにせよ変換してディスプレイに繋げば動くはずなので、「無ければ変換アダプタを作る」くらいの精神で。
当時モノのディスプレイは既に骨董品だと思いますが、やっぱり当時モノのCRTディスプレイに憧れます。ですが、こだわらなければCRTディスプレイ自体はWindows XPの初期の頃まで普通に使われていたはずなので、どこかでそれを入手してくれば「それっぽく」なるでしょう。
実はアナログ接続のカラーLCDは手元にあるので、PC98本体の動作確認にはそっちを使おうと思います。

最後にハードウェアの入手方法ですが、PC98Factoryというサイトを見ていると意外にもリーズナブルな価格で手に入るみたいです。もうすでに骨董品みたいなものだと思うのですが、PC/AT(DOS/V)互換機が世界標準になる以前はPC98が国内標準のような存在だったそうなので、そのおかげで安いということなのでしょうか。詳しくないですが...。

今はお金も厳しく、PC98を買えるのがいつになるかは分かりませんが、とりあえず現段階で調べたことをまとめておいて、今後またPC98が欲しくなったときのために活かします。
相変わらず内容の薄い記事ですが、今回はこの辺で...。

ATmega328P-PUを最小構成で動かす

最近、空き時間にAVRマイコンで遊んでいるのですが、Arduinoボードのように周辺機器や回路を満載せず、最小構成で動かしたいと感じることがあります。 Arduinoボードには、USB-シリアル変換インターフェース、5Vおよび3.3V定電圧電源、水晶発振子やセラミック発振子、電源...