axjack's blog

### axjack is said to be an abbreviation for An eXistent JApanese Cool Klutz ###

SuperCollider

releaseの方法 in depth

では、OSCコマンド(Server Command)でreleaseさせるにはどうすればよいのだろう? と前回書いたのだが、もう少しまとめる。というよりもっと前にも書いていた。今回含め3回も書くぐらいだし、releaseは重要なのだ。 releaseするには、大きく分けると、 set…

saw stringsを作って余韻(release)の伸びを確かめる

saw strings その名の通りSaw.arを使えばできるだろうと思いググると、 まずオシレーターには通常のこぎり波や細いパルス波など倍音成分が多い波形を用います。最初に述べた通りこれらのオシレーター波形はストリングス系の楽器に近い倍音分布を持っています…

do-loopのネスト

yoppaさんのなかなか良いサンプルができたのSynthDefがとてもきれいで感動した。RLPFのcutoff frequencyをLFNoiseで動かしているのだけど、右と左でcutoffの周期が違うので立体感が増すように感じる。こんな風に作れたらなぁ。。 今回作ったもの SynthDef yo…

Envのblendと録音

難しいやり方はググった方が早い。ひとまずざっくりと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は見ることも聞くこともできない。聞く価値があるのか・ソート中の配列に芸術的な価値があるのか、は神棚に上げておくとし、ひとまずバブルソートしているときの…

ハノン練習曲 第1番

Scaleを使ってハノン練習曲 第1番(=ドミファソラソファミ〜♪)をプログラミングしてみる。 分析 degrees(度数)*1を[0,2,3,4,5,4,3,2]に固定してプログラミングしたい。ということでどのスケールを使うか検討する。 まず「ドミファソラソファミ」はメジャー…

純正音程の完全四度堆積

純正音程の完全四度は振動比が3:4である。たとえば、MIDIノートの60(振動数およそ261[Hz]、中央ド)の純正音程版の完全四度は、261×(4/3) = 348となる。なので、完全四度をずっと堆積することは基準の振動数(周波数)に4/3を乗算し続ければ良い。良いのではあ…

ERROR: syntax error, unexpected VAR, expecting $end を追う

きっかけ 次のコードを選択して実行するとエラーになる。 コード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を指定してしま…

gateを0にしてreleaseする

Envelopeにてgate=0でreleaseを作動させるには、SynthDefのargにgateを設定し、なおかつEnvGenにgateを渡す必要がある。これを怠ると、当然ながら.set(\gate,0)と実行しても音は止まない。 doneAction:2と設定していると、gateを0にしreleaseが終わったタイ…

Busの練習

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にasStreamを付けるとRoutineになる

Pseqに限らずPrandとかPbrownでも.asStream付けるとRoutineになる。PatternをRoutineの中で使うときに重宝する、のだろうか? なお、Patternに加えてEnvも.asStream付けてRoutine化することが可能。 コード ///////////////////////////////// //Routine ( ~…

Ptparでカエルの歌を輪唱する

TaskかRoutineを用いて書いてみたかったけれども、思いつかなかったのでPtparを用いて書いてみた。 いつか「カエルの歌 無限輪唱」を書きたい。 PtparとPpar Ptparはtime offset付きでparalell実行するPattern Pparはtime offset無しでparalell実行するPatte…

TaskやRoutineで時間制御する

TaskとRoutine .waitを使って時間を制御したい場合、TaskやRoutineを使う。Taskの特徴は一時停止・再開できること。一方Routineの特徴は、一時停止・再開は出来ないが.yieldが使えることである。ということで、Task・Routineで使えそうに見えるメッセージに…

Envでキックとハイハットを作る

昨日の復習がてら、キックとハイハットを作る。カーブの値(curve:-10))をいじると音が結構変わるもんだ。どうやったらセンスや勘所を掴めるのだろう・・・。 コード //キック ( SynthDef(\kick,{ var env = EnvGen.ar(Env(levels:[100,200,60,0],times:[0.01…

Envでキックを作る

Envに慣れる Envでエンベロープを作る。Envのargumentはlevelsの配列やtimesの配列、curveのシンボル、などを取る。timesを省略すると、1!(levelsの配列).size - 1がtimesに指定され、curveを省略すると\linが指定される。 なお、.plotを付けるとエンベロー…

Mixの使い方

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;//-…

supercolliderの参考資料

http://supercollider.github.io http://tokyosupercollider.blogspot.jp https://github.com/tksupercollider/Meetup_SuperCollider_Studies http://ryukau.blogspot.jp/

axjack is said to be an abbreviation for An eXistent JApanese Cool Klutz.