흥미로운 사운드를 만들기 위해 오디오 신호에 대해 수행되는 기본 작업 범주는 무엇입니까?


10

나는 dsp를 처음 접했을 때이 질문이 의미가 있는지 모르겠습니다.

오디오 dsp에 대한 나의 제한된 여정에서 나는 다음을 보았습니다.

  1. 주파수 변조
  2. 진폭 변조
  3. 첨가제 합성
  4. 감산 합성

내 질문은 : 이것들은 신호 조작의 주요 기본 범주 (특히 오디오 용)입니까?

다시 말해 전체 플러그인 제품군을 갖춘 FL Studio가 할 수있는 모든 효과와 멋진 기능을 위의 4 가지 작업의 시리즈와 조합으로 나눌 수 있습니까? 아니면 더 많은 무리가 있습니까? 플러그인이있는 최신 DAW를 이론적으로 이러한 방식으로 범주로 분류 할 수 있습니까? 위의 4 가지 범주 자체도 이해가 되나요?!

약간의 배경 : 본질적으로 나는 프로그래밍과 오디오 DSP를 모두 배우기위한 프로젝트로 매우 기본적이지만 매우 유연한 오디오 신시사이저 / 편집기를 만들려고합니다. Java를 사용하여 기본 현실 세계 신시사이저 클래스를 흉내 내고 Oscillator 및 LFO 등을 호출하는 것으로 시작했지만 새로운 것을 배울 때마다 새로운 개념을 프로그램에 맞추기 위해 모든 것을 다시 작성해야한다는 것을 알았습니다.

지금 다시 시작하여 프로그램의 기본 개체와 구조를 생각해 냈습니다. 이를 제대로 수행하려면 이러한 객체가 어떻게 상호 작용할 수 있는지 알아야합니다.

감사!

편집 * * *

유용한 의견과 답변에 감사드립니다. 나는 아마도 dsp 측면을 과소 평가하고 있다는 것을 알고 있으며 간단한 신디사이저를위한 기본 템플릿 및 구조를 만든 다음 확장하거나 빌드 할 수는 없습니다. 새로운 것들을 배우고 "적절한"방법으로 일을하는 것에 따라 아마도 다시 반복해서 다시 만들어야 할 것입니다 ... 더 오래 걸리지 만 더 배울 수 있을까요? 또한 죄송합니다. 아직 누군가를 찬성 할만큼 충분한 담당자가없는 것 같습니다. 가능한 한 빨리하겠습니다.

편집 * 편집 ***

나는 약간의 인터넷 검색을 통해 관련성 있고 흥미로운 "합성 유형"에 대한이 기본 가이드를 공개했다 .


합성 기술에 대한 이론적 배경을 원하십니까? 아니면 이와 같은 것을 원하십니까 (실제로 사용되는 일반적인 방법)? dsp.stackexchange.com/questions/192/…
datageist

1
가능한 한 적은 수의 범주에서 가능한 모든 소리 조작을 요약하면 선형 및 비선형 변환의 이름을 지정합니다. 그러나 그것들은 구현하기에는 너무 일반적이고 광범위합니다.
Alexey Frunze

@ datageist-둘 다 필요하다고 생각합니다! 그러나 이것은 매우 유용한 링크입니다. 감사합니다.
kiman

@Alex 그것은 매우 일반적이지만, 그것은 개념적인 출발점이며 적어도 지금은 내가 잘못된 나무를 짖는다는 것을 알고 있습니다.
kiman

Will Pirkle의 저서, C ++의 소프트웨어 신디사이저 플러그인 설계 : RackAFX, VST3 및 오디오 장치를 참조하십시오. 실제로 신시사이저를 만들고 모든 것을 스스로 알아내는 대신 길을 따라 배우게됩니다.
panthyon

답변:


9

AM / FM 카테고리는 효과가 약간 이상합니다. 사실, 입력 신호의 진폭을 조정하여 흥미로운 효과를 얻을 수 있습니다. 그러나 정확한 주파수 표현이없는 복잡한 입력 신호에 대해 "주파수 변조"는 무엇을 의미합니까? 모든 효과는 의한 진폭 변조라고 말할 수 있습니다.out(t)in(t)

음악 제작 소프트웨어가 제공하는 모든 오디오 효과의 핵심에는 마법의 단일 목적 엔진이 없습니다. 그러나 DSP 개발자가 제공하는 대규모 오디오 효과 제품군의 소스 코드를 살펴보면 다음과 같이 자체 클래스에 포함되어 다양한 효과가 공유되는 "빌딩 블록"이 있습니다. 나는 이것이 효과를 분류하기위한 좋은 기초를 형성한다는 것을 의미하지는 않는다. 그러나 구현 관점에서 볼 때 이러한 블록은 필수적입니다.

  • 바이 쿼드 필터.
  • 분수 지연 라인.
  • 임의 크기의 임펄스 응답으로 입력 신호를 빠르게 컨볼 루션하기위한 컨볼 루션 엔진.
  • Waveshaper (시간 영역의 입력 신호에 비선형 기능 적용).
  • 신시사이저 빌딩 블록 : 발진기, LFO, ADSR 엔벨로프.
  • 신호 탐지기 : 엔벨로프 팔로워, f0 추출기.

