Skip to main content
Glama
ismail: agent DAW (MCP server)

ismail: agent DAW (MCP server)

Track Midi Fx

track_midi_fx

Apply a chain of MIDI effects—chords, scale, pitch, velocity, length, random—to a track at render without changing written notes; optionally write processed notes into the track.

Instructions

MIDI effects on a track at render, Ableton's Chord, Scale, Pitch, Velocity, Note Length and Random as one chain: the track's notes stay as written (notes_read shows them) and the render plays what the chain makes of them. The same core as live_midi_fx: a key on a beat live makes what a note on that beat renders. chain: a list of effects, applied in order to every note; a new chain replaces the old one. Effects: {'type': 'chord', 'intervals': [0, 4, 7], 'velocity': 0.8} (each note plays these semitones from it, 0 = itself; velocity scales the added notes, or a list one per interval); {'type': 'scale', 'key': 'A', 'scale': 'minor', 'mode': 'nearest'} (notes off the scale move onto it: 'nearest', 'up', 'down', or 'drop' = not played; scale a name such as 'major', 'dorian', 'minor_pentatonic' or semitones); {'type': 'pitch', 'transpose': 12, 'lowest': 'C3', 'highest': 'C6', 'fold': False} (semitones, then notes outside the range are dropped, or folded by octaves into it); {'type': 'velocity', 'out': [40, 110], 'curve': 0.5, 'random': 10} (curve -1 to 1, above 0 lifts soft notes; out the range it maps into; random +- that much; or 'fixed': 100); {'type': 'length', 'beats': 0.5} or {'type': 'length', 'scale': 2} (every note that long, or that multiple of its written length); {'type': 'random', 'chance': 0.5, 'choices': 2, 'interval': 12, 'sign': 'up', 'seed': 0} (with that chance a note moves by 1 to choices times interval semitones, 'up', 'down' or 'both'; key + scale makes the interval scale steps; the seed makes the render the same every time). Notes past 0..127 are dropped; a pitch made twice plays once. With track_arp on the same track the chain runs first: the arp steps the notes it makes. No chain: says what is on the track. write=True writes the processed notes into the track in place of the written ones and takes the chain off: plain notes to edit (undo brings the written notes and the chain back). off=True takes the chain off and keeps the notes as written. Reach for it when the person wants chords from single notes, a part forced into a key, a range, a velocity shape, staccato or held notes, or random octave jumps, without rewriting the notes.

Input Schema

NameRequiredDescriptionDefault
offNo
chainNo
trackYes
writeNo
projectYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.5

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses that the chain is non-destructive, that write=True overwrites notes in place and removes the chain with undo restoring both, that off=True removes only the chain, that a new chain replaces the old, and that notes outside 0..127 are dropped and duplicate pitches collapse. It stops short of describing error conditions (missing project/track) or any permission requirements, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is long and dense, but the length is justified by 0% schema coverage for a six-variant effect grammar where nearly every clause carries information an agent cannot get elsewhere. It is front-loaded with purpose and organized as purpose, chain semantics, effect types, edge cases, interaction, modes, then use cases, though the inline parenthetical examples make it harder to scan than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with no annotations, no parameter descriptions, and an untyped chain array, the description supplies almost everything needed to invoke it correctly, and the existence of an output schema means return values need not be covered. The only shortfall is the unexplained project and track parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and chain is an untyped array, so the description must define the entire effect vocabulary, which it does thoroughly with per-type keys, defaults, and value ranges. The two required parameters, project and track, receive no explanation at all, which is the main remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and resource ('MIDI effects on a track at render') and immediately scopes it against a sibling by explaining that notes stay as written while the render transforms them. It also explicitly distinguishes itself from live_midi_fx ('The same core as live_midi_fx') and notes_read, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence gives an explicit when-to-use list ('chords from single notes, a part forced into a key, a range, a velocity shape, staccato or held notes, or random octave jumps') and the write/off flags are framed as alternatives with distinct outcomes. It also states ordering relative to track_arp and what happens with no chain, leaving no ambiguity about when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools