SC上で下記を実行して、ユーザー・コンフィグディレクトリを調べてください。
Platform.userConfigDir
postウィンドウを見ると以下のようなパスが表示されます。このSuperColliderフォルダ内にSuperColliderの拡張クラスやUGenが保存されています
synth = SynthDef (freq, dur=0.25)-> | |
Out.ar(0, SinOsc.ar(freq) * Line.kr(1, 0, dur, doneAction:2)) | |
.add() | |
Task -> | |
Infinity.do syncblock (i)-> | |
#console.log i | |
d = new Date() | |
sec = d.getSeconds() |
# sequenceのサンプルコードをシンプルにしてみた | |
# $はグローバル変数 | |
$pattern = [ | |
'x--- x--- xx-- xxx- xxxx xxx- x-x- x-xx' | |
'xxxx x--x --xx xxx- --xx xxx- x-x- xx--' | |
].map (x)-> (x.replace /\s+/g, '').split '' #二次配列に切り分けてる? | |
synth = SynthDef (freq, dur=0.25)-> | |
Out.ar(0, SinOsc.ar(freq) * EnvGen.kr(Env.perc(), doneAction:2) * 0.3) |
#ユニット・ジェネレータを書く
##ユニット・ジェネレータ・プラグインの動作
ユニット・ジェネレータ・プラグインは、サーバーの起動時に読み込まれます。ユニット・ジェネレータ・プラグインは、C++で記述されたライブラリで、直接ロードされます。各ライブラリには、ひとつ、または複数のUGenの定義が含まれています。
プラグインはUGenだけでなく、例えばバッファを満たす("/b_gen”)のようなコマンドも定義することができまこれらは、シンセ・サーバーの起動時に読み込まれるため、プラグインをコンパイルした後は、サーバーを再起動する必要があります。 。 ##The Entry Point:エントリポイント (訳注:エントリポイントは、プログラムを実行するうえで、一番最初に実行される場所のこと。例えばC言語だとmain関数とか。以下の説明は読んでいるだけだと分かりにくいので、下の実際のC++コードを見ながら読むといいです。)ライブラリが読み込まれると、サーバーはPluginLoad()macroに定義されているライブラリの中の関数を呼び出します。このエントリポイントには二つの役割があります:
OSCやMIDIのメッセージを受け取り、搭載されたLEDの光り方を制御できる「雰囲気メガネ」。SuperColliderを用いたサンプルコードを以下に掲載します。
メッセージの仕様については、非公式ではありますが、コチラを参考にしましした。 【雰囲気メガネのシミュレータ】http://akamatsu.org/aka/2014/12/28/fun-iki-simulator/ 【雰囲気メガネのiOSアプリ】https://itunes.apple.com/jp/app/fen-tong-qimegane/id950982828?mt=8
MIDI楽器やコンピュータからデータを送信してメガネを光らせる場合は、iOSデバイス(要iOS7以上)上のアプリ「雰囲気メガネ」を通じて、メガネへのメッセージを送ります。複数のメガネを制御したい場合は、その台数分のiOSデバイスが必要になります。
以下では、wifi接続をしている環境下でのOSCでの手順を説明します。 ※wifi環境がない場合は、以下の「AdHoc接続について」を参照してください。
#概要
OSCやMIDIのメッセージを受け取り、搭載されたLEDの光り方を制御できる「雰囲気メガネ」。SuperColliderを用いたサンプルコードを以下に掲載します。
メッセージの仕様については、非公式ではありますが、コチラを参考にしました。
【雰囲気メガネのシミュレータ】http://akamatsu.org/aka/2014/12/28/fun-iki-simulator/
【雰囲気メガネのiOSアプリ】https://itunes.apple.com/jp/app/fen-tong-qimegane/id950982828?mt=8