在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用max-patgen
星标2
分支0
更新时间2026年4月26日 16:10
MaxMSPパッチ(.maxpat/.maxhelp)をJSONとして生成する
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
MaxMSPパッチ(.maxpat/.maxhelp)をJSONとして生成する
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | max-patgen |
| description | MaxMSPパッチ(.maxpat/.maxhelp)をJSONとして生成する |
MaxMSPパッチを生JSONで直接生成する。外部ツール依存なし。
ユーザーがMaxパッチの生成・作成を要求したとき。
.maxpat / .maxhelp は 同一のJSONフォーマット。拡張子と配置場所が違うのみ。
{
"patcher" : {
"fileversion" : 1,
"appversion" : { "major" : 8, "minor" : 6, "revision" : 4 },
"classnamespace" : "box",
"rect" : [100, 100, 640, 480],
"bglocked" : 0,
"openrect" : [0, 0, 0, 0],
"openinpresentation" : 0,
"default_fontsize" : 12,
"default_fontface" : 0,
"default_fontname" : "Arial",
"gridonopen" : 2,
"gridsize" : [15, 15],
"gridsnaponopen" : 0,
"objectsnaponopen" : 1,
"statusbarvisible" : 2,
"toolbarvisible" : 2,
"lefttoolbarpinned" : 0,
"toptoolbarpinned" : 0,
"righttoolbarpinned" : 0,
"bottomtoolbarpinned" : 0,
"toolbars_unpinned_last_save" : 0,
"tallnewobj" : 0,
"boxanimatetime" : 200,
"enablehscroll" : 1,
"enablevscroll" : 1,
"devicewidth" : 0,
"description" : "",
"digest" : "",
"tags" : "",
"style" : "",
"subpatcher_template" : "",
"assistshowspatchername" : 0,
"boxes" : [ ],
"lines" : [ ]
}
}
{
"box" : {
"id" : "obj-1",
"maxclass" : "newobj",
"numinlets" : 2,
"numoutlets" : 1,
"outlettype" : [ "signal" ],
"patching_rect" : [50, 100, 80, 22],
"text" : "cycle~ 440"
}
}
id: "obj-N" 形式の文字列。連番。maxclass: "newobj" (一般オブジェクト) またはUI部品名 ("toggle", "number", "flonum", "button", "slider", "comment", "message", "live.dial", 等)text: ボックス内のテキスト (maxclass: "newobj" のみ)。
オブジェクト名 引数1 引数2 @属性名 値cycle~ 440, *~ 0.5, metro 500 @active 1patching_rect: [x, y, width, height]
numinlets / numoutlets / outlettype: 必ず正確に設定。不一致はMaxでエラー。{
"patchline" : {
"source" : ["obj-1", 0],
"destination" : ["obj-2", 0]
}
}
source: [box_id, outlet_index] (0-indexed)destination: [box_id, inlet_index] (0-indexed)"midpoints" : [x, y, ...] (ケーブルの中継点座標)"color" : [r, g, b, a] (0.0-1.0) でケーブル色を指定可能box内に "patcher" キーで子パッチャーを定義:
{
"box" : {
"id" : "obj-3",
"maxclass" : "newobj",
"numinlets" : 1,
"numoutlets" : 1,
"outlettype" : [""],
"patching_rect" : [50, 200, 100, 22],
"text" : "p mysubpatch",
"patcher" : {
"fileversion" : 1,
"boxes" : [
{
"box" : {
"id" : "obj-1",
"maxclass" : "inlet",
"numinlets" : 0,
"numoutlets" : 1,
"outlettype" : [""],
"patching_rect" : [50, 50, 25, 25]
}
},
{
"box" : {
"id" : "obj-2",
"maxclass" : "outlet",
"numinlets" : 1,
"numoutlets" : 0,
"patching_rect" : [50, 150, 25, 25]
}
}
],
"lines" : [
{ "patchline" : { "source" : ["obj-1", 0], "destination" : ["obj-2", 0] } }
]
}
}
}
reference/objects_*.md から適切なオブジェクトを選択templates/ から近いテンプレートを選び出発点にする。ゼロからの場合は empty.maxpat を使用.maxpat または .maxhelp として保存入力 → 処理1 → 処理2 → 出力
(左→右 の流れも可。上→下 を基本とする)
直列チェーン (縦配置):
obj-1: [50, 50]
obj-2: [50, 110] (+60)
obj-3: [50, 170] (+60)
並列→ミックス (横→縦):
obj-1: [50, 50]
obj-2: [170, 50] (+120横)
obj-3: [50, 110] (+60縦, mix)
フィードバック (右に逃がして戻す):
obj-1: [50, 50]
obj-2: [50, 110]
obj-3: [290, 80] (フィードバック経路)
[obj.x - 10, obj.y - 25][50, y - 30] に配置inlet / outlet 共に 左から右へ 0-indexed (左端 = 0)用途に応じて reference/ 配下のファイルを参照:
| 用途 | ファイル |
|---|---|
| 音声処理 (MSP) | reference/objects_msp.md |
| MIDI処理 | reference/objects_midi.md |
| 映像処理 (Jitter) | reference/objects_jitter.md |
| データ/ロジック | reference/objects_logic.md |
| フォーマット詳細 | reference/format.md |
templates/ 配下のテンプレートを出発点として使う:
| テンプレート | 用途 |
|---|---|
empty.maxpat | ゼロから作成する場合の最小ひな形 |
audio_synth.maxpat | オシレータ→ゲイン→DAC の基本シンセ |
audio_fx_chain.maxpat | エフェクトチェーン (delay/reverb等) |
midi_process.maxpat | MIDI入力→処理→出力 |
jitter_basic.maxpat | 映像入力→加工→表示 |
data_logic.maxpat | データ処理/ロジックの基本 |
help_template.maxhelp | ヘルプパッチのテンプレート |
テンプレートの使い方:
boxes にオブジェクトを追加 (idは "obj-N" の連番を継続)lines に接続を追加.maxhelp は .maxpat と 完全に同一のJSONフォーマット。拡張子を .maxhelp にするだけ。
preset オブジェクトで保存"bglocked" : 1 で背景をロック推奨[Title Comment]
[Description Comment]
[Inlet Docs] → [TARGET OBJECT] → [Outlet Docs]
[Example 1]
[Example 2]
[preset]
oscillator → *~ (gain) → effect → ezdac~
notein → midiparse → mtof → oscillator → envelope → *~ → ezdac~
input → tapin~/tapout~ (delay)
→ *~ (dry/wet mix) → output
jit.movie → jit.op → jit.colorspace → jit.window
input → pack → coll (保存)
coll → unpack → 出力 (読み出し)
出力前に以下を確認:
id, maxclass, numinlets, numoutlets, patching_rect が存在maxclass: "newobj" のboxに text が存在outlettype が numoutlets の数と一致"obj-1", "obj-2"... の連番で重複なしsource/destination の box_id が実在するboxを参照numoutlets/numinlets の範囲内"patching_rect" の値が合理的 (負の座標なし、width>0, height>0).maxpat / .maxhelp を上書きする場合はユーザーに確認filepath パラメータを含むオブジェクト (readsf~, jit.movie 等) はプレースホルダを使用.maxpat / .maxhelp が Max 8/9 でエラーなく開ける