blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

supercolliderのドキュメントの見方

SuperCollider、結構楽しいです。 PureDataとかよりも記号で書けるのがいいですね。 あとサーバとクライアントのシステムがとても素敵です。

しかしながら、新しいプラットフォーム、新しいプログラミング言語を覚えるのはとてもツライですね。 何がツライかって、どこの文書を見たら何が解決できるかわからないところですね。

グローバル変数sを調べる

supercolliderのクライアント側であるsclangを起動すると、 グローバル変数sだけに”何か”インスタンスが入っています。 実際に次のコードを実行するとわかります。

[ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o
      , p, q, r, s, t, u, v, w, x, y, z].do({ |i| i.postln; });

さて、sとはなんでしょうか? そこで次のコードを実行します。

s.class.postln;

そうすると次の様にでます。

Server

Serverと出ました。 instance.classとはリフレクションと言われるオブジェクト指向言語によくある機能で、 インスタンスの所属に関する情報を得ることができます。 さて、Serverとはなんぞや、と。 ここでドキュメントを引いてみます。

class.openHelpFile

ここで次を実行してみましょう。

Server.openHelpFile;

画面がでて、Serverクラスの情報が調べられるようになりました。 変数の中にaddrがあったので、見てみます。

s.addr.postln;

すると次の様にでます。

a NetAddr(127.0.0.1, 57110)

つまり、このグローバル変数sというのはSuperColliderのデフォルトのサーバ(scsynth) を表しているインスタンスが格納されていたんですね。

misc

他にもいくつかインスタンスやクラスの情報を確認できる機能があるので、試してみてください。 というか、自分用のmemoです。 classを好きなクラス名に置き換えて呼んでください。

Help.gui;
class.browse;
class.dumpAllMethods;
class.dumpInterface;
class.dumpFullInterface;
class.instVarNames;
class.classVarNames;
class.classVars;

上記のメッセージを使って基底クラスObjectをよく調べてみると、 SuperColliderのことをよく理解できそうな気がします。 (自分も使い始めて一週間くらいなので、しっかり理解しないといけない。)

参考URL