プログラミング熱が再燃
最近は、先日買ったファミコン用のファミリーベーシックを暇な時にいじってポチポチとプログラミングに勤しんでいます。
数年前にマイブームになったDS用のプチコンにハマった自分を彷彿とさせます。
そんな中、気になるのは作成したプログラムのデータを保存する環境です。
ファミリーベーシックのデータ保存環境
ご存じの通り(ってか、今は知らない人の方が多いかも知れませんが)、ファミリーベーシックはレトロパソコンと同じくデータをカセットテープに保存します。デジタルデータ信号をアナログ音声信号に置き換えてデータを保存している訳です。
ファミリーベーシックで使用するカセットのデッキは任天堂純正の専用レコーダーもありますが、一般的な市販のテープレコーダーも使用可能です(但し、マイク端子とイヤホン端子を搭載しているもの。一部相性問題で上手く動作しないものもあり)。
ちなみに自分は先日親に頼まれて修理したソニーのテレコを一時的に借りて、データ保存に使用しています。
テープ媒体のデータ保存の弱点
カセットテープにデータを保存した場合、気になるのはそのデータの読み書きの煩雑さ。カセットテープは一本のテープに連続してデータを書き込んでいます。そのため、例えばテープの最初の方に保存してあるデータを読み込んで、その後テープ最後の方にあるデータを順に読み込みたい場合、その都度テープを早送り巻き戻ししなければいけません。(シーケンシャルアクセス)
それに対し、フロッピーディスクやハードディスクは、ディスク円状にデータを配置してデータを保存しているため、より少ない円運動で各所に保存されたデータを効率的に探し出し読み出すことが出来ます。(ランダムアクセス)
特に自分の様にテープをケチって一本のテープに複数のデータを保存しているとデータ位置をシークするだけでも大変です。(まぁ、その手間を楽しむのもある意味レトロハードの醍醐味でもありますが。)
それなら音声データをデジタル化すればいいじゃん!
ここまで、読んでピンと来たあなた。はい、そうです。そのデータをICレコーダで小分けにして保存し管理すれば利便性が良いと思いませんか?
この作業は、実はデジタル信号をアナログ音声信号に変更したものを更にデジタル音声データにして保存するという何とも内部的には無駄の多い変換をしているわけですが、そこがレトロと新技術の融合で面白い所でもあります。
ICレコーダを買ってもいいが・・・
では、早速ファミリーベーシックのデータ保存のためにICレコーダーを用意
・・・・・・・・しようと思ったのですが、わざわざ数個のデータ保存のために数千円のICレコーダを新しく買うのもバカらしい話ですしうまく保存できない可能性もありますので、
今回は、
amazonにてこの変換ケーブルを購入しました。400円位だったと思います。4極のマイク、イヤホン分離ケーブルです。
*このような分離ケーブルは2規格あるので購入時は注意しましょう。(OMTP規格・CTIA規格)今回はiPhoneを使用したのでCTIA規格のものを使用しています。
このケーブルを家で使用せずに余っているiPhone 5Sに挿しこみます。このケーブルを使用することによってイヤホン端子とマイク端子が分離され、ファミリーベーシックと物理的に接続が可能になります。
試行錯誤
まず、録音に使用するアプリは最初iOS標準搭載の”ボイスレコーダー”を使用しようとしましたが音声データを圧縮しているためか、うまくいきません。
そこで今回は無料の”ボイスレコーダ -voz”というアプリを使用しました。
このアプリは録音する時のビットレート、録音形式(フォーマット)、マイクの入力調整等を細かく調整できます。
試行錯誤後の最適な設定
結論から言うとあくまでも自分の環境下の結果ですが、
マイク調整・・・・手動、ブートボリューム1.0(最大)
ビットレート・・・・モノラル 24khz
ここが一番自分が驚いたの所なのですが、24khzがベストでした。
先入観で単純に音質(ビットレート)が高い方が良いと先入観で思い込んでいたのですが、自分の環境の場合、高ビットレートの44.1khzや32khzではロード時にエラーが頻発しました。もしかしたら24khz付近の音質の方がカセットテープの音質の環境に近くファミリーベーシックがそれに最適化されているのかも知れませんね。
最初、高ビットレート設定でエラーが頻発し、ケーブルやスマホ等を変えても改善されず一日中悩んだ後、ダメ元でこの設定にしたらほぼうまくいったので、ここは本当に盲点でした。
ちなみに16khzはNGでした。
*チャネルは”ステレオ”でも良いですが無駄にデータ量が2倍になるのでモノラル推奨。
録音ファイル形式・・・・ wav形式
*m4aやaiff等の圧縮音楽形式は不可聴域の音声データの切り落としがある為、使用不可。
上記の設定で上手くデータの読み書きが出来ました。
デジタル化に成功して
デジタル化した為、テープのように物理的な劣化もしませんし、ファミリーベーシックへのデータロードの際にもテープの巻き戻し等の作業が不要なため非常に快適です。
(物理的な読み出し時間は変わりませんが。)
ちなみに、今回の方法でデータをデジタル化すると、内部的には本来わずか数百byteのBASICのデータが数Mbyteの音声データになります。(約1万倍のサイズですw)
ファミリーベーシックの様なレトロ機器のデータを、現代の技術でデータの利便性を高めるために保存方法を変更すると、データ量は逆に増大するとはなんとも皮肉で滑稽な話ですね。
だが、それがいい!