음악, 삶, 개발
플러그인 파라미터 만들기 (for DAW) - ValueTree 본문
몇번이고 까먹어서, 여기에 정리해놓으려한다.
무조건 juce::AudioProcessor 를 상속받은 main processor 에서 정의되어야한다.
결국 valueTree 를 지니고있는 AudioProcessorValueTreeState 의 객체를 생성후,
이안에 add 한다.
이 apvts 안에는 state 라는 valueTree 가 있는데,
이 state 를 통해 다른 클래스의 객체들과 송신한다. (gui callback 같은)
class MainProcessor : public juce::AudioProcessor {
public :
MainProcessor()
// 3. 초기화
: apvts(*this, nullptr, "valueTreeName", createParams())
{
}
// 2. 초기화할때 parameter 를 생성할 함수 정의.
using Params = juce::AudioProcessorValueTreeState::ParameterLayout; // 너무 길어서.
using ParamInt = juce::AudioParameterInt; // 역시 너무 김.
using ParamFloat = juce::AudioPrameterFloat;
Params createParams() {
Params params;
params.add(std::make_unique<ParamInt>("Chord", "Chord", 0, 40, 12));
return params;
}
private :
// 1. 먼저 AudioProcessorValueTreeState 객체 생성.
juce::AudioProcessorValueTreeState apvts;
}