So-net無料ブログ作成
  カセットテープ(補完計画) ブログトップ
前の10件 | -

正午から3時まで [  カセットテープ(補完計画)]

私は少し前までVHSビデオテープ録画のPC保存をやり直していた。そして気づいた。私はずっと、自分の沢山の録画は貴重だと思い込んでいたが、そうではなかった。録画のノイズを苦労して時間をかけて可能な限り取り除いても、巷にDVDビデオが出回れば私の録画など足元にも及ばない。デジタルリマスター版となれば、なおさらだ。同じことが、カセットテープ録音にも言える。

インターネットで色々見ていて知ったところでは、先日スカパーで「正午から3時まで」の吹替版をやった。「正午から3時まで」は、すでに出ているDVDにも吹替音声が入っている。で、私は1981年初回放送時のテレビ放送の音声をもっている。なぜ1981年とわかるかというと、映画の解説の中で去年スティーブ・マックイーンが死んだと言っているからだ。でも私はその音声を貴重だと思わなかった。私は自分のカセットテープ音声をデジタル化したさいに、特記すべきことがあればメモしておいた。上記のスティーブ・マックイーン云々もそのメモだ。そして同じメモに、録音状態がひどいと記されている。これを読んだ時点で私は「相当ひどいんだ」と覚悟した。そして聞いてみた。ひどかった。だから今まで私はこの音声をブログに出さなかったんだ。あんまりひどいから。

最近はブログ記事に出せるようなカセットテープやビデオテープのネタも尽きたし、そもそも「まともな質のものだけを出そう」と考えたら、出せるものが何もない。記事を書こうと思った時に引っ込み思案にならずに記事を出すという行為は、人生を前向きにするには必要だ。

今回の記事の意図は、初回テレビ放送時にどんな解説があったのかを伝えることだ。解説から始まって、冒頭の例の音楽の途中までがmp3になっている。再度書いておくが、録音はまともな状態でないので期待してはいけない。

two wives [  カセットテープ(補完計画)]

PCのADSLが低速になって困っていたら、スマホの通信がテザリングでPCに使えるとわかったので、今日は音声データもupすることにした。

でも本来は逆で、スマホの通信データ量を温存するために人々はPC用のWi-Fiを使うのだから、私はどうかしているのかもしれない。通信データ量を使い切ってスマホが使えなくなったら困るのだから、今後はやっぱり自重してテキストや、せいぜい画像のupにするかもしれない。

とにかく今日はこのまま行こう。

ずいぶん前に、大昔のある日本映画についてブログ記事を書いたと記憶している。私はカセットテープに音声だけ持っていて、それをupしたはずだ。でもその後、ブログの動画・音声用領域が一杯になって、過去の動画・音声は全部消してしまった。だから今日は、この記事に必要な部分だけを再upしなければならない。


これは、私が子供の頃にこの映画がテレビで放送された後、解説として話されたものだ。この音声も、動画・音声用領域の都合で遠くない未来に削除しなければならないから、音声の内容をテキストにもしておこう。この映画を象徴するような路上の矢印を増村監督は苦労して撮影所内に作らせた。撮影所内にアスファルトを敷き、2週間にわたってその上に自動車を走らせて汚し、さらにスタッフ全員で油を塗るなど苦心惨憺の末に撮影した。監督はこのマークがとても好きで、台本にも自分の手で描いたという。

私は長年そのマークを見られずに音声だけ聞いてきたが、先日ようやく見ることができた。今日はそれを記念して記事を書きたかった。私の手元にあるのは現在売られているメディアだから、もちろん動画は出せない。出すのはスクリーンショット1枚だけだ。でもこの記事のためには、この1枚だけで足りる。PCにメディアを入れて再生し、PrintScreenしてから切り出した。
twowives2.png


追伸
今回の記事内容とは別の話だが、困った事になった。このSo-netブログの検索機能がもうじき使えなくなるそうだ。この検索機能は、私のブログ内を特定のキーワードで検索するのに必要不可欠な機能だ。誰よりも記事作者の私が頻繁に使ってきた。これからは、どうしたら良いのだろう。

最後のカセットテープ補完計画 (003) [  カセットテープ(補完計画)]

カセットテープ補完計画は、少しずつだが進んでいた。子連れ狼は再放送を録画済みなのでこれ以上の補完は必要ない。画質に不安が残る録画だが、ここで完璧を求めてはいけない。世の中に完璧はないのだ。どこかで折り合いをつけねばならないのが人生だ。

カセットテープのその後の部分には、クラシック曲またはそのジャズアレンジ版が入っている。
サン=サーンス 動物の謝肉祭~白鳥
同上            ~終曲
バッハ ゴルトベルク変奏曲
マルチェッロ オーボエ協奏曲 第2楽章 映画「ベニスの愛」のタイトルバック
ヴィヴァルディ フルート協奏曲ヘ長調「海の嵐」第1楽章 ジャズアレンジ
バッハ ハープシコード協奏曲ニ長調 第3楽章
子供の頃の私はクラシックをよく聞いた。でも年をとるにつれ、そんな高尚な趣味は失せ、ミーハー・アイドル路線へと向かったのだった。このカセットテープ補完計画では、クラシック曲は原則として補完していない。唯一、ヴィヴァルディのジャズアレンジ版の情報があれば欲しいと思ったが、それは見つからなかった。「四季」のジャズアレンジならばあるんだが。

