음악, 삶, 개발

4. (T) Sound synthesis and signal processing 본문

개발 공부/EMASD Vol.1 with Max 7

4. (T) Sound synthesis and signal processing

Lee_____ 2020. 9. 7. 03:21

SOUND SYNTHESIS AND SIGNAL PROCESSING

음악에서 컴퓨터를 사용함으로써 작곡가와 뮤지션은,

음향 악기로는 상상할 수 없는 정밀도와 자유로 사운드를 관리하고 조작할 수 있습니다.

컴퓨터 덕분에 이제 상상할 수있는 모든 방식으로 사운드를 모델링할 수 있습니다.

전통적인 악기로 작업하는 전통적인 작곡가는 소리를 사용하여 작곡하는 반면,

전자 작곡가는 소리를 직접 작곡한다고 말할 수 있습니다.

애니메이션 그래픽에서도 똑같은 일이 일어났습니다.

컴퓨터 덕분에 이제는 매우 사실적인 이미지와 영화 시퀀스를 만들 수 있으며, 다른 방법으로는 제작할 수 없었을 것입니다.

거의 모든 영화 특수 효과는 이제 컴퓨터로 제작됩니다.

육체와 피의 배우들과 화면을 공유하는 가상 개체를 찾는 것이 보편화되고 있습니다.
이러한 새로운 가능성은 아날로그 세계에서 디지털 세계로 옮겨 간 결과입니다.

디지털 세계는 숫자의 세계입니다.

이미지 나 소리가 일련의 숫자로 변환되면 숫자가 컴퓨터에 의해 쉽고 효율적으로 분석되고 조작되기 때문에,

이러한 숫자는 변형 될 수 있습니다.

데이터 항목 (텍스트, 소리, 이미지)을 일련의 숫자로 변환하는 것으로,

정확하게 정의 된 디지털화 과정은 이 모든 것을 가능하게 하는 기술입니다.

이 텍스트는 사운드 합성과 신호 처리라는 두 가지 주제에 중점을 둡니다.


Sound synthesis

사운드 합성은 사운드의 전자 생성을 의미합니다. 

실제로 사운드 생성 가능성은 선택한 몇 가지 매개 변수를 기반으로하며,

이러한 매개 변수를 조작하여 원하는 음질을 얻을 수 있습니다.


Signal processing

이 문맥에서 신호 처리는 녹음된 기타의 사운드 든,

특정 유형의 사운드 합성을 사용하여 생성된 사운드 든,

사운드의 전자적 수정을 의미합니다.


DIGITAL SYNTHESIS OF SOUND

사운드 합성 및 신호 처리를 위해 설계된 프로그래밍 언어를 사용하여 

사운드를 생성할 때 자체 설계의 "가상 머신"을 구성하고

이를 수행하는 일련의 명령을 지정하여 원하는 사운드를 지정합니다.

기계가 소리를 만드는 데 사용합니다.

이 명령 시퀀스를 작성하면 사용 중인 프로그래밍 언어 (예 : Max)가 명령을 실행하여 

지정된 사운드 또는 사운드의 모든 특성이 렌더링 되는 디지털 데이터 스트림을 생성합니다..

이 디지털 데이터 스트림이 생성되는 시간과 실제로 소리를 듣는 시간 사이에 또 다른 기본적인 작업이 발생합니다.

컴퓨터의 오디오 인터페이스는 디지털 데이터를 증폭기와 라우드 스피커에 공급될 때 사운드를 생성하는 전기 신호로 변환합니다.

즉, 오디오 인터페이스는 디지털 데이터를 아날로그 전압으로 변환하여 ( "D / A 변환"으로 약칭하는 프로세스)

디지털 데이터 스트림으로 표현되는 사운드를 들을 수 있도록 합니다. (그림 1.1).

그림 1.1

또한 데이터 스트림을 오디오 파일로 하드 디스크에 캡처하여 

알고리즘 처리 결과를 원하는 만큼들을 수 있습니다. 

데이터 스트림이 처리되는 동안 오디오 인터페이스로 직접 이동하여 합성된 사운드의 처리와 청취 사이에 

몇  밀리 초 만 있으면 실시간 합성을 말합니다.

사운드 처리가 처음에 완전히 계산되어 오디오 파일 (나중에들을 수 있음)에 저장될 때 비 실시간 또는 오프라인 합성에 대해 말합니다. (이 맥락에서 후자는 기술적인 용어는 아니지만 널리 사용됩니다.)

그림 1.2


SIGNAL PROCESSING

신호 처리는 예를 들어 마이크를 통해 라이브 소스 또는 컴퓨터에 이미 저장된 기존 오디오 파일에서 생성된 사운드를 

수정하는 작업입니다. 

다양한 방법으로 신호 처리가 가능합니다. 세 가지 가능성이 있습니다.

 

- 오프라인에서 처리되는 사운드 파일로, 별도로 저장된 기존 사운드

 

예를 들어, 플루트의 소리는 오디오 인터페이스에 연결된 마이크를 사용하여 디스크에 녹음되어 아날로그에서 디지털로 변환됩니다.

원본 오디오 파일에 적용할 음향 수정 사항을 지정하는 알고리즘을 구현합니다.

이 프로그램을 실행하면 현재 수정된 플루트 사운드가 포함된 새 오디오 파일이 생성됩니다.

그런 다음 오디오 인터페이스를 통해 파일을 재생하여 언제든지 처리된 사운드 파일을 들을 수 있습니다.

