見出し画像

出来上がって作る、配列と楽器 など





出来上がってから作る 

bytebeatや Maxforliveでは一旦音や出音を完成させてから、中身を作り直すことが少なくありません。結果が分かってからプロセスを作り直します。
より短い記述だったり、CPU負荷の小さい方法だったりにするために出力や音を変えずに中身を書き換えます。

ともかく一旦結果や方向性が確定してから作るという事が良くあります。

鶏が先で卵があと

 鶏が先にあり、あとからその鶏の卵ができます。


テセウスの船


>テセウスの船(テセウスのふね)はパラドックスの一つであり、テセウスのパラドックスとも呼ばれる。ある物体において、それを構成するパーツが全て置き換えられたとき、過去のそれと現在のそれは「同じそれ」だと言えるのか否か、という問題同一性の問題)をさす。

結果を同じに保ったまま内部を最適化する、入れ替えるという時それは同一であるのかという状況は、テセウスの船と構造的には似ています。ソフトウェアやコンテンツにおいて「同一」であるという感覚はその機能や出力が同じであるということが大きいかもしれません。 


音が4つが並んでいる

例えば次のような音を考えます。


例えば次のような音を考えます。次の音はmidiノートナンバーでいうと
60 64 67 69となります。[60 64 67 69]という並びを出力するというところをゴールにします。

例えば配列に格納して呼び出すならば
[0 1 2 3]に対応して[60 64 67 69]を呼び出す形になり、問題は0~3という数字を呼び出すことに変化します。この場合[60 64 67 69]という数字は他と入れ替えたりする任意のもの=変数と考えることが出来ます。

もしくは60の基準に対し+0 +4 +7 +9という並びだと考えると60+[0 4 7 9]と考えることができます。この場合60という基準は入れ替えたりする任意のもの=変数と考えることが出来ます。 もしくは12×5+[0 4 7 9]と考えるかもしれません。12ずつ値が変化するとオクターブが変化します。この場合12は定数で5が任意のもの=変数になります。

もしくは基準に値するものを加えると12×5+0+[0 4 7 9]となります。
この場合5と0と[0 4 7 9]が変数となります。

配列を利用する場合[0 1 2 3] → [60 64 67 69]に対応して値が決まります。
配列をもう一段追加してみます。例えば
[0 1 2 3] → [3 2 1 0] →[60 64 67 69] この場合メロディが逆になります。
この場合[3 2 1 0]は変数となります。

[0 1 2 3] → [3 2 1 0] →12×5+0+[0 4 7 9] と組み合わせると
[3 2 1 0] 5 0 [0 4 7 9]が変数となります。

[0 1 2 3] → [0 1 2 3] →12×5+0+[0 4 7 9] と組み合わせると
同じ出力となります。

配列はある種、かなり柔軟な方法かもしれません。どんな数字に対しても一対一の対応関係を作ることができます。

配列とタコマ橋

配列は数と数の間に一対一の対応関係をつくります。これは例えばランダムな動きから規則的な動きを作る時に使います。
例えば配列を使用してランダムなノートナンバーを特定のスケールに合わせる、規則的な動きを作るアプローチは一つの例です。


楽器は乱雑な動きから規則的な動きを発生させるレゾネータの一種だと考えることができます。それはエオリアンハープやタコマ橋をイメージすると分かりやすいかもしれません。何か別の動きやエネルギーを規則的な動きに変える仕組み、構造と見ることができます。



自励振動 


風により橋が自励振動を起こして崩落した。
自励振動はバイオリンやリードや様々な楽器に見られる。


カープラスストロング合成






配列のレゾネーター的な


配列は乱雑な入力から意図的な出力を生み出すことができます。その意味で、配列とその操作はレゾネーターに似た役割を果たします。レゾネーターが振動を集め、特定の周波数で共鳴させる物理的な装置であるように、配列は音のデータを所定の音楽的ルールやスケールに「共鳴」するものとして機能します。


ランダマイズされた値のメジャースケールへのスケーリング



楽器=B  C=B ならCは

この比喩をさらに広げると、配列やそれを操作するプログラムは、レゾネータであり、レゾネータであるならその意味で「楽器」と見なすことができます。

楽器=レゾネータ 
配列=レゾネータ
配列=楽器

と見なすことができます。






よろしければサポートお願いします!