それから月日が経ち、朝のラジオで昔聞いたような曲がかかった。オフコースだという。私のカセットテープにオフコースが現れるのはずっと後の巻だが、これも何かの縁なのでネット検索してみた。いわゆる「歌ってみた」はあるのだが、オフコースの歌自体はなかなか見つからない。世の中に権利というものがあるのだから、これが健全な状態なのだ。

もともと私のカセットテープ補完計画とは、ほんらい映像付きの作品が音声だけ録音してある場合に映像を入手するのが第一の目的、そしてカセットテープの音声に大きな問題がある場合にそれよりもましな状態の音を探し求めるのが第二の目的だ。オフコースの場合は、ネット上に補完になるものが存在しなくても私は困らない。

この時点で、私は補完計画のやり方をずいぶん変更してしまっていた。当初はカセットテープの通し番号順に補完してゆくつもりだったが、唐突に通し番号1からオフコース(通し番号80くらい)まで飛んでしまった。そうなると、気持ちのほうも変わってくる。順番に補完でなくていいなら、いま私が本当に補完したいのは何か。昨晩私は布団の中でそれを考えた。そして思った。それは矢代秋雄。

私は音楽をまるでわかっていないので、矢代秋雄の弦楽四重奏曲や交響曲やチェロ協奏曲やピアノ協奏曲は、聞いた感じが暗くて、今では人々が見向かなくなった数十年前の音楽にすぎないと思っていた。それではなんでそんなものを補完したいかというと、これまた音楽をまるでわかっていない人間の心理で、私にとって矢代秋雄の曲はたしかにショパンほど美しくないのはもちろんストラビンスキーほど美しくもないが、その暗くてどことなく日本人的な作風の作品を一途に粛々と脇目もふらずに完成させる姿が、何かこう、すごい。そう、暗いけど、何かすごいものを感じる。

で、ネット検索の最初にウィキペディアで調べてみたところ、矢代秋雄の曲は私が考えていたほど忘れられてはいないらしかった。 

それと、私にとって残念なのはカセットテープにピアノ協奏曲が入りきらなかったことだ。テープがA面の終わりまで来た。どうする。当時のラジカセにはまだリバース機能は付いていなかった。手動でストップボタンを押し、イジェクトボタンを押し、カセットを取り出してひっくり返し、フタを閉めて録音ボタンを押さなければならない。とはいえ、私は自分のラジカセでそういう作業を繰り返してきた子供だったから、作業そのものは問題なかった。それでも作業の間に数小節ぶんの演奏が録音されなかった。これはもちろん今回の補完計画の対象だ。

そして私はネット検索しはじめた。

まずは弦楽四重奏曲だが、ネット上にあまり見つからなかった。残念だ。交響曲より前だから知名度が違うのか。私はこの弦楽四重奏曲も好きなのに。とにかくひとつネット上に見つけた。
https://www.youtube.com/watch?v=F0eodor3fwo

交響曲は、私のカセットテープにあるのと同じものを見つけることができた。同じとはいっても、質は違う。私のカセットテープはノーマルテープだし録音したのがラジカセなので高音が出ない。ネット上のもののほうが高音が出ている。それにステレオだ。この人はステレオのFM放送をカセットデッキで録音したらしい。貴重だ。
https://www.youtube.com/watch?v=qlloy-54Oh4
尾高忠明指揮 東京フィルハーモニー交響楽団

その他にもネット上に交響曲があった。当たり前だけど、指揮者が違うと演奏が違う。私は自分のカセットテープだけ聞いてこの年まで生きてきたから、いま別の演奏を聞いてようやくこの曲の「別の表現方法」に接して新鮮な気持ちだ。
https://www.youtube.com/watch?v=5Ccuh6Eymzc
湯浅卓雄指揮 アルスター管弦楽団

チェロ協奏曲。あまりネット上に見つからない。
https://www.youtube.com/watch?v=8d8MA-IJ8lg
岩崎洸(Vc) 若杉弘指揮 読売日本交響楽団
これは私のカセットテープと同じ出演者だった。

ピアノ協奏曲。私はピアノ協奏曲を2回もカセットテープに録音したが、どちらも一部切れてしまっている。そしてどちらの演奏もネット上にはなかった。
https://www.youtube.com/watch?v=vhVY0Bx3Xvs
中村紘子(Pf) 外山雄三指揮 NHK交響楽団

https://www.youtube.com/watch?v=RiVdWi-ffug
岡田博美(Pf) 湯浅卓雄指揮 アルスター管弦楽団


今回の記事で「聴く」と書かずに「聞く」と書いたのは、私自身が音楽への造詣も何もないのがわかっているから、本当に矢代秋雄の作を理解して惚れ込んでいる人にこの記事で不快感を与えないように、私はただ「聞いた」程度の人間ですというつもりでそうした。

最後のカセットテープ補完計画 (002) [  カセットテープ(補完計画)]

