コンテンツにスキップ

MIDI 入力で録音する

外部 MIDI キーボード/コントローラー/ハードシーケンサからの入力を、skulpton のトラックに ライブ録音 できます。ノートだけでなく CC・Pitch Bend・Channel Aftertouch も同時に記録 されるため、演奏中のモジュレーションホイール操作やベンドもそのまま残ります。

以下が すべて揃ったとき に、IN から来る MIDI がトラックに録音されます:

  1. トラックの IN ポート が None 以外(MIDI 入出力を設定する)
  2. トラックの Arm ボタンが ON
  3. Record ボタンを押す(または Play で開始 → Record トグル)
  4. 受信 MIDI のチャンネルが、トラックの IN チャンネル設定(または All)と一致

Arm されたトラックが 1 つも無い状態で Record を押すと、最初のトラックが自動 Arm されます。

MIDI メッセージ記録先
Note On / Offトラックの clip(ピアノロール)
CC(Control Change)該当 CC# のレーン(無ければ自動作成)
Pitch BendPB レーン(無ければ自動作成)
Channel AftertouchCA レーン(無ければ自動作成)
Program Change記録されません(意図せず音色が変わる事故を避けるため)
Poly Aftertouchlive thru のみ(現在は記録対象外)

CC / PB / CA が記録対象になっているため、外部キーボードのモジュレーションホイール / ピッチベンドホイール / 鍵盤アフタータッチを動かしながら演奏すると、すべてレーンに残ります。

モジュレーションホイールやピッチベンドを操作すると、1 秒間に 30〜100 イベント 飛んでくることがあります。skulpton は 連続する同じ値のイベントを自動的に間引き するため、Clip が膨らみすぎることはありません。

  • 値が 64 のままホイール送信が継続 → 最初の 1 件だけ記録
  • 64 → 70 → 64 と動かす → 3 件すべて記録(値が動いているので残す)
  • 値が違うレーン(例: CC1 と CC11)は 独立に判定

間引きは clamp 後の値で判定します。CC で 200 を送っても 127 にクランプされ、その後の 127 は thinning でスキップされます。

録音開始から終了まで、入力は同じ Clip に連続して記録 されます。途中で 1 拍以上演奏が途切れても、Clip は切替わりません。

  • 演奏開始時点でカバーする Clip があればそれを使用
  • 無ければ 小節先頭にバー単位の新規 Clip を自動作成
  • 演奏が Clip 末尾を超えたら、Clip の長さを次のバー境界まで自動延長

セッションは以下のいずれかで終了します:

  • Stop ボタン
  • Pause ボタン
  • Seek(タイムラインクリック / ピアノロール ruler クリック)
  • Arm を解除する
  • トラックを削除

次に Play すると、新しい Clip にテイクが始まります。

ループ範囲が ON の状態で録音すると、折返しごとに既存 Clip にレイヤー されます(Overdub)。

  • 1 周目にキックドラム
  • 2 周目にスネア
  • 3 周目にハイハット

すべて同じ Clip に積層されます。Logic / Live / Cubase / Bitwig の MIDI ループ録音と同じ挙動です(Pro Tools の Stacked Take モードとは異なる)。

ループ折返し時:

  • ループ境界をまたいで持続中のノートは surgical に note-off が送られて停止します(panic_all のような派手な処理は走らない)
  • ループ先頭のノートが 同 tick 内で発火 して始まる(タイミングずれ無し)
  • MIDI Clock を外部に送出している場合、位相は保たれて継続(同期相手に影響しない)

演奏中に同じピッチが折返しで再トリガされたら

Section titled “演奏中に同じピッチが折返しで再トリガされたら”

ループ末尾で持続していたノートと、ループ先頭の同じピッチのノート(再トリガ)が 隣接する 場合、skulpton は redundant な note-off を抑制 して、新しい note-on のみ送ります。エンベロープのパチン感を回避するための実装で、業界用語で “Note Tie” / “Legato” と呼ばれる挙動です。

(Cirklon ハードウェアシーケンサや Live の Clip Legato モードの考え方を踏襲)

Arm して Record を押しているのに何も記録されない

Section titled “Arm して Record を押しているのに何も記録されない”
  • IN ポートが None になっていないか確認
  • IN チャンネルが全チャンネル受信(All / Omni)または送信側のチャンネルに一致しているか確認
  • ほかのアプリ(Logic 等)が同じ MIDI ポートを 占有 していないか確認(macOS の IAC は共有可)
  • アプリは 起動時に一度だけ MIDI ポートをスキャンします。後から繋いだデバイスは skulpton を再起動

モジュレーションホイールが思ったより記録されない

Section titled “モジュレーションホイールが思ったより記録されない”
  • 同値 thinning で間引きされている可能性が高い(設計上の挙動)
  • 「動かしている間ずっと記録したい」場合は値を細かく動かしてください
  • v0.1.0 時点で「もたり」を解消しています
  • それでも気になる場合は MIDI Clock 出力先を確認(クロック信号と同期している外部機器が処理に時間を取っている可能性)