音楽におけるセミの原理または素数の魔法(PureDataなど)

素数を使用して繰り返しのないバックグラウンドを作成することについての素晴らしい記事をハブで読んで、これを実装して音楽を生成してみませんか? 熟考の上、私はすべてを次のように実装することにしました。 ゼロと1のシーケンスを含むいくつかのメッセージが作成されます。 メトロノームからの信号に従って、1つの要素が各メッセージから抽出され、その後、すべての要素が要約されます。 メッセージ内の要素の数は異なり、素数を表します。 出力では、特定のノートにマップされるゼロから%% message_ %の整数が期待されます。



PureDataを選ぶ理由



客観的な理由はありませんが、2つの主観的な理由があります。



a)デモ版のmaxを配置したくない弱いネットブックしか手元にありません。

b)最近pattr.ruを Max / MSPに関するサイトと呼びましたが 、これは完全に真実ではありません。Maxは私にとって個人的に最も便利なツールです。



実際、 PureDataMax / MSPには音の面で同じ機能があり、 Pdだけです。そのオープン性(はい、 Pdオープンソースであり、Linux用です)により、使いやすさが大幅に低下します。



できればパッチを当ててください



まず、メッセージからアトムを順番に読み取るアルゴリズムを組み立てる必要があります(アトムはPdの基本単位で、メッセージは複数のアトムで構成されています)。 多くのMax / MSPオブジェクトが移植されるPureData用のCycloneライブラリが作成されているため、前の記事からパッチの一部を取り出してPd(counter-list.pd)で再コンパイルしてください



PureDataメッセージからアトムを抽出する



このパッチには、7つのアトム、 1から7までカウントするカウンター、および着信メッセージから特定のアトムを抽出するオブジェクト[zl nth]を含むメッセージがあります。 カウンターからの番号が[tbi]オブジェクトに送信されることに注意してください。 最初に番号を右インレット[zl nth]に送り、オブジェクトに取得する原子番号を伝え、次にBANGをメッセージに送り、その内容を表示させます。 その結果、ボタンをクリックすると、次々に原子が表示されるようになります。



これを数回すべて複製して、以下を収集します。



既製のPureData Prime Ringtone Generator



ご覧のとおり、抽出された原子はexprオブジェクトによって追加されます。この場合、合計は0〜5の範囲で変動しますselオブジェクトは、加算結果に応じて、シンセサイザーに入力されるノートの数である5つの数字のいずれかをトリガーします。 音符の番号は天井から取られたものではありません-これは五音音階です。つまり、「黒」ピアノの鍵のみがこのパッチを演奏します。 シンセデバイスについては説明しません。4ボイスのポリフォニーを備えたシンプルな正弦波シンセです。



おわりに



この単純なパッチは実験のために作成されたもので、パターンを生成するためにセミの原理を適用したいと思いました。 ご覧のとおり、結果は興味深いものでした:メロディーの一定の再現性は感じられますが、ループの明確な境界は聞こえません( 3 * 5 * 7 * 11 * 17 = 19635ステップのシーケンスが得られます)。 一般的に、アルゴリズムの断片の私の武器はもう1つ補充されました、ありがとう、Habr。 :)



パッチは次の場所で入手できます。

pattr.ru/sites/default/files/pattr_cicada-test.zip



Pdを手元に持っていない人のために、結果をファイルに書きました。

http://pattr.ru/img/cicada-test/cicada.mp3



All Articles