3.4.1.2 Playback of saved sound

Sound files that are on an external storage device like a hard disk can be read - that is, played back - in Pd with "readsf~". As with "writesf~", you use the messages "start" and "stop" (you could also use "1" and "0"). Enter the number of channels as the argument. The rightmost output sends a bang when the end of a file is reached.

하드 디스크같이 외장저장소에 있는 사운드 파일들은 읽어올 수 있다. 그리고 그것은 뒤로 재생되기도 한다. 피디에서 readsf~... 사용해서.... writesf~로 너는 시작 멈춤(1이나 0)의 메세지를 사용한다. 변수에 채널의 숫자를 넣고, 가장 오른쪽 아웃렛에 뱅을 달고, 파일이 끝에 다달했을때 뱅이 표시된다.

patches/3-4-1-2-play-file.pd

Let's look at the control level for 'array': let's say you have an array with 10 storage places. You can use "tabread" to read every one of these places:

콘트롤레벨에서 너가 10개의 저장 공간이 있는 어레이를 가져싿고 하면, tabread로 모든 곳의 값을 읽을 수 있다.

patches/3-4-1-2-read-array1.pd

The principle is basically the same for signals, except that you have to receive the saved values at a rate of 44100 numbers per second. That's why there is "tabread~". If you want to, say, play a sound stored in an array that lasts 1.5 seconds (= 66150 samples), you have to read the array values from 0 to 66149 at a rate of 44100 values a second. You can do this with "line~":

이 원리가 소리신호에도 같이 적용된다. 근데 소리신호는 1초에 44100의 숫자의 값드로 저장된다는 것만 다르다. 그래서 탭리드 뒤에 틸트를 붙이는 것. 너가 어레이에 저장된 사운드를 재생시키길 원한다면(1.5초 짜리 그러니까 66150 샘플들로 이루어진 사운드) 너는 영부터 66149의 어레이의 값들을 일초에 44100값을 불러오는 비율로 읽어와야한다. 너는 이것을 line~ 을 사용해서 가능하게 할수 있다.

patches/3-4-1-2-read-array2.pd

탭리드는 변수로서 어레이이름을 받는다. 너는 너가 읽고 싶은 어레이 이름을 세팅한다. 혹은 메세지로 set [어레이이름]도 가능

지금 너는 값들을 재생시킬수 있다. 혹은 두배의 시간동안 재생할수도 있다.

This cuts the playback speed in half. This causes everything to sound an octave lower because the time stretching makes all the soundwaves twice as long, which means their frequencies will be cut in half and thus sound an octave lower.

This leads the problem that every single sample you use needs to be played twice or else there will be gaps. To avoid this problem, there is a modified form of the "tabread~" object called "tabread4~", which interpolates intermediate values that it generates using information from the values that ultimately precede and follow it. (More specific information on this function is available at3.4.4.) In most cases, "tabread4~" is more suitable for reading arrays. This requires a readout spectrum from 1 to n - 2, where 'n' is the size of the array you want to read.

플레이백 스피드를 반으로 설정하면, 한옥타브 낮은 사운드가 발생한다. 왜냐하면 시간이 사운드웨이브에서 두배의 길이로 늘어나서. 그 말은 그들의 주파수가 반으로 잘리고, 소리는 한 옥타브 낮게 만들어진다.

너가 사용하는 모든 샘플들이 두배 혹은 세배로 플레이되고 거기에 차이가 발생하기때문에 문제가 된다.이것을 피하기 위해서 tabread4~ 오브젝트가 tabread~ 의 오브젝트의 형식을 수정한다. 그리고 그것은 궁극적으로 따라올 값들의 정보를 이용하여 발생시키는 중간값들을 삽입시키면서(평균내면서) 형식을 수정한다. 대부분의 경우 tabread4~는 어레이를 읽는데 더 적합하다. 이것은 1에서 n-2까지(n 사이즈의 어레이를 읽기를 원한다면)의 스팩트러음 읽어내는것을 요구한다.

Of course, you could also play something back faster, which would raise the frequency:

Later, when granular synthesis is explained, you'll learn how to alter tempo and pitch independently.

Playing a sample backwards is naturally also a possibility:

뒤로 감으면서 재생하는 것도 자연스럽게 가능하고

You could also use the "phasor~" object:

"phasor~" generates a series of numbers between 0 and 1 as a signal. If you multiply these values by 66148, you get a series of numbers from 0 to 66148. Enter 0.75 for the frequency so that the series occurs in exactly 1.5 seconds.

Another possibility would be to create your own array for the arrangement of the readout and use it to play back the first array:

페이저 오브젝트를 사용할수도 있는데

페이저는 0에서 1까지의 숫자들의 다발을 발생시키는데, 너가 66148의 값들을 곱하면, 너는 0에서 66148의 숫자다발을 얻게된다. 0.75라는 수를 페이저의 주파수에 넣으면, 그 숫자들의 다발들은 정확히 1.5초동안 발생한다.

다른 가능성은 플레이백하는데 사용할 읽어 들일 값들의 정돈되 어레이를 너가 만들어 낼 수도 있다. 페이저의 대안으로 어레이를 만들 수 있다.

patches/3-4-1-2-read-array3.pd

Or you could use an array to control the amplitude:

어레이로 소리의 진폭을 제어 할 수도 있다.

Or to control the frequency:

어레이로 소리의 진폭을 제어 할 수도 있다.

Once again you can see: we're using only numbers to control various parameters.

You can use as many "tabread~" objects as you like to read from the same array. However, you should never use two arrays with the same name, as it will almost certainly lead to errors.

results matching ""

    No results matching ""