2026년 4월 14일 화요일

[Fluid Ardule] 이제는 안정화의 길로 접어드는가?

고질적인 note off 누락 문제, 즉 피아노를 연주하고 있는데 일부 키가 마치 서스테인 페달을 밟기라도 한 듯 음이 끊이지 않고 지속되는 문제는 FluidSynth를 실행할 때 '-m alsa_raw'를 사용함으로써 대폭 줄어들었다. '-m' 또는 '--midi-driver=[lable]'은 oss, alsa, alas_seq 등 MIDI driver를 고르는 옵션이다(모든 옵션 설명 링크). '-m alsa_raw'는 raw MIDI 장치를 직접 열어서 입력을 받음을 의미한다. 기본은 alsa_seq이다.

이를 통해 안정성을 확보하는 대신 키보드 연결을 해제하였다가 다시 꽂았을 때 자동으로 인식되는 편리함은 포기해야 했다. 그러나 이러한 작은 불편함은 다른 방법을 통해서 해결 가능하다. 키패드의 버튼 하나를 길게 누르면 MIDI panic에 해당한다. 이를 작동시키면 FluidSynth를 다시 띄우면서 결과적으로 복구가 되는 것처럼 보인다.

구글 AI모드의 'fluidsynth -m alsa_raw 설명'.


라즈베리파이 3B라는 이전 세대의 SBC(Single Board Computer)에서 안정성과 속도, 이 두 마리의 토끼를 잡는 것이 가능할까? 최소한 4세대 것을 쓰면 나을 것도 같은데, 추가적인 지출이 필요하다. 제한적인 하드웨어를 이용하여 어떻게 해서든 최적의 해법을 찾는 연구는 앞으로도 계속될 것이다. 

오늘은 주로 파일 재생 기능의 완성도를 높이는데 주안점을 두었다. 예전에 Volumio를 쓰던 시절에 CD를 리핑한 음원 파일(.wma) 담아서 감상용으로 쓰던 USB 드라이브를 여기에 꽂아서 사용하려는 속셈도 갖고 있다.

TFT-LCD에 보이는 버튼을 누르고 싶지만 아직 터치 기능은 구현하지 않았으며, 급하게 이를 가능하게 만들 생각도 없다. 화면에 보인 버튼 그림은 5버튼 키패드의 기능을 설명하기 위한 것이다.

TFT-LCD의 표시도 개선해 나가면서 이제는 제법 악기의 면모를 갖추게 되었다. 볼륨 조절은 아두이노 우노의 A0 핀에 연결된 가변저항이 맡는다. 아직 로터리 인코더는 하는 일이 없다. 조만간 사운드폰트 파일에 내장된 프리셋을 바꾸는 기능을 더하게 되면 인코더도 본격적인 업무를 떠안게 될 것이다.

라즈베리파이에서 돌아가는 파이썬 스크립트는 이제 1700줄에 이를 정도로 규모가 커졌다. 놀라운 바이브 코딩의 힘이여! 

댓글 없음: