音響合成用プログラミング環境および言語のsupercolliderの勉強会「Tokyo SuperCollider #11」に初参加しました。
イベントページはこちら。
会場は東京茅場町にあるコワーキングスペースCo-Edoで行われました。当日の風景はこんな感じです。
#tksc11 楽しい!17時までなので飛び入りでもどうぞ。 pic.twitter.com/bUgZzwpTd0
— Craftwife (@Craftwife) 2015, 11月 15
もくじ
2年ぶりの開催
日本のSuperColliderの勉強会は、名古屋では定期的に行われています。(詳しくはこちら)
自分も一度だけ横浜から足を運んで参加したことがあります。ただ、関東圏だと最近開催されておらず、SuperColliderを孤独にいじっていた自分は今回のイベント開催を知ってテンションが上がり、即申し込みをしました。
東京はWEBやスマホ系の言語の勉強会は非常に盛んで毎日のように至る所で行われていますが、こういったメディア系の技術の勉強会はなぜかレアなんですよね。東京はお金になる技術が優先さる傾向があるからでしょうか。名古屋はIAMASが近い影響でこういう勉強会が多いのでは?という説もありますね。
自己紹介タイム
全部で7名の方が参加しました。今回のモデレータの@Craftwifeさんと@moxusさんや@tdshusmさんなど日本でSuperColliderを数人しか使っていなかったころ(15年位前?)から使っているような凄い方々から、私のような使い初めて1年という初心者まで幅広い方が参加されていました。
初心者向け文法のおさらい
希望者がいれば初心者むけの文法についてレクチャー頂けるとのことだったので、私を含めて2名が希望したところ、基礎的な部分を解説頂きました。下のコードをもとに解説頂きました。(~oscHub
については後述します。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
( SynthDef(\sample, {arg freq=440, tempo=1; var src, env, out; //波形 src = Pulse.ar( freq, SinOsc.kr(freq*0.5, 0, 0.3, 0.5) ); //加算、減算 src = src + Saw.ar(freq*0.5); src = src - LFSaw.ar(freq*5); //フィルター src = RLPF.ar(src, freq*2, 0.5); //エンヴェロープ env = EnvGen.kr( Env.perc, Impulse.kr(1), doneAction: 2, levelScale: 0.7 ); //LRの調整 out = Pan2.ar(src*env); Out.ar(0, out); }).send(~oscHub); ) ~oscHub.sendMsg( \s_new, \sample, 7000, 0, 1, ); |
OSCHUBを利用したライブコーディングセッション
OSCHUB
@tdshusmさんが開発を進めているOSCHUBを利用して、みんなでライブコーディングセッションを試みました。
私は完全には理解できていないのですが、OSCHUBとはSuperColliderが出す信号のハブとなり遠隔地にいる人ともライブコーディングセッションができるというかなりワクワクさせるものです。現状誰でも使えます。
これを使えば、遠隔地にいる人が実行したコードが自分のローカルのパソコンでなります。逆に自分が実行すれば相手のパソコンでも鳴っていることになります。
通常SuperColliderをローカルパソコンのみで使う場合は、サーバーを表すのはs
ですが、OSCHUBを通してやり取りする場合は、~oscHub
を使います。なので、上のコードでs
ではなく~oscHub
と書いています。
経験者の方が多かったからかかなり面白い音がたくさん鳴っていて楽しめました。
JITLib
ソースコード自体の共有はまだ対応していないので、JITLibを組み合わせるのがいいのでは?という意見もでました。
NicecastとIcecast
これに関連してネットラジオ用のソフトである有料のNicecastや無料のIcecastについても話題にあがりました。
お悩み相談
ところどころで質問をして経験豊富な方々に答えて頂くことができました。下のような質問がでました。というかほとんどが一番未熟な自分が質問しました。
スポンサーリンク
WEB系の言語と違って入門用の文献が少ないがどう学習をすすめればいいか?
回答
- プログラミング言語自体に抵抗が無い人の場合は、言語の勉強よりもアナログシンセで音を作る仕組みなどを勉強したほうがいいかもしれない。
これについてはたしかになぁと思いました。自分の場合は文法自体はわかるのですが、それをどうすればどのような音になるというのがいまいちわからないので。
作品を作る時は最初に全体を設計してから作るのか、それともいじっているうちに作品になるという感じか?
これについては人それぞれといった感じでした。
回答
- 完全に最初に設計して作る。そうじゃないと道具でできる音しか作れなくなる。
- ある程度はいじっているうちに作品に使える音を発見することもある。ただ、作品に落とし込むタイミングで全体を設計する。
- いじっているうちに作品になっていく。なので、終わりがない。
レコーディングする時にMouseXなどを使っていると終了ボタンをクリックする時に影響してしまうがどのように対処しているか?
これについては自分はよくわかっていないのですが、聞いている感じだと根本的な解決策は未だなさそうでした。
回答
- 録音はハードウェアにつないでやるとか。
- 録音終了コマンドをキーボードショートカットに割り当てるとか。
打ち上げ
終わったあと、時間がある方3名で居酒屋に行き、さくっと打ち上げをしました。SuperColliderやサウンドプログラミングの現状や、大学院でiOSとSuperColliderを組み合わせる研究をされてる方のお話など非常に興味深かったです。
その他に挙がった勉強になった話題
打ち上げで話したことも含まれていますが、個人的に勉強になった話題をあげておきます。
Algorave
Algoraveはイギリスで生まれたライブコーディングなどのイベントでかなり盛り上がってきているようです。今回のモデレータの@moxusさんや@tdshusmさんも出演されています。下は@moxusさんの時の様子です。めちゃくちゃかっこいいっす。
ARTSAT Internet Radio
ARTSAT Internet Radioは@moxusさんが関わっていたプロジェクトで、衛星からのデータをもとに音を生成するネットラジオです。今は聴けなくなっているようですが、非常に興味深いプロジェクトです。
入門用ドキュメント
A Gentle Introduction To SuperCollider
自分が今まで読んだドキュメントのなかでは一番親切に感じました。ただし、文法面や基礎的な使い方のみなので、これをやったからといって思い通りに音が出せるようになるというわけではないと思います。
コード・コンポジション入門
こちらは逆に文法というよりは、音の作り方をメインに解説しています。ただし、非常に残念なことにサンプルコードの文法が古くて動かないので、自分は半分くらいのところで挫折しました。
Nick CollinsのSuperCollider Tutorial
こちらは打ち上げで教えてもらったものです。自分はまだやっていないので、楽しみです。
SuperColliderに同梱されてるSample Code
こちらも打ち上げで教えて頂きましたが、SuperColliderをインストールされたフォルダ内にサンプルコードが入っています。このコードが非常に勉強になったそうです。
imoutoidさんのコード
夭折された音楽家imoudoidさんのコードが勉強になるというお話も伺いましたので、調べてみようと思います。
新たな音響プログラミング環境
Sonic Pi
Sonic PiはシンプルなRubyで書けるので音楽とプログラミングの教育用に期待されているようです。
Overtone
OvertoneはClojureで書けるようです。
どちらもSuperColliderのEngineが使われていて、作者も同じSam Aaronという人です。私としてはRubyに慣れているので、Sonic Piをまず試してみたいなと思います。Rubyの使用者はWEB業界などに非常に多いので、Sonic Piによってサウンドプログラミング自体の普及が期待できるのではないでしょうか。
とはいえ、どちらもSuperColliderのラッパーであるため、制限を感じてしまうこともでてくるかなと推測しています。
スポンサーリンク
会場のCo-Edoについて
私自身は何度か仕事で来たことがあり、多少馴染みのある場所でしたが、このような音響系の勉強会が開催されるのが意外でした。4階奥の会議スペースで行われましたが、ここは多少音を出しても大丈夫なようでこの種の勉強会をやるのに、意外と適しているかもしれません。(もちろん他の使用者さんもいるので常識の範囲内の音量です)しかも、借りるスペースに対してお金がかかるのではなく、来た一人一人がコワーキングスペース利用料である1,000円を払えばよいので、赤字になってしまうプレッシャーは無いので開催者にとってありがたいかもしれません。
まとめ
自分としてはまた開催されるといいなと思っていますが、私のような初級者が話題の中心になってしまうと上級者の方には退屈になってしまう気がしました。WEB系の勉強会だと、初級者はとりあえずこれやれ的なチュートリアル(Rails tutorialとか)をやっておいてもらって、上級者は上級者同士で話を進めるということができます。
でも、SuperColliderに関しては、マニュアルは充実していますが、定番のチュートリアルはなく、とりあえず自分で試行錯誤して動かして使い方を知っていくというかたが多いように感じます。なので、どうしても勉強会となると上級者の方にとっては負担が重く有意義に過ごせなくなってしまう傾向がありそうです。なので、継続していくためには工夫が必要だと思います。
私としては、上級者のかた同士の話も勉強になるので、次回からはなるべく自分の質問は抑えて、なるべく自習しておいついていきたいと思います。