私の座右の銘に、「予定は遅れて当たり前」というのがある。私のように、いつも予定は理想主義でしっかりと立て、それを実行できたためしがないという人間には必要な言葉だ。今回は何が起きたか。まずカセットテープと並行して半分衝動的に昔の本(超人ロックと凄ノ王)のデジカメ撮影を始めた。それはやがて終わった。さてカセットテープの補完をと思う頃に、家庭でひと悶着あった。心がザラザラになった。それをようやく越した時に偶然に子供時代に持っていた図書を見つけて古本屋から買い、デジカメ撮影してブログ記事を書いた。この時点でもう「師走」に入っていた。師走つまり12月というのは、仕事も家事もなぜか忙しい。年の瀬にもなれば大掃除で大変だ。「ああ、ついにカセットテープの続きに着手しないうちに師走が来てしまった」と私は思った。そうしたら、それだけで済まなかった。私には外国人の友達がいてメール交換をしている。その相手が、外国のテレビ番組を録画してあげるから何がいいと聞くので、アニメはあるかと言っておいた。私としては、アニメといえば日本がメッカみたいなもんだから、きっとドラゴンボールか、コナンか、ワンピースの吹替え版が届くぞとワクワクしていた。ドラゴンボールかなあ、コナンかなあ、ワンピースかなあ。どれでもいいぞー、と考えている間私は楽しかった。そうしたら、届いたDVD-Rがチェコアニメみたいなので全部で12枚もある!ドラゴンボールかコナンかワンピースを12枚くれよ!概算で、DVD-Rの1枚に2時間入ってるとして、まるまる24時間私はチェコアニメもどきを見続けるしかないのか。今年の大みそかから正月三が日にかけてはチェコアニメ・フェスティバルなのかよ!脳みそがチェコアニメになってしまうよ。

わかっていただけただろうか。カセットテープ補完計画が想定外の予想外にどんどん遠ざかった。実は前回の記事 (001) を書いた直後に少しだけ補完計画を進めていた。その内容はすでに1カ月前の情報となってしまい、このままではさらに1カ月はUPできない。だから今年のうちにとにかくそこまでUPさせてほしい。分量的にはほんのちょっとだ。




太陽にほえろ!OP
前の記事に書いたとおり、「太陽にほえろ!」はネット検索しなかった。

Gメン'75 OP
Gメン'75 二代目ED 追想
当時の映像なしで、音声に別画像を付けた動画ならばいくつかあった。とはいえ、昔の思い出を補完する作業をしている私としては可能な限り映像付きを求めてしまう。すると、次のサイトがあった。
http://www.dailymotion.com/video/x3fhenq
第1期と第2期(と呼ぶかどうかは知らないが)のOPとEDが映像付きだが、音質が相当に悪い。とはいえ、ネット上の共有動画に画質や音質を求めるのは無茶だ。このシャワシャワと聞こえる耳障りなノイズは、圧縮しすぎた時の音だと思う。

最後のカセットテープ補完計画 (001) [  カセットテープ(補完計画)]

これは個人的記事の連続物になる予定だ。私はアクセス件数に関係なく自分の人生を記録するために書き続けようと思っているが、もしも記事内容を利用できる人がいるならばご自由に使ってほしい。


**** 経緯 ****

私はなぜか、ここ数年で気力を失ってしまった。数年前にはあれほど必死にやっていたカセットテープ音声のデジタル化、レコード音声のデジタル化、書籍のデジタル化を補完しようという力がなかなか湧かない。人が生きるというのは、一日一日、一瞬一瞬を自分なりに無駄にせずに生きるということなのだから、今の私はその意味でよくない。せっかく与えられた生を有効活用せぬまま、その力が湧かないままに時を過ごしている。このままではいけないから、私は何かを始めなければならない。

そこで私は、最後のカセットテープ補完計画を始めることにした。きっかけは、つい昨日のことだ。何の因果かフォーリーブスの踊り子という曲を思い出し、それをネット検索してみたところ、昔の動画があった。カセットテープ音声のデジタル化をした時に、こういう動画が見つかればチェックしておいたはずなのに、そのチェックの痕跡はない。ネット上のデータはいつも何かが消え、そして何かが新しく生じる。この数年の間に動画がUPされたのかもしれない。私のカセットテープのフォーリーブスの次に、たまたま内藤やす子が入っていた。私はそれもネット検索してみた。また動画が見つかった。ただし、曲がリリースされた当時のものとは限らない。後年になって歌手が歌った時の動画もある。私は自分の子供時代を懐かしむのが目的だから、昔の動画でなければ駄目だ。そんなことを思ううちに、「またカセットテープを聞いて、そこにある曲の情報をネット上で探してみよう」という気になった。私はこんなに気力を失っているから、きっとこれが最後のカセットテープ補完になるだろう。


**** 方法 ****

やり方はこうだ。私のカセットテープには連番が付いているので、番号の若いほうから順に見てゆき、録音されている曲の情報をネット検索し、何か見つかったらそのURLをメモする。その情報を溜めて、ブログ記事に記録する。記録するURLは私がその細部・要る要らないをチェックする前の段階のものだから、中には不要な情報のURLも混ざるだろう。もしもこの記事を参考にしようという人がいたら、私と同じようにURLの中身をチェックして、自分にとって要る情報だけを選び出す必要がある。それと、ネット上の情報は1年も経つと消えてしまうものも多いだろう。これは仕方のないことだ。URLがリンク切れになっていた時は、ご容赦いただきたい。カセットテープに入っているのがあまりにも有名なものだと、逆にネット検索しないことがある。たとえば「太陽にほえろ!」は、現在ファミリー劇場等で放送中。「太陽にほえろ!」を私は毎週視聴中であり、ネットで得られる情報の中に私の欲しいものはないと思うので、ネット検索しない。


