Skip to content

Instantly share code, notes, and snippets.

#概要

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

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接続について」を参照してください。

@tn800
tn800 / WritingUgen_JP.markdown
Last active January 3, 2019 07:13
SCの公式ヘルプの邦訳+注釈。

#ユニット・ジェネレータを書く

##ユニット・ジェネレータ・プラグインの動作

ユニット・ジェネレータ・プラグインは、サーバーの起動時に読み込まれます。ユニット・ジェネレータ・プラグインは、C++で記述されたライブラリで、直接ロードされます。各ライブラリには、ひとつ、または複数のUGenの定義が含まれています。

プラグインはUGenだけでなく、例えばバッファを満たす("/b_gen”)のようなコマンドも定義することができまこれらは、シンセ・サーバーの起動時に読み込まれるため、プラグインをコンパイルした後は、サーバーを再起動する必要があります。 。 ##The Entry Point:エントリポイント (訳注:エントリポイントは、プログラムを実行するうえで、一番最初に実行される場所のこと。例えばC言語だとmain関数とか。以下の説明は読んでいるだけだと分かりにくいので、下の実際のC++コードを見ながら読むといいです。)ライブラリが読み込まれると、サーバーはPluginLoad()macroに定義されているライブラリの中の関数を呼び出します。このエントリポイントには二つの役割があります:

@tn800
tn800 / test.markdown
Last active August 29, 2015 14:13
UGenのビルド方法、こちらに注釈をつけたものです:https://gist.github.com/maedaunderscore/de6dc8d39f0a603d0ea6

ファイルの置き場所

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

Platform.userConfigDir

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

@tn800
tn800 / seqtest.coffee
Created December 27, 2013 13:26
シーケンスのサンプルをシンプルにしてみた
# 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)
@tn800
tn800 / TimeSignalTest.coffee
Last active January 1, 2016 09:09
test code for CoffeeCollider, time signal.
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()