3.1.2 Volume

3.1.2.1 Theory

3.1.2.1.1 Measurement

The next parameter of a sound we'll look at is its volume. Traditionally, volume in music is notated using dynamic markings like pianissimo, piano, mezzoforte, etc. Their use is subjective and variable depending on the instrument. In physics, which is what Pd uses as a model for this parameter, volume is represented with objective values in deciBel or root mean square values. Both units are comparable to MIDI numbers and frequencies for pitches. DeciBel (dB) reflect what we hear, where an 'octave' in volume corresponds to 6 dB. The scale ranges from 0 to 130 dB - where a value of between 15 and 20 dB is absolute silence and anything over 120 dB is capable of causing serious hearing damage. After 130 dB we perceive sound only as pain. Root mean square values (rms), like frequencies, do not correspond to what we hear, but are logarithmic values between 0 and 1, where 0 corresponds to 0 dB and 1 to 100 dB. rms refers to the geometric mean calculated from a series of amplitude values. These numbers are first squared, then the average is taken (by adding all values and dividing by the number of elements), and then the square root of this average is taken. The rms value for an audio signal is first calculated using a portion of the audio signal that lasts specific duration; for a heavily fluctuating signal like a pitch frequency, it gives you an idea of the average signal amplitude. The following objects can be used to convert from one to the other in Pd:

pianissimo, piano, mezzoforte

전통적으로 볼륨은 이런이름으로 단계를 정의했었는데, 악기에 따라 조금씩 다양한 단계가 존재했다. 물리적으로 보면, 피디에서 이 런 모델을 사용하는데, DeciBel 이라는 객체값으로 볼륨을 재현하거나 root means spuare values(rms)값으로 재현한다. 둘 단위 다 6 dB에 부합한다. 0에서 130 데시벨 범위 그러니까 15에서 20dB사이는 절대적으로 조용하고, 120dB 보다 큰 값은 듣는 것에 손상을 야기할 수 있는 크기다.

130 dB 이후는 우리는 고통으로서 소리를 지각한다. rms 단위는 프리퀀시 처럼 우리가 듣는 것과 일치하지 않는다. 그러나 0에서 1사이의 로그함수적 값이다. 그것은 0이 0데시벨과 일치하고, 1을 100데시벨을 의미하고... rms 는 진폭의 값들의 다발으로 계산하는 기하학적 방법ㅂ들을 참고한다. 이 숫자들을 처음에는 제곱하고, 다음에는 평균을 내고, (모든 값들을 더하고 요소들의 갯수로 나누는) 그런다음 평균값의 제곱근을 취한다. 오디오 신호에 있어 rms 값은 처음 특정기간에 지속되는 오디오 시그날의 부분을 사용하여 처음으로 계산되어졌다. 피치주파수 같이 엄청나게 요동치는 신호를 위해, 그것은 너에게 신호의 증폭의 평균을 준다. 다음 오브젝트는 그 두 단위의 변환을 가능하게 하는 오브젝트들이다.

The volume of a vibration is determined by its amplitude, which is the degree to which the membrane is displaced outwards or inwards with respect to the neutral position at rest (the zero position). The greater the membrane's movement, the louder we perceive a sound to be. A representation on an axis looks like this:

진동의 볼륨은 진폭에 의해 결정된다. 스피커의 막도 앞뒤로 포지셔닝 하는 정도가 그것에 의해 결정되고. 스피커 앞뒤 운동이 클수록 소리를 크게 인지하게 된다.

It cannot be emphasized enough: until this is sent to the speaker with the help of the "dac~" object, Pd works only with numbers. If a sound is quiet, this means that the numbers do not span the full range from -1 to 1, but are instead confined to a more restricted range around the zero position, say, between -0.5 and 0.5. This can be accomplished in a patch by multiplying the numbers generated by the "osc~" object by a certain factor:

