見出し画像

多角形シンセ_ポリゴナルシンセ_polygonal synthesisについて_fendoap

Max for live: 
https://fendoap.gumroad.com

fendoap _Passing Scenery :Buffer Zone records



多角形シンセ_ポリゴナルシンセ_について


https://quod.lib.umich.edu/cgi/p/pod/dod-idx/continuous-order-polygonalwaveform-synthesis.pdf?c=icmc;idno=bbp2372.2016.104;format=pdf

::::::::::::::::
This work utilizes content from the research paper "Continuous Order Polygonal-Waveform Synthesis" by Christoph Hohnerlein et al., published in 2016.
The paper is distributed under the terms of the Creative Commons Attribution License 3.0 Unported, allowing unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited. The paper can be accessed here and details about the license can be found here
::::::::::::::::

多角形シンセの論文の式の意味とかのメモです。

多角形シンセのgen~での実装です。

画像20

このような感じです。

画像21



画像1

多角形シンセの論文などに載っているこの式は要するに極座標•直交座標変換のX=r•cosθ y=r•sinθのrの部分を表した式と見ると分かりやすいかもしれません。つまり多角形の中心からの距離を極形式で表している式という感じです。

よく見ると多角形は直線の集まりから出来ています。四角形だったら4つの直線から出来ています。

画像2

そこで直線の式を極形式で表してみます。

すると下のような感じになります。

画像3

ここで$${θ_0}$$は 二等辺三角形OABの頂角90°の半分の45°です。
多角形で考えるとこの角度は2πを角数で割った角度の半分になります。
よって$${θ_0}$$はπ/nとなります。

ここで、もう一度論文の式を見直してみると直線の式との対応関係が何となく理解できるかもしれません。

ポリゴナルシンセ_論文_数式

ここで式のmodの部分について考えてみます。

正多角形はよく見ると同じ形の(合同な図形の)繰り返しから出来ています。例えば正方形は同じ長さの辺を4つ持っています。 こういう風に辺の端っこからの角度が同じだと中心からの距離rも同じ長さになります。つまり同じ繰り返しが4回あるということです。

画像5

この繰り返し一回分の角度はどのくらいか考えてみます。 一周が360°だから四角形だったら360/4=90°が一回分の角度  N角形だったら360/Nが一回分の角度です。

画像6

さっきも見たようにrは角度に対応しています。そこで0→2πの角度の動きから一定角度の繰り返しを作ることを考えてみます。

画像7

ここで角度を0→1という動きをベースに考えてみます。
つまり0→角度を (0→1)x角度というふうに考えます。

画像8

角度をΦとおくとΦ/2πは 0→1にスケーリングされます。
これにNを掛けたら 0→Nにスケーリングされます。

画像9

なぜこういう事をしているかというと0→2πという動きを何個かの0→1の繰り返しに分割するためです。

画像10

ここで分割のためにmod(, 1)を使います。mod(,1)は剰余演算のことで、1で割った余りのことです。1で割った余りは0~1の範囲に収まります。mod(,1)は値が1を超えると0から再び数えなおすようなリセット効果があるのでmodを使うと繰り返しの周期的な動きが直線的な動きから作れます。

画像11


さきほど(0→1)×Nに角度をスケーリングしたのでmod(,1)を使うと0→Nの直線的な動きから0→1 をN回繰り返すような動きが作れます。
Nというのは多角形の角数のことをさします。 N角形はN個の周期的な繰り返しがあるということでもあります。

画像12
画像13

ということでこれで論文にあるmodの部分が出来ました。こんな感じです。

画像14

ここのmodの部分が出来ました

画像15


ここまでで多角形というのは繰り返しでありその繰り返しを作るのはmodであることを見てきました。という事は最低限modさえあれば多角的な図形は描けるはずです。という事でmodのみを使い最小限度の図形シンセを作ってみます。オブジェクト5つほどですが図形が描かれています

多角形シンセというのは繰り返しの一部分をどのような式で表現するのかというような形で作っていくものと考えると良いかもしれません。

ところで繰り返しといえばよく考えればサイン波とかオシレータも繰り返しです。オシレータはmodの代わりに使えるのでしょうか? 実際試してみるとこうなります。サイン波でも図形を描くことが出来ました。

