"기다리고 있었습니다"
시인, PD, 가수이자 아나운서인 이상협 씨가 KBS 클래식 FM '당신의 밤과 음악(밤 10시~)'에서 종종 들려주는 멘트이다. 요즘 드럼 패턴학에 지나칠 정도로 몰두하면서 DIY synth인 Fluid Ardule의 운영 스크립트 개선은 상대적으로 신경을 덜 쓰고 있었다. 화면 전환의 특정 위치에서만 반응이 너무 늦어서 왜 그런지 늘 고민을 하고 있었는데, 그것은 결국 코딩의 불완전함 때문이었다. 라즈베리 파이 3B, SPI로 연결한 3.5인치 TFT 디스플레이와 같은 '소박한 하드웨어'의 문제가 아니었다. 뭔가를 기다리게 만든 코드가 문제였다.
어제의 퇴근 후 개발에서는 작정하고 시간을 재기로 했다. 화면을 그리는 시간, framebuffer에 쓰는 시간, 이벤트가 들어온 뒤 실제 렌더링이 시작되는 시간을 나누어 측정했다.
Home에서 Sound 서브메뉴로 진입하는 순간의 코드가 문제였다. 화면을 새로 그려야 한다는 dirty 상태가 설정되지 않았던 것이다. 렌더링 함수는 호출되었지만 새로 그릴 것이 없다고 판단하여 그냥 돌아갔고, 나중에 다른 이벤트가 화면을 dirty 상태로 만들 때까지 기다리고 있었다. 너무나 허망했다. 이제는 버튼을 누르면 거의 즉각적으로 화면이 바뀐다.
이것 외에도 사운드폰트를 다루는 방식 등 많은 개선을 하였다. Changelog에 260910u 버전으로 기록된 사항은 이것 외에도 상당히 많다.
다음은 개선 후의 사운드 서브메뉴 화면이다. 이제는 부팅 시 두 개의 사운드폰트를 기본적으로 메모리에 올려 둔다. 하나는 피아노 전용인 Salamander C5 Lite이고, 다른 하나는 범용으로 사용하는 Arachno GM-compliant SF2이다. 평상시에는 키보드가 연결된 채널 1에 Salamander를, 나머지 채널(CH2–16)에 Arachno를 할당한다. MID 파일 재생을 시작하면 채널 1도 Arachno로 전환되므로 전 채널을 사용하는 일반적인 MIDI 파일 재생에도 문제가 없다. 범용 사운드폰트는 필요하면 FluidR3 GM으로 바꿀 수도 있다.
두 개의 사운드폰트를 동시에 로딩하므로 부팅 시간은 약간 길어졌지만, 일단 올라온 뒤에는 연주 모드를 바꿀 때마다 사운드폰트를 내렸다가 다시 올릴 필요가 크게 줄었다. 특히 Combi는 특정 사운드폰트에 종속되지 않고 현재 올라와 있는 범용 사운드폰트를 그대로 사용하도록 바꾸어 운용 방식이 훨씬 간단해졌다.
스포츠 캐스터로도 잘 알려진 이재후 아나운서는 같은 방송국의 아침 방송인 '출발 FM과 함께(아침 7시~)'를 진행한다. 방송 시간대가 다르니 두 아나운서의 목소리를 같은 시간에 듣기는 어렵다. 간혹 특집 방송이 편성되면 서로를 향한 장난기 넘치는 디스를 하기도 한다.
"제 이름은 이재호가 아니고 이재후입니다. '후지다'의 '후'입니다."
뭔가 일이 잘 풀리고 있지 않다면, 능력이 부족해서가 아니라—후져서 그런 것이 아니라—누군가의 결정을 기다리느라 그럴 수도 있다는 것을 명심하자.
그런데 그 결정권자가 나였다면?
댓글 없음:
댓글 쓰기