From 257c9ce32c0e02da12b988950e875ef1a3c88ea7 Mon Sep 17 00:00:00 2001 From: Cor <83723320+logic-finder@users.noreply.github.com> Date: Thu, 18 Nov 2021 11:11:47 +0900 Subject: [ko] Translation done of 'Controlling multiple parameters with ConstantSourceNode' document (#2815) * translate the below document. Controlling multiple parameters with ConstantSourceNode * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * translation modified Co-authored-by: SoHyun Park * overall modification Co-authored-by: SoHyun Park --- .../index.html | 118 ++++++++++----------- 1 file changed, 59 insertions(+), 59 deletions(-) (limited to 'files/ko/web/api/web_audio_api') diff --git a/files/ko/web/api/web_audio_api/controlling_multiple_parameters_with_constantsourcenode/index.html b/files/ko/web/api/web_audio_api/controlling_multiple_parameters_with_constantsourcenode/index.html index 5fdd188213..8a2e4c82f0 100644 --- a/files/ko/web/api/web_audio_api/controlling_multiple_parameters_with_constantsourcenode/index.html +++ b/files/ko/web/api/web_audio_api/controlling_multiple_parameters_with_constantsourcenode/index.html @@ -1,5 +1,5 @@ --- -title: Controlling multiple parameters with ConstantSourceNode +title: ConstantSourceNode로 다수의 매개변수 제어하기 slug: Web/API/Web_Audio_API/Controlling_multiple_parameters_with_ConstantSourceNode tags: - Audio @@ -13,29 +13,29 @@ tags: ---
{{APIRef("Web Audio API")}}
-

This article demonstrates how to use a {{domxref("ConstantSourceNode")}} to link multiple parameters together so they share the same value, which can be changed by setting the value of the {{domxref("ConstantSourceNode.offset")}} parameter.

+

이 글은 다수의 매개변수가 같은 값을 공유하도록 매개변수들을 함께 연결하기 위해 어떻게 {{domxref("ConstantSourceNode")}}를 사용하는지를 설명합니다. 이 값은 {{domxref("ConstantSourceNode.offset")}} 매개변수의 값을 설정함으로써 변경될 수 있습니다.

-

You may have times when you want to have multiple audio parameters be linked so they share the same value even while being changed in some way. For example, perhaps you have a set of oscillators, and two of them need to share the same, configurable volume, or you have a filter that's been applied to certain inputs but not to all of them. You could use a loop and change the value of each affected {{domxref("AudioParam")}} one at a time, but there are two drawbacks to doing it that way: first, that's extra code that, as you're about to see, you don't have to write; and second, that loop uses valuable CPU time on your thread (likely the main thread), and there's a way to offload all that work to the audio rendering thread, which is optimized for this kind of work and may run at a more appropriate priority level than your code.

+

간혹 다수의 오디오 매개변수들이 같은 값을 공유할 수 있도록, 심지어 값이 어떤 방법으로 변경되는 동안일지라도, 연결시켜두고 싶을 때가 있습니다. 예를 들자면, 한 세트의 오실레이터들이 있고, 이 두 개가 하나의 설정 가능한 볼륨을 공유할 필요가 있거나, 특정한 입력에 적용되나 모든 입력에는 적용되지 않는 필터가 있을 수도 있습니다. 반복문을 사용하여 각각의 영향받는 {{domxref("AudioParam")}}의 값을 한번에 하나씩 변경할 수도 있겠지만, 여기에는 두 가지 문제점이 있습니다. 첫째는, 곧 보게 되겠지만, 작성할 필요가 없는 추가적인 코드의 작성입니다. 그리고 둘째는, 그 반복은 스레드 (메인 스레드일 가능성이 높음) 의 소중한 CPU 시간을 사용합니다. 이런 작업을 이에 최적화되어 있으며 여러분의 코드보다 더욱 적합한 우선도에서 실행할 수 있는 오디오 렌더링 스레드에 넘길 수 있는 방법이 있습니다.

-

The solution is simple, and it involves using an audio node type which, at first glance, doesn't look all that useful: {{domxref("ConstantSourceNode")}}.

+

그 해결책이란 간단한데, 바로 첫눈에는 그다지 유용해 보이지 않는 오디오 노드 유형 {{domxref("ConstantSourceNode")}}을 사용하는 것입니다.

-

The technique

+

기법

-

This is actually a really easy way to do something that sounds like it might be hard to do. You need to create a {{domxref("ConstantSourceNode")}} and connect it to all of the {{domxref("AudioParam")}}s whose values should be linked to always match each other. Since ConstantSourceNode's {{domxref("ConstantSourceNode.offset", "offset")}} value is sent straight through to all of its outputs, it acts as a splitter for that value, sending it to each connected parameter.

+

이 방법은 듣기엔 어려워 보이지만 사실은 굉장히 쉽습니다. {{domxref("ConstantSourceNode")}}를 생성하고 항상 일치하는 값을 갖도록 연결된 모든 {{domxref("AudioParam")}}에 이 노드를 연결합니다. ConstantSourceNode의 {{domxref("ConstantSourceNode.offset", "offset")}} 값은 모든 출력으로 바로 전달되므로, 이 노드는 그 값을 각각의 연결된 매개변수에 보내는 스플리터 역할을 합니다.

-

The diagram below shows how this works; an input value, N, is set as the value of the {{domxref("ConstantSourceNode.offset")}} property. The ConstantSourceNode can have as many outputs as necessary; in this case, we've connected it to three nodes: two {{domxref("GainNode")}}s and a {{domxref("StereoPannerNode")}}. So N becomes the value of the specified parameter ({{domxref("GainNode.gain", "gain")}} for the {{domxref("GainNode")}}s and pan for the {{domxref("StereoPannerNode")}}.

+

아래의 그림은 이 과정이 어떻게 작동하는지 보여줍니다. 입력값 N은 {{domxref("ConstantSourceNode.offset")}} 속성의 값으로 설정됩니다. ConstantSourceNode는 필요한 만큼 많은 출력을 가질 수 있습니다. 아래 그림의 경우, ConstantSourceNode를 세 개의 노드에 연결했습니다. 두 개의 {{domxref("GainNode")}}와 {{domxref("StereoPannerNode")}}입니다. 그래서 N은 명시된 매개변수의 값이 됩니다 ({{domxref("GainNode")}}의 {{domxref("GainNode.gain", "gain")}}, {{domxref("StereoPannerNode")}}의 pan).

-

Dagram in SVG showing how ConstantSourceNode can be used to split an input parameter to share it with multiple nodes.

+

어떻게 ConstantSourceNode가 입력 매개변수를 다수의 노드에 공유하기 위해 사용될 수 있는지를 보여주는 SVG 그림.

-

As a result, every time you change N (the value of the input {{domxref("AudioParam")}}, the values of the two GainNodes' gain properties and the value of the StereoPannerNode's pan propertry are all set to N as well.

+

그 결과로써, N (입력 {{domxref("AudioParam")}}의 값) 이 바뀔 때마다, 두 개의 GainNodegain 속성의 값 그리고 StereoPannerNodepan 속성의 값은 모두 N으로 또한 설정됩니다.

-

Example

+

예제

-

Let's take a look at this technique in action. In this simple example, we create three {{domxref("OscillatorNode")}}s. Two of them have adjustable gain, controlled using a shared input control. The other oscillator has a fixed volume.

+

실제 사용 예제를 살펴 봅시다. 이 간단한 예제에서는 세 개의 {{domxref("OscillatorNode")}}를 만들었습니다. 두 개는 공유된 입력 슬라이더를 사용해 제어되는 조정 가능한 gain을 가지고 있습니다. 나머지 오실레이터 하나는 고정된 볼륨을 가지고 있습니다.

HTML

-

The HTML content for this example is primarily a button to toggle the oscillator tones on and off and an {{HTMLElement("input")}} element of type range to control the volume of two of the three oscillators.

+

이 예제의 HTML 코드는 주로 오실레이터의 음색을 켜고 끄기 위한 버튼과 세 개 중 두 개의 오실레이터의 볼륨을 조절하기 위한 range type의 {{HTMLElement("input")}} 요소입니다.

<div class="controls">
   <div class="left">
@@ -50,8 +50,8 @@ tags:
   </div>
 </div>
 
-<p>Use the button above to start and stop the tones, and the volume control to
-change the volume of the notes E and G in the chord.</p>
+<p>음을 재생하고 정지하기 위해 위의 버튼을, +그리고 화음 E와 G의 볼륨을 변경하기 위해 볼륨 슬라이더를 사용하세요.</p>