SuperCollider
では、OSCコマンド(Server Command)でreleaseさせるにはどうすればよいのだろう? と前回書いたのだが、もう少しまとめる。というよりもっと前にも書いていた。今回含め3回も書くぐらいだし、releaseは重要なのだ。 releaseするには、大きく分けると、 set…
saw strings その名の通りSaw.arを使えばできるだろうと思いググると、 まずオシレーターには通常のこぎり波や細いパルス波など倍音成分が多い波形を用います。最初に述べた通りこれらのオシレーター波形はストリングス系の楽器に近い倍音分布を持っています…
yoppaさんのなかなか良いサンプルができたのSynthDefがとてもきれいで感動した。RLPFのcutoff frequencyをLFNoiseで動かしているのだけど、右と左でcutoffの周期が違うので立体感が増すように感じる。こんな風に作れたらなぁ。。 今回作ったもの SynthDef yo…
難しいやり方はググった方が早い。ひとまずざっくりとblendと録音をしてみる。 blend blend (argAnotherEnv, argBlendFrac: 0.5)でブレンドされたEnvが返る。実際に使うときはEnvGenのenvelopeに入れる。 例 ~e = Env.perc(2,level:0.5); ~e_delay2 = ~e.del…
var note = [63,61,69,64]; note.sort;と書けばnoteはソートされるのであるが、ソート中のnoteは見ることも聞くこともできない。聞く価値があるのか・ソート中の配列に芸術的な価値があるのか、は神棚に上げておくとし、ひとまずバブルソートしているときの…
Scaleを使ってハノン練習曲 第1番(=ドミファソラソファミ〜♪)をプログラミングしてみる。 分析 degrees(度数)*1を[0,2,3,4,5,4,3,2]に固定してプログラミングしたい。ということでどのスケールを使うか検討する。 まず「ドミファソラソファミ」はメジャー…
純正音程の完全四度は振動比が3:4である。たとえば、MIDIノートの60(振動数およそ261[Hz]、中央ド)の純正音程版の完全四度は、261×(4/3) = 348となる。なので、完全四度をずっと堆積することは基準の振動数(周波数)に4/3を乗算し続ければ良い。良いのではあ…
きっかけ 次のコードを選択して実行するとエラーになる。 コード1 var aa; aa = 1; var bb; bb = 1 + aa; エラー ERROR: syntax error, unexpected VAR, expecting $end in file 'selected text' line 3 char 3: var bb; ^^^ bb = 1 + aa; ----------------…
電話番号のような文字列からハイフンを取り除き、一文字ずつ数字にしたものを要素として持つ配列を返す関数を作ろうとしたらエラーで泣いたので整理する。泣いている暇があったらドキュメントをしっかり読もう。 基本 .inspectで型*1を調べることができる。'…
音を止めるには、Synth Nodeに対して gate=0を投げてreleaseさせる freeする 以外にもありそうだが、今のところ知っているのはこの二つである。 Synth NodeというかSynth NodeのNodeID Synth Nodeには一意のIDが振られている。よって、NodeIDを指定してしま…
Envelopeにてgate=0でreleaseを作動させるには、SynthDefのargにgateを設定し、なおかつEnvGenにgateを渡す必要がある。これを怠ると、当然ながら.set(\gate,0)と実行しても音は止まない。 doneAction:2と設定していると、gateを0にしreleaseが終わったタイ…
Busを介して音を出す、はずであった。作ったコードのoBusやiBusでそれらしいことをしたつもりである。しかし、どちらかというと //use one bus ( ~b1 = Bus.audio(s,1); {Out.ar(0,In.ar(~b1,1))}.play; {Out.ar(~b1,SinOsc.ar(440))}.play; ) //use two bus…
どうも音が籠もってしまう。かといってハイパスだとシャリシャリ感が邪魔である。 目的の音とは違うが、waveの音は冷蔵庫から鳴る低音に近い。 コード ( SynthDef(\kanki, { |cfreq = 388,amp=0.4| var noise,wave,out; noise = RLPF.ar(BrownNoise.ar(0.5),…
Pseqに限らずPrandとかPbrownでも.asStream付けるとRoutineになる。PatternをRoutineの中で使うときに重宝する、のだろうか? なお、Patternに加えてEnvも.asStream付けてRoutine化することが可能。 コード ///////////////////////////////// //Routine ( ~…
TaskかRoutineを用いて書いてみたかったけれども、思いつかなかったのでPtparを用いて書いてみた。 いつか「カエルの歌 無限輪唱」を書きたい。 PtparとPpar Ptparはtime offset付きでparalell実行するPattern Pparはtime offset無しでparalell実行するPatte…
TaskとRoutine .waitを使って時間を制御したい場合、TaskやRoutineを使う。Taskの特徴は一時停止・再開できること。一方Routineの特徴は、一時停止・再開は出来ないが.yieldが使えることである。ということで、Task・Routineで使えそうに見えるメッセージに…
昨日の復習がてら、キックとハイハットを作る。カーブの値(curve:-10))をいじると音が結構変わるもんだ。どうやったらセンスや勘所を掴めるのだろう・・・。 コード //キック ( SynthDef(\kick,{ var env = EnvGen.ar(Env(levels:[100,200,60,0],times:[0.01…
Envに慣れる Envでエンベロープを作る。Envのargumentはlevelsの配列やtimesの配列、curveのシンボル、などを取る。timesを省略すると、1!(levelsの配列).size - 1がtimesに指定され、curveを省略すると\linが指定される。 なお、.plotを付けるとエンベロー…
Mix.fillのargumentsはnとfunction。このfunctionは(0..n-1)の値を取るカウンターを引数として受け取る。0から始まる点に注意。 なお、SC3だとMix.arFill == Mix.krFill == Mix.fillである。 コード例 ( var num = 5; {Mix.fill( num, { arg i; i.postln;//-…
http://supercollider.github.io http://tokyosupercollider.blogspot.jp https://github.com/tksupercollider/Meetup_SuperCollider_Studies http://ryukau.blogspot.jp/