**** 第1回 ****

アイフル大作戦
カセットテープ通し番号001のA面最初の曲「Viva!アイフル」。これは私にとって子供の頃の懐かしいドラマだ。ドラマの筋もよくわからんガキが雰囲気だけで見ていたという感じだったが。でも好きだった。ドラマの筋もよくわからんガキとしては、毎回聞くテーマ曲が当然のことながら一番記憶に残った。だからラジカセで録音した。数年前にネット検索した時にはOP(歌でなくナレーション)とED(Viva!アイフル)がネット上にあったという記録がある。でも今回検索したら見つからなかった。それで手持ちの資料を探すと、なんとVHSビデオテープ録画の中にアイフル大作戦があった。いやそんなバカな、時代的にそれでは遅すぎると思いつつチェックすると、右下に「ファミリー劇場」の文字が。スカパーでの再放送だ。今でこそスカパーチューナーからの出力はコピーワンスで、それをDVDに移すとCPRMが入ってしまうが、昔のスカパーチューナーはそうではなかった。そういう時代にVHSビデオテープに録画したものだ。そうか、アイフル大作戦も再放送があったんだなあ。こういうのは再放送した時に録画しておかないと、次にいつチャンスがあるかわからない。でも当時の私はHDDつきのレコーダーなんか持っていなくて、「全話とりあえず録画しておく」というのは不可能だった。惜しいなあ。で、上記の録画は「ファミリー劇場」と見えてしまったからにはUPできない。私はスカパーとは良好な関係を保ってつきあって行きたいのだ。睨まれたくはない。ここまで考えるうちに、私の頭にはある記憶が蘇っていた。私はもうひとつ、スカパー放送とは関係しないアイフル大作戦の録音をもっている。本放送時の録音だ。これはカセットテープではなく、専用マルチトラックテープを使う大昔の子供向け英語教室用のLL機材にたまたま録音してあったもの。子供のやることだから、学習用の機材だって勉強にだけ使うとは限らない。聞いてみると、これはライン入力じゃないな。日常生活の雑音が入っている。テレビのスピーカーにマイクを近づけて録ったんだ。当時は今みたいに個人にマイ・テレビがある時代じゃない。テレビは1家に1台。家族はみな同じテレビで同じ番組を見ていた。だから録音の間じゅう、家族には黙っていてもらわなきゃならなかった。いつ誰が喋りだすかと気を揉みながらの録音は、当時の私にとって必死だった。ある意味、金を出せば買えるメディアよりも私個人には価値がある録音だ。私以外の人、つまりあなたにとっては「なんだ、雑音入りか」という録音であることは私もわかっているけれども、ご勘弁いただきたい。


ネット検索の結果、有用なサイトをひとつ発見した。アイフル大作戦の全話のあらすじを紹介しているようだ。
http://gmen75.la.coocan.jp/other/eyeful.htm

Gメンやバーディー、キイハンターも含めたものすごい情報量サイトのトップページは、ここ。
http://gmen75.la.coocan.jp/index.htm


今日は予想外にも手持ちの音声をmp3化してUPすることになったので、時間を取られてしまった。ここまでにしよう。次回からは、ネット検索結果のURLを列挙してゆく予定なので、もっとどんどん作業を進められると思う。

コメント(0) 

孤独へ向かって突っ走れ(5) [  カセットテープ(補完計画)]

今朝がた、私は夢を見て大声で叫んだそうだ。2度も叫んだという。声が出たのなら目が覚めそうなものだが、記憶にない。悩み事はある。残念ながら心やすらかという状況ではない。

夢を見て叫ぼうと、悩み事があろうと、日々の作業は地道に先へ進めなければならない。皿洗いから外国語まで、やることはやらねばならない。プログラミングもだ。

数日プログラミングから遠ざかっていた間に、手につかなくなっていた。何から始めていいのか、わからなくなった。どうせプログラミングは家事でも仕事でもなく趣味だから、このまま中止してしまったら良いように思えてきた。

そういう時は、「形から入る」というのが私のやり方だ。「その気」がないなら、始めは形を真似るだけでいい。形を真似る努力を続けるうちに、いつしか「中身」が出来てくる。始めは形だけだから「嘘」だが、いつまでも「嘘」ではない。いつの日か「本物」になる。

そこで私はMicrosoft Visual Studioを起動してダイアログベースのプロジェクトをひとつ作り、そこにこんな風に書き込んだ。
balance1.png

書き込んだ時点ではソースコードがないのだから「嘘」だったが、それから6時間くらい経ち、今ではまんざら「嘘」でもない状態だ。DirectShow filterはすでに存在し、呼び出す側のアプリケーションソフトから左右の音量を調節できる仕組みになっている。呼び出す側のアプリケーションソフトというのはつまり、このダイアログベースのソフトがそれだ。GraphBuilderと自作filterのCoCreateInstanceは済んでいる。キーボードのSpaceキーで音は鳴る。

