페트리 넷으로 만든 음악 시퀀서: 토큰 하나가 노트 하나

Petri Nets as a Music Sequencer

페트리 넷으로 만든 음악 시퀀서: 토큰 하나가 노트 하나

beats.bitwrap.io는 페트리 넷(Petri net)을 기반으로 한 음악 생성기입니다. 원과 화살표로 구성된 네트워크에서 토큰이 이동하며 각 단계마다 드럼, 베이스, 멜로디를 연주합니다. 장르별 프리셋과 시드(seed)를 사용해 무한한 트랙을 만들 수 있으며, 같은 시드면 같은 트랙이 재생됩니다. 제어용 넷을 추가해 인트로, 드롭, 브레이크다운 같은 곡 구조도 구현했습니다. 초기 버전은 22MB의 프로젝트 파일이 필요했지만, 카운트다운 타이머를 도입해 242KB로 줄였습니다. 또한 Auto-DJ 전환을 위한 매크로 실행도 페트리 넷의 전이(transition)로 처리해 타이밍 문제를 해결했습니다. 모든 상태가 토큰에 있으므로 재현성이 뛰어나고, 시각적으로 디버깅할 수 있습니다. 이 프로젝트는 약 400줄의 바닐라 JS로 작성된 페트리 넷 실행기와 Tone.js를 사용합니다.

음악 이론과 난수, 시드만으로 만들어진 결과물입니다. AI도, 샘플도 없습니다. 같은 시드면 언제나 같은 트랙이 나옵니다.

같은 날의 다른 소식

2026-08-07