2026년 9월 24일 목요일

MAX4410의 시대는 지나갔는가

Fluid Ardule의 I²S DAC(PCM5102A 사용) 출력은 헤드폰을 직접 울리기에 적당하지는 않다. 음원 파일이나 여러 채널의 출력이 동시에 나오는 MIDI 파일 재생에서는 큰 문제가 없으나, 어쿠스틱 피아노 사운드폰트를 걸어놓고 연주할 때에는 약간 빈약한 느낌이다. 16개 채널 중 하나에서만 소리가 나므로 그러한 기분이 드는 것은 당연하다. 이 DAC의 출력은 파워앰프로 보내어 스피커를 울리는 것이 가장 바람직하다.

근본적인 해결책은 적당한 헤드폰 앰플리파이어를 쓰는 것이다. 예전에 MAX4410칩을 사용한 헤드폰 앰플리파이어 보드를 몇 개 구입해 둔 일이 있다. 문제는 이를 Fluid Ardule 내에 넣어버릴 수가 없다는 점이다. 우선 전후 패널이 너무 두꺼워서 볼륨 pot의 나사산이 이를 통과하여 나오지 못한다. 더 큰 문제는 SMPS의 자체 노이즈가 딸려 나오는 것이다. 전원이 들어간 SMPS에 가까이 귀를 대면 '삐~뀨~'하는 소리가 난다. DAC에서는 문제가 없으나 이를 MAX4410 앰플리파이어 보드의 전원으로 공급하면 여지없이 출력단에서 이 소리가 딸려 나온다. 

따라서 별도의 전원을 공급하는 거치형 헤드폰 앰플리파이어를 만들어야 한다. 그러려면 기존의 보드를 적당한 케이스에 넣고 입출력 단자와 파일럿 LED 등을 달아야 한다. 서투른 DIYer를 가장 힘들게 하는 점은 바로 케이스 가공하기가 아니던가.

차라리 완제품 앰프를 살까? 알리익스프레스를 검색해 보니 MAX97220이라는 칩을 사용한 보드가 대세이다. 3.5mm 스테레오 폰잭이 입력과 출력에 전부 달려 있어고 USB-C 커넥터가 붙어 있어서 작업이 편리한 보드가 눈에 뜨였다. 내가 보유한 MAX4410 보드는 출력용 폰잭만 붙어 있다.

항목 MAX97220 MAX4410
용도 저왜곡 헤드폰 앰프 저전압 헤드폰 앰프
전원 약 2.5–5.5 V 약 1.8–3.6 V 계열*
출력 방식 DirectDrive 계열, ground-referenced DirectDrive 계열
입력 차동 입력 가능 기본적으로 single-ended
출력 능력 비교적 강함 충분하지만 구형 설계
노이즈/왜곡 매우 낮음 양호
PSRR 우수 상대적으로 불리
PCM5102A와 조합 추천 사용 가능
세대 2011년 출시 2000년대 초반 출시

* 시중 MAX4410 모듈이 5–12 V 입력을 지원한다고 표시되어 있다면, 보드에 별도의 전압 레귤레이터가 포함되어 MAX4410의 실제 동작전압으로 낮추어 주는 경우를 구분해야 한다. 내가 갖고 있는 보드가 그러하다.

성능은 비교적 최근 제품인 MAX97220이 더 나은 것 같다. 구입을 할까? 일단 하나를 주문한 다음, 작업실로 쓰는 작은 방으로 들어갔다. MAX4410 보드에 케이스와 커넥터를 연결하려고 책상 위에 부품을 늘어 놓고는 거의 두 달 가까운 시간이 흘렀다.

에이, 해 보자. 파일럿 LED는 보드의 레귤레이터에 붙여버렸다. Fluid Ardule의 핵심 부품인 라즈베리 파이 3B를 한때 품고 있었던 파랑 알루미늄 케이스의 일부를 사용했다. 사실 사진에서 보인 것은 상판이다. 하판은 라즈베이 3B의 마운팅용 보드가 되어 Fluid Ardule 내에 영구히 머물고 있다.


몇 달 전에 측면 구멍을 넓히느라 무척 애를 먹었다.


나쁘지 않다! 앰프의 볼륨을 올리니 피아노 소리가 이제야 좀 박력있게 느껴진다. 출력단자에 해당하는 듀폰 커넥터의 접촉이 약간 불량한데, 핀을 살짝 구부리든지 또는 납땜으로 직결을 해 버리면 된다.

이것을 매번 어댑터로 구동하려면 약간 성가시다. 보조배터리를 연결하면 좋을 것 같은데, 케이블 끝의 USB-C 단자에 다음과 같은 보드를 달아서 원하는 전압을 뽑으면 될 것 같다. USB-C 단자에서는 단순히 +5V/GND에서 선을 끌어다가 다른 기기를 구동하면 안 된다. USB-A 시절과 같이 그렇게 단순하지 않다. 



ChatGPT의 설명을 들어 보자.

USB-C에서는 CC1/CC2(Configuration Channel) 핀을 통해 전원을 공급하는 쪽(Source)과 받는 쪽(Sink)이 서로 연결 상태와 역할을 확인합니다. 정상적인 USB-C Sink 장치는 CC 핀에 Rd 저항(보통 5.1 kΩ)을 연결하여 “나는 전원을 받는 장치다”라고 Source에 알려줍니다. 이 절차가 성립해야 Source가 VBUS에 5 V를 공급하는 것이 USB-C의 정상적인 동작입니다.

따라서 USB-C 커넥터에서 VBUS와 GND만 납땜해서 빼내면 문제가 생길 수 있습니다. 단순한 충전기는 우연히 5 V를 계속 내보낼 수도 있지만, 규격을 제대로 따르는 충전기나 보조배터리는 Sink가 연결된 것으로 인식하지 못하여 아예 5 V를 켜지 않거나 일정 시간이 지나면 출력을 차단할 수 있습니다.

여기에 보조배터리에는 또 하나의 문제가 있습니다. CC 협상이 제대로 되어 5 V가 나왔다고 해도, 헤드폰 앰프처럼 소비전력이 매우 작은 장치는 보조배터리가 “부하가 없어졌다”고 판단하여 자동으로 꺼질 수 있습니다. 어제 100 Ω 저항을 달고, 다시 91 Ω을 병렬로 추가했는데도 배터리가 꺼졌던 문제는 이 저부하 자동 차단과 관련된 별개의 문제일 가능성이 큽니다.

