bigskymx-mcp
bigskymx-mcp
USB MIDI를 통해 Strymon BigSky MX를 제어합니다. 명령줄 또는 Claude에서 사용할 수 있습니다.
시작하기
다음이 필요합니다:
Nixie 2, Strymon의 무료 에디터
Python 3.10 이상
git
macOS에서 개발 및 테스트되었습니다. python-rtmidi가 작동하는 모든 환경에서 동작해야 합니다. Linux의 경우 pip가 소스에서 빌드해야 한다면 ALSA 개발 헤더가 필요합니다.
1. 페달을 컴퓨터에 연결하세요
2. Nixie 2를 열고 실행 상태로 두세요
갓 연결된 페달은 에디터 세션이 존재할 때까지 MIDI를 보내지 않습니다. Nixie는 이 도구와 간섭하지 않습니다.
3. 설치
git clone https://github.com/levinelson/bigskymx-mcp.git
cd bigskymx-mcp
python3 -m venv .venv
.venv/bin/pip install -e ".[mcp]"명령줄만 필요하다면 [mcp]를 생략하세요. 이렇게 하면 bigsky가 .venv/bin에 위치하지만 PATH에는 추가되지 않습니다. uv tool install . 또는 pipx install .을 사용하면 어디에서나 bigsky를 사용할 수 있습니다. 아래 예제에서는 기본 이름을 사용합니다.
4. 작동 확인
.venv/bin/bigsky ports # BigSkyMX should be listed and auto-detected
.venv/bin/bigsky state # prints the loaded preset and both engines증상 | 원인 또는 해결책 |
| 케이블 또는 연결 문제 |
| Nixie 2가 열려 있지 않음 |
작동 후 스트림이 멈춤 |
|
Nixie가 열려 있는데도 멈춤 | Nixie 종료 |
Related MCP server: midi-mcp
명령어
일상 사용
bigsky ports # list MIDI ports, show auto-detect
bigsky state # read the loaded preset
bigsky state --config # read global settings
bigsky param TYPE NONLINEAR --engine 1 # switch reverb machine
bigsky param SHAPE BOUNCE --engine 1 # machine-specific, by name
bigsky param Decay 100 --engine 1 # 0-127, scaled to the full range
bigsky param DUAL "SERIES 1 >> 2" # routing
bigsky param "INF MODE" INFINITE --engine 1
bigsky preset 42 # recall a slot, 0-299
bigsky load "presets/PAD.json" # restore a sound to the edit buffer
bigsky backup out/ # every slot to JSON plus a .syx
bigsky machines # every machine and its parameters
bigsky monitor # print incoming MIDI선택 매개변수는 숫자가 아닌 이름을 사용합니다. --channel은 기본값이 auto이며 페달에서 채널을 읽어옵니다.
오프라인, 페달 불필요
명령어 | 기능 |
| 프리셋 뱅크 디코딩 |
| 뱅크를 편집 가능한 JSON 파일로 변환 |
| JSON 파일을 다시 뱅크로 변환 |
| 두 뱅크를 바이트 단위로 비교 |
프로토콜 작업
명령어 | 기능 |
| SysEx opcode 공간 스위핑 ( |
| SysEx 요청 하나를 보내고 응답 저장 ( |
| 페달을 관찰하여 CC 맵 재구축 |
| 모든 리버브 머신 순회 |
| 페달을 가장하여 Nixie가 보내는 내용 캡처 |
| Nixie와 페달 사이에 위치 |
scripts/full_review.py는 두 엔진의 모든 머신에 대해 모든 매개변수를 설정하고 페달의 보고를 확인합니다. 299/303 통과; 4개의 실패는 CC가 없는 INF MIX입니다.
Claude와 함께 사용
claude mcp add bigsky -- /full/path/to/.venv/bin/bigsky-mcpClaude Desktop, claude_desktop_config.json:
{
"mcpServers": {
"bigsky": {
"command": "/full/path/to/.venv/bin/bigsky-mcp"
}
}
}경로는 절대 경로여야 합니다. 클라이언트가 서버를 실행하며 셸을 상속하지 않습니다.
도구 | 기능 | 읽기 전용 | 파괴적 |
| 로드된 프리셋과 두 엔진 읽기 | 예 | 아니오 |
| 12개의 리버브 머신 목록 | 예 | 아니오 |
| 한 머신의 매개변수, 범위 및 선택 목록 | 예 | 아니오 |
| 두 엔진 중 하나에 여러 매개변수 설정 | 아니오 | 아니오 |
| 슬롯(0-299) 호출 | 아니오 | 예, 저장되지 않은 편집 내용 폐기 |
| 저장된 사운드 파일 목록 | 예 | 아니오 |
| 하나를 편집 버퍼로 복원 | 아니오 | 예, 저장되지 않은 편집 내용 폐기 |
| 현재 사운드를 파일에 저장 | 아니오 | 예, 파일을 덮어쓸 수 있음 |
bigsky_set_params는 전체 변경 사항을 한 번에 가져와 페달이 요구하는 순서대로 적용합니다:
공유 전역,
DUAL및PERSIST는 프리셋을 다시 로드하기 때문머신 유형
해당 머신의 자체 매개변수
OUTPUT LEVEL,PAN및INF MODE(유형 변경 후에도 유지)연속 노브
bigsky_save_preset_file은 두 번 요청하지 않으면 기존 파일을 덮어쓰지 않습니다.
서버의 env에 BIGSKY_PRESETS를 설정하여 사운드를 presets/ 이외의 다른 위치에 보관할 수 있습니다.
수행할 수 없는 작업
번호가 매겨진 슬롯에 저장. 이 작업을 수행하는 MIDI 메시지를 찾지 못했습니다. 사운드를 다이얼로 조정한 후 페달 또는 Nixie에서 수동으로 저장하세요.
INF MIX설정. Strymon의 스키마에는 있지만 CC 테이블에는 없습니다.PARAM 1 및 PARAM 2 할당. CC 19-22는 이미 할당된 것을 제어합니다. 할당 자체를 다루는 것은 없습니다. 프리셋은 이름으로 저장하므로 설정 가능해 보입니다.
load는 실제 실패와 별도로 나열합니다.
CC 맵
cc.py에 매뉴얼(Rev B, 70-76페이지)에서 전사했습니다. Scaled는 CC 0-127이 더 넓은 내부 범위에 걸쳐 있음을 의미합니다. direct는 CC 값이 그 값이며 최대값에서 클램프됨을 의미합니다.
매개변수 | 엔진 1 | 엔진 2 | 범위 | 종류 |
Type | 1 | 2 | 0-11 | direct, 머신 인덱스 |
Decay | 3 | 4 | 0-127 | scaled, 내부적으로 ms |
Pre-Delay | 5 | 6 | 0-127 | scaled, 내부적으로 ms |
Output Level | 7 | 8 | 0-16 | direct |
Pan | 9 | 10 | 0-16 | direct |
Tone | 11 | 12 | 0-127 | scaled to 0-255 |
Mod | 13 | 14 | 0-127 | scaled to 0-255 |
Mix | 15 | 16 | 0-127 | scaled to 0-255 |
INF MODE | 17 | 18 | 0-2 | direct, freeze / infinite / off |
Param1 | 19 | 20 | 0-127 | scaled, 할당된 노브 제어 |
Param2 | 21 | 22 | 0-127 | scaled, 할당된 노브 제어 |
Low End | 23 | 24 | 0-20 | direct |
MIDI Clock (Magneto) | 31 | 32 | 0-1 | direct |
머신별 매개변수는 cc.MACHINE_CC에 있습니다.
공유 컨트롤 | CC | 값 |
Boost | 79 | 0-60 |
Persist | 84 |
|
INF LATCH | 98 |
|
DUAL | 99 |
|
하드웨어 컨트롤 | CC | 참고 |
Bank up / down | 80 / 81 | A 및 B 풋스위치도 포함 |
Infinite 풋스위치 | 82 | 물리적 스위치 역할 |
값 인코더 | 83 | 로드된 프리셋을 변경 |
Infinite on / off | 97 | |
Expression | 100 | |
Tap | 101 | |
Bypass | 102 |
주의사항: CC를 무차별 스위핑하면 83을 건드려 테스트 중인 프리셋이 조용히 교체됩니다.
매뉴얼에 대한 두 가지 수정 사항, 하드웨어에서 확인됨:
Persist가 반전됨. 매뉴얼에는 0 = Off라고 되어 있지만, 페달은 CC 84 = 0을 ON으로 보고합니다.
Shimmer Shift 2는 CC 73/74이며, 인쇄된 72/73이 아닙니다. 이는 Shift 1과 충돌합니다.
프레임 형식
프리셋과 상태는 SysEx 내부의 UTF-8 JSON입니다.
F0 00 01 55 18 01 39 00 01 01 01 00 00 LL LL {"...json..."} F7
|________| | | | | | | |___|
Strymon | | | | | | total length, 7-bit big endian
mfr ID | | | | | payload type: 01=state 02=config 06=preset
| | | | verb: 01=data 02=request 4A=select a slot
| | | 7F on a preset, 00 on state/config
| | opcode 0x39 = data (0x43 = firmware update; avoid)
| device id 0x01
product 0x18 = BigSky MX바이트 순서는 제품, 장치, 그 다음 opcode입니다.
JSON은 항상 14번째 바이트에서 시작합니다. 첫 번째 {를 찾지 마십시오: 바이트 12-13은 길이를 전달하며, 낮은 바이트가 0x7B이면 그 자체가 ASCII {이므로 검색이 한 바이트 일찍 시작되어 구문 분석이 실패합니다. 이는 총 길이 mod 128이 123일 때마다 발생합니다. sysex.payload_json을 사용하세요.
두 방향은 다른 헤더 길이를 사용합니다. 페달->호스트는 JSON 앞에 14바이트입니다. 호스트->페달은 10바이트이며 길이 바이트가 없습니다: 00 01 55 18 01 39 00 01 01 01 다음 JSON.
상태 프레임은 부분적일 수 있으며, 한 번에 하나의 매개변수입니다:
{ "state": { "channel": [{ "TYPE": "CLOUD", "LOW END": 10 }, {}] } }Opcode
페달은 구현되지 않은 모든 것에 0x46으로 응답합니다.
Opcode | 응답 | 설명 |
| 14바이트 | ESN 읽기. Nixie의 장치 검색. |
|
| 미확인. 버전 또는 기능 워드. |
| (조용함) | 데이터. 조용함은 "페이로드 전송"을 의미합니다. |
|
| 수락 및 실행됨, 전면 패널 변경 없음. 미확인. |
| (조용함) | 인식됨, 페이로드 필요. |
다른 모든 것 |
| 구현되지 않음. |
1세대 명령어 세트는 사라졌습니다. 다음은 모두 NAK입니다:
Opcode | 이전 기능 |
| 패치 쓰기 |
| 패치 요청 |
| 저장 모드 진입 |
| 현재 상태 가져오기 |
0x21만 유지되었습니다. 네 가지 모두 Strymon의 자체 라이브러리 strymon/spl의 spl/DcMidiDevDefs.h에 TimeLine, Mobius 및 1세대 BigSky에 대해 문서화되어 있습니다.
0x4A는 슬롯을 선택합니다. 저장이 아니며, Nixie가 목록에서 프리셋을 클릭할 때 동일한 메시지를 보냅니다.
주의사항
페달은 자신의 MIDI 채널이 아닌 모든 메시지를 무시하며 오류도 없습니다. 잘못된 채널은 작동하는 연결과 똑같이 보입니다.
쓰기는 CC를 통해 이루어집니다. 페달에 자체 상태 프레임을 다시 보내는 것도 작동하며 전체 내부 해상도에 도달하지만, 잠시 후 적용이 중단되고 조용히 되돌아갑니다.
live.set_param은 여전히 이를 노출합니다.JSON 상태 쓰기는 값이
0이면 무시하고 이전 값을 유지합니다.머신 유형은 JSON 쓰기로 변경할 수 없습니다. CC 1/2가 필요합니다.
DUAL및PERSIST는 페달이 프리셋을 다시 로드하게 하여 이전에 수행한 편집 내용을 되돌립니다. 먼저 전역을 설정하세요.페달은 자체 제한을 적용하기 전에 보낸 내용을 에코하므로, 너무 빨리 확인하면 나중에 클램프되는 값이 성공한 것으로 보고됩니다.
스트림을 비우지 않고 읽으면 오래된 스냅샷이 반환됩니다.
현재 프리셋에 대한 프로그램 변경을 다시 보내도 다시 로드되지 않습니다.
Decay 및 Pre-Delay는 비선형 머신별 곡선의 밀리초이므로 CC 값은 계산되지 않고 검색됩니다. Mix, Tone 및 Mod는 요청의 CC 한 단계 이내에 위치합니다.
안전
펌웨어 업데이트는 opcode 0x43을 사용합니다. 여기서는 모든 것이 0x39에 머물므로 플래시를 트리거할 수 없습니다. probe 및 dump는 문서화되지 않은 opcode를 보낼 수 있으며 --yes 뒤에 게이트됩니다.
실험하기 전에 bigsky backup out/을 실행하세요.
나만의 사운드
presets/는 비어서 제공되며 gitignore 처리됩니다. 거기에 넣은 모든 것은 bigsky load 및 MCP 프리셋 도구에 의해 선택됩니다.
Strymon과 관련 없음
이것은 독립적인 상호운용성 작업이며, Strymon의 승인이나 보증을 받지 않았습니다. Strymon, BigSky 및 Nixie는 해당 소유주의 상표입니다. 여기 있는 모든 내용은 제가 소유한 페달 관찰과 공개 매뉴얼에서 얻은 것이며, bigsky/schema.json은 Nixie 2 바이너리에서 파생되었습니다.
Claude Code 작성.
라이선스
MIT. LICENSE 참조.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityCmaintenanceEnables control of the Elektron Digitakt II drum machine through MIDI commands. Supports triggering drum sounds, adjusting parameters, switching patterns, and sending note sequences programmatically.7
- FlicenseAqualityDmaintenanceAn MCP server that enables AI models to control electronic music instruments by sending MIDI messages to hardware synths and drum machines. It supports various MIDI commands including notes, control changes, and system exclusive messages through USB or DIN MIDI interfaces.10
- Flicense-qualityCmaintenanceEnables natural language control of Ableton Live through Claude, including session management, track and clip creation, device parameter adjustment, and browser browsing.1
- Alicense-qualityCmaintenanceEnables LLMs like Claude to control Elektron Digitone synthesizers via MIDI, supporting sound design with Wavetone engine and various filters, envelopes, effects, and LFOs.97MIT
Related MCP Connectors
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/levinelson/bigskymx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server