ここまで来て、解決しなければならない問題が生じた。始め私は音声ストリームのshort intの信号を100%から50%までの範囲で調節しようと考えていた。しかし私の右耳は高音が聞こえないので、8KHzの場合、右を100%、左は20%くらいまで下げないとセンターから聞こえなかった。こんなに左右の音量を違えてしまうのは良くない。右の音量が極端に上がってしまうから、難聴になる危険がある。もうひとつ、前から予想していたことが現実になった。short intの信号を100%, 80%, 60%, 40%, 20%と、20%ずつ下げてゆく。すると、100%と80%の間にはほとんど差がない。ところが40%と20%の間にはものすごい差がある。では私は、音量を少しずつ均等に下げてゆくにはどうしたら良いのだろう。
balance2.png

今、突然睡眠薬が効いてきた。今日はここまでだ。明日は何もできないので、この続きは明後日以降だ。

コメント(0) 

孤独へ向かって突っ走れ(4) [  カセットテープ(補完計画)]

波乱万丈ってゆーか、支離滅裂ってゆーか

私は一日かけて計画を練った。前回の記事で判明した問題点であるLPFとHPFのカットオフ周波数の微調整に端を発し、やるべき事が芋づる式に出てきた。微調整は試行錯誤で決めるだろうから、その前にクロスオーバー周波数を決定しておく必要があり、クロスオーバー周波数を決定するには自分の耳をテストして「どこまでを中音域とし、どこからを高音域とするか」を決めなければならない。そのためには、そのテストに必要なソフトを作り、同じくテストに必要なヘッドホンを引っぱり出してこなければならない。

そして夕方になった。帰宅の電車の中で時間があったので、スマホでクロスオーバー周波数について見てみた。そうしたら、とんでもない物が見つかった。

あるサイトには、クロスオーバーは-3dBでクロスさせるのが一般的だと書いてある。ところで、ソースコードのサイトには、LPFもHPFもカットオフ周波数は出力信号が-3dBとなる周波数だと書いてある。ではLPFとHPFを並列に接続し、両方のカットオフ周波数を同じにしたら、おおよそうまい具合に行くはずではないか。ところが実際には、前回の記事に出したように振幅に大きな谷ができる。どういうことなのか。

とゆーか、私が一日かけて練った計画が、この理解不能な事件のせいで計画の立て直しになってしまったではないか。

帰宅しながら私は思った。どうしてクロスオーバー周波数に谷ができるのかは理屈として私にはまだわからない。それでもわかっているのは、現在のLPFとHPFの回路をそのままにして谷を埋めるにはLPFとHPFのカットオフ周波数を同じではなく少しずらせばいいという事だ。

私は帰宅した。そして試したことがある。HPFのカットオフ周波数を、LPFのそれよりも1オクターブ下げた。どうして1オクターブかというと、それは理系の計算による結果ではない。理系でない私の頭で1オクターブ以外の難しい事がわかるものか。1オクターブだけが私にわかる。1オクターブ下げると周波数は半分になるんだ。とにかくこれで双方のカットオフ周波数は1オクターブ分ずれた。その結果がこれだ。
bpf03.png

なんと平坦になった。低音域と中音域の境目も、中音域と高音域の境目も、どちらもわからないほど平坦になった。比較のために前回の振幅も表示しよう。
bpf02.png

私は念を入れることにした。これは本当に理論上正しいのだろうか。もし私のやり方でいいならば、LPFとHPFのカットオフ周波数をさらに離すことにより今度は振幅に山ができるはずだ。私はHPFのカットオフ周波数をLPFのそれよりも1オクターブ下げるだけでなく、さらにLPFのカットオフ周波数それ自体を1オクターブ上げてみた。
bpf04.png

予想通り、カットオフ周波数に山ができた。このやり方でいいらしい。

でも、出力信号が-3dBとなる点であるカットオフ周波数をLPFとHPFで同じにして、-3dBでクロスさせるとうまく行くはずのクロスオーバーが実際にはうまく行かないことの説明はいまだにできない。釈然としない。

それに、私が1日かけて練った計画はこれで完全にチャラになった。なにしろLPFとHPFのカットオフ周波数の微調整に端を発する計画だったのだから。

そういうわけで、今日はひとまずここまで釈然としないながらも報告。

コメント(0) 

孤独へ向かって突っ走れ(3) [  カセットテープ(補完計画)]

初めに本題と違うことを数行書かせてほしい。睡眠薬は自分の体や用途に合ったものを選ぼう。服用から2時間後にやっと眠れて、朝起きたら今度はボーッとして困るというのは、やっぱり何か違うと思う。

そのボーッとした頭で頑張っている。私がDirectShow filterに組み込むLPFやHPFは、可聴範囲の周波数を3分割する予定なので、低音用にLPF、中音域用にHPF+LPF、高音用にHPFで、合計4つも必要になる。これのソースコードをダラダラ記述するのは間違えやすさの点でも読みにくさの点でも良いことがないので、カプセル化した。ネット上に親切な方が掲載してくれたフィルターのソースコードは嬉しいことにLPFとHPFの相違点がほんの少しなので、両方をひとつのclassに入れ、初期化のメソッドでどちらの機能をもたせるか指定する。すると

