古典的ボーカルキャンセラで掛け合いカラオケ先に、カラオケ音源の入手方法に際して「古典的なボーカルキャンセラ装置を通す方法があるが、それを通したら極端に音質が落ちた記憶がある」などと書いたが、それは往年の「メガCDカラオケ」に搭載されていた機能に基づいた記憶だったりする。件の装置は、結構なレアモノな気がするが、当時、何故か持っていた。結局、お試し程度にしか使わなかったのだが、どういう経緯で買ったのかもよく覚えていない。定価で買うほど、熱心な気持ちではなかったことに間違いはない。もって「メガCDカラオケ」には、歌入りCDをセットして、ボーカルキャンセルボタンを押すと、ボーカルが消えるという機能があったのだ。それを使うと、確かにボーカルパートは小さくなるものの、全体としてかなりコモった音になった記憶がある。センタパートのキャンセルとイコライザによる特定音域の音量抑制の複合効果と推測する。gain[2]gain}わっ、ホントに数行で書けてしまった。肝心のフィルタ処理なんてたった1行だ。実際にはlibwav.rbの側にsave_phrase_filterメソッドやencode_gainメソッドを追加しているし、オーバフローの処理も必要なのでガチで1行というわけではないが。本質的にはコレだけだ。思った以上にシッカリと消えたぞッ!こんなフザけたような1行のコードなのに、素晴らしい仕事っぷりである。性質上、モノラルになってしまうので、音の広がりはなくなってしまうが、コモった音になった感じはしない。サンプルとして、筋肉少女帯の「蜘蛛の糸」の一部を上げてみる。元の音、フィルタ後の音。いうことはだ、だから、アレだ。「ハッピーアイスクリーム」を食わせれば、女子の合いの手の部分だけ、キレイに残るんじゃないだろうか......元の音、フィルタ後の音。残ってるーッ!スイッチのカラオケでは、サブのボーカルまでカラなので、筋少の曲だと、ひとりで歌うとカッコのつかない曲が多くなるんだよな。このフィルタで消せば問題ない。それより、スイッチのカラオケだと、オケのイメージが原曲とかなり異なるものも多いが、それを回避できるのもイイ。筋少の曲は、ボーカルの音消えた時、やっとオケの凄さに気づくのさ。まてよ、ならば「221B戦記」もどうにかしたいところだ。普通にフィルタをかければ、神谷明も宮村優子も水木のアニキもいなくなってしまう。こちとらには波形を見聴きしながら自在に編集できるcccdctと、さっき作ったばかりのボーカルキャンセルスクリプトがあるんだからッ!それをくっつけちゃえばいいのよーッ!というわけで、新たにcccdctにマーク箇所毎にボーカルキャンセルのオンオフを切り替えて出力する機能を実装してみた。元の音、フィルタ後の音。音の切り替わりに多少の違和感があるものの、ちゃんと掛け合いカラオケになっているんじゃないだろうか。パッケージを置いておく。実際、そんなに「221B戦記」を歌いたいかと言ったら、まぁ、別に、そうでもないんだが......。1.8.7-p357。