[개발기] 소리의 공간을 설계하다: ‘AI 기타 코드 & 타브 생성기’ 프로젝트
작곡을 하거나 연주를 할 때, 우리는 종종 '어떤 코드를 다음에 써야 할까?'라는 창작의 벽에 부딪힙니다.
분위기와 장르라는 좌표를 입력하면, 최적의 소리 경로를 제안하는 ‘Charlie K’s Chord Lab’의 설계 과정을 소개합니다.
1. 프로젝트의 핵심 철학: "감정의 지도 만들기"
음악 이론은 방대하고 복잡하지만, 우리가 느끼는 감정은 몇 가지 핵심적인 코드 진행(Progression)에 뿌리를 두고 있습니다. 이 프로젝트의 목표는 명확합니다.
음악적 길잡이: 이론을 몰라도 ‘Happy’, ‘Dreamy’, ‘Dark’ 같은 직관적인 단어만으로 곡의 뼈대를 완성할 수 있게 합니다.
시각적 직관성: 텍스트로 된 코드명(예: CM7)을 넘어, 기타 지판의 어디를 눌러야 하는지 보여주는 타브(TAB) 악보를 실시간으로 생성합니다.
장르의 재구성: 같은 코드라도 재즈라면 텐션을 더하고, 락이라면 파워풀한 구성을 제안하는 지능형 알고리즘을 탑재합니다.
2. 주요 설계 모듈 (Architecture)
본 프로그램은 Ruby on Rails 7을 기반으로 하며, 다음과 같은 3가지 핵심 엔진으로 구성됩니다.
① Chord & TAB Database
기타의 6개 줄을 배열(Array) 데이터로 구조화합니다. 예를 들어 C Major 코드는 [nil, 3, 2, 0, 1, 0]과 같은 좌표값으로 저장되어, 언제든 시각적으로 렌더링될 준비를 합니다.
② Progression Algorithm (The Soul of Logic)
음악 이론의 '5도권(Circle of Fifths)'과 '다이아토닉(Diatonic)' 이론을 코드로 이식합니다. 사용자가 조(Key)를 바꾸면 수학적 연산을 통해 모든 코드 진행이 즉시 해당 조로 변환(Transposition)됩니다.
③ Visual TAB Renderer
브라우저 상에서 기타 지판을 형상화합니다. Tailwind CSS의 Grid 시스템을 활용하여 6선지 위에 프렛 번호가 찍힌 아름다운 타브 악보를 그려냅니다.
3. 기술적 도전과 구현 계획
단순히 코드를 보여주는 것을 넘어, 향후에는 다음과 같은 기능을 추가할 예정입니다.
실시간 미리듣기: 생성된 코드 진행을 Web Audio API를 통해 미디(MIDI) 음원으로 즉시 확인합니다.
AI 가사 연동: 작성한 가사의 분위기를 AI가 분석하여 그에 가장 어울리는 코드 진행을 추천합니다.
공유 및 아카이빙: 마음에 드는 코드 진행을 이미지나 텍스트로 저장하여 나만의 '작곡 노트'를 만듭니다.
4. 에필로그
지리학자가 지도를 그리듯, 저는 이 도구가 음악을 만드는 모든 이들에게 새로운 영감의 지도가 되길 바랍니다. 복잡한 이론은 프로그램 뒤로 숨기고, 창작자는 오직 '느낌'에만 집중할 수 있는 환경. 그것이 제가 꿈꾸는 Charlie K’s Chord Lab의 모습입니다.
조만간 실제 작동하는 프로토타입과 함께 돌아오겠습니다.
댓글 (2)
댓글을 작성하려면 로그인해주세요.
@메건리.. 대댓글 기능 필요하군요. 일단 기본 진행부터 해서 열심히 만들어보겠습니다.
코드 진행 패턴은 대중음악의 역사가 깊어서 특별하기가 쉽지 않을 거 같은데요, 혹시 여태까지 나온 코드 진행 코퍼스도 염두에 두고 계신가요? 저는 클래식과 재즈를 좋아하는 컴공 출신인데 반갑네요. ;-)