이러한 블록으로 다음을 만들 수 있습니다.

  • 신스와 같은 필터 또는 와와 : 하나 또는 두 개의 biquad
  • 자동 와우 : 봉투 추종자 + 봉투 + 분기
  • 플랜저 / 페이저 : LFO + 지연 라인
  • 코러스 : LFO + 지연 라인
  • 알고리즘 리버브 : 지연 라인 (병렬 및 직렬 콤 필터의 배열)
  • 컨벌루션 리버브 : 컨벌루션
  • Spatializer : 컨벌루션 (HRTF 임펄스 응답 사용)
  • 기타 앰프 시뮬레이션 : 컨볼 루션, 파도
  • 왜곡, 퍼지 : 게인 + 파쇄기
  • 비트 크러셔 (양자화 기) : Waveshapper의 특별한 경우
  • 사인 캐리어가있는 링 변조기 : 발진기
  • 노이즈 게이트 및 기타 역학 효과 : 엔벨로프 팔로워
  • 테이프 시뮬레이션 : 컨볼 루션, Wavehapper, 엔벨로프 팔로워 (동역학 처리 용)
  • EQ : 바이 쿼드
  • 트레몰로 : LFO
  • 레슬리 에뮬레이션 : 컨볼 루션 + LFO
  • 보코더 : biquads + envelope follower

이러한 효과 중 일부는 다른 블록을 패치하는 것 (플랜 저는 실제로 지연 라인을 조정하는 LFO 임)의 일부이지만, 일부 다른 효과는 부품 사이에 더 복잡한 접착제가 필요합니다. 자신의.

이것은 전반적으로 음악 제작을위한 많은 기초를 다룰 흥미로운 효과 세트이지만, 철저하지는 않으며 실제로이 프레임 워크에 맞지 않는 일부 효과가 있습니다 ... 일부 예제 : * Dirty sample rate reducer (in 비트 크러셔) : 사실, 그것은 디 라크 빗에 의한 곱셈과 직사각형 창에 의한 컨볼 루션입니다 ...하지만 진폭 변조를 패치하는 대신 N 다음 샘플에 대해 하나의 샘플 값을 복제하는 것이 더 쉽습니다 그리고 컨볼 루션! * 피치 변경 효과 (피치 시프 팅, 자동 튜닝)는이 프레임 워크에 잘 맞지 않습니다. 이들은 수행 될 오디오 신호의 더 복잡한 표현 (주파수-도메인 방법의 위상 보코더; 시간-도메인 방법의 피치 검출 및 피치 마크)을 필요로한다.

Pd, Reaktor, Plogue, SyntheEdit ...와 같은 "모듈 식"소프트웨어 도구를 사용하여 제공하는 기본 빌딩 블록에서 효과를 구현해보십시오.


2
가치있는 것은 주파수 변조가 FM 합성에 사용됩니다. 이는 단일 톤 FM 변조의 경우 쉽게 알 수 있으며, 이는 첫 번째 종류의 베셀 기능으로 정의 된 푸리에 계열의 신호를 발생시킵니다.
Bryan

1
신디사이저 (예 : Yamaha DX 시리즈, OPL 기반 하드웨어 및 소프트웨어 에뮬레이션)에서 구현 된 "FM 합성"은 실제로 위상 변조로 수행되므로 잘못된 이름입니다. en.wikipedia.org/wiki/Phase_modulation
pichenettes

해당 위키 백과 항목에 첨부 된 소스가 없습니다. 어쨌든, 그 엔트리에 따르면, 그들은 "유사한"소리가 나고 FM은 구현하기가 더 어렵 기 때문에 PM이 사용된다고 말합니다. FM은 PM의 특별한 경우를 제외하고는 그것을 사지 않습니다. 그럼에도 불구하고 베셀 기능과 관련된 고조파를 생성하는 FM 변조의 배후 이론은 유용하며 유용합니다.
Bryan

@ 브라이언. "FM"합성 특허 US4018121의 청구 1을 참조하십시오. sin (wt + I (t) sin w_m t)-위상 변조입니다. PM은 1 / 가변 주파수 순간을 위상에 통합하기 위해 추가 누산기가 필요하지 않기 때문에 구현하기가 더 쉽습니다. 주파수에서 위상 증분으로의 변환에는 나눗셈이 포함됩니다. PM을 사용하면 변조 속도로 위상 증분을 다시 계산합니다. FM을 사용하면 샘플 속도로 위상 증분을 다시 계산해야합니다.
pichenettes

매우 유용한 답변입니다. 감사합니다. 나는 프로그래밍 측면 (많은 학습 중)에 집중하고 dsp 측면을 충분히 심각하게 고려하지 않았다는 것을 알고 있습니다. 아마도 작게 시작하여 점차적으로 빌드 할 수있는 프로젝트가 아닐지 모르지만 배우면서 여러 번 다시 빌드하고 다시 빌드 해야하는 프로젝트 일 것입니다.
kiman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.