Juce vs. WDL-OL
on
모처럼 시간이 나서 이 둘을 둘러봤다.WDL-OL이 완벽하면 좋으련만 여러 가지로 불편한 구석이 있어서, 상대적으로 깔끔하고 좋은 툴이 마련된 JUCE로 넘어가려고 생각해왔는데, 막상 JUCE도 장점과 단점이 혼재하는 것 같다.어차피 돈을 제대로 투여해서 개발하는 게 아니라, 개인이 스스로에게 필요한 플러긴을 만드는 게 목적이라면 WDL-OL이 나쁜 선택이 아니다라는 것을 느끼게 되었다.JUCE의 plugin demo를 빌드하면 30메가가 넘는 결과물이 나온다 (34/64 universal binary). 실제로 하는 일은 거의 없는 플러긴인데 말이다. WDL-OL로 복잡한 플러긴을 만들어도 2-3MB면 끝난다.Optimize 안해서 그런 거 아니냐 할 수 있을 것 같은데, optimize 안한 게 30메가면 optimize하면 300KB가 되는 황당한 컴파일러를 쓰고 있는 상황이 아닌지라, 참고로 optimize해도 몇 메가 줄지 않는다. 크기가 좀 크면 어떠냐 잘만 나오면 되지 싶다고 생각하면 JUCE로 가시라 그런데 쉽지 않다. 다들 진입장벽이 조금씩 있다. 사용자 입에 그냥 밥숟갈 떠 넣어주는 것은 없다. 유료든 무료 공개든.지저분하면 지저분한 대로 깔끔한데 너무 추상적이면 그런대로 사용자가 맞춰가야 된다. 이건 왜 이러냐 저건 왜 저러냐 할 거면 결국에 자기가 바닥에서 만들어가는 수 밖에 없다. 그게 깔끔하다. 제대로 할 거라면. 남의 플랫폼에 올라타라면 내 생각은 많이 버려야 된다. 덕택에 번거로움을 덜 수 있다 생각할 수 있는데, 또 개발 하다보면 남의 플랫폼에 내 생각을 적응시키느라 스트레스와 시간 소모가 뒤따르게 된다.플러긴에 남의 도움이 많이 필요할 것 같지만, 따지고 보면 그렇지도 않다.무슨 말이냐면,1. 오디오 코어를 순수하게 내 힘으로 만들 수 있으면, 사실상 아무리 좋다는 라이브러리라도 라이브러리 대부분은 쓰지 않게 된다.1. 플랫폼에서 도움 받는 것은 오직 API 맞춰주고 GUI 작업이 편하게 이루어지게 하는 것이다. 또 OS에 덜 dependent하게 되는 것이고.그런데, 실제로 2. 작업에서 처리가 그다지 용이하지 않다. 어차피 OS 바꾸면 컴파일러 바꿔야지 환경에 가져다 맞춰야지, 같은 사람이 할 수 있을 일 같지만 사실 그러려면 그 과정을 단순화 시켜서 간단하게 만드는데 많은 시간이 든다. 이것을 OS 및 VST/AU/AAX 별로 독자공략을 해서 최적화하는 것과 무슨 차이가 있냐 따져보면 차이가 없어보인다. 남이 만든 것에서 문제가 발생하고 껄끄럽게 되는 문제는 내가 그것을 모두 내것으로 만들어버리지 않는 한 해결 불가능하다. 귀찮아서 들여다보지 않으면 내내 귀찮게 충돌하게 되는 것이고, 들여다보면 결국에 내가 뜯어고치게 되므로 이도 저도 아닌 꼴이 된다.지금까지 경험한 바에 의하면, 남의 플랫폼은 적어도 대중에게 공개하기 위해서 모든 사람들의 구미에 맞추려다보니 덩치가 엄청 커져있고 다양하게 customize할 수 있게 하다보니 불필요한 설정요소, 또 한 개인이 컨트롤하기엔 부담스러울 정도의 스케일을 갖게 된다.그저 플러긴에서 버튼이나 놉 콘트롤 도움을 받자고 3D니 video까지 컨트롤하는 코드를 다 들여다 봐야할 이유가 있는가? 더 웃긴 것은 말이 모듈이지, 뜯어보면 서로 전부 복잡하게 얽혀있기 때문에, 작은 기능 하날 넣자고 모든 코드를 몽땅 읽어야 하는 경우도 생긴다. 가독성을 고려한 것인지 아니면 원래 의도한 것인지, 단순한 기능의 모듈이 엄청나게 잘게 쪼개진 함수로 구현되어져 있는 걸 보면 화가 절로 난다. 또, 함수의 이름이 장황하게 길고 무엇인지 모를 철학으로 이름 붙여져있고, 게다가 아주 작은 기능으로 잘게 잘게 쪼개져 있는 걸 보면, 정말로 이 플랫폼의 제작자는 나와는 전혀 철학이 다른 사람이다란 결론만 남는다.비교하자고 했는데 푸념만 늘어놓았네..어쨌든 컴팩트하고 속도 빠른 깔끔한 플러긴을 만들고자 한다면 1. JUCE는 비추다. 1. vstgui라든가 steinberg의 VST sdk가 더 지름길이 아닌까 한다. 그런데 얼마나 불편한지는 경험하지 않아 모른다.1. WDL-OL은 JUCE같이 추상화되었다기 보단 vstgui 같은 것들에 가까운데, 시작하기엔 진입 장벽이 낮아서 좋을지 모르지만, 역시나 개발 난이도가 올라가게면 뻑뻑하긴 마찬가지다.내가 사용하고 있는 플러긴을 뭘로 만들었는지 알아보려면, 플러그인을 열어봤을 때 panel이라든가 knob의 파일들이 있는 그대로 나 뒹굴고 있으면 그것은 WDL-OL이거나 vstgui등등일 확률이 높고, 크기가 이상스레 크고 그림이라든가 작은 부속 파일들이 거의 없이 매끈하다 싶으면 JUCE일 확률이 높다. 실제로 이 둘이 활용되는 비율은 비슷하다고 한다.