MAX97220 앰플리파이어 보드는 결국 주문을 취소하였다. 

공작을 한동안 쉬면 감각이 줄어서 질 좋은 결과물이 나오지 않는다. 사실 어제 업무 스트레스를 삭이기 위해 정말 오랜만에 납땜인두를 들었다가 제대로 되는 것이 하나도 없어서 엄청난 좌절감을 느꼈었다. 온갖 부품과 잡동사니를 다 치워 버리고 더 이상 DIY를 하지 말까 생각도 했었다. 욕심을 버리고 차분한 마음을 갖는 것이 무엇보다 중요하다.

다음 DIY 프로젝트는 KORG X2 Music Workstation의 망가진 2DD 플로피 디스크 드라이브를 대체할 에뮬레이터를 달아 보는 것. 이렇게 하면 USB 매체를 이용해서 X2와 PC 사이의 양방향 데이터 전송이 가능하다. 현재는 SysEx를 이용한 느린 덤프만 겨우 가능한 상태이다. PCG 파일의 역엔지니어링이 충분히 가능하므로 플로피 에뮬레이터가 제대로 설치만 되면 X2를 Ardule 생태계에 편입할 수 있을 것이다.

2026년 9월 23일 수요일

바이오데이터를 공유한다는 것은 무엇인가? Open Repository, Controlled Access, 그리고 Federation

※ 이 글은 다음 주 싱가포르에서 열리는 제14차 GA4GH Plenary meeting 참석을 앞두고 개인적인 공부를 위해 작성한 것이다. GA4GH의 개념과 관련 자료를 이해하기 위해 생성형 AI(ChatGPT)와 대화하면서 초안을 자동 생성하고, 내용을 검토·수정하여 정리하였다. 따라서 GA4GH나 소속기관의 공식 입장을 나타내는 글이 아니다.


연구데이터를 공유해야 한다는 데에는 이제 큰 이견이 없다. Open Science와 FAIR Data가 연구정책의 중요한 원칙이 되었고, 공공 연구비로 생산한 데이터는 가능한 한 널리 재사용할 수 있어야 한다는 요구도 강해졌다.

그러나 바이오데이터, 특히 사람의 유전체와 임상정보를 다루기 시작하면 이야기는 금방 복잡해진다.

모든 데이터를 인터넷에서 자유롭게 내려받게 하는 것이 과연 가장 바람직한 데이터 공유일까?

더 나아가 데이터를 반드시 한곳에 모아야 할까? 원자료를 분산해서 보관하더라도, 적어도 메타데이터만큼은 한곳에 모아야 제대로 검색하고 활용할 수 있는 것일까?

어쩌면 우리는 지금까지 ‘공유’를 너무 쉽게 한곳에 모으고, 한곳에서 검색하고, 필요한 데이터를 내려받는 것으로 생각해 온 것은 아닐까?

그렇지 않다. 오히려 오늘날의 바이오데이터 인프라를 이해하려면 다음 세 가지 sharing architecture를 구별해 볼 필요가 있다.

  1. Open-access repository
  2. Controlled-access repository / environment
  3. Federated data-sharing infrastructure

이 세 가지는 앞의 방식이 낡아서 뒤의 방식으로 대체되는 발전단계가 아니다. 데이터의 성격과 위험, 그리고 연구환경에 따라 서로 다른 방식이 필요하며 실제로는 함께 존재한다.

1. 가장 단순하고 강력한 모델: Open-access repository

생명정보학 연구자에게 가장 익숙한 것은 공개 데이터 저장소이다.

연구자가 데이터를 생산하고 repository에 제출하면 accession이 부여되고, 다른 연구자는 검색하여 데이터를 내려받는다.

Researcher
    ↓ submit
Repository
    ↓ search / download
Research community

염기서열 데이터에서는 INSDC가 대표적인 사례이다. GenBank, ENA, DDBJ가 데이터를 국제적으로 교환함으로써 연구자는 공개된 nucleotide sequence data를 전 세계 어디에서나 활용할 수 있다.

이 모델은 현대 생명과학 발전에 엄청난 기여를 했다. 논문에 염기서열 몇 줄을 싣는 대신 accession을 제시하면 전 세계 연구자가 동일한 원자료를 다시 사용할 수 있게 되었다. 이처럼 연구데이터를 가능한 한 제약 없이 이용할 수 있게 하는 Open Access는 Open Science의 이상과도 매우 잘 맞는다.

Open Science의 이상과도 매우 잘 맞는다.

그러나 여기에서 중요한 구별이 하나 필요하다.

Open Science가 반드시 모든 데이터를 Open Access, 즉 누구나 별도의 접근 승인을 받지 않고 이용할 수 있는 형태로 제공하라는 뜻은 아니다.

개인정보, 임상정보, human genomic data처럼 공개함으로써 연구참여자에게 위험을 초래할 수 있는 데이터에는 정당한 접근 제한이 필요하다. UNESCO의 Recommendation on Open Science도 scientific knowledge는 가능한 한 개방되어야 하지만 privacy, confidentiality, human subjects 보호 등의 이유로 정당화되고 비례적인 접근 제한을 둘 수 있으며, 필요한 경우 defined access criteria에 따른 mediated access를 사용할 수 있음을 명시하고 있다.

따라서 Open Science의 반대말이 Controlled Access인 것은 아니다.

오히려 Controlled Access 역시 책임 있는 Open Science를 구현하는 한 방법이라고 볼 수 있다.

2. 사람의 유전체가 등장하면서 문제가 달라졌다

사람의 genome은 일반적인 연구데이터와 성격이 다르다.

이름과 주민등록번호를 제거했다고 해서 완전히 익명이라고 단정하기 어렵다. Genotype이나 molecular sequence 자체가 개인 식별 가능성을 가질 수 있고, phenotype이나 clinical information과 결합되면 위험은 더 커질 수 있다.

따라서 human genomic data에서는 다음과 같은 모델이 필요해졌다.

Researcher
    ↓ request
Data Access Committee
    ↓ review
Controlled-access repository
    ↓ approved access
Researcher

미국 NIH의 dbGaP가 대표적인 사례이다.

