reaper-reapy-mcp: MCP를 이용한 REAPER DAW 제어용 Python 애플리케이션
요약
Model Context Protocol(MCP)을 활용하여 REAPER DAW를 제어할 수 있는 Python 애플리케이션입니다. 트랙, FX, 프로젝트 및 MIDI/오디오 아이템 관리 기능을 AI 어시스턴트가 수행할 수 있도록 지원합니다.
핵심 포인트
- MCP를 통해 AI 어시스턴트가 REAPER DAW를 직접 제어 가능
- 트랙 관리, FX 제어, MIDI 및 오디오 아이템 조작 기능 제공
- 시간(초) 및 마디:박자 표기법을 모두 지원하는 이중 위치 형식 적용
- Python 기반의 현대적인 패키징(pyproject.toml) 및 uv 지원
MCP(Model Context Protocol)를 사용하여 REAPER Digital Audio Workstation (DAW)를 제어하기 위한 Python 애플리케이션입니다.
트랙 관리 (Track Management): 트랙 생성, 이름 변경 및 색상 지정
FX 관리 (FX Management): 이펙트 추가, 제거 및 파라미터 제어
프로젝트 제어 (Project Control): 템포 설정, 리전(region) 및 마커(marker) 관리
마스터 트랙 제어 (Master Track Control): 볼륨, 팬(pan), 뮤트(mute) 및 솔로(solo) 작업
MIDI 작업 (MIDI Operations): 아이템 생성, 노트 추가/가져오기, 음악적 위치를 이용한 아이템 삭제
오디오 아이템 작업 (Audio Item Operations): 삽입, 복제, 향상된 위치 지정 지원을 통한 수정
이중 위치 형식 (Dual Position Format): 시간(초) 및 마디:박자(measure:beat) 표기법 모두 지원
신뢰할 수 있는 복제 (Reliable Duplication): 정확한 아이템 복사를 위해 REAPER의 내장 명령 사용
MCP 통합 (MCP Integration): AI 어시스턴트 제어를 위한 Model Context Protocol 서버
- Python 3.7+
- REAPER DAW
python-reapy
Python 모듈
mcp[cli]
MCP 서버용 패키지
-
인터넷 연결 (샘플 오디오 파일 다운로드용)
-
아직 설치하지 않았다면 REAPER를 설치하세요
-
REAPER 스크립팅을 통해 reapy 서버를 활성화하세요.
reaper_side_enable_server.py를 REAPER 액션에 추가하고 REAPER 스튜디오 내부에서 실행하세요 -
패키지 설치:
PyPI에서 설치: pip install reaper_reapy_mcp
GitHub 저장소에서 설치: pip install git+https://github.com/wegitor/reaper-reapy-mcp.git
- REAPER에서 Python을 활성화하세요
Wheel 패키지에는 필요한 모든 종속성이 포함되어 있으며, REAPER 통합이 필요한 다른 Python 프로젝트에서 사용할 수 있습니다. 이 프로젝트는 더 나은 종속성 관리와 빌드 시스템 구성을 제공하는 현대적인 Python 패키징 설정인 pyproject.toml을 사용합니다.
애플리케이션은 오디오 작업을 테스트하기 위해 샘플 MP3 파일을 사용합니다. 파일은 필요할 때 다음에서 자동으로 다운로드됩니다:
이것은 오디오 애플리케이션 테스트에 흔히 사용되는 짧은 스타워즈(Star Wars) 테마 클립입니다.
uv를 사용하여 서버를 직접 실행할 수 있습니다:
uv --directory <project_path> run -m reaper_reapy_mcp
예를 들어, Windows의 경우:
uv --directory C:\path\to\reaper_reapy_mcp run -m reaper_reapy_mcp
또는 설치 후 Python 모듈을 직접 사용하기:
python -m reaper_reapy_mcp
test_mcp.bat
사용 가능한 MCP 도구:
test_connection
: REAPER와의 연결 확인
create_track
: 새 트랙 생성
rename_track
: 기존 트랙 이름 변경
set_track_color
: 트랙 색상 설정
get_track_color
: 트랙 색상 가져오기
get_track_count
: 프로젝트 내 트랙 수 가져오기
get_track_list
: 속성을 포함한 모든 트랙 목록 가져오기
add_fx
: 트랙에 FX (이펙트) 추가
remove_fx
: 트랙에서 FX (이펙트) 제거
set_fx_param
: FX 파라미터 값 설정
get_fx_param
: FX 파라미터 값 가져오기
get_fx_param_list
: FX 파라미터 목록 가져오기
get_fx_list
: 트랙의 FX 목록 가져오기
get_available_fx_list
: 사용 가능한 FX 플러그인 목록 가져오기
toggle_fx
: FX 활성화/비활성화 상태 전환
set_tempo
: 프로젝트 템포 (Tempo) 설정
get_tempo
: 현재 템포 가져오기
get_time_signature
: 현재 박자 (Time Signature) 가져오기
set_project_time_signature
: 프로젝트 기본 박자 설정
set_time_signature
: 특정 위치의 박자 설정
create_region
: 리전 (Region) 생성
delete_region
: 리전 삭제
create_marker
: 마커 (Marker) 생성
delete_marker
: 마커 삭제
render_project
: 프로젝트를 오디오 파일로 렌더링 (Render)
get_master_track
: 마스터 트랙 정보 가져오기
set_master_volume
: 마스터 트랙 볼륨 설정
set_master_pan
: 마스터 트랙 팬 (Pan) 설정
toggle_master_mute
: 마스터 트랙 뮤트 (Mute) 상태 전환
toggle_master_solo
: 마스터 트랙 솔로 (Solo) 상태 전환
create_midi_item
: 트랙에 빈 MIDI 아이템 생성 - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원
add_midi_note
: MIDI 아이템에 MIDI 노트 추가
add_midi_notes
: 여러 개의 MIDI 노트를 한 번에 추가
get_midi_notes
: MIDI 아이템의 모든 MIDI 노트 가져오기
clear_midi_item
: MIDI 아이템의 모든 MIDI 노트 삭제
insert_audio_item
: 오디오 파일을 미디어 아이템으로 삽입 - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원
duplicate_item
: 기존 아이템(MIDI 또는 오디오)을 복제합니다. - 신뢰할 수 있는 복사를 위해 REAPER의 내장 복제 기능을 사용합니다.
- 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원
get_item_properties
: 미디어 아이템 (media item)의 속성을 가져옵니다.
set_item_position
: 미디어 아이템의 위치를 설정합니다. - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원
set_item_length
: 미디어 아이템의 길이를 설정합니다.
delete_item
: 미디어 아이템을 삭제합니다.
get_items_in_time_range
: 시간 범위 내의 아이템들을 가져옵니다. - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원
모든 아이템 작업은 아이템 식별을 위해 순차적 인덱스 시스템 (0..n)을 사용합니다. 이는 스크립트 및 자동화에서 아이템을 다루기 쉽게 만들어 줍니다:
- 아이템 ID는 0부터 시작하는 인덱스입니다.
- 각 트랙은 자체적인 아이템 인덱스 시퀀스를 유지합니다.
- 인덱스는 아이템이 삭제되거나 순서가 변경되기 전까지 안정적으로 유지됩니다.
- 모든 아이템 작업 (MIDI, 오디오, 속성)은 동일한 인덱싱 시스템을 사용합니다.
많은 MCP 도구들이 이제 향상된 음악적 워크플로우를 위해 이중 위치 형식을 지원합니다:
{
"start_time": 15.5,
"new_time": 30.0
...
{
"start_measure": "3:2,500",
"new_measure": "5:1,000"
...
형식: "measure:beat,fraction"
여기서:
measure
: 1부터 시작하는 마디 번호
beat
: 1부터 시작하는 박자 번호
fraction
: 박자의 소수점 부분을 나타내는 밀리초 (000-999)
- 예시:
"4:2,500"
= 4마디, 2박, 반 박자 (500ms)
create_midi_item
start_time또는start_measure를 통한 위치 지정
insert_audio_item
start_time또는start_measure를 통한 위치 지정
duplicate_item
new_time또는new_measure를 통한 위치 지정
set_item_position
new_time또는new_measure를 통한 위치 지정
get_items_in_time_range
- 시간 또는 마디 파라미터를 통한 범위 지정
{
"mcpServers": {
"reaper-reapy-mcp": {
...
{
"mcpServers": {
"reaper-reapy-mcp": {
...
또는
{
"mcpServers": {
"reaper-reapy-mcp": {
...
기여는 언제나 환영합니다! 자유롭게 Pull Request를 제출해 주세요.
이 프로젝트는 MIT 라이선스(MIT License) 하에 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기