ところでこの構成よく見ればAM音源のようにも見えます。 つまり振幅変調です。

AM音源の場合サイドバンド周波数が発生しますが図形をよく見るとサイドバンド周波数と画数が関係していることが見えてきます

角数が多くなっていくほど周波数が上昇していくように感じられます。パッチを見ると変調する周波数は元の周波数の角数倍されていることがわかります。サイドバンド周波数はAM音源の変調側の周波数と関係しているので図形の角数が多くなるとサイドバンド周波数も高くなり周波数が上昇していくように感じられます。
実際多角形シンセでも角数を多くすると周波数が高いほうに移動するような動きがありますがこれの理由もAM変調と同じと考えると何となく理解できるかもしれません。

一周回る毎に多角形の回数分、繰り返しがあるという事は繰り返しの周波数は元の周波数×多角形の角数です。
それが振幅変調的に音に現れると考えられます。
それから角数が多くなってくると円に近づいて滑らかになってくるので変調具合が小さくなってきます。
つまり
角数→多 周波数→高域 サイドバンドの音量→小
角数→少 周波数→低域 サイドバンドの音量→大
というパラメータの傾向があります。
これは多角形シンセにおける音作りの参考になるのではと思います

画像16

多角形シンセでは角数が多くなればなるほど形は円に近づき音はサイン波に近くなっていきます。
これについて考えます。

ポリゴナルシンセ_fendoap_AMCJ_テストパッチ_2022_1_30

多角形シンセでは角数が多くなればなるほど形は円に近づき音はサイン波に近くなっていきます。
これを式の面から考えると以下のようになります。

画像18


つまり多角形の式においてn→∞として極限をとると1に近づくので
r=1となりx=rcosθ=cosθ y=rsinθ=sinθとなるという事です。

一方多角形シンセシスをAMシンセシスの類型だと考えると、AMシンセシスは変調元の周波数がサイドバンドとともに残るので、サイドバンドの音がだんだんなくなっていき変調元のサイン波のみが残り結果サイン波に近くなっていくとも考えられます。
つまりサイン波に近くなっていくのではなくて元々のサイン波はそこにあって、それが現れてくるという考え方です。
倍音として加算される音と変調元の音はFM音源のように変調元の音源も崩れて相互に交わるのではなくある程度独立を保っているのかもしれません。その場合変調部分と変調元の音作りは分けて考える方がいいのかもしれません。もしかすると変調元にFM変調を加えてもポリゴナルシンセ部分にはあまり効果が表れないのかもしれません。詳しく見てみないと分からないですが。


ここまでで多角形というのは繰り返しでありその繰り返しを作るのはmodであることを見てきました。さらにmodから繰り返し図形が描かれることを見てきました。ここから少し応用としてオリジナルの多角形シンセを作るということを考えます。

まずこれまでの話で多角形や幾何学図形というのはある一定角度ごとに現れる同じ形の繰り返しであることを見てきました。

大まかに多角形シンセというのは
「一定角度の繰り返しを作るmod」と
「modから受けた一定角度を繰り返し図形に変換する関数部分」の組み合わせからなっているともとらえられます。
ここで「一定角度の繰り返しを作るmod」は共通の関数として使えるので「modから受けた一定角度を繰り返し図形に変換する関数部分」を様々な形にすることで様々な多角形シンセが作れると思います。

画像19


つまりこの式でいうmodの式の部分が繰り返し角度を作る関数でそれ以外の部分が繰り返し角度を図形に変換する部分です。 それ以外の部分をいろいろな式にすることで様々な形が描けるのではないかと思います。

例えば繰り返し角度を図形に変換する部分に、床関数を使うとこのような歯車型の図形が描けます。


またスプライン関数などの補間曲線を使うとこのような変形する図形が描けます。


関数を使わずにbufferに直接書いてwave~で読み出したりウェーブ・シェーピング合成を使うという手もあります。 

このようにmodから出てくる角度を様々な式や方法で変換するという方法で任意の多角形シンセ、図形シンセを作ることが出来ると思います。またこの式での変換というのはwave_fold エフェクトなどに非常に近い部分であるのでそれらを応用したりまた逆に流用することが可能かもしれません。


この先には記事はありません。



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