분류 전체보기 88

Loudness, volume, level, amplitude, gain, drive

Loudness, volume, level, amplitude, gain, drive 항목은 각각 다른 의미를 가지지만 오디오 프로그래머로서 차이를 이해해야만 하는 것들이다. 소리가 얼마나 크냐는 질문을 받았을 때 그 질문에 대답하긴 쉽지 않다. 그러나 몇개의 소리에 대한 개념을 이용하면 쉽게 표현할 수 있다. Objectctively measurable : 객관적인 수치화는 같은 조건의 수치를 제공하면 매번 같은 결과를 얻을 수 있게 설계된 단위이다.- Level / Amplitude : 어느 시간의 신호의 순간 값 (음원이 마이크에 포착돼 전기 신호로 변환되면 전기 케이블을 통과하는 전압이나 전류의 값) - almost dB scale- Gain / Drive : 입력신호의 전력을 증가시키거나 감소시..

Loudness & Level 2024.06.23

5. Connect the LowCut Params

peak param이용한 것처럼 lowcut parameters를 이용해 음원파일에 영향을 주는 시간을 가졌다. 우선 헤더파일에 lowCutSlope을 선언하고 lowCutSlope을 이용해 slope강도를 조절한다. 그리고 switch문을 이용해 각 항목별로 옥타브당 어느 정도의 cut효과를 줄 지 정해주었다.오늘 실습을 해보면서 혼란을 겪었는데 그 이유는 코드를 수정해도 수정사항이 반영이 안되었기 때문이다. 그래서 하루종일 이유를 찾았는데 나는 AudioPluginHost앱에서 SimpleEQ 변경사항이 잘 반영 되었는지 확인하였지만 반영이 안 되었는데 그 이유는 다름아닌 AudioPluginHost앱에 Available plugin list에 SimpleEQ-vst3를 추가하지 않고 SimpleEQ..

4. Connect the peak params

Github pull request : https://github.com/rhksdnr24/SimpleEQ/pull/8 UI의 파라미터를 입력할 수 있게 됐다. 이번에는 peak 파라미터를 통해 실제 음원에 영향을 미쳐 소리의 변화를 이끌어 내는 시간을 가졌다. 다음은 UI에 입력값들을 불러오는 함수 코드이다. 다음을 통해 입력값들을 chain을 통해 peakfilter를 생성하게 했다.  audioblock 단위로 peakfilter를 먹여주는 함수 위 과정을 통해 음원 파일에 peak 변화를 줄 수 있었다.

3. Audio Plugin Host

이전에는 EQ를 만들고 Chain까지 연결해주었지만 실제로 작동하는지 여부는 확인하지 못했다. 그래서 Audio Plugin Host 라는 만들어진 프로젝트를 이용해 음악을 재생시킬 때 EQ가 적용되는지 확인 하는 시간을 가졌다. extras/AudioPluginHost 프로젝트를 실행시키면이런 GUI를 빌드할 수 있다. AU음악 player plugin과 EQ plugin을 추가해 output에 연결해 주고 mp3파일을 추가하니 음악이 재생되는 걸 확인할 수 있었다. 그리고 이제 EQ를 수정하고 확인할 때 마다 plugin host를 실행시켜 effect가 영향을 주는지 확인해야하기 때문에 SimpleEQ를 run할 때마다 AudioPluginHost를 빌드할 수 있게끔 scheme 의 excutabl..

2. DSP(Digital Signal Processing)

SimpleEQ에 파라미터를 조절할 수 있는 건 구현을 했다. 하지만 실제로 오디오에 영향을 미치게 하려면 audio processing 메소드를 정의해야한다. audio process를 다루는 메소드를 JUCE는 dsp 모듈에 구현을 미리 해놔서 우리는 그걸 갖다 쓰기만 하면 된다. 우선 헤드에 다음과 같은 멤버를 선언했다.     using Filter = juce::dsp::IIR::Filterfloat>; //         using CutFilter = juce::dsp::ProcessorChain;        using MonoChain = juce::dsp::ProcessorChain;        MonoChain leftChain, rightChain;     우선 AudioProce..

1. JUCE로 SimpleEQ만들기

코딩테스트 준비때문에 못했던 JUCE를 다시 시작했다. 유투브에서 초보자들에게 따라하면서 배우기 쉽게 정리해놓은 5시간 짜리 영상을 보며 나만의 플러그인을 하나씩 만들 수 있는 점에서 매력을 느껴 시작하게 됐다. 먼저 Projucer를 실행하려면 2가지 방법이 있다.1. zip파일 다운로드2. 깃 코드로 실행강사는 깃 코드로 하는 것을 추천했다.(수정사항들을 깃 코드를 불러옴으로 바로바로 적용시킬 수 있어서) 그래서 다시 홈 디렉토리에 깃 코드를 복사해 JUCE를 다시 다운 받았다. 처음에 SimpleEQ를 만드는 데 있어 필요한 함수를 2개 추가했는데주파수를 조절하는 파라미터를 정의하기위한 메소드들이다. LowCut Freq : 설정된 주파수 이하의 주파수를 감쇠시킴HighCut Freq : 설정된 주..

JUCE_Youtube_Review_01

path error을 해결하고 기본적인 application을 만들어 보는 시간을 가졌다. juce::DocumentWindow를 상속받는 클래스에서 window의컨텐츠 / 이름 / 크기 / 바탕 색 / 상단 바 변환 메소드들을 사용할 수 있었다.     class MainWindow    : public juce::DocumentWindow    {    public:        MainWindow (juce::String name)            : DocumentWindow (name,                              juce::Desktop::getInstance().getDefaultLookAndFeel()                                   ..

JUCE_YouTube_Review 2024.06.09

JUCE_Tuto Getting_Started_01

VST를 개발해보고싶어서 인터넷을 뒤지던 중 JUCE라는 플랫폼을 알게 되었다. JUCE는 쉽게말해 audio progrmmer를 위한 frame work이다. JUCE로 만들어진 VST가 많아 이걸로 도전해봐야 싶었는데, 공식홈페이지에 친절하게 tutorial을 제공해줘서 처음부터 해보기로했다. JUCE를 다운받고  Projucer를 클릭하면이런 창을 확인할 수 있다. 프로젝트 타입에 따라 basic code를 생성해주는 창인데 프로젝트에 대한 설명은 다음과 같다.프로젝트 타입설명Application / Blank텅 빈 JUCE app 생성Application / GUI초기 설정된 JUCE app 생성Application / AudioGUI와 비슷하지만 audio의 input output 설정이 자동으..

JUCE_Tuto 2024.06.09