연구자는 단순히 회원가입을 하고 controlled data를 내려받는 것이 아니라 Data Use Certification을 포함한 access request를 제출한다. NIH Data Access Committee(DAC)는 제안된 연구목적이 연구참여자의 consent와 해당 dataset에 설정된 제한조건에 부합하는지를 검토한다.

따라서 핵심 질문은 더 이상 단순한 availability가 아니다.

Can I find the data?

에 더하여

Am I allowed to use the data
for this particular purpose?

라는 질문이 등장한다.

이것이 Controlled Access의 세계이다.

3. 하지만 Controlled-access repository만으로도 충분하지 않다

여기까지는 여전히 repository 중심의 사고방식이다.

승인을 받으면 데이터를 repository에서 연구자가 있는 곳으로 가져오는 방식을 생각하기 쉽다.

Repository
     ↓
 approved download
     ↓
Researcher's environment

그러나 dataset이 수십 TB, 수백 TB가 되고 여러 병원과 국가에 분산되면 상황이 달라진다.

더 중요한 것은 모든 데이터를 하나의 중앙 repository로 옮기는 것 자체가 불가능하거나 바람직하지 않을 수 있다는 점이다.

병원 A의 데이터는 병원 A에 있어야 하고, 병원 B의 데이터는 병원 B의 governance 아래 있어야 할 수 있다. 한국의 데이터와 싱가포르의 데이터에는 서로 다른 법률과 consent, access policy가 적용될 수도 있다.

그렇다면 새로운 질문이 생긴다.

데이터를 한곳에 모으지 않고도 하나의 연구 인프라처럼 사용할 수는 없을까?

여기에서 Federation이라는 개념이 중요해진다.

4. GA4GH가 풀려는 문제

GA4GH(Global Alliance for Genomics and Health)는 거대한 국제 유전체 데이터베이스를 만들려는 조직이 아니다.

GA4GH는 genomic and health community가 실제로 필요로 하는 technical standards와 regulatory·ethical policy tools를 개발한다. 그 목적은 서로 독립적으로 관리되는 genomic and health data infrastructure가 안전하고 책임 있는 방식으로 함께 작동할 수 있게 하는 데 있다.

예를 들어 연구자는 먼저 데이터가 어디에 있는지 찾아야 한다.

                 Researcher
                     ↓
                   Beacon
                     ↓
          ┌─────┼─────┐
          ↓          ↓          ↓
        Korea    Singapore    Europe

Beacon은 관련 데이터가 존재하는지를 찾게 해준다. 데이터 자체를 연구자에게 곧바로 넘겨주는 서비스는 아니다.

그 다음에는 그 데이터가 어떤 목적으로 사용될 수 있는지를 알아야 한다.

Dataset
   ↓
  DUO

DUO(Data Use Ontology)는 dataset의 permitted use를 machine-readable하게 표현하기 위한 ontology이다.

반대편에는 연구자가 있다.

Researcher
    ↓
Passport / Visa

연구자가 누구인지, 어떤 자격과 authorization을 가지고 있는지를 서로 다른 기관이 신뢰할 수 있는 방식으로 전달할 필요가 있다.

그리고 실제 data object를 표준적인 방식으로 가리키고 접근하기 위해 DRS(Data Repository Service)와 같은 interface를 사용할 수 있다.

이렇게 되면 서로 다른 기관이 반드시 같은 software나 같은 storage를 사용할 필요가 없다.

중요한 것은 같은 시스템을 사용하는 것이 아니라 서로 이해할 수 있다는 것이다.

5. 더 나아가 데이터를 움직이지 않을 수도 있다

Federation에서 특히 흥미로운 변화는 분석 방식에서 나타난다.

전통적인 모델은 다음과 같다.

DATA
 ↓
Researcher

연구자가 데이터를 내려받아 자신의 compute environment에서 분석한다.

그러나 sensitive genomic data에서는 반대로 할 수 있다.

WORKFLOW
   ↓
 DATA

즉 연구자의 분석 workflow를 데이터가 존재하는 secure compute environment로 보내는 것이다. 흔히 compute-to-data 또는 bring the algorithms to the data라고 표현한다.

GA4GH의 WES(Workflow Execution Service)와 TES(Task Execution Service)는 이런 방식의 federated analysis를 지원할 수 있는 표준 interface를 제공한다.

따라서 여기에서는 데이터 공유라는 말 자체의 의미가 달라질 수 있다.

과거에는 흔히

데이터를 공유한다 = 파일을 전달한다

라고 생각했다.

Federation에서는 이를 다음처럼 생각할 수도 있다.

데이터를 공유한다 = 허가된 연구자가 그 데이터로부터 연구결과를 얻을 수 있게 한다.

파일 자체가 연구자의 컴퓨터로 전달되지 않아도 데이터는 연구에 활용될 수 있다.

6. 세 가지 모델을 비교해 보자

Open-access repository Controlled-access repository Federated infrastructure
대표 질문 데이터가 공개되어 있는가? 내가 이 데이터를 이 목적으로 사용할 수 있는가? 서로 다른 기관의 데이터를 함께 사용할 수 있는가?
접근 방식 공개 검색·다운로드 신청·심의·승인 Discovery + authorization + interoperable access/compute
데이터 위치 Repository Controlled repository / secure environment 여러 기관에 분산 가능
연구자 인증 상대적으로 단순 중요 기관 간 신뢰 가능한 identity가 특히 중요
Data-use restriction 상대적으로 적음 핵심 요소 Machine-readable policy와 기관 간 trust가 중요
분석 방식 주로 다운로드 후 분석 승인 후 다운로드 또는 secure environment Compute-to-data 가능
대표 사례/개념 INSDC 등 dbGaP, EGA 등 GA4GH standards를 활용한 federated ecosystem
핵심 가치 Openness Responsible access Interoperability + Trust + Local control

여기에서 중요한 것은 이 세 모델을 우열관계로 보지 않는 것이다.

공개할 수 있는 nucleotide sequence를 굳이 복잡한 access-control system 안에 넣을 필요는 없다.

반대로 identifiable human genomic data를 Open Science라는 이유만으로 unrestricted download하게 만들어서도 안 된다.

그리고 데이터가 여러 병원과 국가에 분산되어 있다면 하나의 controlled repository로 모두 복사하는 것보다 federation이 적절할 수 있다.

결국 데이터의 성격에 맞는 sharing architecture를 선택해야 한다.

7. Open과 Closed 사이에는 넓은 공간이 있다

