2017/05/25

SuperColliderのクラス

クラスを記述したファイルは拡張子を.scとして systemExtensionDir あるいは userExtensionDir に保存します。以下でパスを確認できます。

Platform.systemExtensionDir.postln;
Platform.userExtensionDir.postln;

ここでは userExtensionDirClassTest というディレクトリを作ってその中に.scファイルを置くことにします。まずは以下の内容で classTest.sc というファイルを作ります。

Superclass {
  var <>x;
  var <>y = 10;

  init {
    x = 5;
  }
}

MyClass : Superclass {
  init {
    super.init;
    "hi".postln;
  }
}

var の後に続く <> はゲッタとセッタを意味します。 var <>x;x のゲッタとセッタを定義しています。

クラス名 : スーパークラス名 {} で継承を行います。スーパークラスのメソッドは super で参照します。

ファイルを保存したらCtrl+Shift+Iでクラスライブラリを再コンパイルします。続いて新しいファイルを開いて以下の内容を入力します。

{
  var me = MyClass.new;
  me.init;
  me.x.postln;
  me.y.postln;

  me.x = 100;
  me.x.postln;

}.value;

実行して次の出力が得られれば成功です。

hi
5
10
100
-> 100