> For the complete documentation index, see [llms.txt](https://support.4cast.world/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.4cast.world/8.-reference/midi-reference.md).

# Midi Reference

A complete reference for all MIDI notes, CC messages, and channels used by the MVP.

***

## MIDI Channels

| Channel              | Default Assignment                    | Configurable?                  |
| -------------------- | ------------------------------------- | ------------------------------ |
| **Video Channel**    | Channel 1 (MIDI channel 0 internally) | Yes (1-16, in System Settings) |
| **Lighting Channel** | Channel 3 (MIDI channel 2 internally) | Yes (1-16, in System Settings) |

Video and Lighting channels are configured independently. Channels are reloadable at runtime -- changing the setting takes effect immediately.

***

## MIDI Notes -- Clip Triggers

Sent on the **Video** or **Lighting** MIDI channel:

| Note        | Action                                                                                                     |
| ----------- | ---------------------------------------------------------------------------------------------------------- |
| **0**       | **Blackout** -- Video: loads blank video (black screen) / Lighting: loads DMX blackout (all channels to 0) |
| **1-99**    | Trigger the clip assigned to that note number                                                              |
| **100-109** | *(unused)*                                                                                                 |
| **110**     | Reset ALL Effects Mode properties to defaults (video channel only)                                         |
| **111**     | Reset Brightness to 0 (video channel only)                                                                 |
| **112**     | Reset Contrast to 1.0 (video channel only)                                                                 |
| **113**     | Reset Hue to 0 (video channel only)                                                                        |
| **114**     | Reset Saturation to 1.0 (video channel only)                                                               |
| **115**     | Reset Rotation Z to 0 (video channel only)                                                                 |
| **116**     | Reset Scale to 1.0 (video channel only)                                                                    |
| **117**     | Reset Translation X to 0 (video channel only)                                                              |
| **118**     | Reset Translation Y to 0 (video channel only)                                                              |
| **119-126** | *(unused)*                                                                                                 |
| **127**     | **Config Reload** -- Video channel: reload video config / Lighting channel: reload lighting config         |

### Note Handling Details

* **Velocity**: Any velocity > 0 triggers the clip. The specific velocity value does not matter.
* **Velocity 0**: Treated as Note Off and ignored.
* **Note Off**: Completely ignored -- the MVP does not respond to Note Off messages.
* **Re-trigger**: Sending the same note while a clip is playing restarts it from the beginning.
* **Timecode suppression**: When timecode is active, MIDI note triggers for video and DMX are suppressed.

***

## MIDI CC -- Effects Mode Controls

Sent on the **Video** MIDI channel only. Requires **Effects Mode** (transform video mode) to be active.

| CC #   | Control       | Default Value   | Behavior                                                 |
| ------ | ------------- | --------------- | -------------------------------------------------------- |
| **48** | Brightness    | 64 (normal)     | 0 = darkest, 64 = normal, 127 = brightest                |
| **49** | Contrast      | 64 (normal)     | 0 = minimum, 64 = normal, 127 = maximum                  |
| **50** | Hue           | 64 (normal)     | 0 = full shift left, 64 = normal, 127 = full shift right |
| **51** | Saturation    | 64 (normal)     | 0 = grayscale, 64 = normal, 127 = oversaturated          |
| **52** | Rotation Z    | 0 (no rotation) | 0 = no rotation, 127 = full 360° rotation                |
| **53** | Scale X/Y     | 64 (100%)       | 0 = smallest, 64 = normal size, 127 = 200% zoom          |
| **54** | Translation X | 64 (centered)   | 0 = far left, 64 = centered, 127 = far right             |
| **55** | Translation Y | 64 (centered)   | 0 = far up, 64 = centered, 127 = far down                |

Effects are grouped into two categories:

* **Color adjustments**: Brightness, Contrast, Hue, Saturation (CC 48-51)
* **Spatial transforms**: Rotation Z, Scale, Translation X/Y (CC 52-55)

***

## MIDI CC -- Slot Switching

Sent on the **Video** or **Lighting** MIDI channel:

| CC #    | Value | Action                                |
| ------- | ----- | ------------------------------------- |
| **119** | 10    | Switch to Slot A                      |
| **119** | 20    | Switch to Slot B                      |
| **119** | 30    | Switch to Slot C                      |
| **119** | 40    | Switch to Slot D                      |
| **119** | 50    | Switch to Slot E                      |
| **119** | 0     | *(ignored -- common DAW reset value)* |

**Important details:**

* CC #119 on the **video** channel switches the **video** slot only
* CC #119 on the **lighting** channel switches the **lighting** slot only
* **Only the exact values above are accepted** -- values like 11, 25, or 35 are silently ignored
* If the requested slot is already active, the switch is silently skipped
* **Timecode does NOT support CC #119 slot switching** -- timecode slots can only be changed from the UI

***

## MIDI CC -- CC Trigger Mode

Must be enabled in [System Settings](/6.-configuration/system-settings.md) (CC Trigger Mode toggle).

Sent on **either** the Video or Lighting MIDI channel:

| CC #    | Value   | Action                                   |
| ------- | ------- | ---------------------------------------- |
| **110** | 1-99    | Trigger the clip assigned to that number |
| **110** | 100     | Trigger blackout (maps to note 0)        |
| **110** | 0       | *(ignored -- default/off value)*         |
| **110** | 101-127 | *(ignored -- out of range)*              |

> **Warning**: Do not use with faders or knobs (continuous controllers) -- use buttons only. Each distinct value fires a clip change immediately.

***

## MIDI Note Numbering Conventions

Different DAWs and controllers use different octave numbering. The MVP uses raw MIDI note numbers (0-127). Here's how they map across common conventions:

| MIDI Note # | C-2 Convention | C-1 Convention | C3 Convention |
| ----------- | -------------- | -------------- | ------------- |
| 0           | C-2            | C-1            | C-2           |
| 12          | C-1            | C0             | C-1           |
| 24          | C0             | C1             | C0            |
| 36          | C1             | C2             | C1            |
| 48          | C2             | C3             | C2            |
| 60          | C3             | C4             | C3            |

> **Tip**: If you're unsure which note number your controller is actually sending, check the MVP Dashboard's **Input Monitor** -- it always shows the raw MIDI note number regardless of naming convention.

***

## MIDI Machine Control (MMC)

Received via any MIDI input when MTC is active (SysEx and timing messages are unfiltered):

| MMC Command     | Effect                                                   |
| --------------- | -------------------------------------------------------- |
| **Stop**        | Freeze video on current frame, lighting holds last state |
| **Play**        | Resume playback from current or pending Locate position  |
| **Pause**       | Same as Stop -- freezes current state                    |
| **Locate/GoTo** | Seek to specific timecode position                       |

***

## MTC Routing

MTC messages are handled separately from regular note/CC messages:

* **Timecode data**: Continuous timecode tracking for synchronized playback
* **Position jump**: Sent when your DAW scrubs or locates -- provides immediate absolute position
* **Transport commands (MMC)**: Stop, Play, Pause, and Locate for controlling the MVP's playback state

***

## Related Pages

* [Video Configuration](/2.-video-setup/video-configuration.md) -- Assign clips and channels
* [Lighting Configuration](/3.-lighting-setup/lighting-configuration.md) -- Assign DMX clips and channels
* [Effects Mode](/2.-video-setup/effects-mode.md) -- CC 48-55 real-time controls
* [CC Trigger Mode](/5.-triggering/midi-cc-trigger-mode.md) -- CC #110 clip triggering
* [Configuration Slots](/6.-configuration/configuration-slots.md) -- CC #119 slot switching