이런 관점에서 보면 데이터 공유를

OPEN ←────────────────────────→ CLOSED

라는 한 축으로만 생각하는 것이 오히려 문제일 수 있다.

실제 연구데이터 infrastructure에는 훨씬 다양한 access model이 존재한다.

Open download
      ↓
Registered access
      ↓
Controlled access
      ↓
Secure analysis environment
      ↓
Federated analysis

아래로 내려간다고 반드시 데이터가 덜 공유되는 것은 아니다.

예를 들어 100,000명의 genome을 연구자에게 직접 다운로드하게 하는 것보다 secure environment 안에서 승인된 workflow를 실행할 수 있게 하는 것이 개인정보를 더 잘 보호하면서도 실제 연구 활용성을 높이는 방법이 될 수 있다.

따라서 중요한 질문은

How open is the data?

하나만이 아닐 것이다.

어쩌면 더 중요한 질문은

How usable is the data under appropriate governance?

일 수 있다.

8. 결국 핵심은 Trust이다

Open repository에서는 trust 문제가 상대적으로 단순하다. 누구나 데이터를 사용할 수 있기 때문이다.

Controlled access에서는 연구자를 신뢰해야 한다.

Federation에서는 한 단계 더 나아간다.

기관이 다른 기관을 신뢰해야 한다.

Can Hospital A trust
the identity issued by Institution B?

Can Singapore trust
an access authorization from Korea?

Can the data custodian trust
the workflow submitted by a foreign researcher?

따라서 API 몇 개를 연결한다고 federation이 완성되는 것은 아니다.

오늘 공부하면서 나는 federation의 핵심을 다음과 같이 정리하게 되었다.

Federation = Trust + Interoperability + Local control

9. 다시 Open Science로 돌아가면

이제 처음의 질문으로 돌아가 보자.

Open Science는 모든 연구데이터를 인터넷에 공개하는 것일까?

적어도 바이오데이터에서는 그렇게 단순하게 정의하기 어렵다.

Open Science가 추구해야 할 것을 반드시 unrestricted access라고 보기보다 maximum responsible reuse라고 생각하는 편이 더 적절할 수도 있다.

공개 가능한 데이터는 open repository에 둔다.

민감하지만 연구가치가 높은 데이터는 controlled access로 제공한다.

그리고 물리적으로 이동시키기 어렵거나 서로 다른 기관의 governance 아래 있어야 하는 데이터는 federation을 통해 발견하고, 허가받고, 분석한다.

OPEN-ACCESS REPOSITORY
          │
          │
  CONTROLLED ACCESS
          │
          │
FEDERATED ACCESS & ANALYSIS

이들은 서로 경쟁하는 모델이 아니다.

데이터를 가능한 한 많이 공유하면서도, 그 데이터가 요구하는 책임을 지키기 위해 만들어진 서로 다른 도구들이다.

이렇게 생각하고 나니 GA4GH의 의미도 조금 다르게 보인다.

GA4GH는 Open Science를 제한하기 위한 체계라기보다, 단순한 Open Access로는 공유할 수 없는 genomic and health data까지 책임 있는 재사용의 영역으로 끌어들이기 위한 기술적·governance적 시도라고 볼 수 있지 않을까.

GA4GH 스스로도 genomic and health-related data의 공유가 human health의 발전에 중요하다고 전제하면서, privacy, non-discrimination, procedural fairness와 human rights에 기반한 responsible data sharing을 강조한다.

다음 주 싱가포르에서 실제 GA4GH community의 사람들을 만나고 Plenary의 여러 발표를 들으면서, 오늘 공부하며 만들어 놓은 이 그림이 실제 현장에서는 어떻게 구현되고 있는지 확인해 보고 싶다.


참고자료

  • UNESCO, Recommendation on Open Science
    https://www.unesco.org/en/legal-affairs/recommendation-open-science
  • GA4GH, Framework for Responsible Sharing of Genomic and Health-Related Data
    https://www.ga4gh.org/framework/
  • GA4GH, What We Do
    https://www.ga4gh.org/what-we-do/
  • GA4GH, About Us
    https://www.ga4gh.org/about-us/
  • NIH dbGaP, Requesting Controlled-Access Data
    https://www.ncbi.nlm.nih.gov/projects/gap/cgi-bin/about.html

2026년 9월 21일 월요일

이 롱우드(Longwood)는 그 롱우드가 아니었네

지금으로부터 꼭 20년 전, 보스턴에 약 두 달 넘게 가족과 함께 장기 출장을 나온 일이 있다. Harvard Medical School의 George M. Church 연구실에서 polony sequencing 기법을 통해 대장균 변이체의 유전체 염기서열을 해독하는 임무를 띠고서. 실제로는 라이브러리를 만드는 데 시간이 많이 걸려서 미국에 머무는 동안에는 본격적인 시퀀싱 실험까지 이어지지는 못했었다. 이런 기회를 갖게 해 준 21C 프론티어 미생물유전체활용기술개발사업단에게 여전히 고마운 마음을 잊지 않고 있다. 

당시 Church Lab에서 만났던 한국인 방두희 박사는 현재 연세대학교 화학과에서 교수로 재직 중이고(웹사이트), Gautam Dantas(Washington University in St. Louis), Greg Porreca, Nicholas Reppas, Jay Shendure, Kun Zhang, Resmi Charalel 정도의 얼굴이 생각이 난다(Church Lab members 1989-2014). 나를 직접적으로 도와주었던 사람은 Sara Vassallo였다. Gautam은 그로부터 수년 뒤에 미국에서 열렸던 다른 학회에서 한번 우연히 만난 일이 있다. 

