Last active
January 14, 2019 13:01
-
-
Save yotamorimoto/2261233 to your computer and use it in GitHub Desktop.
シンセ作り
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
| ドラムのハイハットをシンセで作る | |
| SynthDef オブジェクトでシンセサイザーをつくる | |
| SynthDef の引数は | |
| SynthDef(シンセの名前, 関数).add; // .add で定義をサーバに送る | |
| シンセの名前は String オブジェクト "I am SuperCollider" など | |
| あるいは Symbol オブジェクト \iamSuperCollider などを使って書く | |
| Symbol は空白を使えない | |
| () 内を選択後、実行 | |
| ( | |
| SynthDef("hat", { | amp=0.1 | | |
| var sig; | |
| sig = WhiteNoise.ar; | |
| sig = sig * amp; | |
| Out.ar(0, sig); // 音の出力先、0が最初(ステレオの場合の左チャンネル) | |
| }).add; | |
| ) | |
| Synth("hat"); // Synth オブジェクトで鳴らす | |
| ( | |
| SynthDef(\hat, { | amp=0.1 | | |
| var sig; | |
| sig = WhiteNoise.ar; | |
| sig = HPF.ar(sig, 8000); // ハイパスフィルターを加える | |
| sig = sig * amp; | |
| Out.ar(0, sig); | |
| }).add; | |
| ) | |
| Synth(\hat); // 8000Hz 以下の低い音が消える | |
| ( | |
| SynthDef(\hat, { | amp=0.1 | | |
| var sig, env; | |
| // パーカッション的な音の減衰を作る | |
| env = EnvGen.kr(Env.perc(0, 0.03), doneAction: 2); | |
| sig = WhiteNoise.ar; | |
| sig = HPF.ar(sig, 8000); | |
| sig = sig * amp * env; | |
| Out.ar(0, sig); | |
| }).add; | |
| ) | |
| Synth(\hat); // 短い音 | |
| エンベロープについて | |
| 音のアタックや減衰をつくる | |
| Env.perc(0, 0.03).plot; // パーカッション的な音の減衰 | |
| doneAction: 2 によってシンセが終了後、リソースを自己解放する | |
| ( | |
| SynthDef(\hat, { | amp=0.1, pan=0 | | |
| var sig, env; | |
| env = EnvGen.kr(Env.perc(0, 0.03), doneAction: 2); | |
| sig = WhiteNoise.ar; | |
| sig = HPF.ar(sig, 8000); | |
| sig = sig * amp * env; | |
| sig = Pan2.ar(sig, pan); // 左右の音の位置を決める | |
| Out.ar(0, sig); | |
| }).add; | |
| ) | |
| シンセに引数をわたす | |
| Synth(\hat, [pan: 0]); // ステレオの中央 | |
| Synth(\hat, [pan: -1]); // ステレオの左 | |
| Synth(\hat, [pan: 1]); // ステレオの右 | |
| 実践 | |
| SynthDef の WhiteNoise を置換えたシンセをつくり、鳴らす |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment