기술2026-04-11

기타 애드립 자동 생성 알고리즘의 원리

Guitar Ad-lib Trainer가 코드 진행 위에 자연스러운 애드립을 자동으로 만드는 방법. 코드톤 선택, 프레이즈 윤곽, 리듬 생성, 운지 최적화까지 핵심 원리를 설명합니다.

#애드립#알고리즘#코드톤#음악이론#개발

"코드 진행을 넣으면 애드립이 자동으로 나온다?" 어떻게 가능한 걸까요?

Guitar Ad-lib Trainer는 음악 이론을 알고리즘으로 변환하여, 코드 진행 위에 실제로 연주 가능한 기타 애드립을 자동 생성합니다. 이 글에서는 그 핵심 원리를 단계별로 풀어봅니다.

전체 흐름

애드립 생성은 크게 4단계로 이루어집니다:

  1. 스케일 음 매핑 — 프렛보드에서 연주 가능한 음 찾기
  2. 프레이즈 윤곽 결정 — 음이 올라갈지, 내려갈지 방향 정하기
  3. 리듬 패턴 생성 — 어떤 길이의 음표를 배치할지
  4. 음 선택 + 운지 최적화 — 코드톤 우선, 실제 손가락이 닿는 위치로

1단계: 프렛보드 위의 스케일 매핑

기타는 같은 음이 여러 위치에 존재합니다. 예를 들어 A(라) 음은 5번줄 개방, 4번줄 7프렛, 3번줄 14프렛 등 여러 곳에서 낼 수 있습니다.

알고리즘의 첫 단계는 선택된 스케일(예: Am 펜타토닉)의 모든 음을 프렛보드 위에 매핑하는 것입니다.

입력: 스케일(Am 펜타토닉), 포지션 범위(5~12프렛)
출력: [
  { 줄: 6, 프렛: 5, 음: A },
  { 줄: 6, 프렛: 8, 음: C },
  { 줄: 5, 프렛: 5, 음: D },
  { 줄: 5, 프렛: 7, 음: E },
  ...
]

이렇게 만든 위치 목록이 애드립에서 사용할 수 있는 "음의 팔레트"가 됩니다.

2단계: 프레이즈 윤곽 (Contour)

좋은 애드립은 음을 무작위로 나열하지 않습니다. 방향성이 있어야 합니다.

알고리즘은 마디마다 "프레이즈 윤곽"을 결정합니다:

윤곽 설명 느낌
ascending 점점 올라감 긴장감 상승
descending 점점 내려감 해결, 안정
arch 올라갔다 내려옴 자연스러운 호흡
valley 내려갔다 올라옴 반전, 극적
arpeggio 코드톤 순서대로 화성적
approach 타겟 음으로 접근 재즈적
repeat 패턴 반복 리듬감 강조

스타일별 윤곽 확률

연습 스타일에 따라 각 윤곽이 선택될 확률이 다릅니다:

  • Simple: ascending, descending 위주 — 단순하고 예측 가능
  • Melodic: arch, valley, approach 비중 높음 — 노래하는 듯한 선율
  • Rhythmic: repeat, approach 위주 — 리듬 패턴 반복 강조
  • Technical: ascending, descending, arpeggio — 빠른 런과 아르페지오

또한 4마디째에는 자동으로 하행(descending)이나 접근(approach)으로 전환하여, 프레이즈가 자연스럽게 마무리되는 "종지감"을 만듭니다.

3단계: 리듬 패턴 생성

멜로디만큼 중요한 것이 리듬입니다. 알고리즘은 "릭(Lick) 단위"로 리듬을 생성합니다.

릭 구조

[릭] → [호흡(쉼표)] → [릭] → [호흡] → ...

실제 기타리스트도 한 숨에 긴 음을 나열하지 않습니다. 짧은 프레이즈(릭)를 치고, 잠시 쉬고, 다시 치는 패턴을 반복합니다. 알고리즘도 이 호흡을 모방합니다.

스타일별 리듬 차이

스타일 릭 길이 음표 길이 쉼표 길이
Simple 2~3음 2박, 1박 위주 1박, 0.5박
Melodic 3~5음 1박, 0.5박, 부점 0.5박, 0.75박
Rhythmic 2~4음 0.5박, 0.25박, 부점 0.5박, 0.25박
Technical 4~6음 0.25박, 0.5박 0.25박, 0.5박

Simple은 느긋하게, Technical은 빠르고 촘촘하게 생성되는 것이죠.

모티브 반복

윤곽이 "repeat"일 때는 특별한 처리를 합니다. 2~3개 음의 짧은 모티브(동기)를 만들고, 이것을 반복합니다. 블루스 기타리스트가 같은 릭을 여러 번 반복하며 강조하는 것과 같은 효과입니다.

4단계: 코드톤 기반 음 선택

리듬과 윤곽이 정해지면, 실제로 어떤 음을 칠지 결정합니다. 이때 가장 중요한 규칙이 **"강박에는 코드톤"**입니다.

코드톤 우선 규칙

마디의 첫 박(강박)에서는 현재 코드의 구성음을 우선 선택합니다.

예시: Am 코드 위에서

  • 코드톤 (우선): A(루트), C(단3도), E(완전5도)
  • 스케일톤 (경과음): D, G 등은 약박에서 사용

특히 3도와 5도 같은 **색깔 있는 음(Color Tone)**을 강박에 배치하면, 코드 위에서 애드립이 화성적으로 어울리는 소리를 만들어냅니다.

Avoid Note (회피음)

반대로, 강박에서 피해야 할 음도 있습니다:

  • 메이저 코드 위: 4도 (예: C코드에서 F음)
  • 마이너 코드 위: b6도 (예: Am코드에서 F음)

이 음들은 코드와 반음 충돌을 일으켜 "삑사리"처럼 들립니다. 알고리즘은 강박에서 이 음들을 자동으로 회피합니다.

운지 최적화

컴퓨터가 생성한 음이 실제로 기타에서 연주 가능해야 합니다. 이를 위한 규칙들이 있습니다.

줄 범위 제한

한 마디 안에서 사용하는 줄은 앵커 줄 기준 ±1줄로 제한합니다. 실제 연주에서 한 마디 안에 1번줄에서 6번줄까지 오가는 것은 비현실적이기 때문입니다.

운지 거리 계산

음과 음 사이의 "운지 거리"를 계산하여, 손가락이 자연스럽게 이동할 수 있는 음을 우선 선택합니다:

  • 같은 줄: 프렛 거리만 계산
  • 인접 줄(±1): 약간의 페널티 추가
  • 2줄 이상 건너뛰기: 큰 페널티 → 거의 선택하지 않음

큰 도약 후 반진행

5반음 이상의 큰 도약이 발생하면, 다음 음은 반대 방향으로 이동합니다. 이것은 음악 이론의 기본 원칙으로, 큰 도약 후 순차 진행으로 돌아와야 자연스럽게 들립니다.

슬라이드 조건

슬라이드 테크닉은 같은 줄에서 2~3프렛 이동할 때만 적용됩니다. 줄이 다르거나 프렛 거리가 너무 멀면 물리적으로 슬라이드가 불가능하기 때문입니다.

마지막 마디: 종지 처리

애드립의 마지막 마디에서는 특별한 처리를 합니다:

  1. 하행 진행: 음이 점점 낮아지며
  2. 루트 음으로 해결: 마지막 음은 키의 루트 음

이렇게 하면 애드립이 "끝났다"는 느낌을 자연스럽게 전달합니다. 마치 문장 끝에 마침표를 찍는 것과 같습니다.

실제로 들어보기

이론은 여기까지! 실제로 어떻게 들리는지는 Guitar Ad-lib Trainer에서 직접 확인해보세요.

  1. 코드 진행을 선택합니다
  2. 스타일(Simple/Melodic/Rhythmic/Technical)을 선택합니다
  3. 재생 버튼을 누르면 자동으로 애드립이 생성됩니다
  4. 악보와 TAB을 보면서 함께 연주해보세요

같은 코드 진행이라도 재생할 때마다 다른 애드립이 생성됩니다. 다양한 패턴을 들으면서 자신만의 프레이즈 아이디어를 얻어보세요!

이 콘텐츠가 좋으면 눌러주세요

직접 연습해보세요!

Guitar Ad-lib Trainer에서 코드 진행, 애드립, 스케일을 인터랙티브하게 연습할 수 있습니다.