본문으로 건너뛰기
피드

mahler.c — C99로 만든 작고 정확한 서양 음악 이론 라이브러리

open-source 약 2분
vote
0
댓글
북마크

음정, 코드, 스케일, 조표 함수를 제공하는 C99 음악 이론 라이브러리. 내부 메모리 할당 없이 이명동음 처리까지 정확하게 해내며 테스트 커버리지 100%를 달성함.

  • 1

    내부 메모리 할당 없는 순수 C99 라이브러리

  • 2

    이명동음 처리가 음악 이론적으로 정확함

  • 3

    이론적 키와 무제한 변화표 지원

  • 4

    테스트 커버리지 100%

  • C99로 작성된 서양 음악 이론 라이브러리 mahler.c가 공개됨. 음정(Interval), 코드(Chord), 스케일(Scale), 조표(Key Signature) 관련 함수를 제공하는 작고 깔끔한 라이브러리임

  • 내부 메모리 할당이 전혀 없고, 이론적인 키(예: Fb+)까지 지원하며, 임의의 변화표(예: G 20번째 샵)도 처리 가능함. 이거 뭔가 싶겠지만 음악 이론에서는 의미 있는 엣지 케이스임

  • 이명동음(enharmonic) 처리가 정확함 — 예를 들어 D의 단6도는 A#이 아니라 Bb로 나옴. 음악 전공자들이 환호할 포인트

  • 테스트 커버리지 100%. C99 라이브러리에서 100% 커버리지라니 꽤 인상적임

  • 라이브러리 이름은 작곡가 구스타프 말러에서 따왔다고 함. 제작자가 말러 팬인 듯 — 교향곡 5번, 대지의 노래 등을 추천하면서 README에 음악 감상 가이드까지 넣어둠

  • cmake로 빌드하고, src와 inc 폴더를 포함시키면 바로 사용 가능함

C로 음악 이론을 구현한다는 니치한 프로젝트지만, 메모리 할당 없는 설계와 100% 테스트 커버리지는 라이브러리 설계의 좋은 참고 사례임.

댓글

댓글

댓글을 불러오는 중...

open-source

위키피디아에도 빅테크식 반노조 플레이북이 들어왔다

위키미디어 재단이 5월 열흘 사이 MediaWiki 장기 핵심 개발자를 해고하고, 자원봉사 편집자 요청을 처리하던 Community Tech 팀을 해산했다는 비판 글이다. 해고된 인력 상당수가 노조 조직 활동과 연결돼 있었고, 위키피디아 편집자들은 연대 파업까지 거론하고 있다. 재단은 2억9660만 달러의 준비금과 빠르게 성장하는 AI 대상 API 매출을 갖고 있어, 이 사안이 단순 비용 절감으로 보기 어렵다는 게 글의 핵심이다.

open-source

캘리포니아, 연령 확인법에서 리눅스 빼려는 수정안 추진

캘리포니아가 운영체제에 사용자 나이 확인을 요구하는 법안에서 대부분의 오픈소스 운영체제를 제외하는 수정안을 추진 중이다. 데비안, 페도라, 우분투, 아치, 리눅스 민트 같은 배포판은 빠질 가능성이 커졌지만, 스팀OS처럼 독점 앱 생태계와 연결된 플랫폼은 여전히 애매한 상태다.

open-source

마이크로소프트, 45년 전 86-DOS 소스코드를 오픈소스로 공개

마이크로소프트가 86-DOS 1.00 출시 45주년에 맞춰 지금까지 발견된 것 중 가장 오래된 DOS 소스코드를 공개했어. 팀 패터슨의 차고에 있던 도트 매트릭스 출력물을 스캔하고 옮겨 적어, 원본 바이너리와 바이트 단위로 동일하게 다시 컴파일되는 수준까지 복원한 게 포인트야.

open-source

밤부 랩, AGPLv3 위반 논란으로 오픈소스 커뮤니티와 충돌

3D 프린터 제조사 밤부 랩이 AGPLv3 라이선스 위반 논란에 휘말렸고, Software Freedom Conservancy가 두 건의 위반 사례를 확인했다는 내용이야. Louis Rossmann과 Gamers Nexus는 관련 개발자의 법적 방어를 위해 2만달러를 기부했고, 갈등의 핵심은 오픈소스 기반 생태계를 클라우드와 DRM으로 점점 닫아가려는 움직임이야.

open-source

플리퍼, 리눅스 기반 확장형 기기 '플리퍼 원' 공개

플리퍼가 기존 플리퍼 제로를 대체하는 후속작이 아니라, 리눅스 기반 네트워킹·확장형 기기인 플리퍼 원을 공개했어. RK3576 8코어 ARM 칩, 와이파이 6E, 듀얼 이더넷, NVMe, HDMI 4K 120Hz까지 넣으면서 장난감 같은 해킹 도구에서 훨씬 범용적인 리눅스 장비 쪽으로 방향을 넓히는 그림이야.