enum { LPF, HPF };
class CBPF
{
public:
    CBPF();
    void Init(int iMode, float fCutOffFreq, int iSamplesPerSec);
    int CalcCh1(int);
    int CalcCh2(int);
private:
    float m_fCutOffFreq;
    float m_fQ;
    float m_fIn1[2];
    float m_fIn2[2];
    float m_fOut1[2];
    float m_fOut2[2];
    float m_fOmega;
    float m_fAlpha;
    float m_fA0;
    float m_fA1;
    float m_fA2;
    float m_fB0;
    float m_fB1;
    float m_fB2;
};

こんな風にものすごく単純になった。記述が変なのは見逃してほしい。人々の間で揉まれないで一人で趣味プログラミングをしているとこんなになるという悪い見本なのは自覚している。Init()やCalcCh1()の中身は私の書いた読みにくいコードなので、それをさらけ出すのは見る人に申しわけない。結局、ネット上に親切な方が掲載してくれたソースコード
http://vstcpp.wpblog.jp/?page_id=523
がすべてなのだ。

今回のDirectShow filterは、どうせバレバレなので書くと、gargleの一部を書き換えて実現した。class CGargleの定義内に変数とCBPFクラスのオブジェクトを加えた。

float m_fCrossOverFreqLo;
float m_fCrossOverFreqHi;
CBPF m_BassLPF;
CBPF m_MidHPF;
CBPF m_MidLPF;
CBPF m_TrebleHPF;

適切な場所でm_fCrossOverFreqLoにBassとMidのクロスオーバー周波数を入れ、m_fCrossOverFreqHiにMidとTrebleのクロスオーバー周波数を入れ、4つのCBPFオブジェクトを初期化した。

m_BassLPF.Init(LPF, m_fCrossOverFreqLo, m_SamplesPerSec);
m_MidHPF.Init(HPF, m_fCrossOverFreqLo, m_SamplesPerSec);
m_MidLPF.Init(LPF, m_fCrossOverFreqHi, m_SamplesPerSec);
m_TrebleHPF.Init(HPF, m_fCrossOverFreqHi, m_SamplesPerSec);

CGargle::MessItAbout()の一部(16bitの所)を書き換えて以下のようにした。8bitの所も同様に書き換えたが、8bitの音声は使わないだろう。24bitは使いたいけど、私が利用している他のフィルタ(DMO Wrapper Filterのパラメトリックイコライザ等)がサポートしていないので使えない。

short int iBass1, iMid1, iTreble1;
iBass1 = iMid1 = iTreble1 = *((short int*)pb);
iBass1 = m_BassLPF.CalcCh1(iBass1);
iMid1 = m_MidLPF.CalcCh1(m_MidHPF.CalcCh1(iMid1));
iTreble1 = m_TrebleHPF.CalcCh1(iTreble1);
*((short int*)pb) = iBass1 + iMid1 + iTreble1;
if(m_Channels == 2){
    short int iBass2, iMid2, iTreble2;
    iBass2 = iMid2 = iTreble2 = *((short int*)pb + 1);
    iBass2 = m_BassLPF.CalcCh2(iBass2);
    iMid2 = m_MidLPF.CalcCh2(m_MidHPF.CalcCh2(iMid2));
    iTreble2 = m_TrebleHPF.CalcCh2(iTreble2);
    *((short int*)pb + 1) = iBass2 + iMid2 + iTreble2;
    ++pb;
    ++pb;
    --cb;
    --cb;
}

LPFやHPFが4つもあるとは思えないくらいに単純だ。

さて、今回の記事は「できたぞ成功だ」で終わらない。次に私がやったことは、実際に音を出してみることだ。まずはデジタル化したカセットテープ音声を流してみたが、いまPCに接続しているのがオーディオ用ヘッドホンではなくテレビ用イヤホンなので、耳で聴いてもどこまでチェックできるか怪しい。そこで、音声は20Hzから20KHzまでのスイープ信号を流し、それをwavにして、振幅として表示してみた。

これが元音。座標の縦軸は振幅。横軸は時間の流れ(全体で1分たらず)。左側が20Hzで始まり、徐々に周波数が上がって右端が20KHzで終わる。
bpf01.png

そしてこれが、上記のCBPFを通した音。
bpf02.png

気になる点は2つある。まず、クロスオーバー周波数の所で音が出ない。ひょっとしたらそうなるんじゃないかと予想はしていた。LPFのカットオフ周波数とHPFのカットオフ周波数をずらして、領域を少し重ねなければいけない。これは時間をかけて試行錯誤を繰り返して適切なカットオフ周波数を見つけ出すことになるだろう。もうひとつは、元音よりもわずかに音量が下がっているようにも見える。これは、クロスオーバー周波数の所でちゃんと音が出るようになれば、無視できる程度のものかもしれない。元音よりも大きくなるのは大問題(0dBを超えると即座にクリップする)なので、少し小さくなるくらいはむしろ良いのかもしれない。

今日はここまで。ちなみに、記事のタイトルどおりに、アクセス件数が少なくなってきた。はっはっは、わかっていたんだよ私には。さぁて、孤独の中で私はどこまで頑張れるかな?
コメント(0) 

孤独へ向かって突っ走れ(2) [  カセットテープ(補完計画)]

使用する周波数帯フィルタの決定

