티스토리 뷰

Hardware

사운드 관련 프로그래밍을 하면서..

알 수 없는 사용자 2006. 4. 13. 04:04
.net에서 사운드 관련 프로그래밍을 하게 되었다.

프로그램을 하면서 느낀점은 정말 쉽다는 것이다.

단지, 알면 쉽고 모르면 삽질하는 부분이 많다.

보통 나와있는 문서의 경우는, 예전 문서가 많이 때문에 최신 API에 대한 설명은 나와있지 않고, MSDN에 가도 쓸만한 정보는 구하기가 힘들었다.

Sampling Rate, Bit Rate, Channels 설정을 하고 마이크에서 받아 PCM파일로 만드는 데 하나의 WinForm에 15개 정도의 전역변수가 들어갔지만, MP3 재생에는 단지 클래스에서 함수를 호출하는 것 이외에 더이상 할 것이 없었다.

내 예상으로는 아마도, Recording 관련 부분도 마찬가지로 보통의 경우 어느 API Function을 쓰느냐에 따라 쉽고 어려움이 결정될 듯 싶다.

프로그래밍은 다른게 아니다. 어떤 상황이 발생했을 때 그에 대한 해결책을 가장 빨리 찾아내는 것이다.

고급 프로그래머의 경우 프로그램 1개를 작성하는 데 걸리는 시간이 그리 많지 않다.

최신의 API 함수를 가장 빨리 써보고, 적용하는 것 뿐이다.

설령 Device Driver Developer라고 하더라도 마찬가지이다.

Hardware Layer의 거의 대부분은 이미 최적화되어 널리 공개되어 있다(게다가 하드웨어 생산업체에서 비싼 돈을 들여서 담당 프로그래머를 고용한다. 실제 Application 개발자가 Core 부분따위 몰라도 될 정도이다).

만약, 아무것도 없는 상태에서 표준에 맞추어 MP3 Player를 만든다고 생각해 보자.

사운드카드 제어, 멀티채널 쓰레드 처리, 메모리 할당, 압축해제, DMA 호출, 파일처리 등 모든 부분을 직접 구현해야 한다.

요즘, 그렇게 프로그램해서 공개한다고 하면, ‘저사람 대단하다’라는 소리보다는 ‘저사람은 시대에 뒤떨어졌군’이라고 생각할 것이다(극히 주관적인 생각).

프로그래밍은 재미있어야 한다.

국내 개발업체의 대부분은 기획/코딩/디버깅이 대략 2/1/7 정도 된다고 본다.

뼈대도 제대로 안 갖추어져 있는데 패치만 하면 무엇 하는가.

주관적인 생각으론 5/2/3 정도가 가장 이상적인 프로그래밍이라고 본다.

'Hardware' 카테고리의 다른 글

AVR BootLoader 구성하기(3)  (0) 2006.06.03
AVR BootLoader 구성하기(2)  (0) 2006.06.03
AVR BootLoader 구성하기  (0) 2006.06.03
PC용 리모콘 제작  (1) 2006.06.03
ARM / PIC 관련 사이트 모음  (0) 2006.06.02