1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
title:: 08
summary:: Mark Polishook tutorial (JP)
categories:: Tutorials>Mark_Polishook_tutorial>Japanese_version
related:: Tutorials/Mark_Polishook_tutorial/00_Introductory_tutorial
section::1つの、ただ1つのUGen
最も簡単なシンセシスのプロセスはただ1つのUGenを実行するものです。例えば、
code::
{ Saw.ar(500, 0.1) }.scope;
::
または
code::
{ Formlet.ar(Saw.ar(22), 400, 0.01, 0.11, 0.022) }.scope
::
です。
様々なUGenのためのSuperColliderのヘルプ・ドキュメントのほとんどがそのような例を示してくれるでしょう。
////////////////////////////////////////////////////////////////////////////////////////////////////
section::マルチ・チャンネルへの拡張
任意のアーギュメント(コントロール)スロットに配列を与えることで、1つのUGenを2チャンネルに拡張できます。
code::
{ Saw.ar([500, 933], 0.1) }.scope;
::
同じことを他の(長い)書き方で書くと次の様になります。
code::
{ [ Saw.ar(500, 0.1), Saw.ar(933, 0.1)] }.scope;
::
////////////////////////////////////////////////////////////////////////////////////////////////////
section::UnaryOpUGenの探求
UGenにメッセージを送ることで、多くのシンセシス・プロセスを生成することができます。UnaryOpsフォルダの中のSuperColliderヘルプ・システムの中に、多くの単項演算に関するヘルプファイルがあります。
////////////////////////////////////////////////////////////////////////////////////////////////////
これを
code::
{ SinOsc.ar(500, 0, 0.5) }.scope;
::
次のものと比較してみて下さい。
code::
{ SinOsc.ar(500, 0, 0.5).distort }.scope;
::
.distortメッセージ(UGenに送られたメッセージ)は単項演算です。.distortメッセージがSinOsc UGenの出力を変調しているのが聞こえるでしょう。これによってより多くのパーシャルが生まれます。
////////////////////////////////////////////////////////////////////////////////////////////////////
質問:.distortメッセージはどこから来ているのでしょうか?
答え:それはAbstractFunctionの中で定義されています。UGenクラスはAbstractFunctionのサブクラスです。原理的には、AbstractFunctionの中で定義されている全てのメソッドがUGenに適用できるはずです。
以下のものを
code::
{ SinOsc.ar(500, 0, 0.5) }.scope;
::
次のものと比較してみて下さい。
code::
// .cubedは単項演算の一つ
{ SinOsc.ar(500, 0, 0.5).cubed }.scope;
::
////////////////////////////////////////////////////////////////////////////////////////////////////
go to link::Tutorials/Mark_Polishook_tutorial/Japanese_version/09::
|