기억나는 또 다른 과학자는 대만인인 Hsin-Hung (David) Chou. 그는 현재 국립대만대학교에서 재직 중이다(웹사이트1, 웹사이트2). 내 기억이 정확하다면 당시 시퀀싱을 할 샘플은 실험적 장기 진화 연구(Long-Term Evolution Experiment, LTEE, 꽤 최근까지는 Long-Term Experiment Evolution으로 불렸었음)의 대가인 Richard E. Lenski 교수(미시건 주립대)에게서 얻기로 한 것이었다. 시퀀싱용 샘플 균주가 왜 왜 하바드 대학교에 있는가? 2006년 당시 하바드 대학교 Department of Organismic and Evolutionary Biology에서 부교수로 있던 Christopher J. Marx는 Lenski 연구실에서 박사후연구원으로 근무한 일이 있고, Marx는 바로 David의 박사과정 지도교수였기 때문이다. David과 함께 케임브리지의 메인 캠퍼스 Marx 랩에 가서 진탕배양기 속에서 달그락거리는 수십개의 배양용 플라스크를 보았던 기억이 난다. 몸집이 매우 큰 친구였던 David과는 같이 밥을 먹거나 커피를 마시면서 이야기를 할 기회가 많았다. 그 후에 몇 차례 이메일로 연락을 주고받았다가 마지막 이메일을 보낸 것이 꼭 10년 전인 2016년이었다. 이 글을 쓰면서 문득 생각이 나서 이메일을 보냈고, 반가운 답장을 받았다.

그 뒤로 보스턴을 들른 것은 2년 전에 비행기를 갈아타기 위해 로건 국제 공항에 두어 시간 머문 것이 전부였다. Church Lab은 찰스 강 남쪽, 대형병원이 밀집한 롱우드 의료지구(Longwood Medical Area)에 있다. 반면 본교는 찰스강 북쪽, 케임브리지에 위치한다. 두 캠퍼스의 거리는 약 5 km. 20년 전에 내가 있었던 동네는 바로 남쪽에 해당한다. 우리 가족은 Church Lab이 위치한 곳에서 걸어갈 수 있는 거리인 Back Bay Manor라는 아파트에서 잠시 거주했었다. 무슨 이유인지는 모르겠으나 지금은 폐쇄된 상태라고 한다. 아내는 근처 Stop & Shop(구글맵)에서 카트 가득 식료품을 구입하여 매번 집에서 요리를 하느라 정말 고생이 많았다. 예나 지금이나 나는 외식에 너무 인색했으니...

그로부터 꼭 20년, 롱우드 거리(Longwood Avenue)는 어떻게 바뀌었을까?


David이 이 던킨의 커피가 일품이라고 했었는데... 롱우드 갤러리아 안 푸드코에 있다.

롱우드 갤러리아는 아직도 건재하다.

Beth Israel Deaconess Medical Center.

롱우드 센터. Dana-Farber Cancer Institute와 Boston Children's Hospital이 여기에 입주해 있다.


Boston Children's Hospital에 근무하는 한국인 과학자를 만난 뒤 Green Line(T)을 타러 나섰다. 내가 뻔질나게 T를 탔던 역 이름이 Longwood였던 것으로 생각하고 길을 물어서 찾아갔는데 길거리 모습이 영 익숙하지 않다. 지하철역을 조금만 넘어가면 가족과 같이 두 달 넘게 살았던 아파트가 나오는데, 역에 다가갈수록 점점 길거리의 모습이 낯설게 느껴지는 것이었다. 막상 찾아간 역은 굴다리 밑으로 열차가 지나간다. 이상하다? 절대로 이런 역이 아니었는데... 분명히 차도와 나란히 달리는 선로가 있었고 지금 눈앞에 펼쳐지는 주변 길거리의 모습도 20년 전의 기억과는 너무나 달랐다.

엥? 선로가 굴다리 아래를 통과한다. 내가 기억하는 롱우드 역은 이렇지 않았는데...


T에 오른 뒤 Green Line 노선도를 확인해 보았다. 한 정거장만 북동쪽으로 올라가면 Museum of Fine Arts, 그리고 Northeastern, Prudential 등 익숙한 역명이 나와야 하는데 왜 하나도 맞지를 않나? 노선도를 바라보고 있노라니 비로소 궁금증이 풀렸다. 내가 T를 탔던 곳은 Longwood가 아니라 이곳에서 남동쪽으로 1마일 남짓 떨어진 Longwood Medical Area 역이었던 것이다. 즉 Galleria를 나와서 왼편이 아니라 정 반대편인 오른쪽으로 갔어야 했다.


MBTA(우리가 흔히 말하는 MBTA test가 아니라 Massachusetts Bay Transportation Authority임)에서 제공하는 노선도에 의하면 Longwood는 D 지선, Longwood Medical Area는 E 지선에 위치한다. 

T Green Line 노선도(출처).


기억이란 얼마나 부정확한 것인가! 겨우 20년 전에 살았던 곳도 이렇게 제대로 기억하고 있지 못하다니. 

2026년 9월 11일 금요일

느린게 아니라 기다리고 있었던 것

"기다리고 있었습니다"

시인, 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으로 바꿀 수도 있다.

버전 260910u.


두 개의 사운드폰트를 동시에 로딩하므로 부팅 시간은 약간 길어졌지만, 일단 올라온 뒤에는 연주 모드를 바꿀 때마다 사운드폰트를 내렸다가 다시 올릴 필요가 크게 줄었다. 특히 Combi는 특정 사운드폰트에 종속되지 않고 현재 올라와 있는 범용 사운드폰트를 그대로 사용하도록 바꾸어 운용 방식이 훨씬 간단해졌다.

스포츠 캐스터로도 잘 알려진 이재후 아나운서는 같은 방송국의 아침 방송인 '출발 FM과 함께(아침 7시~)'를 진행한다. 방송 시간대가 다르니 두 아나운서의 목소리를 같은 시간에 듣기는 어렵다. 간혹 특집 방송이 편성되면 서로를 향한 장난기 넘치는 디스를 하기도 한다. 

"제 이름은 이재호가 아니고 이재후입니다. '후지다'의 '후'입니다."

뭔가 일이 잘 풀리고 있지 않다면, 능력이 부족해서가 아니라—후져서 그런 것이 아니라—누군가의 결정을 기다리느라 그럴 수도 있다는 것을 명심하자. 

그런데 그 결정권자가 나였다면?

Sound 서브메뉴는 하루가 지나 다시 바뀌었다. 글로 설명하기는 어렵지만, 꽤 많은 고민을 하여 합리적으로 고친 UI이다(버전 260911c).


2026년 9월 8일 화요일

요즘의 드럼 패턴학

바이브 코딩(Vibe Coding)을 주로 하다 보니 기술적인 사항을 기록하기 위한 문서를 ChatGPT에서 자동 작성하여 남기는 경우가 점점 많아지고 있다. 이를 적당히 HTML로 자동 변환하여 이곳 구글 블로그에 그대로 올리는 일도 과거보다는 훨씬 많아졌다. 요즘은 게을러져서 '인공지능을 통해 자동 생성한 글'임을 밝히는 일도 잘 하지 않는다.

