Skip to content

Instantly share code, notes, and snippets.

@simnalamburt
Last active August 21, 2018 05:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simnalamburt/83021fde5676af3fa7317a3fb6f6d3e4 to your computer and use it in GitHub Desktop.
Save simnalamburt/83021fde5676af3fa7317a3fb6f6d3e4 to your computer and use it in GitHub Desktop.
13:35 <@지현> 윈도우의 기본 사운드 처리 API는 WASAPI라고 부르는 물건이에요. 그리고 오랜 과거에 대충 만들고 던져서 그런지 크게 어려운 기술이 아닌 로레이턴시 사운드 처리가 불가능해요. 컴퓨터로 기타를 치려면 컴퓨터로 입력되는 아날로그 신호를 샘플링해서 디지털로 바꾸는 과정이 필요한데
13:35 <@지현> 그게 너무 오래걸려요. 맥은 가라지밴드같은거 팔아야하니까 OS에 내장된 CoreAudio같은게 기본으로 훌륭해서 저런게 필요없고, 리눅스는 안해봤는데 아마 괜찮지 않을까 싶어요.
13:37 <@지현> 그래서 윈도우에서 사람들이 WASAPI를 쓰기 싫어서 독일에서 ASIO라는 새 프로토콜을 개발해서 그걸 쓰면 맥이랑 비슷한 수준으로 매우 빠르게 나와요. 문제는 ASIO는 사유소프트여서 아무데나 탑재될 수 없어요
13:38 <@지현> 뮤지션들을 위한 크로스플랫폼 오픈소스 소프트웨어들이 여러개 있는데, LMMS Audacity 둘다 GPL-2.0 이기때문에 저런걸 탑재할 수 없어요. Audacity에 ASIO 지원을 넣을 수는 있긴 한데 그러려면 직접 손컴파일해야하고 재배포가 불가능해요
13:40 <@지현> ASIO4ALL이라는 오픈소스는 아니지만 자유소프트웨어인 프리웨어 ASIO 프로토콜 구현체가 존재해요 http://www.asio4all.org/ 그러나 UX가 조악하고 버그도 많아서 솔직히 이걸 실제 프로덕션에서 쓸 수 있을지는 모르겠구요
13:42 <@지현> 아 기억났어요 https://wiki.audacityteam.org/wiki/ASIO_Audio_Interface 리눅스는 오디오 API가 PulseAudio, ALSA, JACK 세개가 존재하는데, 보통 아무생각없이 데스크톱 환경을 구축하면 다 펄스오디오를 쓰고 저게 레이턴시가 제일 높아요. 그러나 Audacity가 JACK을 지원하고 JACK을 쓰면 굉장한 로우레이턴시로
13:42 <@지현> 아날로그 소리신호를 처리할 수 있어요. 그러나 구성하는 방법이 매우 힘들어요
13:44 <@지현> 사실상 맥이 제일 상태가 좋아요 CoreAudio 가 OS에 내장된 기능인데 저게 웬만한 오디오 API 구현체보다 더 빠르고, 심지어 JACK의 macOS 구현체를 쓰면 http://jackaudio.org/downloads/ 진짜 미친듯이 빨라져요
13:44 <@지현> 저 아날로그 사운드 처리라는게 결국 빠른 푸리에 변환에 불과해요
13:45 <@지현> FFT 구현 물론 어려운 문제이긴 한데, 너무 유명한 문제다보니 수많은 고인물들이 달려들어서 미친듯이 최적화시켜놨고 벡터연산까지 써가면서 진짜 엄청나게 빠르게 풀 수 있는 문제라고 저는 이해하고있는데
13:48 <@지현> 윈도우는: Windows MME (극심한 레거시), WDM-KS(윈도우 커널스트리밍모드, 윈도우XP에 존재했고 이제 없어짐), Windows DirectSound (비스타부터 추가됨, 대부분의 사람들이 여기서 만족함), WASAPI (XP의 WDM-KS 대체함, 나름 로우 레이턴시라고 나온 물건인데 막장임) 이 네개까지가 MS 공식구현체이고
13:52 <@지현> 윈도우 ASIO (매우 빠름 그러나 사유프로토콜), 윈도우용 JACK 구현체 (제일 빠름 그러나 지원하는 소프트웨어가 적음)
13:52 <@지현> 리눅스는: PulseAudio (일상적인 니즈를 충족하기 위한것, 음악 프로듀싱용으로는 못씀), ALSA (로 레이턴시로 나온것이지만 불만족스러움), JACK (매우빠름)
14:01 <@지현> macOS는: CoreAudio (OS 내장 기본구현체, 매우빠름), 맥용 JACK (더 빠름)
14:01 <@지현> JACK이 미래네
14:02 <@지현> http://jackaudio.org/faq/comparing_jack.html
14:03 <@지현> 이 생태계는
14:04 <@지현> 솔직히 망했는데 ㅔ
14:04 <@지현> JACK 개발자들이 멱살잡고 어떻게 잘해보려고 하는 모양새군요
14:04 <@지현> 무슨 빠른 푸리에 변환 하나 하고 적절한 프로그래머블한 async API 프로토콜 노출하는게 이렇게 힘들어서
14:04 <@지현> 생태계가 산산조각 개박살나고 (주로 MS에 의해)
14:04 <@지현> ㅅㅂ
14:05 <@지현> 일단 윈도우에 있는 여러 소프트웨어들이 JACK을 지원해야해요
14:06 <@지현> 맥은 거의 CoreAudio로 통일되어있으니 JACK이 CoreAudio와 프로토콜을 맞춰서, CoreAudio를 지원하면 자동으로 JACK도 지원하게 해놨구요
14:07 <@지현> 리눅스도 PCI, USB, 블루투스로 꽂을경우 ALSA 지원하면 자동으로 JACK 지원되고, FireWire라는 별명을 가진 IEEE 1934라는 요상한 케이블을 지원하면 FFADO 지원하면 JACK이 자동지원되어요
14:08 <@지현> 이게 진짜 생태계를 어떻게 굴릴 줄 아는 사람들의 의사결정이죠 JACK 개발팀은 믿을많애ㅛ
14:08 <@지현> 만해요
14:08 <@지현> 문제는 윈도우인데
14:08 <@지현> 윈도우는 사실상 ASIO로 통일된 상태라고 봐야하느냐 그렇지도 않고
14:09 <@지현> 전문가들은 ASIO, ReWire, VST, AudioUnits, DirectX, MAS, RTAS, VAC 이런걸 쓰는데
14:10 <@지현> 그냥 ASIO4ALL이라는 공짜 ASIO 구현체때문에 아마추어들이 ASIO를 쓰는것이지
14:10 <@지현> 망했다 여긴
14:10 <@지현> ㅋㅋㅋㅋㅋㅋㅋㅋ
14:13 <@*> 그야말로 대잔치
14:13 <@*> 음악하려면 맥을 써야 하는 것인가
14:13 <@지현> 제가 돈많은 부자백수면 오픈소스 소프트웨어만 가지고 편하게 프로듀싱을 하기위한 기여를 열심히 하겠지만
14:13 <@지현> 솔직히 일반인 입장에선 그냥 맥북 하나 사는게 제일 쉽구요
14:13 <@지현> 제가 할 수 있는건
14:13 <@지현> http://jackaudio.org/applications/
14:13 <@지현> JACK을 지원하는 어플리케이션을 잘 잘 골라서
14:13 <@지현> 제 니즈에 맞게 쓰는것인데
14:15 <@지현> 여기서 제가 예전에 구경만 해놓고 쓰지는 않은 우분투 스튜디오가 등장합니다
14:15 <@지현> https://ubuntustudio.org/
14:15 <@*> '음악 하려면 맥북 사라' 라는 말이 다 이유가 있었군요
14:15 <@지현> 리눅스의 단점은 대부분의 것들이 준비되어있지만 세팅이 졸라리 귀찮다는게 문제인데
14:15 <@지현> 우분투 스튜디오가 존재해요
14:15 <@지현> https://ubuntustudio.org/tour/audio/
14:16 <@지현> 일단 오디오 API는 JACK2
14:16 <@지현> provides low latencies (less than 5msecs with the right hardware)
14:17 <@지현> 상기했듯이 현존 구현체중 최강
14:17 <@지현> UX도 ASIO보다 훨 낫구요
14:17 <@지현> GPLv2
14:18 <@지현> 그리고 레코드와 믹싱은
14:18 <@지현> Ardour https://ardour.org/
14:18 <@지현> JACK 지원하구요
14:19 <@지현> https://github.com/Ardour/ardour GPLv2
14:19 <@지현> 앰프는
14:20 <@지현> rakarrack https://sourceforge.net/p/rakarrack/git/ci/master/tree/ GPLv2
14:21 <@지현> Guitarix http://guitarix.org/ GPLv2
14:22 <@지현> 우분투스튜디오 말고도
14:22 <@지현> 데비안 기반 AV Linux http://www.bandshed.net/avlinux/ 도 존재
14:23 <@지현> 일단 리눅스로 가면
14:23 <@지현> 필요한건 다있네요
14:23 <@지현> 일단 좋아요
14:23 <@지현> 윈도우에서 JACK, Ardour, Guitarix 를 쓸 수 있을까
14:23 <@지현> Guitarix는 일단 윈도우 배포 없고
14:23 <@지현> rakarraack도 윈도우배포 없네
14:24 <@지현> JACK과 Ardour는 윈도우지원이 있어요
14:25 <@지현> https://community.ardour.org/node/14980
14:25 <@지현> 윈도우용 Ardour는 JACK 지원이 없네
14:33 <@지현> 자꾸
14:33 <@지현> 오디오 관련 소프트웨어들이 소스포지를 리포로 써서
14:33 <@지현> 짜증나서 오랜만에 "GOodbye, SourceForge" 웹사이트가 보고싶었는데
14:34 <@지현> https://helb.github.io/goodbye-sourceforge/
14:34 <@지현> 내렸네?
14:34 <@지현> https://cdn.rawgit.com/helb/helb.github.io/1ce7/goodbye-sourceforge/index.html
14:34 <@지현> 하지만 히스토리는 남음
14:38 <@지현> https://www.reddit.com/r/sysadmin/comments/4n3e1s/the_state_of_sourceforge_since_its_acquisition_in/
14:38 <@지현> JinJeongSeong 을 느낀것인가
14:38 <@지현> https://sourceforge.net/projects/scorchcrafter/ 이거 오픈소스라는데 졸라구리게생겼네
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment