Last active
July 28, 2021 11:03
-
-
Save yotamorimoto/2330304 to your computer and use it in GitHub Desktop.
fx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| エフェクト作り | |
| ライディーンのイントロ・フレーズをつくる | |
| ( | |
| // ハイハットのようなパーカッション | |
| // out 引数を用意 | |
| SynthDef(\prc, {| out=0, amp=0.1 | | |
| var sig, env; | |
| env = EnvGen.kr(Env.perc(0, 0.08), 1, amp, doneAction: 2); | |
| sig = WhiteNoise.ar; | |
| sig = sig * env; | |
| Out.ar(out, sig); | |
| }).add; | |
| //コーラス効果(モノラルの音に広がりを与える) | |
| // out 引数を用意 | |
| SynthDef(\chorus, {| out=0 | | |
| var sig; | |
| // モノラル入力を得る | |
| sig = In.ar(out, 1) * 0.5; | |
| // ディレイをかけ、FSinOsc によって遅れ値の変更を自動化 | |
| // 引数については DelayC のヘルプを参照 | |
| sig = DelayC.ar(sig, 1, FSinOsc.kr(0.25, [0, pi]).range(0.02, 0.03), 0.5, sig); | |
| // 元の信号を上書する | |
| ReplaceOut.ar(out, sig); | |
| }).add; | |
| ) | |
| 注1:配列による表記の簡易化 | |
| SC では配列によって複数の信号を表現できる | |
| 上の FSinOsc の2番目の引数:位相に配列が渡されることで | |
| sig = In.ar ではモノラルだった信号が配列の数だけ展開される | |
| つまり下の2行が | |
| sig = DelayC.ar(sig, 1, FSinOsc.kr(0.25, 0).range(0.02, 0.03), 0.5, sig); | |
| sig = DelayC.ar(sig, 1, FSinOsc.kr(0.25, pi).range(0.02, 0.03), 0.5, sig); | |
| 1行で表現できる | |
| sig = DelayC.ar(sig, 1, FSinOsc.kr(0.25, [0, pi]).range(0.02, 0.03), 0.5, sig); | |
| 下の例を聴き比べる | |
| { SinOsc.ar([400, 405], mul: 0.1) }.play;//ステレオ | |
| { SinOsc.ar(400, mul: 0.1) }.play;//モノラル | |
| 注2:.range メッセージについて | |
| UGen クラスから派生したオブジェクト (SinOsc, DelayC など殆どの音処理に関するオブジェクト) は | |
| .range(min, max) メッセージによって値の範囲を変更できる | |
| 本題に戻ります | |
| ライディーン最初のフレーズ | |
| ( | |
| // テンポ変更 bpm 142 くらいでしょうか | |
| TempoClock.default.tempo = 142/60; | |
| Pbind(\instrument, \prc, | |
| \dur, Pseq([0.5, 0.25, 0.25], inf), | |
| \amp, Pseq([0.3, 0.13, 0.13], inf) | |
| ).play; | |
| ) | |
| モノラルで左側からだけ鳴る | |
| ( | |
| // Pfxb はパターンにエフェクトをかける | |
| // Pfxb(パターン、エフェクト名) | |
| ~prcA = Pfxb( | |
| Pbind(\instrument, \prc, | |
| \dur, Pseq([0.5, 0.25, 0.25], inf), | |
| \amp, Pseq([0.3, 0.13, 0.13], inf) | |
| ), | |
| \chorus | |
| ).play; | |
| ) | |
| モノラルにコーラス効果がかかります | |
| エフェクトを直接 prc のシンセ定義に組み込むこともできますが、 | |
| Pfxb の利点はエフェクトをモジュール化し再利用できるようにすることです | |
| 実践 | |
| Filter エフェクトをつくる | |
| SC にはたくさんのフィルターがあります | |
| Filter.allSubclasses.do(_.postln);//ポストウィンドウを見ます | |
| 上の中からヘルプファイルを参照し音色をかえるエフェクトをつくり | |
| prc シンセにエフェクトをかける | |
| また FSinOsc.kr(0.25, [0, pi]).range() を使いフィルターの変化を自動化する |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment