Zero-Crossing (ゼロクロス)とは

Zero-Crossing (ゼロクロスポイント)

以前質問があったのを思い出したので。
ゼロクロスorゼロクロッシングとは、波形が中央の線をまたぐ瞬間のポイントをいいます。

ゼロクロス例01
ゼロクロス例01
ゼロクロスを使用した範囲選択例01(上行クロス〜下行クロス、好ましくない)
ゼロクロスを使用した範囲選択例01(上行クロス〜下行クロス、好ましくない)
ゼロクロスを使用した範囲選択例02(上行クロス〜上行クロス)
ゼロクロスを使用した範囲選択例02(上行クロス〜上行クロス)

画面はDSP-Quattro

多くの波形編集ソフトやDAWの波形編集機能は、ゼロクロスのポイントで波形の選択範囲をできる仕組みを持っています。
例01,02のようにゼロクロス箇所で範囲選択して再生するとき、始めも終わりもゼロに近い値で再生されるため、プツッというノイズを最低限に抑えることができます。
より理想的には、右上がりでクロスする箇所を始点と選んだなら右上がりでクロスする箇所を終点に選ぶ(例02)べき。

これでパーフェクトかというと、必ずしもパーフェクトではありません。
選択範囲をループ再生するとき、DCとクロスする直前直後の値にそれでもそこそこのギャップがあるとグリッチが乗ってしまいます。このグリッチが気になるか気にならないかは一様に言えませんが、サウンドを阻害すると感じられた場合には必ず措置を行います。
選択範囲の長短、つまり上の例のようにたかだか数十サンプルの選択範囲であろうと、音楽の1コーラスであろうと、ゼロクロスにあたる範囲選択をしていなければ継ぎ目にグリッチが乗り、不快に聞こえます。

ループ設定の小細工

選択範囲直前直後の一定の範囲を重ね合わせてギャップを無くすのがクロスフェードで、これには実際にデータに手を入れる破壊(destructive)と、再生時にソフト的に行う非破壊(non-destructive)があります。最近は後者が主流ですが、ポータブルゲーム機や小児用楽器など充分な処理能力を持たぬ機器に音源提供を行う場合には破壊編集を視野に入れなくてはいけません。
具体的な手法は別記(サンプルループ作成の考え方と手法 – makou’s peephole)を参照いただくとして、クロスフェードが上手くいくかは元のオーディオデータの倍音配列や基音および倍音の各位相の状態次第なので、やってみてダメなら設定を変えてやり直す他ありません。

DSP-Quattroでのクロスフェードループの設定(Exp=Exponential)。
DSP-Quattroでのクロスフェードループの設定(Exp=Exponential)。

かつてはループ専用の編集ソフトがあったりもしたのですが、あまりにニーズが乏しいためディスコン(dis-continue)しました。お蔭で比較的新しい素材ほどループ設定が雑という現象が起きています。

ちなみにポータブルゲーム機などのように極小メモリの機器に極小のショートループを組んだPCMデータを格納する場合、波形の1周期の最短の2n(nは1より大きい自然数)つまり2,4,8,16…倍の長さでループポイントの設定をすると、仮にグリッチが発生しても、グリッチの発生周波数がサブハーモニクス上に展開するのでノイズとして目立たなくなります。