SuperColliderの概要

この短い記事では、SuperColliderについて簡単に説明し、その使用例を示します。 SuperColliderは、オープンソースのクロスプラットフォームクライアント/サーバーアプリケーション、開発環境、およびリアルタイム(だけでなく)オーディオ合成用のプログラミング言語です。 最初のリリースは、ジェームズマッカートニーによって作成された1996年に光を放ちました。これは、ソフトウェアオーディオ合成における彼の以前の研究のオープンソース継続版でした。 時間が経つにつれて、さらにいくつかの人々がプロジェクトに参加しました。 プロジェクトサイトはsourceforge.netでホストされています。 Linux(ubuntu ppaを含む)、Windows、MacOS(iPhoneおよびAndroidバージョンも準備中)のバージョンがあります。



水曜日



プラットフォームに応じて、ネイティブエディター(WindowsまたはMac)またはgedit、vim、emacs(Linux)のプラグインを開発環境として使用できます。 必要なのは、サーバーとインタープリターを開始するためのキーの組み合わせを処理することだけです。 また、他の言語を使用したOpen Sound Control(OSC)プロトコルを使用してサーバーと「通信」することもできますが、私の意見では「ネイティブ」言語を扱う方が面白いと思います。



言語



当初、Smalltalkの概念は言語の基礎として採用されていましたが、著者によれば、言語は他の言語の機能を獲得してきました。 その結果、非常に表現力豊かでコンパクトな言語になりました。 以下に例を示します。言語の詳細な説明は、「言語リファレンス」セクションのドキュメントに記載されています。

オーディオ実験用のGUIを作成できます-スライダー、ノブ、アナライザーなど、多くの便利なプリセットがあります。 さらに、MIDI、Wiimote、およびその他のHID(ヒューマン入力デバイス)デバイスをコントローラーとして使用できます。





SuperColliderは、自己表現などの十分な機会を提供する見返りに、深い開発のために多くの時間を必要とします。 それらの多様性のために、最も簡単な例を挙げます。 詳細情報は、特にいくつかのチュートリアルを含むボリュームヘルプで常に確認できます。



シンプルな「シンセ」から始めましょう。



1)1つのチャネルで200Hzの正弦波(1番目-デフォルトで左)



{ SinOsc.ar(200) }.play;







SinOscは最も単純な「UGen」(ユニットジェネレーター)です。 対応するヘルプセクションでUGen(ユニットジェネレーター)のセットに慣れることができます。



2)同じことですが、ステレオ



{ SinOsc.ar(200) ! 2 }.play;







3)ステレオ、ただし各チャンネルで異なるフェーズ



{ Mix2.ar(SinOsc.ar(200, pi/2), SinOsc.ar(200)) }.play;







または、マルチチャネル拡張の例として(4チャネルの例では、位相差= pi / 4)



{ SinOsc.ar(200, [0, pi/4, pi/2, pi/4*3]) }.play;







4)マウスカーソルの水平位置によって制御される周波数(0.1〜50 Hz)で、あるチャネルから別のチャネルに信号を転送する



{ Pan2.ar(SinOsc.ar(200), SinOsc.kr(MouseX.kr(0.1,50))) }.play;







5)信号周波数と1つのチャネルから別のチャネルへの変換周波数の変調



{ Pan2.ar(SinOsc.ar(150, add: SinOsc.kr(50, mul: 20)), SinOsc.kr(SinOsc.kr(0.1).abs*10)) }.play;







6)同じ、ただし三角形の封筒



{ Pan2.ar(SinOsc.ar(150, add: SinOsc.kr(50, mul: 20)), SinOsc.kr(SinOsc.kr(0.1).abs*25), 1) * EnvGen.ar(Env.triangle(20, 1)) }.play;







次に、構文を作成します。



SynthDef(\simple_synth, { |freq = 60, dur = 0.25, amp = 0.8, out|

Out.ar(out, SinOsc.ar(freq)*EnvGen.ar(Env.triangle(dur, amp), doneAction:2) ! 2);

}).add;








パターンを「再生」します:



Pbind(

\freq, Pseq([ Pseries(50, 10, 50), Pseries(550, -20, 25) ], inf),

\dur, 1/8

).play;








Pbind、Pseq、Pseriesは、メロディとリズムパターンを作成するための基本的な要素の一部です。 それらに加えて、他にも多くの組み合わせが可能です(たとえば、有限状態機械モデルを使用するためのPfsm)。 もちろん、正しいアルゴリズムを使用して独自のパターンを書くことを禁止する人はいません。



参照資料



プロジェクトサイト

リスニングコードの例

ドキュメンテーション

SuperCollider Book (SCのすべての側面をカバーし、さらに必要 - 持っている必要があります



合計



SuperColliderは、クラシックDAW(デジタルオーディオワークステーション)がなく、音楽、ライブパフォーマンス、その他のオーディオ(およびビジュアル)実験を作成するためのより柔軟なツールが必要なユーザーに適しています。



All Articles