이렇게 만들어진 글은 생기가 없고, 재미도 없다. 단지 건조하게 정보만 나열할 뿐이다. 순식간에 비교적 정확한 글을 만드는 것은 즐거운 일이지만, 직접 쓴 글에 비하여 내가 나중에 다시 읽는 빈도 또한 떨어진다. 가급적 인공지능을 이용한 글 자동 생성을 자제해야 되겠다는 생각은 하지만 편리함과 효율 앞에서 그러한 의지를 계속 펼쳐 나가기가 어렵다. 

요즘은 많은 논문이 이러한 방식으로 쓰여질 것이다. 바이브 코딩으로 드럼 패턴학 연구를 한다면, 그것은 사람의 연구로 인정받아 학술지에 실릴 수 있을까? 최소한 실용적인 코드를 짜고 그 설명을 GitHub에 올리는 데에는 별다른 주저함이 없다. 특히 각종 명세서라든가 프로그램 사용법 등은 ChatGPT가 아주 정확하게 만들어 준다. 그러나 이를 학술 성과로는 인정받을 수 있을까?

인공지능을 이용하여 제품을 개발하면 안 된다는 법은 없다. 그러나 논문이라면?  인공지능에게 물어 보았다.

  1. 가장 중요한 것은 "누가 문장을 썼는가"가 아닙니다.
  2. 따라서 "논문 초안을 AI에게 쓰게 하는 것" 자체는 부당하지 않습니다. 다만 투고한 저널의 개별 정책은 반드시 확인해야 합니다.
  3. 오히려 이 연구에서는 AI 사용 자체가 흥미로운 부차적 이야기가 됩니다.
  4. 더 중요한 문제는 "논문거리가 되느냐"인데—저는 된다고 봅니다.

상당히 위로가 되는 글.

3번 항목에 대해서는 Methods 또는 별도의 disclosure에서 이렇게 밝히는 것이 좋다고 한다.

Generative AI tools were used interactively during software development, exploratory data analysis, methodological discussion, and manuscript drafting. The author determined the research questions, designed and evaluated the analytical framework, selected and curated the datasets, interpreted the results, and verified the analyses and manuscript content. AI-generated code and text were reviewed and modified by the author before use.

굉장히 솔직하면서도 흥미를 유발할 수 있는 글이다. 이제는 인공지능이 이런 일까지 할 수 있음을 밝히는 것이기 때문이다. 인공지능의 활용에 대해서 너무 죄책감을 가질 것은 없다. 밝힐 것은 밝히는 것이 좋다.

그래서 '드럼 못 치는 사람의 드럼학'인 나의 드럼 패터놀로지는 점점 진화하고 있다. 프로그래밍을 하든, 기성곡의 MIDI 데이터를 참조하든, 반복 사용할 수 있는 드럼 패턴 라이브러리를 만들 수 있을 것이라는 것이 나의 기대였다. 초창기에는 추상화를 거쳐 드럼 패턴을 표현하는 방법을 만드는데 힘썼고, 지금은 돌아다니는 유명 대중음악의 MIDI 파일에서 드럼 패턴을 추출하는 방법을 구체화하였다. 그런데 분석을 하면 할 수록 마치 bacterial pangenome 분석과 유사하다는 생각이 들었다. 그것도 open pangenome. 다음의 패턴 전이 그래프를 보라.


ABBA의 Dancing Queen(1979)에서는 몇 개 되지 않는 패턴이 곡 전체에서 재사용된다. 그런데 오른쪽의 Hammer to Fall(Queen, 1984)에서는 어떤가? 패턴 분석 전에는 매우 심플한 패턴이 재사용될 것이라고 생각했다. 드럼 난이도는 초중급이라고 소개되어 있다. 그러나 실제로는 겉보기에 매우 단순해 보이는 패턴이 조금씩 바뀌면서 쓰인다. 핵심 패턴은 18.1%(25회)의 비중을 차지하는 다음의 것(SNG_0035)인데 이를 조금씩 변형한 것이 훨씬 많이 존재한다.



유튜브에서는 이 패턴을 거의 전적으로 반복하고 있지만, 실제는 다르다. 이 곡을 MIDI로 전사한 전문가가 원곡보다 더 복잡하게 재현할 이유는 없다.


내가 지금까지 모은 패턴 라이브러리에 SNG_0035와 유사한 것이 이미 들어 있을까? 그에 앞서서 드럼 패턴의 유사도를 올바르게 정의하는 것으로부터 시작해야 한다. 물론 이 단계에서부터 요즘 유행하는 벡터화나 임베딩을 떠올릴 수 있다. 그러나 그것보다는 '눈과 귀에 친숙한 고전적인 방법'을 적용하였다. 상세한 것은 나중에 다시 소개하기로 하자. 예를 들어 패턴의 뼈대를 이루는 킥과 하이햇에 높은 가중치를 둔다는 것이 중요한 원칙 중 하나이다. 지금 단계에서는 패턴 간의 유사도를 수치화하는 방법을 어느 정도 정립하였고, 몇 건의 실제 곡 분석을 통해서 'dedupe'를 할 수 있는 실용적인 기준도 마련하였다. 귀로 들었을 때 어느 정도 고개가 끄덕여지는 합리적인 기준을 세웠다고 자부한다. 결론은 SNG_0035와 유사한 패턴은 아직 라이브러리에 없다는 것이다.

Dancing Queen의 곡 내 패턴 계층적 분석 결과. 이 분석의 목적은 중복 제거(dedupe)를 하기 위함이다. 서로 다른 패턴은 겨우 11개에 불과하며, 3개의 그룹으로 묶을 수 있다. 각 그룹에는 대표에 해당하는 medoid를 할당한다. 이는 매우 단순한 사례이며, Hammer to Fall은 반대편 극단에 해당한다. Medoid는 수학적으로 '중심'에 해당할지 모르나, 음악적으로는 그렇지 않다. 이에 따라서 새 버전의 스크립트에서는 canonical pattern을 따로 산출하게 만들었다.


