SuperColliderでクラスを作る時のメモ

普段はPHPerになってしまった私がSuperColliderのクラスを書こうとした時に詰まったポイントのメモ。基本、ドキュメントを読まずにObjectクラスのソースを読んでお作法を知ろうと思ったのだけど、意外とハードル高かった。

準備

拡張子は.scで、下記のディレクトリーに置いて、メニューの [ Language > Recompile Class Library ] を選択。

/Libraries/Application Support/SuperCollider/Extensions/

コンパイルに失敗したらエラーが表示されるので、ひたすらエラーを潰す。

継承

スーパークラスの指定はコロンでOK

MyClass : SomeSuperclass {

}

スーパークラスを指定しないと、暗黙的にObjectクラスを継承したことになる

メソッド名にアスタリスク( * )が付くものがある

アスタリスクが付くものはクラスメソッドで、thisがクラスを指す。アスタリスクがつかないものはインスタンスメソッドで、thisがインスタンスを指す。分かりにくいぜ

メソッド内にキャレット( ^ )があるけど何だこれ

returnでした。分かりにくいぜ

returnしない場合は、インスタンスが返されるので、書かなくても動く。

変数の前の大なり小なり( <, > )は何だ

< がゲッター、> がセッターでした。分かりにくいぜ

MyClass : Superclass {
  var myVariable;

  variable {
    ^myVariable
 }

  variable_ { arg newValue;
    myVariable = newValue;
  }
}

本来このようにゲッターとセッターを書かないといけないところを、、、

MyClass {
var <getMe, >setMe, <>getMeOrSetMe;
}

短く書けるよ!ということらしい。

ちなみに変数も var と classvar があり、前者はインスタンス変数、後者はクラス変数。クラス変数は他の言語だと定数と似た扱いなのかな?

このあたりの解説はヘルプの Guides/Writinglasses に書いてあって、詳しくはデザインパターンでググれって書いてあるので、デザインパターンについて勉強しないといかんっぽい。仕事でも必要になるし、勉強するか〜

Kyoto SuperCollider Meeting #0001 参加してきました

SuperColliderユーザーがゆるっと集まって情報交換するKyoto SuperCollider Meeting #0001が開催され、参加してきました。

セミナー形式ではなく、雑談メインのゆるい会でしたが、やはりユーザーが集まると情報の入り方が違います。いろいろいい情報が手に入ってとても有意義な会でした。参加者の年齢層もいろいろでした。

こんな話題で盛り上がりました

  • Raspberry PiにSuperColliderをインストールする
  • SuperColliderでできることとは
  • なぜSuperCollider(というかCUIで音楽すること)は流行らないのか
  • iPadのLemurアプリからOSCメッセージを使ってSuperColliderをコントロールする実演
  • 参加者の自作コードの披露(自分のはgistにアップしました https://gist.github.com/umbrellaprocess/5475886
  • 今後の展開、Kyoto SuperCollider Users Groupでやりたいこと(まだヒミツ)
  • などなど

参加者おすすめの参考書籍

日本語で音響合成プログラミングについて知るには、残念ながらSuperColliderではないですが、こちらの書籍がおすすめということです。

現実世界の音の再現を、考え方から詳細に解説。コードはPDですが、SuperColliderでサンプルを書きなおしたサイトもあります:Designing Sound in SuperCollider

[amazonjs asin=”0262014416″ locale=”US” tmpl=”Small” title=”Designing Sound”]

そしてもちろんSuperCollider Bookはマスト。

次回について

まだ未定だと思います。メンバーへの周知方法についても少し相談したのですが、いまいち決まりきらなかったので、私が把握したらSuperCollider.jpにお知らせ書くようにしますので、チェックしておいてください。

SuperColliderのコードリーディングのブログが始まったようです

昨年に公開した曲で使っているSuperColliderのコードについて、otonotricks(@tonetron)さんにブログで詳細に解説していただいてます。

SuperColliderコードリーディング 「Stacked Chord Loop by umbrella_process」 その1

↑ SynthDefで行なっているダウンサンプリングエフェクトなど解説。ダウンサンプリングは今どき、どのシーケンサーソフトでもデフォルトで入っているようなメジャーなエフェクトだと思いますが、それぞれの音でばらばらに、かつランダムにパラメーターを変化させながら、となるとやはりプログラミング言語が圧倒的に有利です。

SuperColliderコードリーディング 「Stacked Chord Loop by umbrella_process」 その2

↑ シーケンサー部分について。

取り上げてくださってありがとうございます。嬉しいです。曲はここで聞けます。

今後のコードリーディングにも期待大ですね!

さて、2012年は会社を立ち上げたりしたせいで相変わらず音楽制作から離れた日々を送っておりますが、SuperColliderにIDEがついてからこの効率の良さに助けられてちょっと戻ってきています。解説されているのはコード進行を既存の音楽理論にとらわれずに自動生成することを考えて作ったコードですが、今はドラムパターンの自動生成に取り組んでいます。

2012年マイ・ベスト・トラック

ちょっと前に2011年のベストアルバムをブログに書いたところなのに、もう1年経ってしまうとは…。今年も作業のお供に色んな曲を買って聴き倒しましたので、TOP10をまた選んでみました。今年はアルバム単位ではなく曲単位で選んでみました。

2011年はUKFにハマった年でしたが、今年はHospital Recordscivil musicにハマった年でした。世界にはまだまだ魅力あふれるダンスミュージックがあるんですなぁ…。今年は浮遊感のあるドラムンベース、落ち着いた低音が魅力的な曲、ちょっとコレまでとは違うダブステップ、を色々探しました。ブロ・ステップにちょっと胸焼け気味なので…。ワブルベースは若干聞き飽きた感が…。

1. Starkey – Thugs

年末にはじめて知ったStarkey。特にこの曲は聞いた瞬間ヘッドフォンの音量を上げざるを得なかった。印象的なピアノのイントロから始まり、魅力的なベースライン、スペーシーなシンセが入り、カッコイイドラムが入る…。ううむ、言葉で書いたら何故こんなにありきたりなんだろう!音はこんなに衝撃的なのに。

from Orbits

2. Frederic Robinson – Laughing at Clouds

こんなに繊細で複雑なビート、いったいどういう頭の中になってたら作れるんでしょうね…。天才的です。

from Hospitality Drum & Bass 2012

3. Submerse – Always, Like This

Submerseの曲で一番好きです。Submerseもっと売れてほしいなぁ。

from Blood Pressure

続きを読む 2012年マイ・ベスト・トラック

アニメ ヨルムンガンド 感想など

2009年に7巻の感想を書いていたヨルムンガンド、今年はアニメ化されて、これがなかなかいいできだった。

全体的に原作準拠で絵作りも声優さんの演技もトータルで素晴らしかったんですけど、サントラがよかったですね。Her name is Koko, she is loco, I said “Oh, No” のラップがウケた “Time to Attack” 、『滅びの丘』の全編で印象的に使われた “Meu mundo amor”、ナイト・ナイン戦のバックにかかったワブルベース全開のイケイケトラック “F○○k It!” など、個性の強い音楽がストーリーにマッチしてましたね。でもセリフにかぶせてラップ入りの曲を流すのはやり過ぎかなと…。フランス語が分からないからまだマシだったけど、分かったら全くセリフが頭に入ってこなかったと思う。しかし、劇伴調の曲からロック、ダンス、民族音楽まで一人でこなす岩崎琢という作曲家はすごすぎる…。

以下完結したストーリー全体の感想など…。ネタバレです。

続きを読む アニメ ヨルムンガンド 感想など