You can use this method to set the volume to any level from absolute silence to as loud as possible (which depends on the speakers and the amplifier you're using, of course).

You could also attach a slider using HSlider (PutHSlider) and setting its range from 0 to 1 (cf. Chapter2.2.2.3.2and2.2.4.3.4):

However, moving this slider quickly will result in disruptive sounds. This is because a signal (calculated in samples) clashes with control processing (calculated in milliseconds). If this is only a matter of a few numbers as previously with the factors 0, 0.1, 0.4, 0.7, and 1, this is irrelevant, but beyond a certain speed this can play a significant role. To avoid this problem, you have to replace the control connection with a signal pendant. Use the "sig~" object to convert:

This ensures that the numbers generated by the oscillator (44100 numbers/sec) and those generated by the factor ("sig~" converts them into exactly 44100 numbers/sec) are synchronized. N.B.: if a signal is attached to the "*~" object's right inlet, the object must not have an argument: if you were to enter an argument (like 0.5, as used previously) the object would assume that its right input was control data.

오실레이터에서 (1초의 44100 숫자) 숫자를 제너레이터 하고, 그것들을 sig 는 그들을 정확하게 44100 숫자를 1초에 동시에 변환한다.

To create a crescendo or a decrescendo, you have to use "line~":

라인을 사용해서 점점크게, 점점작게 크레센도, 디크레센도를 만들어봐라

Here's an elegant way to use a slider as a volume regulator ("Potentiometer"):

This executes a small crescendo/decrescendo between every step. Filling in steps with intermediate values in this way is called "interpolation" (as already seen with pitches in Chapter2.2.3.2.3).

You can calculate the volume of a given sound using "env~", which gives the volume in dB as output. You must always define a span of time in which this average value is to be calculated; its argument is given in samples (this number is usually a power of 2):

또한 주어지는 볼륨을 env 오브젝트를 이용하여 계산할수 있다. 그것은 볼륨을 데시벨로 계산해준다. 너는 항상 평균값들이 계산되어지는 것 안에서의 시간간격을 정의해야한다. 그것의 인수는 샘플에서 주어진다.

The conversion intorms...

... makes it clear that factors between 0 and 1 are not to be confused with rms values between 0 and 1.

확실히 해야하는 건 원래 볼륨값의 0에서 1이랑 rms값의 0에서 1사이 값이랑 혼동하면 안된다.

As already mentioned, humans' aural perceptions of volume and pitch do not correspond with the measurements in physics (as observed in the paired diagrams for pitches by frequency and interval). A simple trick for creating a more linear crescendo or decrescendo is to square the values:

이미 말했지만 소리의 크기나 피치 같은 사람의 청각적 인식은 물리적 계산과 일치하지 않는다.

다음은 간단한 소김수 같은데 더 선적인 느낌의 점점크게, 그리고 점점 작게 하는 방법이다. 제곱을 이용해서.

One should try out all the various possibilities, however. In the end, the way that the volume increases or decreases is a compositional decision. What exactly constitutes a "volume octave" cannot be objectified in the same way as pitch.

There is a GUI-object in Pd for visualizing amplitude: the VU meter (PutVU). It takes a dB value as input. However, it works like a traditional mixing board: 100 dB is shown as 0 dB and deviations above or below this are shown in the positive or negative range, respectively. You have to take this into account when entering the input. Simply subtract from the "env~" object's output:

하나 해봐야하는데, 볼륨을 증가하고 감소하는 방법은 작곡의 결정이다. 볼륨옥타브를 정확하게 구성하는것은 피치의 방법과 같이 취급될수 없다.

그래서 그 증폭을 시각화해주기 위해 피디에서는 GUI 오브젝트가 있다. VU meter.
그것은 데시벨값을 인풋으로 취하고 그러나 전통적인 믹싱보드같이 100데시벨을 0데시발이라고 보여지고, 그 기준 위아래를 포지티브 네가티브 범위로 표시한다.

Then the VU shows changes in volume graphically. (VUis short for "volume").

In Pd-extended, you can also use the "pvu~" object for the VU meter conversion:

피디 익스텐드에서 너는 pvu~ 오브젝트도 vu meter변환기로 사용할수 있다.


3.1.2.1.2 Problems

Another important thing: amplitudes above 1 and below -1 will be 'clipped'. If "dac~" sends the speaker a value outside the range of 1 to -1, the membrane simply stays at the furthest extreme.

다른 중요한점이 증폭이 -1 과 1사이 영역을 벗어나게 되었을때... 만약 dac 가 범위를 넘어서는 값을 보내면, 스피커 막은 출력을 내지 못함. 그 이후의 범위의 값은 클립핑 되는데, 이런 현상을 overdrive라고 한다.

Increasing the volume of a sound to the point of 'clipping' results in an effect calledoverdrive.

Another problem occurs when the speaker membrane has to span a large interval suddenly (e.g., when you turn on a sound); the result is a "click":

This is especially noticeable when the sound itself exhibits very smooth membrane movement, as with a sine tone. The "jolt" is easy to see in this illustration:

A "jolt" is usually a movement that is faster than 30 ms. To avoid this click, therefore, you need to build what's called a "ramp", i.e., a very fast crescendo at the beginning and end:

또다른 문제는 스피커 막이 갑자기. 사인웨이브를 켰을 때처럼 갑자기 큰 진폭의 소리를 스피커가 발생시켜야 할때 부담을 느끼게 되는데.

거칠게 움직이다는 뜻의 jolt는 30밀리세컨드보다 빨리 파형이 바뀔때를 정의하는 말이다. 그래서 너는 빠른 크레센도를 일컫는 ramp를 소리의 시작과 끝에 적용해야한다.


3.1.2.1.3 Phase

In Pd, you can also set membrane position for a sound wave where it should begin (or where it should jump to). This is called the_phase_of a wave. You can set the phase in Pd in the right inlet of the "osc~" object with numbers between 0 and 1:

피디에서 너는 사운드웨이브의 시작점을 지정함으로서 스피커막의 포지션을 지정할 수 있다. 너는 피디에서 페이즈를 세팅할 수 있다. 피디에서 osc~ 의 오른쪽 인렛으로 0~1사이의 숫자를 이용해서 주기의 시작을 지정할 수 있다.

A wave's entire period is encompassed by the range from 0 to 1. However, it is often spoken of in terms of degrees, where the entire period has 360 degrees. One speaks, for example, of a "90 degree phase shift". In Pd, the input for the phase would be 0.25.

A phase shift doesn't have much effect on what we hear. We'll return to this concept later, however.


3.1.2.1.4 Sound waves are additive

Let's say you have these two oscillators:

... and you connect them to "dac~". You'd get this:

Due to the multiplicative factor, the individual waves only go from -0.5 to 0.5. Taken together, however, they cover a range from -1 to 1 and have a more complex form. This is because sound waves areadditive. Simply stated: all vibrations occur in the same air. This additive quality also entails cancellations. Opposed waves, where one is "moving backwards" while the other is "moving forwards" cancel one another out. This is what happens when vibrations that have the same frequency are 180 degrees out of phase:

요소들이 곱해지는 연유에서 각각의 웨이브들이 -0.5에서 0.5로 세팅되어야한다. 그러나 두개를 다 취하기 위해 -1에서 1사이로 범위를 지정하면, 더 복잡한 형태가 된다. 이것은 사운드 웨이브가 더해지는 성질 때문이다. 간단하게 말하면, 모든 진동은 같은 공기에서 발생한다. 또한, 이 더해지는 방식은 취소를 수반한다. 웨이브와 반대로, 앞으로 가는 것과 뒤로 가는 것 사이에 취소가 발생하여 흡수된다. 이것은 같은 주파수를 가진 진동이 주기와 180도 바뀌었을때 발생한다.

When many sound sources are involved, we usually have to multiply the total sound by a suitable factor to avoid exceeding the limits of 1 and -1:

In this case, both oscillators are simply attached to a multiplication object. This automatically adds them (whenever several signals are given to an object as input, they are first added, then processed according to the object) before carrying out the multiplication.


results matching ""

    No results matching ""