이 저장소는 Joshua D. Reiss와 Andrew P. McPherson이 저술한 "Audio Effects: Theory, Implement and Application" 책의 설명을 바탕으로 구현된 오디오 효과 플러그인 모음이며, 책과 함께 제공되는 코드를 예로 들 수 있습니다. Brecht De Man 등의 구현.
구현된 오디오 효과는 다음과 같습니다.
템플릿 시간 도메인은 선형 및 로그 슬라이더, 토글 및 콤보 상자를 사용하여 일반 그래픽 사용자 인터페이스를 구현합니다. 이 프로젝트에서는 오디오 프로세서와 일반 편집기(GUI) 모두에서 자동화 가능한 플러그인 매개변수를 추가, 설정 및 사용하기 위한 많은 복잡성을 캡슐화하는 오디오 매개변수의 사용자 정의 클래스를 소개합니다. 이 플러그인은 입력에 특별히 흥미로운 처리를 적용하지 않으며 단지 시간 영역 오디오 처리 효과를 위한 템플릿 프로젝트입니다.
템플릿 주파수 도메인은 단시간 푸리에 변환 클래스를 구현합니다. 이 플러그인은 입력에 어떤 처리도 적용하지 않고, 단지 입력 블록을 주파수 도메인으로 변환한 다음 중첩 추가 방법을 사용하여 다시 시간 도메인으로 변환합니다. 이 플러그인은 주파수 도메인 오디오 처리 효과를 위한 템플릿 프로젝트로 사용됩니다.
지연은 순환 지연 라인을 사용하여 피드백 및 믹스 컨트롤로 기본 지연을 구현합니다. 이는 간단한 선형 보간법을 사용하여 부분적인 지연 시간을 달성합니다.
Vibrato는 LFO(저주파 발진기)를 사용하여 입력 신호의 지연을 변조하고 주기적인 피치 변화를 시뮬레이션합니다. 이 플러그인에는 다양한 유형의 샘플 보간이 도입되었습니다.
Flanger는 입력 신호의 복사본이 가변 지연 시간으로 지연되고 원래 사운드와 혼합되어 이 클래식 오디오 효과의 특징적인 "스우싱" 사운드를 생성하는 지연 기반 오디오 효과를 시뮬레이션합니다.
코러스는 여러 연주자가 동시에 동일한 곡을 연주할 때 발생하는 현상을 시뮬레이션합니다. 즉, 피치와 시간의 작은 변화로 입력 신호의 복사본을 생성하여 마치 여러 개별 녹음인 것처럼 단일 소스 사운드를 만듭니다.
핑퐁 딜레이(Ping-Pong Delay) 는 기본 딜레이의 스테레오 버전입니다. 핑퐁 딜레이(Ping-Pong Delay)에서는 지연된 신호가 왼쪽 채널과 오른쪽 채널 사이에서 바운스됩니다.
파라메트릭 EQ는 다양한 유형의 파라메트릭 필터(로우 패스, 하이 패스, 로우 쉘프, 하이 쉘프, 밴드 패스, 밴드 스톱 및 피킹/노치)를 구현합니다. 차단 주파수, 품질 인자(대역폭), 이득에 따라 1차 및 2차 필터를 선택하고 조정할 수 있습니다.
와와(Wah-Wah) 는 입력 사운드에 음성과 같은 문자를 삽입하는 오디오 효과입니다. 공진형 저역 통과 필터, 대역 통과 필터, 피킹/노치 필터 등의 차단 주파수를 슬라이더로 변경하는 수동 모드나, 공진 필터의 차단 주파수를 변경하는 자동 모드에서 사용할 수 있습니다. 필터는 LFO, 입력 신호의 엔벨로프 또는 이 둘의 조합으로 제어됩니다.
Phaser는 캐스케이드 구성의 올패스 필터를 사용하여 입력 신호에 위상 편이를 도입합니다. 이러한 이동은 필터링된 신호가 원래 신호와 혼합될 때 주파수 스펙트럼에 노치를 만듭니다. 페이저는 플랜저와 유사한 효과를 생성하지만 노치 위치를 더 효과적으로 제어할 수 있습니다.
Tremolo는 LFO를 사용하여 입력 신호의 진폭을 변조합니다. 이는 신호 레벨의 작은 변화를 시뮬레이션하거나 단일 지속 음표를 일련의 빠른 반복으로 전환합니다.
링 변조 는 입력 신호에 주기적 반송파(트레몰로와 유사하지만 주파수가 더 높음)를 곱한 결과입니다. 매우 불협화음이 나는 사운드를 생성하는 비선형 오디오 효과입니다.
압축기/확장기는 4개의 오디오 프로세서(압축기, 리미터, 확장기 및 노이즈 게이트)를 하나로 구현합니다. 컴프레서/리미터 구성은 임계값보다 높은 게인으로 입력 사운드의 섹션을 감쇠하여 신호의 동적 범위를 줄입니다. 확장기/노이즈 게이트 구성은 임계값보다 낮은 게인으로 입력 사운드의 섹션을 감쇠하여 동적 범위를 증가시킵니다.
왜곡은 입력 사운드에 비선형 변환을 적용하여 거칠고 흐릿하거나 거친 사운드를 생성하는 한계까지 게인을 증가시킵니다. 다양한 비선형 기능을 선택할 수 있으며 출력 게인을 개별적으로 제어하여 원래 음량 레벨을 복원할 수 있습니다. 하이 쉘프 필터를 사용하여 출력 사운드의 톤도 제어할 수 있습니다.
Robotization/Whisperization은 위상 보코더 알고리즘을 기반으로 두 가지 오디오 효과를 구현합니다. 이 플러그인은 음성 소리와 함께 사용하도록 만들어졌습니다. 로봇화는 포먼트를 보존하면서 신호에 일정한 피치를 적용하므로 결과적으로 로봇 음성처럼 들립니다. 속삭임은 포먼트를 유지하면서 음조감을 제거하므로 마치 누군가가 속삭이는 것처럼 들리게 됩니다.
피치 시프트(Pitch Shift)는 위상 보코더 알고리즘을 사용하여 지속 시간을 변경하지 않고 입력 신호의 피치를 변경합니다. 피치 시프트 매개변수를 지속적이고 원활하게 변경할 수 있는 실시간 구현입니다.
패닝은 왼쪽과 오른쪽 두 채널 사이에서 음원의 겉보기 위치를 변경합니다. 두 가지 모드로 사용할 수 있습니다. 첫 번째 모드는 우선순위 효과와 접선 법칙을 사용하여 왼쪽 및 오른쪽 신호의 시간 지연 및 게인을 조정하며, 표준 스테레오 레이아웃을 가정하는 스피커를 통한 재생에 좋습니다. 두 번째 모드는 머리의 구형 모델을 사용하여 ITD(Interaural Time Difference) 및 ILD(Interaural Level Difference)를 추정하며, 헤드폰을 통한 재생에 좋습니다.
이러한 플러그인은 다양한 플랫폼(Windows 및 macOS)과 다양한 형식(VST, AU, RTAS, AAX 등) 및 독립 실행형 애플리케이션용 오디오 플러그인을 구축하기 위한 프레임워크를 제공하는 JUCE를 사용하여 구현됩니다. 터미널에서 다음 명령을 실행하여 이 저장소를 복제하고 모든 프로젝트를 빌드하는 데 사용된 최신 버전의 JUCE를 체크아웃할 수 있습니다.
git clone https://github.com/juandagilc/Audio-Effects.git
cd Audio-Effects/
git submodule update --init
Juan Gil의 코드 https://juangil.com/. 저작권 © 2017-2020 후안 길.
이 프로그램은 무료 소프트웨어입니다. 자유 소프트웨어 재단(Free Software Foundation)에서 발표한 GNU General Public License(라이센스 버전 3) 또는 (귀하의 선택에 따라) 이후 버전의 조건에 따라 재배포 및/또는 수정할 수 있습니다.
이 프로그램은 유용할 것이라는 희망으로 배포되지만 어떠한 보증도 제공하지 않습니다. 상품성이나 특정 목적에의 적합성에 대한 묵시적인 보증도 제공되지 않습니다. 자세한 내용은 GNU 일반 공중 라이선스를 참조하세요.
이 프로그램과 함께 GNU General Public License 사본을 받으셨을 것입니다. 그렇지 않은 경우 https://www.gnu.org/licenses/를 참조하세요.