그림 1.3

 

- 실시간으로 처리되는 사전 녹음된 사운드

 

첫 번째 예에서와 같이 컴퓨터에 이미 녹음 된 사운드는 기존 사운드 파일에서 스트리밍 됩니다. 

처리 프로그램은 스트리밍 된 사운드 파일을 수정하는 명령을 실행하는 동안 

처리된 사운드 파일을 청취를 위해 오디오 인터페이스로 직접 라우팅 합니다. 

이 프로그램은 실시간으로 처리되지만 그림 1.4에서와 같이 나중에 듣기 위해 결과 스트림을 오디오 파일에 녹음할 수도 있습니다.

그림 1.4

- 즉시 처리되는 실시간 사운드

 

사운드는 라이브 소스에서 나옵니다. 

앞의 예에서와 같이 명령을 실행하는 처리 프로그램은 처리된 사운드를 오디오 인터페이스로 직접 라우팅합니다.
물론이 경우에도 프로그램은 그림 1.5와 같이 처리 된 사운드를 오디오 파일로 녹음할 수 있습니다.

그림 1.5

DSP 시스템은 사운드 처리 및 / 또는 합성을 가능하게 하는 통합 하드웨어 및 

소프트웨어 시스템 (컴퓨터, 오디오 인터페이스, 프로그래밍 언어)으로 정의됩니다. 

DSP라는 용어는 디지털 신호 처리의 약자입니다.


REALTIME VERSUS OFFLINE PROCESSING

합성과 신호 처리가 모두 실시간 또는 오프라인에서 발생할 수 있음을 확인했습니다. 

언뜻 보기에 더 가치 있는 접근 방식은 실시간으로 보입니다.

이 방법은 즉각적인 피드백과 평가 중인 알고리즘의 적합성을 평가할 수 있는 기회를 제공할 뿐만 아니라 

필요한 경우 코드를 조정하고 조정할 수 있기 때문입니다. 

그러면 처리를 오프라인 상태로 연기함으로써 어떤 원인이 제공됩니까?
첫 번째 이유는 간단합니다. 

복잡성으로 인해 컴퓨터가 실시간으로 실행할 수 없는 알고리즘을 구현하는 것입니다. 

예를 들어 컴퓨터가 1 분의 사운드를 합성하거나 처리하는 데 2 ​​분의 시간이 필요한 경우 

처리가 완료되면 중단 없이들을 수 있도록 결과를 디스크에 기록하는 것 외에는 대안이 없습니다.  
컴퓨터 음악의 초기에는 실시간 계산을 위한 처리 능력이 존재하지 않았기 때문에

합성과 효과를 위해 수행된 모든 처리가 오프라인으로 수행되었습니다.

컴퓨터의 성능이 향상됨에 따라 일부 처리를 실시간으로 직접 수행할 수있게되었고

시간이 지남에 따라 개인용 컴퓨터의 처리 능력이 엄청나게 증가하여 대부분의 합성 및 처리를 실시간으로 수행 할 수 있게 되었습니다.

그러나 컴퓨팅 성능이 계속 증가함에 따라 새로운 가능성이 계속해서 상상되고 있으며

그중 일부는 너무 복잡하여 오프라인에서만 달성할 수 있습니다.

오프라인 처리의 필요성은 결코 사라지지 않을 것입니다.
또한 두 번째 이유가 있습니다. 

개념적으로는 컴퓨터의 성능과 관계없이 오프라인 인 처리 범주입니다. 

예를 들어 악기의 음악 사운드 시퀀스가 ​​주어진 경우 먼저 시퀀스를 단일 음표로 분리 한 다음 해당 음표를 

가장 낮은음에서 가장 높은음으로 정렬하는 알고리즘을 구현하려면 다음을 수행해야 합니다. 

이 처리는 오프라인입니다. 

이 알고리즘을 실현하려면 먼저 전체 시퀀스가 ​​필요합니다. 

대부분 컴퓨터가 분석할 수 있는 방식으로 오디오 파일에 녹음됩니다. 

그런 다음 알고리즘은 완료될 때까지 가장 낮은 음표, 그다음 가장 낮은 음표 등을 분리할 수 ​​있습니다. 

이러한 종류의 분석은 전체 시퀀스가 ​​완료된 후에 만 ​​오프라인으로 만 수행할 수 있습니다. 

이런 종류의 알고리즘을 실시간으로 처리할 수 있는 컴퓨터 (즉, 악기가 시퀀스를 연주하는 동안)는 

미래를 볼 수 있을 만큼 강력한 컴퓨터가 될 것입니다!
비 실시간 처리의 마지막 장점은 시간을 절약할 수 있다는 것입니다! 

처음에 생각했던 것과는 달리 실시간 처리는 가능한 가장 빠른 컴퓨팅 속도가 아닙니다. 

예를 들어, 특정 처리 유형을 사용하여 10 분짜리 사운드 파일을 수정할 수 있다고 상상할 수 있습니다. 

이 수정이 실시간으로 발생한다면 당연히 10 분이 걸리겠지만 

우리 컴퓨터 가이 처리를 1 분 안에 오프라인으로 렌더링 할 수 있는 충분한 전력을 가지고 있다고 상상할 수도 있습니다. 

즉, 컴퓨터는 이 특정 가상 작업에 대한 계산을 실시간보다 10 배 빠른 속도로 렌더링 할 수 있습니다. 

이 경우 오프라인 처리는 실시간 처리보다 훨씬 편리합니다.