モジュラーシンセとしてのSuperCollider
このページの最下部に各回へのリンク(目次)を追記して、記事内容の一覧が見れるようにしました。記事を書くたびにこのページも更新します。
**********************************
SuperColliderはメチャメチャ自由度の高いシンセです!
思いついたアイデアを何でも試せるモジュラーシンセのような。(と、僕は捉えています。)
こんなことすぐに試せるし・・
(サイン波とノコギリ波の掛け算)
//440Hzのサイン波とノコギリ派を掛け合わせた音を再生します。(Lチャンネルから再生)
{ SinOsc.ar(440) * Saw.ar(440) }.play;
さらにノコギリ波の440のところをMouseX.kr(1, 880)のように書き換えると、掛け算したままマウスのX座標位置によってノコギリ波のピッチが可変します。しかも下は1Hzから上は880Hzまで連続に可変!
{ SinOsc.ar(440) * Saw.ar(MouseX.kr(1, 880)) }.play;
*このコードを再生しながらマウスを動かしてみた音を録音しました。
(実際のコードではLチャンネルだけからの再生ですが添付のwavではLRから聞こえるようにしています。)
ただSuperColliderはテキストベースなので(僕はそれがカッコイイと思うし解りやすいとも思うのですが)人によってはとっつきにくいと感じるかもしれません。それに元々プログラミング言語だという性質上、ネットで情報を調べるとプログラマ向けの書き方のものが多いんですよね。
僕自身は元々プログラマではないということもあり、同じくプログラマではない人がSuperColliderに興味を持ったときに解りやすく読めるような何かを書き残しておけないかなぁと考えてnoteを書くことにしました。
*それでも、日本語でSuperColliderの情報を上げてくださっている方々には本当に本当に感謝しています。少ない日本語での情報はとても有り難く、今でも(古い情報だったとしても)何度も読み返しています。
**********************************
SuperColliderに接するのは初めて、という方は、まずは下記の01〜18の投稿をゆっくり読み進めていくことをオススメします。
各記事へのリンク(都度更新)
01.基本的なこと色々
ダウンロード, ウィンドウ説明, 音を鳴らす/止める, 最大音量, ヘルプ表示
02.コードのつくり
{波カッコ}, ”部品”と”指示”(レシーバ+ドット+指示)
03.フィルター
クラス, メソッド, ローパスフィルター, .dup(2)は!2
04.ちょっとしたこと(Tips?)
複数行のコードを(カッコ)で囲む, コード内にコメントを書く
05.変数
変数は箱, 箱に名前をつけるときはvarを使う
06.エンベロープ
s.meter, s.plotTree, arとkr, パラメータ名付きでパラメータを書く
07.作った音色をシーケンスする:前編
SynthDef, Synth, function, arg
08.作った音色をシーケンスする:後編
Pbind, Pseq, note, midinote, arg, midicps, doneAction, .newの省略
09.SuperColliderのゲート(ノートON/OFF)
arg gate=1, 休符は\, legato, sustain, doneAction
10.SuperColliderのパンニング(マルチチャンネル)
Pan2, Splay, s.meter, s.scope, Mix
11.SuperColliderでオーディオファイル(wav/aiff)を鳴らす
Buffer.read, PlayBuf.ar, BufRateScale.kr, .midiratio, ~(チルダ)で作る変数
12.SuperColliderのバスとエフェクト
Bus, In, Pfx, FreeVerb, GVerb, Comb, Allpass, Delay
13.SuperColliderでモジュレーション
poll, Line, XLine, add, WhiteNoise, Blip, PMOsc, Formant, LFNoise, neg
14.SpuerColliderの出音を録音する
record, stopRecording, makeWindow, 録音ファイルのフォーマット変更
15.ひとつの波形からバリエーションを作る(SuperCollider)
cubed, fold2, clip, abs, LeakDC, squared, round
Signal.sineFill()追記と、 Buffer.sine1(), Buffer.sine2()
Env.new().asSignal(自作波形をオシレータとして鳴らす)
16.Extensions(SC3の機能拡張)
SC3 Plugins
17.SimpleMIDIFileとQuarks(SC3の機能拡張)
VOSCで自作Wavetableをモーフィングする(SuperCollider)
気の利いたオシレーター(SyncSaw, VarSaw, SinOscFB, PMOsc, COsc)
18.サーバブートって?(SuperCollider内部構造)
SuperColliderからMIDIOutで外部音源(Juno106)を鳴らす
SoundIn と Shaper(と、オーディオデバイスの切替え方)