Skip to main content
Glama

Doseedo Film Score: spot a video, play your score on AI instruments, mix it to picture

Analyze MIDI harmony

doseedo_analyze_midi

Check the HARMONY of notes before rendering or placing them: factor a MIDI progression into its sonorities (mode "midi", default — chord-detection-free: each segment of simultaneously sounding pitches reduced to an anchor pitch class + register-exact shape, covered with recurring shape cells) or into chord symbols (mode "chord": one estimated chord per ~2 beats + a corpus-grammar cell cover with a schedule). Input: notes[] (the rows you would give doseedo_render_midi / set_midi_notes) with bpm, or midi_url (a .mid ≤2 MiB: a doseedo result link such as a stem's MIDI, or a public URL). Synchronous (~2–10 s), CPU, no credits. Returns sonorities[] or chords[], cover, cells, compression — read chords[].chord / sonorities[].anchor to confirm the key and progression you intended. Cancel: not applicable — the result is returned in the submit response; the job is already finished.

Input Schema

NameRequiredDescriptionDefault
bpmNoTempo of the notes (needed with notes; default 120).
modeNo"midi" (default): sonority / shape factoring. "chord": chord symbols per segment + cell cover.
notesNoThe notes to analyze, in beats from bar 1 (same rows as doseedo_render_midi). Needs bpm.
midi_urlNoAlternative to notes: https URL of a Standard MIDI File (≤2 MiB).
min_seg_beatsNomode midi: shortest sonority segment in beats (default 0.25).
time_signatureNoMeter of the notes, e.g. "4/4" (default).
idempotency_keyNoOptional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
beats_per_segmentNomode chord: segment length in beats (0.25–8, default 2).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The description provides rich behavioral context beyond the annotations, detailing the synchronous nature of the operation, the time and CPU cost, and the lifecycle management of the job, including confirmation instructions and cancellation policy.

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

Conciseness3/5

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

The description is quite dense and long, sacrificing brevity for extremely high information density. However, the information is logically structured, though its overall length makes it less concise than ideal.

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

Completeness5/5

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

Despite lacking a formal output schema, the description is highly complete. It explicitly details the expected data fields to check in the results (e.g., 'chords[].chord / sonorities[].anchor') and clearly outlines the job completion flow.

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

Parameters5/5

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

While the schema is 100% covered, the description adds critical domain expertise that the schema lacks. It clarifies the specific functional difference between the 'midi' mode (being chord-detection-free) and the 'chord' mode (output density), as well as how to correctly utilize the optional 'idempotency_key'.

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 description immediately identifies the tool's purpose: analyzing MIDI harmony. It clearly distinguishes its capabilities across two operational modes: 'midi' (chord-detection-free sonorities) and 'chord' (chord symbols).

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

Usage Guidelines4/5

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

The tool specifies how it must be invoked by accepting either a detailed 'notes[]' array (or a 'midi_url'). It provides critical operational constraints regarding timing ('Synchronous (~2–10 s)') and resource allocation ('CPU, no credits').

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources