File: 10.schelp

package info (click to toggle)
supercollider 1%3A3.10.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 45,496 kB
  • sloc: cpp: 283,513; lisp: 74,040; ansic: 72,252; sh: 23,016; python: 7,175; makefile: 1,087; perl: 766; java: 677; yacc: 314; lex: 175; ruby: 136; objc: 65; xml: 15
file content (102 lines) | stat: -rw-r--r-- 3,254 bytes parent folder | download | duplicates (7)
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
title:: 10
summary:: Mark Polishook tutorial (JP)
categories:: Tutorials>Mark_Polishook_tutorial>Japanese_version
related:: Tutorials/Mark_Polishook_tutorial/00_Introductory_tutorial

section::減算合成とフィルターの使用

減算合成の基本的な考え方はコーヒーをいれることに似ています。つまり、最終的に必要ない成分をフィルターを通じて取り除くということです。

////////////////////////////////////////////////////////////////////////////////////////////////////

次の様に.dumpClassSubtreeメッセージをFilterクラスに送ることで、SuperCollider 3のほとんど全てのフィルターのリストが得られます。

code::
Filter.dumpClassSubtree;
::

classtree::Filter

SuperColliderのヘルプ・システムでHelp/UGens/Filtersを調べることでもフィルターのヘルプ・ファイルをみることができます。ヘルプ・ファイルの全てにはそれぞれのフィルターがどのように動作するのかを示す素晴らしい例があります。

////////////////////////////////////////////////////////////////////////////////////////////////////

ヒント:次の様にObjectクラスに.dumpClassSubtreeメッセージを送ることで

code::
Object.dumpClassSubtree;
::

SuperColliderのそれぞれの単独のクラスのリストが表示されます。

////////////////////////////////////////////////////////////////////////////////////////////////////

LPF(ローパス・フィルター)を使って入力ソースから高い周波数成分を減算します。

code::
(
SynthDef("subtractive", {
	Out.ar(
		0,
		LPF.ar(
			Pulse.ar(440, 0.5, 0.1),	// フィルターをかけるソース
			Line.kr(8000, 660, 6)		// フィルターの周波数をLineでコントロールする
		)
	)
}).add;
)

Synth("subtractive")
::

////////////////////////////////////////////////////////////////////////////////////////////////////

RLFP(レゾナント・ローパス・フィルター)は、高い周波数成分を取り除き、フィルターの(カットオフ・ポイントの)周波数を強調するためによく使います。

code::
(
SynthDef("passLowFreqs2", {
	Out.ar(
		0,
		RLPF.ar(
			Saw.ar([220, 221] + LFNoise0.kr(1, 100, 200), 0.2),
			[LFNoise0.kr(4, 600, 2400), LFNoise0.kr(3, 600, 2400)],
			0.1
		)
	)
}).add;
)

Synth("passLowFreqs2")
::

////////////////////////////////////////////////////////////////////////////////////////////////////

Rezonzはとても、とても、とても強力なフィルターです。特定の周波数帯域を強調する時に使います。

カットオフが非常にシャープなためにノイズをピッチに変えてしまいます。

code::
(
SynthDef("noiseToPitch", { arg out = 0, mul = 1;
	Out.ar(
		out,
		Resonz.ar(
			WhiteNoise.ar(mul),
			LFNoise0.kr(4, 110, 660),
			[0.005, 0.005]
		)
	)
}).add;
)

(
// 左右のチャンネルをアクティブ化する
Synth("noiseToPitch", [\out, 0\mul, 1]);
Synth("noiseToPitch", [\out, 1, \mul, 1]);
)
::

////////////////////////////////////////////////////////////////////////////////////////////////////

go to link::Tutorials/Mark_Polishook_tutorial/Japanese_version/11::