2024/04/24

IntegerChord

Try IntegerChord (github.io)
Read source code (github.com)

IntegerChord is a subtractive synthesizer which plays random chord. As same as IntegerArpeggio, the period of a waveform is set to an integer samples which makes aliasing less perceivable to human ears.

Half of the reason this synth was made is to test resonant filters. It's not obvious due to amplitude normalization, but output gain of the resonant filters aren't well tuned. Below are links related to the resonant filters used in this time.

Resonant filters are also added to IntegerArpeggio. However, slicer might not work well when the filters are applied.

On a different topic, there's a proposal to add masonry layout to CSS (MDN, WebKit). On UhhyouWebSynthesizers, the layout is trying to fix the width of a column, while also trying to make the number of columns variable. Current implementation is displaying `inline-block` sections into a text that is oriented from top-to-bottom, then left-to-right. Probably because of this strange layout, the layout slightly differs on different browsers. I tried column layout, but it changed the width of a column when the width of browser is changed. It might take more time, but I'd like to try masonry layout when it's implemented in Firefox, Safari, and Chrome.

---

IntegerChord を試す (github.io)
ソースコードを読む (github.com)

IntegerChord はランダムにコードを生成する減算式シンセサイザです。 IntegerArpeggio と同様に、波形の周期を整数サンプルとすることで、エイリアシングが聞き取りにくくなっていることが特徴です。

このシンセの半分くらいはレゾナンスをつけられるフィルタ (レゾナントフィルタ) をテストする目的で作られました。 IntegerChord ではレンダリング後に振幅を正規化しているのでわかりづらいですが、どのフィルタも出力ゲインの調整が適当です。以下は今回使ったフィルタに関連するリンクです。

ついでに IntegerArpeggio にもレゾナントフィルタを追加しています。ただしフィルタをかけるとスライサでうまく切れなくなるときがあります。

話は変わりますが、 masonry layout という CSS の新機能が提案されているそうです (MDN, WebKit) 。 UhhyouWebSynthesizers では列の幅を固定、列の数を可変とするようにトップレベルのレイアウトを行っています。今の実装では、縦書きの左から右に向かうテキストの中に、各セクションが inline-block として表示されるようになっています。この変なレイアウトのせいなのか、現状ではブラウザによってレイアウトが微妙に異なってしまっています。 Column layout も試してみたのですが、列の幅を固定できなかったので使っていません。まだ時間がかかるかもしれませんが、 masonry layout が Firefox, Safari, Chrome に実装されたら試してみたいところです。