IZANAI ver0.31.002公開(Bug Fix)

IZANAI ver0.31.002を公開しました。
バグ修正版です。

以下からダウンロードできます。
IZANAI ver0.31.002.zipをダウンロードし、解凍してください。

https://drive.google.com/drive/folders/1pkVGnEtqBP4Ujors0YJ3vPhhXmoFW__N

バグの内容は以下のとおりです。

  • LFO1、LFO2でテンポシンクをONにしたときの周波数計算がびっくりするほど間違えていた。
→計算式を見直しました。
  • STEREO CROSS DELAYでテンポシンクをONにしたときのディレイタイムの計算がびっくりするほど間違えていた。
→計算式を見直しました。
  • STEREO CROSS DELAYでテンポシンクをONにしているときに、シーケンサーでテンポを連続的に変えると、バリバリとノイズが乗る場合がある。
→ディレイタイムをディレイモジュールに渡す前に値をスムージング処理するようにしました。

ほんともうびっくりするほどですよ。
リタルダントしたらLFOは加速するし、ディレイのWet音は音程上がるし(苦笑

LFOの単位はHz、ディレイの単位はmsで、つまりそれぞれの逆数を使うので同じモジュールを使いまわしてたんですけどね。
中身見たらなぞの計算をしてました…

ここ作ったときはきっとアホになってたんだ…

ややこしいはややこしいんですけどね。直しながらもアホになりかけた!
今度は間違ってないといいなぁ…

バリバリとノイズが乗るのはわかってはいて、仕様のつもりだったんです。
普通に考えれば、テンポ同期した状態でテンポを変えた場合のディレイの考えられる動作は2つ。
  • バッファを無理やり増やしたり減らしたりするので、該当部分にノイズが乗る。
  • バッファに残っているデータを伸ばしたり縮めたりして、ノイズが乗らないようにする。ただし、伸縮した部分の音程が変わる。
REAKTORのライブラリにあるSingle Delayモジュールは、ディレイタイムが変更されたときに伸縮させることができます。
ただ、開発したSTEREO CROSS DELAYモジュールに関しては CHORUSやFLANGERのようにモジュレーションをさせることを使い方として前提としていないので、そういうときは固定のディレイタムを設定してね、というつもりでいました。
ディレイモジュールの伸縮はONにしてあるので、そこそこテンポが変わってもまぁ一応動きます、という動作にはなっていたんです。

ですが、ある特定の音色で、連続的にテンポを変えてみたら、もうそりゃすごいバリバリになりまして。オーディオI/Oが壊れたかと思うくらいで。
さすがにこれはまずいか…と思い修正しました。

REAKTORのSingle DelayモジュールはディレイタイムにAudio信号を入力することができます。
今回入力される信号はEvent信号なわけですが、これをAudio Smootherモジュールに通してスムージング処理を施すことでSingle Delayモジュールがそれなりにきれいに処理してくれます。

ちなみに、自作でCHORUSエフェクターやFLANGERエフェクターを作りたい方はこの「Audio信号をディレイタイムに入れる」というのが必須テクですよ!

まめちしきまめちしき

それでは今回はそんなところで。

コメント