실제 MIDI 파일을 열어 보면 전체적으로 1~2 tick을 보정해야 그리드에 딱 맞는 경우도 있다. 심지어 단순한 드럼 패턴이 있을 것으로 생각하여 열어본 스티브 밀러 밴드의 Abracadabra(1982)는 하이햇 타격이 정확한 8비트가 아니었다. 이는 패턴이 원칙적으로 그리드에 딱 맞아야 한다는 나의 원칙에 매우 심각하게 벗어나는 예외에 해당한다. 음원을 루프백 녹음하여 분석해 보니 이 곡이 히트를 쳤던 그 당시에 내 귀에도 그렇게 들렸던 것처럼 55:45 정도(정확한 수치는 아님)의 아주 약한 스윙이 있었다. 

또다른 극단을 생각해 보자. 듣기만 하면 어떤 곡의 드럼 연주인지 알 수 있는 패턴이 있다. 예를 들어 Toto의 Rosanna(1982). 패턴학 연구용으로는 아주 좋은 사례이지만 커버곡을 연주할 것이 아니라면 이 패턴을 다른 곡에서 재사용하기는 매우 어렵다. 

다시 기본적인 질문으로 되돌아가 본다. 어디까지를 하나의 패턴으로 보아야 할까? 킥과 스네어, 하이햇의 위치만 같으면 같은 패턴인가? 아니면 이렇게 미세하게 밀고 당기는 타이밍까지 포함해야 하나? 처음에는 드럼 패턴을 단순화하고 표준화하여 재사용 가능한 형태로 만드는 것이 목표였다. 그런데 실제 곡을 들여다볼수록 단순화 과정에서 버리는 것들이 오히려 음악의 정체성을 이루고 있을지도 모른다는 생각이 든다. 드럼 패턴학은 패턴을 모으는 일에서 시작했는데, 요즘은 점점 ‘무엇이 같은 패턴인가’를 묻는 일이 되어 가고 있다.



2026년 9월 4일 금요일

[셀프 학습 노트] 드럼 패턴의 유사도를 계산하다가 embedding까지 생각해 보다

오늘은 모아 둔 ADT 드럼 패턴을 대상으로 “서로 비슷한 패턴을 어떻게 찾을 것인가?”를 조금 더 체계적으로 실험했다.

현재 데이터는 한 마디 단위로 정규화한 뒤, 킥·스네어·하이햇 등의 타격 위치를 비교할 수 있게 만들어 놓았다. 서로 다른 드럼맵도 검색할 때에는 다음과 같은 공통 범주로 환산한다.

KK / SN / HH / TOM / CYM / PERC

현재 확보한 2,010개의 1-bar pattern occurrence를 정리하니 1,796개의 canonical pattern이 만들어졌다. 같은 패턴이 여러 파일에 반복해서 등장하는 경우를 하나의 패턴으로 묶은 결과다.

비슷하다는 것을 숫자로 표현하기

이제 두 패턴이 얼마나 비슷한지를 계산해야 한다.

현재 방법은 머신러닝이 아니다. 킥과 스네어는 리듬의 골격을 이루므로 상대적으로 높은 가중치를 주고, 하이햇 등에는 낮은 가중치를 주는 식으로 사람이 규칙을 정해 similarity를 계산한다.

예를 들어 현재 실험에서는 대략 이런 가중치를 사용한다. 이러한 가중치 체계가 정말 올바른지도 고민해 보아야 한다. 

KK   = 3.0
SN   = 3.0
HH   = 1.0
TOM  = 1.5
CYM  = 1.2
PERC = 1.0

오늘 재미있는 사례가 하나 나왔다. 어떤 기준 패턴(RCK_0040)에 대해 검색했더니, 눈으로 보기에 상당히 비슷한 rock 패턴보다 rap 패턴 하나(RAP_0088)가 더 높은 순위로 나타났다.



계산 과정을 뜯어보니 오류가 아니었다. rap 패턴은 하이햇 두 개가 빠졌고, rock 패턴은 킥 하나가 더 들어 있었다. 현재 가중치 체계에서는 후자의 차이를 더 크게 평가하기 때문에 rap 패턴의 점수가 높아진 것이다.

“킥 하나의 차이는 하이햇 두 개의 차이보다 큰가?”

프로그램이 틀린 것이 아니라, 오히려 이런 질문이 튀어나온 셈이다.

타격의 강도(strength)까지 조금 반영해 보니 순위가 다시 달라졌다. 타격 위치뿐 아니라 accent까지 비슷했던 rock 패턴들이 위로 올라왔다. 그렇다고 strength를 지나치게 강조하면 이번에는 리듬 구조가 다른 패턴까지 올라올 수 있다.

결국 ‘비슷하다’는 말 자체를 정의하는 것이 생각보다 어렵다.

그러다 embedding이라는 말에 도달했다

여기서 자연스럽게 이런 생각이 들었다.

이런 가중치를 계속 사람이 정하지 말고, 컴퓨터가 패턴의 특징을 스스로 학습하게 할 수는 없을까?

여기에서 vectorembedding이라는 개념이 등장한다.

벡터화는 생각보다 단순하다. 예를 들어 다음과 같은 패턴이 있다고 하자.

KK  o . . . o . . .
SN  . . . . o . . .
HH  o . o . o . o .

이를 컴퓨터가 다루기 쉬운 숫자로 바꾸면 다음과 같이 표현할 수 있다.

KK = 1 0 0 0 1 0 0 0
SN = 0 0 0 0 1 0 0 0
HH = 1 0 1 0 1 0 1 0

이것도 이미 일종의 vector이다. 쉽게 말하면 드럼 패턴을 숫자들의 묶음으로 표현한 것이다.

Embedding은 여기에서 한 걸음 더 나간다. 많은 패턴과 그 관계를 학습시켜서 비슷한 패턴은 숫자 공간에서도 가까운 곳에 놓이도록 좌표를 만들어 주는 것이다.

          RCK_0040
             ●
          ● RCK_0050


                         ● RAP_0088

실제로는 이런 2차원 지도가 아니라 수십 또는 수백 차원의 공간일 수 있지만 개념은 같다. 새로운 패턴이 들어오면 그 주변에 놓인 패턴을 찾아서 “이것들이 비슷하다”고 제시할 수 있다.

그런데 무엇을 학습시킬 것인가?

여기에서 다시 오늘의 실험으로 돌아온다.

