get_midi_events
Extract and filter MIDI events from files by time range, event type, track, or specific values for detailed analysis and processing.
Instructions
Get MIDI events from a file with comprehensive filtering options
Input Schema
| Name | Required | Description | Default | 
|---|---|---|---|
| eventTypeFilter | No | Filter events by type | |
| fileId | No | ID of the loaded MIDI file | |
| filePath | No | Path to the MIDI file (if not using fileId) | |
| timeRange | No | Time range to filter events (in MIDI ticks) | |
| trackFilter | No | Filter events by track indexes | |
| valueFilter | No | Filter events by specific values | 
Input Schema (JSON Schema)
{
  "properties": {
    "eventTypeFilter": {
      "description": "Filter events by type",
      "items": {
        "enum": [
          "noteOn",
          "noteOff",
          "noteAftertouch",
          "controller",
          "programChange",
          "channelAftertouch",
          "pitchBend",
          "sysEx",
          "meta"
        ],
        "type": "string"
      },
      "type": "array"
    },
    "fileId": {
      "description": "ID of the loaded MIDI file",
      "type": "string"
    },
    "filePath": {
      "description": "Path to the MIDI file (if not using fileId)",
      "type": "string"
    },
    "timeRange": {
      "description": "Time range to filter events (in MIDI ticks)",
      "properties": {
        "endTick": {
          "description": "End tick for filtering events",
          "minimum": 0,
          "type": "number"
        },
        "startTick": {
          "description": "Start tick for filtering events",
          "minimum": 0,
          "type": "number"
        }
      },
      "required": [
        "startTick",
        "endTick"
      ],
      "type": "object"
    },
    "trackFilter": {
      "description": "Filter events by track indexes",
      "items": {
        "minimum": 0,
        "type": "number"
      },
      "type": "array"
    },
    "valueFilter": {
      "description": "Filter events by specific values",
      "properties": {
        "value1": {
          "description": "Filter by first value (e.g., note number)",
          "maximum": 127,
          "minimum": 0,
          "type": "number"
        },
        "value2": {
          "description": "Filter by second value (e.g., velocity)",
          "maximum": 127,
          "minimum": 0,
          "type": "number"
        },
        "value3": {
          "description": "Filter by third value",
          "maximum": 127,
          "minimum": 0,
          "type": "number"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}