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"
}