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 コマンドが利用可能になります。以下の例では、単に 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ファイルからバンクに戻す |
| 2つのバンクのバイトレベル差分を表示 |
プロトコル作業
コマンド | 動作 |
| SysExオペコード空間をスイープ( |
| 1つのSysExリクエストを送信し、応答を保存( |
| ペダルを監視してCCマップを再構築 |
| すべてのリバーブマシンを順に見ていく |
| ペダルになりすましてNixieが送信する内容をキャプチャ |
| Nixieとペダルの間で仲介 |
scripts/full_review.py は、両エンジンの全マシンの全パラメータを設定し、ペダルの報告を確認します。299/303が合格します。失敗する4つは INF MIX で、これにはCCがありません。
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のリバーブマシン | はい | いいえ |
| 1つのマシンのパラメータ、範囲、選択肢 | はい | いいえ |
| 任意の数のパラメータをどちらかのエンジンに設定 | いいえ | いいえ |
| スロットを呼び出す(0-299) | いいえ | はい(未保存の編集を破棄) |
| 保存されたサウンドファイル | はい | いいえ |
| 1つを編集バッファに復元 | いいえ | はい(未保存の編集を破棄) |
| 現在のサウンドをファイルに書き込む | いいえ | はい(ファイルを置き換える可能性あり) |
bigsky_set_params は変更全体を一度に受け取り、ペダルが必要とする順序で適用します:
共有グローバル(
DUALとPERSISTはプリセットを再読み込みするため)マシンタイプ
そのマシンのパラメータ
OUTPUT LEVEL、PAN、INF MODE(タイプ変更後も維持される)連続ノブ
bigsky_save_preset_file は、2回確認を求められない限り既存のファイルを置き換えません。
サーバーの 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ページ)から転記されています。スケーリング はCC 0-127がより広い内部範囲をカバーすることを意味し、直接 はCC値がそのまま値として使用され、最大値でクリップされることを意味します。
パラメータ | エンジン1 | エンジン2 | 範囲 | 種類 |
Type | 1 | 2 | 0-11 | 直接、マシンインデックス |
Decay | 3 | 4 | 0-127 | スケーリング、内部ではms |
Pre-Delay | 5 | 6 | 0-127 | スケーリング、内部ではms |
Output Level | 7 | 8 | 0-16 | 直接 |
Pan | 9 | 10 | 0-16 | 直接 |
Tone | 11 | 12 | 0-127 | 0-255にスケーリング |
Mod | 13 | 14 | 0-127 | 0-255にスケーリング |
Mix | 15 | 16 | 0-127 | 0-255にスケーリング |
INF MODE | 17 | 18 | 0-2 | 直接、freeze / infinite / off |
Param1 | 19 | 20 | 0-127 | スケーリング、割り当てられたノブを駆動 |
Param2 | 21 | 22 | 0-127 | スケーリング、割り当てられたノブを駆動 |
Low End | 23 | 24 | 0-20 | 直接 |
MIDI Clock (Magneto) | 31 | 32 | 0-1 | 直接 |
マシン固有のパラメータは cc.MACHINE_CC にあります。
共有コントロール | CC | 値 |
Boost | 79 | 0-60 |
Persist | 84 |
|
INF LATCH | 98 |
|
DUAL | 99 |
|
ハードウェアコントロール | CC | 備考 |
Bank up / down | 80 / 81 | A/Bフットスイッチでもある |
Infinite footswitch | 82 | 物理スイッチとして機能 |
Value encoder | 83 | ロードされたプリセットを変更 |
Infinite on / off | 97 | |
Expression | 100 | |
Tap | 101 | |
Bypass | 102 |
注意点:CCを盲目的にスイープすると83にヒットし、テスト中のプリセットが静かにすり替わります。
マニュアルに対する2つの修正事項(両方ともハードウェアで確認済み):
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バイト順は製品、デバイス、オペコードです。
JSONは常に14バイト目から始まります。 最初の { を検索しないでください。12-13バイト目に長さが格納されており、0x7B の下位バイトはそれ自体がASCIIの { であるため、検索が1バイト早く始まりパースに失敗します。これは全長 mod 128 が123の場合に発生します。sysex.payload_json を使用してください。
双方向で異なるヘッダ長を使用します。 ペダル→ホストはJSONの前に14バイト。ホスト→ペダルは10バイトで、長さバイトはありません。00 01 55 18 01 39 00 01 01 01 の後にJSONが続きます。
状態フレームは部分的で、一度に1パラメータの場合があります:
{ "state": { "channel": [{ "TYPE": "CLOUD", "LOW END": 10 }, {}] } }オペコード
ペダルは実装されていないものに対して 0x46 を返します。
オペコード | 応答 | 説明 |
| 14 bytes | ESNの読み取り。Nixieのデバイスプローブ。 |
|
| 未識別。バージョンまたは機能ワード。 |
| (無音) | データ。無音は「ペイロードを送信」を意味します。 |
|
| 受け入れられ実行されました。フロントパネルに変化はありません。未識別。 |
| (無音) | 認識されました。ペイロードが必要です。 |
その他 |
| 未実装。 |
第1世代のコマンドセットは廃止されました。以下はすべてNAKします:
オペコード | かつての機能 |
| パッチの書き込み |
| パッチの要求 |
| 保存モードに入る |
| 現在の状態の取得 |
引き継がれたのは 0x21 のみです。4つすべては、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はリクエストの1CCステップ以内に収まります。
安全性
ファームウェアアップデートはオペコード 0x43 を使用します。ここでのすべての操作は 0x39 に留まるため、フラッシュをトリガーすることはありません。probe と dump は文書化されていないオペコードを送信する可能性があり、--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