私の手元には、実現可能な周波数帯フィルタが2種類ある。ひとつはOS標準装備のもので、DMO Wrapper Filterの一つとして実装されており、パラメトリックイコライザという名称が付いている。もうひとつはネット上に親切な方が掲載してくれたソースコードで、ローパス、ハイパス、バンドパス等の中から選択できる。まず私は、この2つのうちのどちらかを選択する必要がある。

まずは、それぞれの長所と短所を挙げよう。

OS標準装備のパラメトリックイコライザの長所。カットオフ周波数の上限と下限が明確に指定されており、つまりはパラメータ値の指定に曖昧な点がない。マイクロソフトが出している物だから、ある程度実用的な動作が期待できる。短所。パラメトリックイコライザしかない。ローパスやハイパスのフィルタは存在しない。すでにDirectShow filterとして存在するので、自作のfilterの内部に組み込むわけに行かない。ということは、filter内部でレジストリから既存の設定を読み込む仕様にはできず、音楽再生ソフトの側でパラメータを設定しなければならないし、このフィルタを複数使うならば音楽再生ソフトの側でフィルタの並列/直列接続等を実現しなければならない。ということは、自作音楽再生ソフト内では使えても、巷の音楽再生ソフトに組み込むことはできないだろう。

ネット上に掲載されたソースコードの長所。ローパスやハイパスなど多種多様な機能が実現できる。ソースコードだから、自作のDirectShow filter内に複数個組み込むことが可能で、すべての処理を単独のfilterで実現でき、音楽再生ソフトからパラメータを設定しなくてもfilter内部でレジストリから既存の設定を読み込む仕様にすることが可能。ということは、自作の音楽再生ソフトだけでなく、巷の音楽再生ソフトで使うこともできそうだ。短所。カットオフ周波数の上限と下限の記述がない。もしも私が理系の頭をもっていれば、数式から自分で上限と下限を計算できるだろう。でも私の頭はだめだ。あと、今までにローパスフィルタについてたくさんの実験をしたが、私が満足するほどの結果を得ていない。それでいて多くの実験による疲労と落胆は相当なもので、私は個人的に及び腰になりそうな自分を鼓舞しなければならない。

さて、この2つのうちのどちらを選択するか。迷う余地はあまりない。ネット上に掲載されたソースコードのほうを選択するべきだろう。

ここまでは、この記事を書く前から大体決まっていた。次の件へ話を進めよう。

ネット上には、ローパス、ハイパス、バンドパスなど何種類ものフィルタのソースコードがあった。それらのうちのどれを使うべきか。それを決めるには、まず私自身がどんな処理を望むかを決定しなければならない。

私は可聴範囲を複数の周波数帯に分け、それぞれの周波数帯について左右バランス調整をしたい。ではいくつの周波数帯に分けるのか。グラフィックイコライザのように細かく分ける必要はないし、そのように細かく分けないほうがいい。なぜなら、分けた周波数帯の数だけバンドパスフィルタが必要になり、その数だけ処理の手順が増えるから、音の遅延が気になる。音声ファイルの再生ならば全体が遅延するぶんには問題ないかもしれないが、もしも映像が付いていたら、つまり動画ファイルの再生だったらどうだろう。かといって、オーディオのプリメインアンプのようにBASSとTREBLEの2つというのは大雑把すぎると思う。せめて高音域・中音域・低音域の3つに分けたい。

可聴範囲を3つの帯域に分けるということは、ある特定の周波数で可能な限り急峻な減衰をする特性をもつローパスやハイパスのフィルタを組み合わせることになるだろうか。特定の周波数付近だけ通すタイプのバンドパスフィルタは、グラフィックイコライザのように帯域を細かく分ける処理には適するだろうが、可聴範囲をたった3つに分ける場合には可聴範囲内に3つの山ができてしまい、それらの山以外の周波数は聞こえなくなってしまうだろう。

そこで私が考えるのは、イメージとしては3ウェイスピーカーのウーファー、ミッドレンジ、トゥイーターにそれぞれが担当する音域のシグナルだけを通すクロスオーバーネットワークみたいな動作をする回路だ。信号を3つに分けて並列とし、低音域用にはローパスフィルタ、中音域用にはハイパスとローパス、高音域用にはハイパスフィルタを通す。

ついでにもうひとつ考えたことがある。DirectShowでの左右バランス調整は、仕様として、センターよりも左寄りでは左の音量を触らずに右を小さくし、センターよりも右寄りでは右の音量を触らずに左を小さくする。しかし私が考えている回路でこれを採用してはいけない。なぜなら、このやり方では音量を下げることはあっても上げることはない。そして私が考えている回路では、可聴範囲の音量を一斉に下げるのではない。高音域の音量だけを下げるということは、つまり音がこもるということだ。DirectShowのやり方を採用してしまうと、元の音楽よりも必ず音がこもる。むしろ元音よりも音量を上げるやり方を採用しないと、聴けたものではないだろう。しかしローパスフィルタやハイパスフィルタはある周波数帯の音をカットするフィルタであり、音量を上げるタイプのフィルタではない。そこで私はこう考えた。あえて元音よりも小さな音を基準の音量とし、もしも右耳が高音を聞き取りにくいならば右の高音部を「上げる」ことにより補正すべきだ。つまりDirectShowの仕様とは違って、左右バランス調整がセンターよりも左寄りでは右の音量を触らずに左を大きくし、センターよりも右寄りでは左の音量を触らずに右を大きくする。

