TECH 으로 돌아가기
TECH HACKER NEWS 2주 전 5분 읽기 98 READS

라즈베리파이 CM5 한 장으로 굴리는 24보이스 신디사이저, Brume 이야기

라즈베리파이 CM5 한 장으로 굴리는 24보이스 신디사이저, Brume 이야기

작은 보드 하나가 악기가 됐어요

혹시 신디사이저(synthesizer) 좋아하세요? 전자음을 만들어내는 그 건반 악기요. 보통은 전용 칩이 잔뜩 들어간 비싼 하드웨어를 떠올리게 되는데요, 이번에 소개할 Brume은 좀 결이 다릅니다. 라즈베리파이의 CM5(Compute Module 5), 그러니까 우리가 흔히 보는 신용카드 크기 라즈베리파이를 산업용으로 다듬어 놓은 '연산 모듈' 한 장 위에서 통째로 돌아가는 데스크톱 신디사이저거든요.

쉽게 말하면, 예전 같으면 전용 DSP 칩(소리 연산만 담당하는 특수 칩)이 해야 했던 일을 그냥 평범한 ARM 리눅스 컴퓨터가 다 처리한다는 얘기예요. '컴퓨터로 소리를 만든다'는 게 새롭진 않지만, 손바닥만 한 임베디드 보드에서 지연 없이 그걸 해낸다는 점이 핵심입니다.

24보이스 멀티팀브럴이 뭐냐면

제목에 나온 '24-voice multi-timbral'이라는 말부터 풀어볼게요. 여기서 보이스(voice)는 사람 목소리가 아니라 '동시에 낼 수 있는 소리의 개수'예요. 24보이스면 건반을 여러 개 동시에 눌렀을 때 최대 24개의 음을 한꺼번에 울릴 수 있다는 뜻이고요. 화음을 풍성하게 쌓거나 코드를 길게 누른 채 다른 음을 더 칠 수 있다는 거죠.

멀티팀브럴(multi-timbral)은 한 대의 악기가 동시에 여러 종류의 음색을 낼 수 있다는 의미예요. 비유하자면 한 사람이 입으로는 피아노 소리, 손으로는 베이스 소리, 발로는 드럼 소리를 동시에 내는 느낌이랄까요. 보통 곡 하나를 만들려면 베이스 파트, 리드 멜로디 파트, 패드(배경음) 파트가 다 필요한데, 이걸 악기 한 대로 해결할 수 있다는 게 장점입니다.

이 정도 동시 발음 수와 음색을 작은 보드에서 끊김 없이 처리하려면 오디오 버퍼와 스케줄링을 아주 빡빡하게 관리해야 해요. 소리는 1초에 보통 4만 8천 번씩 샘플을 뱉어내야 하는데, 한 번이라도 늦으면 '뚝' 하고 끊기는 소리가 들리거든요. 그래서 이런 프로젝트는 실시간 오디오 처리 실력이 그대로 드러납니다.

왜 SBC로 악기를 만들까

요즘은 전용 칩을 새로 설계하는 것보다, 성능 좋아진 싱글보드컴퓨터(SBC) 위에 소프트웨어로 신스를 얹는 방식이 점점 늘고 있어요. 칩을 직접 찍어내려면 돈과 시간이 어마어마하게 드는데, 라즈베리파이 같은 기성 모듈을 쓰면 펌웨어 업데이트만으로 음색을 늘리거나 버그를 고칠 수 있으니까요. 악기가 '소프트웨어 제품'처럼 계속 자라날 수 있는 거죠.

비슷한 흐름으로는 오랫동안 사랑받아 온 Axoloti, 오픈소스 신스 플랫폼인 Zynthian(역시 라즈베리파이 기반이에요), 그리고 모듈러 신스 쪽의 VCV Rack 같은 것들이 있어요. Brume이 CM5라는 비교적 최신 모듈을 선택한 건, 그만큼 동시 발음 수를 늘리고 음 끊김을 줄이려는 의도로 읽힙니다.

한국 개발자에게

신스를 직접 안 만들더라도 배울 게 많아요. 실시간 오디오는 '정해진 시간 안에 무조건 끝내야 하는' 대표적인 저지연 처리 문제거든요. 게임 서버, 영상 스트리밍, IoT 센서 처리 같은 분야와 고민이 똑같습니다. 라즈베리파이가 책상 위에 굴러다닌다면, 간단한 오디오 합성부터 직접 코드로 만들어 보면서 버퍼와 지연 시간을 체감해 보는 것도 좋은 공부가 될 거예요.

임베디드 리눅스에서 실시간성을 어떻게 확보할지, 음악을 좋아하는 개발자라면 취미가 곧 포트폴리오가 될 수도 있고요.

한줄 정리: 전용 칩 없이 라즈베리파이 모듈 하나로 24보이스 멀티팀브럴 신스를 굴려낸 사례. 여러분이라면 SBC로 만들어 보고 싶은 '악기'나 '실시간 장치'가 있나요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://brume.aftertone.co/
SHARE
처리 중...