Top

あちゃぴーの自転車通勤
u-he UHM言語 学習06 roundを使って丸める

レベルの分解能を下げる

レベル軸のデフォルト解像度はDAWの設定に依存すると思われるが、あえて低解像度にして、ザラつきを出してみる。 まずは、何もしないサイン波のスクリプトとその図。

Wave "sin(2*pi*phase)"

u-he uhm

これをroundを使って、小数を丸めてみる。つまり近い整数に四捨五入する。

Wave "round(sin(2*pi*phase))"

u-he uhm

サイン波は-1~1への間でレベルが変動しているので、-1、0、1のいずれかに四捨五入された結果、 ちょっと妙な矩形波もどきになった。続いて、もう少し解像度を上げてみる。

Wave "round(4 * sin(2*pi*phase))"

u-he uhm

-1~1の範囲が4倍にされたことで、-4~4という解像度に上がったことになる。 次に16にしてみる。図はだいぶ滑らかになっているが、音の解像度はかなり粗い感じ。

Wave "round(16* sin(2*pi*phase))"

u-he uhm

実はこの方法では16が限界で、それ以上の値を入れると、上下が下図のようにカットされる。これは24を入れた場合。

u-he uhm

対策として、下スクリプトのように、最後にレベルを小さくしてあげると波形がカットされないようになる。解像度は-32~32となっている。図は解像度が細かく見えるが、音としてはまだまだ粗い。

Wave "round(32* sin(2*pi*phase))*0.1"

u-he uhm

uhm言語