コンサート用のシンセサイザーを書いています。 PureDataフィールドテスト

入門



背景



PDでシンセサイザーを構築することは非常に興味深いですが、屋内での実験やMIDIメッセージのカウチ解析は、実行する必要がある「戦闘」条件とは大きく異なります。 そして、LinuxFestでのデモンストレーションが失敗した後、ライブパフォーマンスソリューションの面倒をみました。 通常、多かれ少なかれ機能するMIDIコントローラー(別々に聞くことができる少なくとも2つのチャンネルを使用するなど)で十分ですが、それは非常に高価であり、シンセサイザー自体のGUIを補正し、マウスとキーボードに依存する必要があります。



約1か月前、私は好奇心St盛なサンクトペテルブルクグループで「電子技術者」の役職に招待されました。 私の仕事は、シンセサイザーのパートとその潜在的な記述を再生することです。 グループは積極的にツアーを行っていたため、解決策をすぐに準備する必要があり、彼らの資料を聞いて集団のメンバーと話した後、解決策を探し始めました。



問題の声明



「なぜ」という質問を予想する発言。 もちろん、シンセサイザーは非常にシンプルで、同じ機能を実行できるソフトウェア-海です。 ただし、ここでは、PDの初心者が繰り返すことが重要であるという基本原則を手動の例で示します。 これは、ジェネレーターとコンバーターの両方に適用されます。 これはあなたが働くことができる、そしてそうすべきベースであり、シンプルさと湿気により、要素をすばやく分解し、ベースではないにしても、あなた自身のパッチに良い追加を提供することができます。 健康をコピーして実験してください!

シンセサイザーをアセンブルする必要があります。シンセサイザーの構成は、素早く、ホットに変更できます。また、コントローラーにとっても要求が厳しいものでなければなりません。 そして、もちろん、周波数の広い帯域で「大規模な」ゲームをプレイする能力。 ひらめきは、小さなモジュール会社Korgでしたが、そのモデルは悲しいかな、私には知られていません。

掘り下げた後、タスクをパーツに分割しました:形状ごとの信号発生器(saw [phasor〜] 、sine [osc〜] 、正方形(ライブラリーには ありません 、三角形(ライブラリーにもありません) )。 位相変調モジュール、リング変調器、過負荷、および「ホワイト」および「ピンク」ノイズジェネレーター(それぞれ[ノイズ〜]および[ピンク〜] )およびそれらのフィルター(帯域[bp〜] 、低[lop〜]そして、もちろん、入力されたパラメーターを所定の速度で出力に順次送信する一種のスタックです(バスやドラムなどのリハーサル部分を保持すると便利です)。

それで、原則として、それだけです。 この経済全体をPDに移行し、実験を開始するだけです。



シントストロイ



GUIでマーカーを使用して背景を構築するには、標準のput-> canvasまたはCtrl-Shift-Cを使用します。モジュールごとに個別の背景を作成し、モザイクとして組み立てました。 そして、すでに上記のオブジェクトを配置しています。 私はこのデザインを得ました:







個別に分析しましょう:



ブロックイン


興味深いものは何も含まれていません。 [adc〜] -マイク、ライン、またはその他のアプリケーションからの入力オブジェクト。JACKでは、単に入力として表示されます。 チャネルなどに関する十分な情報を提供するヘルプは、追加するものはありません。 しかし、その後、すべてがはるかに興味深いです。



Wave_Genブロック



正弦波発生器とのこぎりはすでによく知られていますが、正方形と三角形(ここでは、それぞれ正方形と三角形)を元のものから彫刻する必要がありました。 数学はせいぜい単純な高校卒業です。 のこぎりから正方形を取得するには、2つののこぎりを使用して、1つをスイープします(これは負の周波数値を指定することによって行われます。つまり、初期周波数で符号を変更する必要があります)。0.5の位相シフト(位相シフトは右の入力に適用され、 0から1、つまり、縦軸に沿ってシフトが示されます)。 そして今、私たちは触れていない最初のジェネレーターでこの展開されシフトされた波を追加しています。 その結果、0〜2の範囲で動作する方形波の形で重ね合わせが得られます。次に、領域[-1;に表示されるように波を移動します。 1]。 つまり、1を減算します。その結果、次のようになります。







三角形の場合、アプローチは同じです。 思考の流れは、コードによって復元できます。







しかし、一般的に...
固定数を引く代わりに、特定の変数を導き出すことができます。ディフューザーを動かすと、非常に興味深いサウンドとグリッチが得られます。これは、対応する音楽で使用されることがあります。 しかし、このシンセサイザーでは使用しませんでした。間違いなく新しいバージョンに含めます。



そのため、ジェネレーターが整理されています。 コンバーターを扱います。 リングとフェーズの原則に従って、ウィキペディアにアクセスすることをお勧めします。ここでは、コードをそのまま提供します。すべてが数学的な基礎よりも作業の原則に基づいているためです。



リングモッド





フェーズモッド





ブロックSTCK


おそらくこれは、PDのロシア語の情報が本当に役立つケースです(残念ながら唯一のケースです)。







このサブパッチには、カウンターと、特定のカウンター値に達したときに出力に前髪を送るオブジェクト[sel]のみが含まれます。 赤い長方形(インターフェイスに直接)で、ノートオフセットはノブを使用して設定され、正方形のボタンが開始、数値ボックスの横に遅延(ms)(つまり、各セクションの持続時間)があります。 この数をトピックに変換するのは難しくありません。これは自分で処理できると思います。 さて、入力に来る数字は元の周波数です。 ここでは、MIDIイベントをもたらし、アルペジエーターを獲得できます。 一般的に、これはアルペジエーターです。

多数のエフェクトを作成しないことにし、歪みのみに限定することにしました(そして、遅延ブロックはあなたを煩わせないようにします。実際、それは遅延ではありません。



歪み


歪みの原理は同じくらい簡単です。信号の強さにはある種の厳格な制限があり、それ以上のものは容赦なくカットされます。 これは、オブジェクト[clip <range in y>]と数値を乗算する操作を使用して実現されます。これにより、信号が増幅され、許容範囲外になります。 オーバードライブ(スライスが湾曲している)には、オブジェクト[overdrive〜]があります。







おわりに



コンサートのフィールドトライアルは非常に成功しました。私を落ち込ませた唯一のことは、マウスで多くの作業を行い、モニターを常に見る必要があることです。 第一に、特に頭を振る必要はありません。第二に、指揮者機能を実行する仲間を見ることができません(そう、とても深刻です)。 そして、その結果、作曲の1つで突然終了する瞬間を逃し、一瞬だけ話題になりました。 さらに、トランスデューサーのダイナミクスとパラメーターを同時に制御する必要がある場合、1つのマウスでは不十分です。 そのため、将来のバージョンでは、実行可能パーツの柔軟性を犠牲にして、DirectInputでusbキーボードとゲームパッドを使用してシンセサイザーにパラメーターを転送することにしました。 次のシリーズでは、「手元にあるもののコントローラー」または「電子音楽を節約する方法」を待ちます

コメントで質問を待っています。



All Articles