AV SIGNAL FLOW · 系統図

系統図を、テキストで書く。

ポート単位で結線を書くと、SVG が出ます。図が描けるだけではありません。ケーブルは気持ちよく挿さるのに、何も通らない配線を、現場に着く前に指摘します。

38 signal types7 packagesMIT
studio.khmclean
device cam "SONY FX3"  as camera   { out SDI : sdi }
device sw  "ATEM Mini" as switcher { in 1..4 : sdi  out PGM : sdi }
device rec "HyperDeck" as recorder { in SDI : sdi }

cam.SDI -> sw.1    : sdi 30m "V-01" [color=青]
sw.PGM  -> rec.SDI : sdi 2m  "V-10"
output
V-01 30mV-10 2mSONY FX3SDIATEM Mini1234PGMHyperDeckSDI

WHAT IT CATCHES

挿さるのに、通らない。

検出する価値があるのは、プラグがぴたりと嵌まり、見た目には何もおかしくなく、そして何も出ない組み合わせです。判定には必ず理由が付き、その理由はケーブル表にも残ります。

warning ext.CAT → netsw.1HDBaseT は Cat ケーブルと RJ45 を使うが Ethernet ではない。スイッチには挿せない
warning cam.SDI → sync.REFBNC を共有するだけ。同期基準入力に映像を入れてもロックしない
warning cdp.ANALOG → dac.DIGITALRCA を共有するだけ。アナログ音声を S/PDIF 入力に入れても何も出ない
warning pc.HDMI → mon.DVIHDMI-DVI 変換ケーブルが必要。via で明示すると資材表に載る
warning desk.MAIN → amp.LINEバランス→アンバランス。レベルが下がりハムループに晒される

HOW IT READS

書いたものが、そのまま出る。

下の図はすべて、左のソースを公開済みのパッケージでビルド時にコンパイルした結果です。

ポートと範囲

CH[1..16] は16本に展開されます。宣言した順序がそのまま図に出るので、IN 1 が IN 2 の下に来ることはありません。

ports.khmclean
device mixer "Yamaha DM3" as mixer {
  in  CH[1..16] : xlr
  out L, R      : xlr
  io  DANTE     : dante
}
device amp "アンプ" as amplifier { in IN_L, IN_R : trs }

mixer.(L, R) -> amp.(IN_L, IN_R) : trs 3m "A-10"
output
A-10 3mA-10 3mYamaha DM3CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14CH15CH16LRDANTEアンプIN_LIN_R

無線

無線区間はケーブルではないので、長さの代わりに周波数を持ちます。受信機を通さず卓へ直結すれば、そこで指摘が出ます。

wireless.khmclean
device mic "ワイヤレスマイク" as microphone { out RF : uhf }
device rx  "受信機"           as interface  {
  in  RF  : uhf
  out CH1 : xlr
}
device desk "卓" as mixer { in CH1 : xlr }

mic.RF -> rx.RF     : uhf [ch=38]
rx.CH1 -> desk.CH1  : xlr 3m "A-01"
output
ch 38A-01 3mワイヤレスマイクRF受信機RFCH1CH1

機材ライブラリ

卓の16chを図ごとに書き直す必要はありません。model で一度定義し、device … from で何台でも実体化します。

library.khmclean
model dm3 "Yamaha DM3" as mixer {
  in  CH[1..16] : xlr
  out L, R      : xlr
  @vendor "Yamaha"
}

device foh from dm3
device mon from dm3 "モニター卓"
output
Yamaha DM3CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14CH15CH16LRモニター卓CH1CH2CH3CH4CH5CH6CH7CH8CH9CH10CH11CH12CH13CH14CH15CH16LR

LIVE

ここで書けます。

左に書くと右に出ます。診断をクリックすると該当行へ飛びます。

エディタを読み込んでいます…

VS CODE

普段のエディタで、そのまま。

拡張を入れると、書きながら診断が出て、隣に図が出ます。判定は上と同じコンパイラのものです。

problems
warning ext.CAT → netsw.1HDBaseT は Cat ケーブルと RJ45 を使うが Ethernet ではない。スイッチには挿せない
terminal
# VS Code に入れる
code --install-extension love-rox.kumihimo-vscode

最新リリース 0.10.2 · 2026-08-08Marketplace で見る

書きながら診断

構文だけではありません。挿さるのに何も通らない結線を、理由つきで指摘します。

隣にプレビュー

⌘K V で開きます。打つたびに描き直し、エディタの配色に追従します。図・ケーブル表・機器表・変換部材をタブで切り替えられます。

コンパイラ由来の補完

信号種別・機器種別・ケーブル色・テーマ。候補はコンパイラが受け付ける名前そのもので、コネクタ名も併記されます。

表示言語に追従

VS Code の表示言語に、拡張の文言もコンパイラの文面も揃います。片方だけ別言語になることはありません。

OBSIDIAN

ノートの中に、そのまま。

コードブロックがそのまま図になります。同じコンパイラが動くので、ノートに書いた図はどこでも同じように開けます。

note.md
# ノートに書く
```kumihimo
device cam "SONY FX3"  as camera   { out SDI : sdi }
device sw  "ATEM Mini" as switcher { in 1..4 : sdi  out PGM : sdi }
device rec "HyperDeck" as recorder { in SDI : sdi }

cam.SDI -> sw.1    : sdi 30m "V-01" [color=青]
sw.PGM  -> rec.SDI : sdi 2m  "V-10"
```
output
V-01 30mV-10 2mSONY FX3SDIATEM Mini1234PGMHyperDeckSDI

コミュニティプラグインへの掲載を申請中です。それまでは上のリリースから3ファイルを vault に置いて使えます。リリースを見る

書けば描かれる

```kumihimo のブロックが図になります。```khm でも同じです。

表も一緒に

ケーブル表・無線表・機材表・部材表が、図の下に折りたたまれて付きます。現場に持っていく紙と同じ中身です。

間違いは指摘される

挿さるのに何も通らない結線は、図の下に理由つきで出ます。間違った図が載ったノートは、図の無いノートより悪いからです。

スマホでも動く

レイアウトエンジンが Worker を必要としないので、デスクトップ専用ではありません。

INSTALL

入れて、書く。

terminal
# コマンドラインで使う
pnpm add -D @love-rox/kumihimo-cli

kumihimo build studio.khm -o studio.svg
kumihimo check studio.khm
kumihimo export studio.khm drawio
markdown
# Markdown に埋め込む
pnpm add @love-rox/kumihimo-rehype

```kumihimo
cam.SDI -> sw.1 : sdi 30m
```

最新リリース 0.12.1 · 2026-08-08変更履歴

@love-rox/kumihimo-clibuild / check / export / watch
@love-rox/kumihimo-coreパーサ・検証・レイアウト・SVG
@love-rox/kumihimo-editor埋め込み型ライブエディタ
@love-rox/kumihimo-rehypeMarkdown のコードフェンス
@love-rox/kumihimo-reactReact コンポーネント
@love-rox/kumihimo-vueVue 3 コンポーネント
@love-rox/kumihimo-astroAstro 統合
love-rox.kumihimo-vscodeVS Code 拡張(診断・プレビュー)