33 lines
2.1 KiB
Markdown
33 lines
2.1 KiB
Markdown
### Node: `MIDI Device Loader @ vrch.ai` (vrch.ai/control/midi)
|
||
|
||
1. **Add the `MIDI Device Loader @ vrch.ai` node to your ComfyUI workflow.**
|
||
|
||
2. **Configure the Node:**
|
||
- **`device_id`**: Select the MIDI device ID to use. Default is empty (connects to first available device).
|
||
- **`name`**: Displays the connected MIDI device name (read-only).
|
||
- **`refresh_interval`**: Set the polling frequency in milliseconds (10–10000ms). Default is `100`.
|
||
- **`debug`**: Enable to view detailed debug information in the console and display raw data. Default is `False`.
|
||
- **`raw_data`**: Shows the raw MIDI state in JSON format (visible only when debug is enabled).
|
||
|
||
3. **Connecting a MIDI Device:**
|
||
- Connect a compatible MIDI device to your computer before starting ComfyUI.
|
||
- Ensure your browser supports the Web MIDI API (Chrome and Edge have the best support).
|
||
- The node will automatically connect to the first available device if `device_id` is not specified.
|
||
- To target a specific device, set the `device_id` field to the device’s ID and the node will reconnect if that device appears.
|
||
|
||
4. **Data Access:**
|
||
- The node polls the connected MIDI device at the specified `refresh_interval`.
|
||
- Incoming MIDI messages are parsed into CC (Control Change) and Note events.
|
||
- CC and Note data are stored in arrays of length 128 (one slot per MIDI number).
|
||
|
||
5. **Node Outputs:**
|
||
- **`RAW_DATA`**: Complete MIDI state in JSON format.
|
||
- **`INT_CC_VALUES`**: Array of integer CC values (0–127).
|
||
- **`FLOAT_CC_VALUES`**: Array of normalized CC values (0.0–1.0).
|
||
- **`BOOLEAN_NOTE_VALUES`**: Array of booleans indicating note on (`True`) or off (`False`) for each MIDI note number.
|
||
- **`INT_NOTE_VALUES`**: Array of integer note velocity values (0–127).
|
||
|
||
**Note:**
|
||
- Supported message types include Note On/Off, Control Change, Aftertouch, Program Change, Channel Pressure, and Pitch Bend.
|
||
- High-end MIDI controllers may send more message types; unsupported types are ignored by default.
|
||
- Multiple devices can be handled by adding multiple `MIDI Device Loader` nodes with different `device_id` settings. |