오디오 플러그인 설계하기
오디오 플러그인은 오디오 처리 알고리즘을 캡슐화하며, 이 플러그인을 통해 오디오를 스트리밍하는 동안 알고리즘의 파라미터를 조정할 수 있습니다.
오디오 플러그인 정의하기
사용자가 스테레오 너비를 조정할 수 있는 플러그인을 정의하려면 다음을 수행하십시오.
audioPlugin에서 상속되는 클래스 정의를 만듭니다.퍼블릭 속성인
Width를 정의하여 처리 알고리즘의 스테레오 너비를 파라미터화합니다.Width를audioPluginParameter로 갖는audioPluginInterface를 정의하여 사용자가 스테레오 너비를 조정할 수 있도록 합니다.process메서드를 생성하여 오디오 처리를 정의합니다.process메서드는 오디오 입력in을 받아서 다음 단계를 통해 스테레오 너비를 조정합니다: (a) 미드-사이드 인코딩을 적용하고, (b) 사용자 제어Width파라미터를 기반으로 스테레오 너비를 조정한 다음, (c) 미드-사이드 디코딩을 적용한다.
classdef StereoWidth < audioPlugin % <== (1) Inherit from audioPlugin. properties Width = 1; % <== (2) Define tunable property. end properties (Constant) PluginInterface = audioPluginInterface( ... % <== (3) Map tunable property to plugin parameter. audioPluginParameter('Width', ... 'Mapping',{'pow',2,0,4})); end methods function out = process(plugin,in) %< == (4) Define audio processing. x = [in(:,1) + in(:,2), in(:,1) - in(:,2)]; % (a) Mid-side encoding. y = [x(:,1), x(:,2)*plugin.Width]; % (b) Adjust stereo width. out = [(y(:,1) + y(:,2))/2, (y(:,1) - y(:,2))/2]; % (c) Mid-side decoding. end end end
오디오 플러그인의 프로토타입 만들기
오디오 플러그인을 정의한 후에는 Audio Test Bench 앱을 사용하여 이 플러그인의 프로토타입을 만들 수 있습니다. 오디오 테스트 벤치 앱을 사용하면 파라미터를 조정하는 동안 플러그인을 통해 오디오를 스트리밍하고, 청취 테스트를 수행하고, 원본 오디오와 처리된 오디오를 시각화할 수 있습니다. 오디오 테스트 벤치 앱에서 StereoWidth 플러그인을 열려면 MATLAB® 명령 프롬프트에서 다음을 입력하십시오.
audioTestBench(StereoWidth)

VST 플러그인 검증 및 생성하기
MATLAB® 오디오 플러그인을 검증하고 오디오 테스트 벤치에서 VST 플러그인을 생성할 수 있습니다. validateAudioPlugin 함수와 generateAudioPlugin 함수를 사용하여 명령줄에서 플러그인을 검증하고 생성할 수도 있습니다. 플러그인이 생성되면 디지털 오디오 워크스테이션(DAW)에 이 플러그인을 배포할 수 있습니다.
validateAudioPlugin StereoWidthChecking plugin class 'StereoWidth'...
passed. Generating testbench file 'testbench_StereoWidth.m'... done. Running testbench... passed. Generating mex file 'testbench_StereoWidth_mex.mexw64'... done. Running mex testbench... passed. Deleting testbench. Ready to generate audio plugin.
generateAudioPlugin StereoWidth.......
VST 플러그인은 작업 디렉터리에 저장됩니다.
참고 항목
audioPlugin | audioPluginSource | audioPluginGridLayout | audioPluginInterface | audioPluginParameter | generateAudioPlugin | validateAudioPlugin | 오디오 테스트 벤치