aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/api/baseaudiocontext/createperiodicwave/index.html
blob: ac48d4576cd75222b09b2dd77eccebfd45720f98 (plain)
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
---
title: BaseAudioContext.createPeriodicWave()
slug: Web/API/BaseAudioContext/createPeriodicWave
tags:
  - API
  - Audio
  - AudioContext
  - BaseAudioContext
  - Media
  - Method
  - Reference
  - Web Audio API
  - createPeriodicWave
browser-compat: api.BaseAudioContext.createPeriodicWave
---
<p>{{ APIRef("Web Audio API") }}</p>

<p>{{ domxref("BaseAudioContext") }} 인터페이스의 <code>createPeriodicWave()</code> 메서드는 {{domxref("PeriodicWave")}}를 생성하기 위해 사용되는데, 이는 {{ domxref("OscillatorNode") }}의 출력을 형성하기 위해 사용될 수 있는 주기적인 파형을 정의하기 위해 사용됩니다.</p>

<h2 id="Syntax">문법</h2>

<pre
	class="brush: js">var wave = <em>AudioContext</em>.createPeriodicWave(<em>real</em>, <em>imag</em>[, <em>constraints</em>]);</pre>

<h3 id="Returns">반환</h3>

<p>{{domxref("PeriodicWave")}}.</p>

<h3 id="Parameters">매개변수</h3>

<dl>
	<dt><code>real</code></dt>
	<dd>코사인 항의 배열 (전통적으로 A 항).</dd>
	<dt><code>imag</code></dt>
	<dd>사인 항의 배열 (전통적으로 B 항).</dd>
</dl>

<p><code>real</code><code>imag</code> 배열은 같은 길이를 가져야만 합니다. 그렇지 않으면 오류가 발생됩니다.</p>

<dl>
	<dt><code>constraints</code> {{optional_inline}}</dt>
	<dd>정규화(normalization)가 비활성화되어야 하는지를 명시하는 dictionary 객체입니다 (만약 명시되지 않으면, 기본적으로 정규화는 활성화 됩니다.) 이것은 하나의 프로퍼티를 취합니다:
		<ul>
			<li><code>disableNormalization</code>: 만약 <code>true</code>로 설정되면, 정규화는 주기파에 대해 비활성화 됩니다. 기본값은 <code>false</code>입니다.</li>
		</ul>
	</dd>
</dl>

<div class="note">
	<p>만약 정규화되면, 결과 파동은 최고 절대값(maximum absolute peak value) 1을 가지게 됩니다.</p>
</div>

<h2 id="Example">예제</h2>

<p>다음의 예제는 단순한 사인파를 포함하는 {{domxref("PeriodicWave")}} 객체를 생성하기 위한 <code>createPeriodicWave()</code>의 간단한 사용을 보여줍니다.</p>

<pre class="brush: js">var real = new Float32Array(2);
var imag = new Float32Array(2);
var ac = new AudioContext();
var osc = ac.createOscillator();

real[0] = 0;
imag[0] = 0;
real[1] = 1;
imag[1] = 0;

var wave = ac.createPeriodicWave(real, imag, {disableNormalization: true});

osc.setPeriodicWave(wave);

osc.connect(ac.destination);

osc.start();
osc.stop(2);</pre>

<p>이는 정의에 의해 오직 기본음을 포함하는 소리가 사인파이기 때문에 작동합니다.</p>

<p>여기서, 우리는 두 값과 함께 <code>PeriodicWave</code>를 생성합니다. 첫번째 값은 oscillator가 시작하는 값인 DC 오프셋입니다. 여기서 0은 좋은데, 왜냐하면 우리는 곡선을 [-1.0; 1.0] 범위의 중간에서 시작하기를 원하기 때문입니다.</p>

<p>두번째와 그 다음의 값은 사인과 코사인 요소입니다. 여러분은 이것을 시간 도메인 값으로부터 주파수 도메인 값을 얻는 푸리에 변환의 결과로 생각할 수 있습니다. 여기서, <code>createPeriodicWave()</code>와 함께, 여러분은 주파수를 명시하고, 브라우저는 oscillator의 주파수에 대한 시간 도메인 버퍼를 얻기 위해 역 푸리에 변환을 수행합니다. 여기서, 우리는 오직 기본음의 전체 볼륨 (1.0)에서의 한 요소만을 설정했으므로, 우리는 사인파를 얻습니다.</p>

<p>푸리에 변환의 계수는 <em>오름</em>차순으로 주어져야만 하고
	(예: <math>
		<semantics>
			<mrow>
				<mrow>
					<mo>(</mo>
					<mrow>
						<mi>a</mi>
						<mo>+</mo>
						<mi>b</mi>
						<mi>i</mi>
					</mrow>
					<mo>)</mo>
				</mrow>
				<msup>
					<mi>e</mi>
					<mi>i</mi>
				</msup>
				<mo>,</mo>
				<mrow>
					<mo>(</mo>
					<mrow>
						<mi>c</mi>
						<mo>+</mo>
						<mi>d</mi>
						<mi>i</mi>
					</mrow>
					<mo>)</mo>
				</mrow>
				<msup>
					<mi>e</mi>
					<mrow>
						<mn>2</mn>
						<mi>i</mi>
					</mrow>
				</msup>
				<mo>,</mo>
				<mrow>
					<mo>(</mo>
					<mrow>
						<mi>f</mi>
						<mo>+</mo>
						<mi>g</mi>
						<mi>i</mi>
					</mrow>
					<mo>)</mo>
				</mrow>
				<msup>
					<mi>e</mi>
					<mrow>
						<mn>3</mn>
						<mi>i</mi>
					</mrow>
				</msup>
			</mrow>
			<annotation encoding="TeX">\left(a+bi\right)e^{i} , \left(c+di\right)e^{2i} ,
				\left(f+gi\right)e^{3i}   </annotation>
		</semantics>
	</math>etc.) 양이거나 음일 수 있습니다. 수동으로 이러한 계수들을 얻는 간단한 방법은 (최고의 방법은 아니지만) 그래프 계산기를 사용하는 것입니다.</p>

<h2 id="Specifications">Specifications</h2>

{{Specifications}}

<h2 id="Browser_compatibility">Browser compatibility</h2>

<p>{{Compat}}</p>

<h2 id="See_also">See also</h2>

<ul>
  <li><a href="/en-US/docs/Web/API/Web_Audio_API/Using_Web_Audio_API">
      Using the Web Audio API</a></li>
</ul>