Skip to content

Instantly share code, notes, and snippets.

@tn800
Last active August 29, 2015 14:13
Show Gist options
  • Save tn800/dfaaad496d71dc4036a9 to your computer and use it in GitHub Desktop.
Save tn800/dfaaad496d71dc4036a9 to your computer and use it in GitHub Desktop.
UGenのビルド方法、こちらに注釈をつけたものです:https://gist.github.com/maedaunderscore/de6dc8d39f0a603d0ea6

ファイルの置き場所

SC上で下記を実行して、ユーザー・コンフィグディレクトリを調べてください。

Platform.userConfigDir

postウィンドウを見ると以下のようなパスが表示されます。このSuperColliderフォルダ内にSuperColliderの拡張クラスやUGenが保存されています

/Users/username/Library/Application Support/SuperCollider

下記の場所にファイルを置いておくと、SCの起動時に読み込まれます。(サブディレクトリも探索されます。)

<ユーザーコンフィグディレクトリ>/Extensions

UGenの作り方 その1 〜 SCだけで作る 〜

  1. scファイルを作り、ユーザーコンフィグディレクトリ以下に置きます。拡張子は.scにします。
  2. SCを再起動するかLaguageメニューから「Recompile Class Library」 を選択します。
  3. 補完候補にでてきたら成功です。
MySaw : UGen {
  *ar { arg freq = 440.0, iphase = 0.0;
    ^Saw.ar(freq, iphase)
  }
  *kr { arg freq = 440.0, iphase = 0.0;
    ^Saw.kr(freq, iphase)
  }
}

UGenの作り方 その2 〜 C++で作る 〜

UGenをC++で実装する場合、下記の2つをユーザー・コンフィグディレクトリ以下に置きます。

  • C++(.cpp)のコードをコンパイルして作ったモジュール(プラグイン)。macの場合は.scx、linuxの場合は拡張子なし
  • このモジュールを呼び出すためのクラスを定義したSCのコード。メソッドの本体はthis.multiNewを呼び出すだけ

詳細はSCヘルプの「Wrinting Unit Generator」を参照してください。

以下ではmac用のモジュールのコンパイルまでの手順を説明します。

  • Windowsの場合、CMakeを実行してVisual Studio用のファイルを生成可能です。それを使って、VS上でコンパイルできるはず。
  • linuxの場合、brewではなく、各ディストリビューションのパッケージツールを使用してください。コンパイルの仕方はmacと同じです。

brewをインストール

インストール手順はホームページの下の方( http://brew.sh/index_ja.html )を参照してください。
brewのインストールにxcodeが必要で、xcodeのインストールにはapple idが必要です

コンパイラなどをインストール

ターミナルを起動し、下記のコマンドを入力します。

> brew install cmake make c++ git

supercolliderのソースコードをダウンロード

> cd <作業ディレクトリ>
> git clone https://github.com/supercollider/supercollider.git

<作業ディレクトリ>/supercollider以下にSCのソースコードがダウンロードされます。

ファイルを作成して、コンパイル

SCのヘルプ(Writing Unit Generator)に従って、CMakefile(CMakeLists.txt)と <UGenの名前>.cppを作成します。
ファイルができたら、下記のコマンドでMakefileが生成されます。2行目で指定しているsupercolliderのコードのパスは、先ほどダウンロードしたSCのソースコードの置かれている場所のことです。

> cd <CMakefileとcppファイルのある場所>
> cmake -DSC_PATH=<supercolliderのコードのフルパス> .

Makefileができたら、makeを実行するとコンパイルされて、(UGenの名前).scxが生成されます。

> make
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment