Try & Error for Sound Program

FoxDotを始めました。色々と試してみます。

和音をプログラムで扱うには その3

GLSLで和音の配列を扱うのは厄介なので、配列をpackする方法をとっています。
packって何だって思うと思います。GLSLにはpackUnorm4x8()という関数が有ります。これはvec4をビット演算を使いuintにして、packしたuintをunpackUnorm4x8()で又vec4にするといったものです。これの応用になります。和音のノート番号は127未満なので7bitで済みます。4和音を使う事を前提にしても、4x7=28で28bitで済みます。GLSLは32bit使えるから8bitで良いだろうと思われますが、uintを使うと数値に 60uとかuを付けないとならないのです。そこを嫌ってintで31bit以内としました。ここはセコイって言われても記述が1文字増えるのに抵抗があるのです。気にならないならuintの方がスマートだと思います。
ここは改造というか、仕様変更も有るかもなので、具体例は出さないで、そういう例もあるよって紹介だけにしておきます。