Embedding을 사용한다고 해서 컴퓨터가 저절로 음악적으로 무엇이 비슷한지 깨닫는 것은 아니다. 컴퓨터에게 비슷한 것끼리 가까이 놓으라고 하려면 먼저 무엇이 비슷한지를 알려줄 방법이 필요하다.

킥 하나가 다른 것과 하이햇 두 개가 다른 것 가운데 어느 것이 더 중요한가? 타격 위치가 같고 accent만 다르면 얼마나 비슷한가? 싱코페이션된 킥 하나가 이동하면 얼마나 큰 차이인가?

바로 오늘 사람이 similarity를 계산하면서 고민했던 문제들이다.

그래서 당장 embedding이나 머신러닝으로 넘어갈 생각은 없다. 지금처럼 설명 가능한 방법으로 패턴을 비교하면서 왜 두 패턴이 비슷하게 또는 다르게 평가되는지를 직접 살펴보는 과정이 먼저 필요하다.

오늘의 결론은 의외로 단순하다.

머신러닝을 적용하는 것보다 먼저 해야 할 일은, 머신러닝에게 무엇을 배우라고 할 것인지를 알아내는 것이다.

드럼 패턴을 모으기 시작했을 때에는 이렇게까지 갈 줄 몰랐다. 단순한 MIDI 파일 정리에서 출발했는데, 어느새 “리듬이 비슷하다는 것은 무엇인가?”라는 문제를 붙들고 있다. Drum Patternology라는 이름이 조금씩 그럴듯해지는 것 같기도 하다.

2026년 9월 3일 목요일

GitHub Pages를 이용한 Ardule Drum Studio의 웹 버전 공개

Ardule Drum Studio는 모든 것을 다 갖춘 단일 HTML 파일이다. 크기는 현재 최신판인 v0.4.8의 경우 7.69 MB. 지금까지는 나의 GitHub Ardule 저장소에 올려 놓고 필요하면 다운로드하여 쓸 수 있게 안내하였다.

GitHub에는 Pages라는 유용한 서비스가 있다. GitHub 저장소에 있는 HTML, CSS, JavaScript 등의 파일을 이용하여 정적 웹사이트를 무료로 공개하도록 해 준다. 이 기능을 이용한다면 필요한 설정을 한 다음 README 문서 내에서 Ardule Drum Studio의 링크를 연결하여 직접 열게 하면 된다. 

만들어진 링크는 다음과 같다. 항상 최신 버전을 가리키도록 만들어 놓았다.

https://jeong0449.github.io/Ardule/ardule-drum-studio.html

PatternLab의 기능도 대폭 개선하였다. 분석 리포트를 읽다가 예를 들어 다음 패턴에 관심이 간다면, 즉시 'Save pattern'을 눌러서 ADT 파일로 저장한다.


이때 만들어지는 ADT 파일은 사람이 편하게 읽을 수 있도록 SLOT orientation을 택하였다.
; ADT v2.3
; Drum Pattern Exchange Format
NAME=TMP_0024
SOURCE=ALLSTARS.MID:26-26 [PatternLab corrected 32 ±1 tick]
TIME_SIG=4/4
SUBDIV=16
LENGTH=16
SLOT_MAP_ID=LEGACY
ORIENTATION=SLOT

[DATA]
@..^..@...@.....
....@.......@..o
@.xo@.xo^.xx@.-x
................
................
................
................
................
^...............
................
................
................

그 다음에 이를 Ardule Drum Studio에 드래그하여 연 뒤 Play를 클릭하여 소리부터 들어보거나, 중간의 Edit 탭을 눌러 노트 단위의 편집을 하여 들어볼 수 있다.


지금까지는 원본 MID 파일을 패턴 단위로 자른 작은 MID 파일(집합)를 만든 뒤, 다시 이로부터 ADT를 만들어야 했다. 파일 전체에서 유래하는 패턴에 대한 일괄적인 작업이 필요하다면 이러한 방식으로 진행하는 것이 자연스럽다. 그러나 PatternLab 결과를 탐색하다가 특별히 눈에 뜨이는 어느 한 패턴을 집중적으로 들여다보고 싶다면 그 즉시 해당 패턴에 대해서 ADT 파일을 추출하게 만드는 것이 훨씬 능률적일 것이다.

Ardule Drum Studio와 PatternLab이 처음 생각했던 것보다 점점 더 쓸모 있는 도구로 변해가고 있다. PatternLab은 MIDI 파일에서 드럼 패턴을 찾아내고, 보정하고, 한 마디 단위의 패턴으로 추출하는 도구가 되었고, Ardule Drum Studio는 이렇게 얻은 패턴을 직접 눈으로 확인하고 들어 보면서 편집하고 재사용하는 환경으로 발전하고 있다.

다음 단계는 지금까지 만들어 둔 ADT/ORN 패턴 컬렉션 전체를 인덱싱(indexing)​하는 것이다. 각각의 패턴을 컴퓨터가 비교할 수 있는 수치적 특징, 즉 벡터로 표현해 두면 새로운 드럼 패턴이 주어졌을 때 기존 컬렉션에서 가장 비슷한 패턴을 찾아낼 수 있다. 단순히 킥과 스네어가 같은 위치에 있는지를 비교하는 것에서 시작하여, 액센트, 싱코페이션, 박자 구조, 그리고 ORN에 기록된 미세한 타이밍과 장식까지 단계적으로 비교 대상으로 확장할 수 있을 것이다.

아직 Ardule의 패턴 분석에 인공지능을 본격적으로 사용하는 단계는 아니다. 오히려 당분간은 사람이 이해할 수 있는 특징과 전통적인 유사도 계산법을 이용하는 것이 합리적이다. 그러나 패턴이 충분히 축적되고 사람의 유사성 판단 자료까지 모이게 된다면, 언젠가는 패턴의 관계를 스스로 학습하는 embedding이나 machine learning으로 자연스럽게 넘어갈 수도 있다.

흥미롭게도 이러한 문제는 이미 Music Information Retrieval(MIR) 분야에서 오랫동안 연구되어 왔으며, 최근에는 드럼 시퀀스를 네트워크로 표현하여 유사성과 생성 문제를 다루는 연구도 등장하고 있다. 이제부터는 코드를 만드는 것과 함께 드럼 패턴의 유사성을 사람은 어떻게 느끼며, 그것을 컴퓨터는 어떻게 수치화해 왔는가​에 관한 논문도 슬슬 읽어 볼 때가 된 것 같다.