コメント(0) 

孤独へ向かって突っ走れ(1) [  カセットテープ(補完計画)]

問題提起
私の右耳は高音が聞こえにくい。ヘッドホンで音楽を聴く時、(私個人にとってはとくに昔のカセットテープ音声を聴く時だが、それ以外でも、)左の楽器音ばかりが良く聞こえる。左右の耳が同じくらいにバランス良く聞こえたら良いなあと、私はよく思ったものだ。PCでの音楽再生時にヘッドホンを使うとして、耳の聞こえ方を補正するソフトウェアを作れないか。

動機1
私は先日のブログ記事で、私自身がヘタレているから楽しい事を作れないと考えた。ヘタレていない人間として冨田勲を考えた。いつの日か私も冨田氏のように「自分自身の生み出す世界を」扱わなければいけないと思った。自分自身が生み出す世界とは、他人が作った動画をいじるのでなく、他人が書いた本を読むのでなく、他人が作ったアニメを見るのでない。そうではなく、自分が作曲した、自分がプログラミングした等を意味する。完全な無からの創造ではないが、少なくとも既存の作品からの二次創作的行動ではない。なぜそれが必要か。二次創作では、私はそれを自分の誇りにできないし、それを心の拠り所として自分に自信をもつことができない。

動機2
私は先日のブログ記事に動画をUPし、チェックのためにそれを複数回再生した。その時、左から聞こえる楽器音が明確に聞こえ、右からはただ曖昧に音が鳴っているのに気づいた。これは私の右耳が聞こえにくいせいだ。私は若いころから右耳が聞こえにくい。とくに高い音が。今までにも、音楽を聴く時に自分の耳の聞こえにくさを補正してくれるソフトウェアがあればいいと思っていた。この聞こえにくさは私個人のものであり、世間一般の関心事ではないから、補正ソフトウェアは巷にない。私は若いころコンピュータプログラミングが趣味だった。補正ソフトウェアを自分で作れないことはないだろう。今までにも作ろうと思ったことはあり、基礎的な実験プログラムを組んだ。しかし必要なプログラムは多岐にわたり、実験結果が芳しくなく、中途で力尽きた。

方向の定義
耳の聞こえ方を補正するソフトウェアは、巷でウケない。ほとんどの人は見向かない。ブログ記事にしても同様だ。これをやるからには、私は「人に見てもらう喜び」を捨てなければならない。そうでなければ、やがて誰も見向かなくなった虚しさにプログラミングをやめてしまうだろう。私よ、敢えて叫べ、「孤独へ向かって突っ走れ」と。

現時点での留意点
自分の耳を傷めないように気をつけなければいけない。聞こえにくいからといって無理に音を大きくせず、音量を補正するといっても限度をわきまえ、聴くテストを長時間続けず、難聴にならないように気をつけなければいけない。

プログラムの推測される各モジュール(現時点)
1.音の左右バランスを調整する装置。これがつまり目的に直結する。
2.高音と低音の聞こえにくさが異なるのだから、音をいくつかの音域に分ける装置。(それら個々の音域を個別にバランス調整する。)
3.音をいくつかの音域に分けるので、それらをミックスした時にクロスオーバー周波数に変な山や谷ができないようにテストと修正を繰り返すだろう。変な山や谷があるかどうかを確認するには出力をwavで保存するルーチンが要る。((a)周波数が連続して変化するサイン波か、または(b)ホワイトノイズを入力し、wavで出力し、それを(a)SoundEngine Freeまたは(b)スペクトラムアナライザで表示し確認する。)
4.音の左右バランスは自分の耳の特性に合わせなければいけないので、そのためには自分の耳の特性をテストする装置が必要。人間がヘッドホンを装着し、ボタンを押すとサイン波またはそれに近い一定の周波数の音が流れる。もしもその人間にとって音がセンターから聞こえるように感じないならば、何かの操作をすると音像が左または右に移動する。その人間は、自分にとって音がセンターから聞こえると感じる状態を探し出す。そのさい人間に先入観を与えないように、左右の音が同じ音量で出ている時の調整位置が人間にわからないようにする。だからスライダーによる操作はふさわしくない。ボタンを押す等の操作が良い。人間は、音がセンターから出ていると感じた状態で決定ボタンを押す。ただし片耳があまりにも聞こえにくく補正不可能な場合も考慮する。その場合は人間は調整不可ボタンを押す。どちらのボタンが押されても、処理は先へ進み、先ほどとは別の周波数で聞こえ方を試す。この処理を実現するソフトウェアが必要。
5.以上の補正を実際の音楽リスニング時に行うには、音楽プレーヤーソフトに補正ソフトを組み込まなければならない。DirectShow filterとして実現できるだろう。

これでわかるように、必要なプログラムは多岐にわたる。以前に私が中途で力尽きたのは、作業の膨大な量と、それらの実験結果がいつも良好とは限らず壁に突き当たったのが理由だ。作業や結果を焦ってはいけない。2年くらいかかって良いと思うべきだ。あるいは、「全体を完成させなければ」という気持ちを捨てよ。上記モジュールのうち、たったひとつだけを見よ。それだけを作ろうとせよ。それが終わったら、次のモジュールに目を向ければよい。

コメント(0) 
前の10件 | -   カセットテープ(補完計画) ブログトップ