Skip to main content
Glama
synopsys0

PostFader V12 — FL Studio MCP Server

audio_compare_files

Read-onlyIdempotent

Compare a candidate render with a reference, align and loudness-match them, then measure per-band differences to suggest bounded tonal adjustments for review.

Instructions

Compare a candidate render with a reference and suggest tonal adjustments.

Reads both files; changes nothing. Aligns them, matches loudness, and measures per-band differences over their common overlap. When alignment and readiness checks pass, it adds bounded review ranges per band (reduce or increase the candidate); otherwise actionable is false. Suggestions are starting points to review, not targets to apply blindly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
max_secondsNoOptional shorter analysis bound in seconds; the default reads up to 600.
candidate_pathYesAbsolute path to the candidate render being judged.
reference_pathYesAbsolute path to the reference render.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
warningsNo
actionableYes
comparisonYes
adjustmentsYes
generated_atYes
schema_versionNo1.0
mutations_appliedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed104 schema fields changedv11.0.2
    • changedInput schema / properties / candidate_path / description
      Previous value: -"Absolute path to the candidate render; reported as the target."New value: +"Absolute path to the candidate render being judged."
    • removedOutput schema / $defs / AlignmentConfidence / properties / basis / title
      Removed value: -"Basis"
    • removedOutput schema / $defs / AlignmentConfidence / properties / level / title
      Removed value: -"Level"
    • removedOutput schema / $defs / AlignmentConfidence / properties / score / title
      Removed value: -"Score"
    • removedOutput schema / $defs / AlignmentConfidence / title
      Removed value: -"AlignmentConfidence"
    • removedOutput schema / $defs / AlignmentReport / properties / absolute_correlation / title
      Removed value: -"Absolute Correlation"
    • removedOutput schema / $defs / AlignmentReport / properties / analysis_rate_hz / title
      Removed value: -"Analysis Rate Hz"
    • removedOutput schema / $defs / AlignmentReport / properties / common_coverage / title
      Removed value: -"Common Coverage"
    • removedOutput schema / $defs / AlignmentReport / properties / common_duration_sec / title
      Removed value: -"Common Duration Sec"
    • removedOutput schema / $defs / AlignmentReport / properties / common_frames / title
      Removed value: -"Common Frames"
    • removedOutput schema / $defs / AlignmentReport / properties / lag_convention / title
      Removed value: -"Lag Convention"
    • removedOutput schema / $defs / AlignmentReport / properties / lag_resolution_seconds / title
      Removed value: -"Lag Resolution Seconds"
    • removedOutput schema / $defs / AlignmentReport / properties / max_lag_seconds / title
      Removed value: -"Max Lag Seconds"
    • removedOutput schema / $defs / AlignmentReport / properties / method / title
      Removed value: -"Method"
    • removedOutput schema / $defs / AlignmentReport / properties / normalised_correlation / title
      Removed value: -"Normalised Correlation"
    • removedOutput schema / $defs / AlignmentReport / properties / peak_to_next_distinct_peak_ratio / title
      Removed value: -"Peak To Next Distinct Peak Ratio"
    • removedOutput schema / $defs / AlignmentReport / properties / reference_alignment_source / title
      Removed value: -"Reference Alignment Source"
    • removedOutput schema / $defs / AlignmentReport / properties / reference_common_end_sample_exclusive / title
      Removed value: -"Reference Common End Sample Exclusive"
    • removedOutput schema / $defs / AlignmentReport / properties / reference_common_start_sample / title
      Removed value: -"Reference Common Start Sample"
    • removedOutput schema / $defs / AlignmentReport / properties / target_alignment_source / title
      Removed value: -"Target Alignment Source"
    • removedOutput schema / $defs / AlignmentReport / properties / target_common_end_sample_exclusive_at_reference_rate / title
      Removed value: -"Target Common End Sample Exclusive At Reference Rate"
    • removedOutput schema / $defs / AlignmentReport / properties / target_common_start_sample_at_reference_rate / title
      Removed value: -"Target Common Start Sample At Reference Rate"
    • removedOutput schema / $defs / AlignmentReport / properties / target_lag_samples_at_reference_rate / title
      Removed value: -"Target Lag Samples At Reference Rate"
    • removedOutput schema / $defs / AlignmentReport / properties / target_lag_seconds / title
      Removed value: -"Target Lag Seconds"
    • removedOutput schema / $defs / AlignmentReport / title
      Removed value: -"AlignmentReport"
    • removedOutput schema / $defs / AnalyzerVersions / properties / alignment / title
      Removed value: -"Alignment"
    • removedOutput schema / $defs / AnalyzerVersions / properties / dynamics / title
      Removed value: -"Dynamics"
    • removedOutput schema / $defs / AnalyzerVersions / properties / integrated_loudness / title
      Removed value: -"Integrated Loudness"
    • removedOutput schema / $defs / AnalyzerVersions / properties / loudness_matching / title
      Removed value: -"Loudness Matching"
    • removedOutput schema / $defs / AnalyzerVersions / properties / pitch / title
      Removed value: -"Pitch"
    • removedOutput schema / $defs / AnalyzerVersions / properties / spectrum / title
      Removed value: -"Spectrum"
    • removedOutput schema / $defs / AnalyzerVersions / properties / true_peak / title
      Removed value: -"True Peak"
    • removedOutput schema / $defs / AnalyzerVersions / title
      Removed value: -"AnalyzerVersions"
    • addedOutput schema / $defs / AudioComparison
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A/B measurements over the common, loudness-matched overlap.\n\n``target`` throughout is the candidate file supplied by the caller; the\nname is the measurement engine's, kept verbatim so the alignment lag\nconvention reads consistently.",
      +  "properties": {
      +    "alignment": {
      +      "$ref": "#/$defs/AlignmentReport"
      +    },
      +    "analyzer_version": {
      +      "type": "string"
      +    },
      +    "analyzer_versions": {
      +      "$ref": "#/$defs/AnalyzerVersions"
      +    },
      +    "band_deltas": {
      +      "additionalProperties": {
      +        "$ref": "#/$defs/BandDelta"
      +      },
      +      "type": "object"
      +    },
      +    "centroid_hz": {
      +      "$ref": "#/$defs/CentroidComparison"
      +    },
      +    "comparison_ready": {
      +      "type": "boolean"
      +    },
      +    "confidence": {
      +      "$ref": "#/$defs/MeasurementConfidence"
      +    },
      +    "interpretation": {
      +      "const": "measurements_only",
      +      "default": "measurements_only",
      +      "type": "string"
      +    },
      +    "limitations": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "loudness_matching": {
      +      "$ref": "#/$defs/LoudnessMatchReport"
      +    },
      +    "measured_at": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "parameters": {
      +      "$ref": "#/$defs/ComparisonParameters"
      +    },
      +    "reference": {
      +      "$ref": "#/$defs/InputProvenance"
      +    },
      +    "schema_version": {
      +      "const": "1.0",
      +      "default": "1.0",
      +      "type": "string"
      +    },
      +    "target": {
      +      "$ref": "#/$defs/InputProvenance"
      +    },
      +    "target_rate_conversion": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/RateConversion"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    }
      +  },
      +  "required": [
      +    "measured_at",
      +    "analyzer_version",
      +    "analyzer_versions",
      +    "reference",
      +    "target",
      +    "parameters",
      +    "band_deltas",
      +    "centroid_hz",
      +    "alignment",
      +    "loudness_matching",
      +    "comparison_ready",
      +    "confidence",
      +    "limitations"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / $defs / BandDelta / properties / difference_db / title
      Removed value: -"Difference Db"
    • removedOutput schema / $defs / BandDelta / properties / reference_share / title
      Removed value: -"Reference Share"
    • removedOutput schema / $defs / BandDelta / properties / target_share / title
      Removed value: -"Target Share"
    • removedOutput schema / $defs / BandDelta / title
      Removed value: -"BandDelta"
    • removedOutput schema / $defs / CentroidComparison / properties / reference / title
      Removed value: -"Reference"
    • removedOutput schema / $defs / CentroidComparison / properties / target / title
      Removed value: -"Target"
    • removedOutput schema / $defs / CentroidComparison / title
      Removed value: -"CentroidComparison"
    • removedOutput schema / $defs / ComparisonParameters / properties / alignment_rate_hz / title
      Removed value: -"Alignment Rate Hz"
    • removedOutput schema / $defs / ComparisonParameters / properties / max_alignment_seconds / title
      Removed value: -"Max Alignment Seconds"
    • removedOutput schema / $defs / ComparisonParameters / properties / max_seconds / title
      Removed value: -"Max Seconds"
    • removedOutput schema / $defs / ComparisonParameters / title
      Removed value: -"ComparisonParameters"
    • removedOutput schema / $defs / InputProvenance / properties / analyzed_duration_sec / title
      Removed value: -"Analyzed Duration Sec"
    • removedOutput schema / $defs / InputProvenance / properties / analyzed_frames / title
      Removed value: -"Analyzed Frames"
    • removedOutput schema / $defs / InputProvenance / properties / canonical_path / title
      Removed value: -"Canonical Path"
    • removedOutput schema / $defs / InputProvenance / properties / channels / title
      Removed value: -"Channels"
    • removedOutput schema / $defs / InputProvenance / properties / sample_rate_hz / title
      Removed value: -"Sample Rate Hz"
    • removedOutput schema / $defs / InputProvenance / properties / sha256 / title
      Removed value: -"Sha256"
    • removedOutput schema / $defs / InputProvenance / properties / source_duration_sec / title
      Removed value: -"Source Duration Sec"
    • removedOutput schema / $defs / InputProvenance / properties / source_frames / title
      Removed value: -"Source Frames"
    • removedOutput schema / $defs / InputProvenance / properties / truncated / title
      Removed value: -"Truncated"
    • removedOutput schema / $defs / InputProvenance / title
      Removed value: -"InputProvenance"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / applied / title
      Removed value: -"Applied"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / clipped_channel_samples_after / title
      Removed value: -"Clipped Channel Samples After"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / gain_db_applied / title
      Removed value: -"Gain Db Applied"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / in_memory_only / title
      Removed value: -"In Memory Only"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / method / title
      Removed value: -"Method"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / reason_not_applied / title
      Removed value: -"Reason Not Applied"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / reference_lufs / title
      Removed value: -"Reference Lufs"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / residual_lu / title
      Removed value: -"Residual Lu"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / source_files_modified / title
      Removed value: -"Source Files Modified"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / target_lufs_after / title
      Removed value: -"Target Lufs After"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / target_lufs_before / title
      Removed value: -"Target Lufs Before"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / target_sample_peak_db_after / title
      Removed value: -"Target Sample Peak Db After"
    • removedOutput schema / $defs / LoudnessMatchReport / properties / target_sample_peak_db_before / title
      Removed value: -"Target Sample Peak Db Before"
    • removedOutput schema / $defs / LoudnessMatchReport / title
      Removed value: -"LoudnessMatchReport"
    • removedOutput schema / $defs / MeasurementConfidence / properties / basis / title
      Removed value: -"Basis"
    • removedOutput schema / $defs / MeasurementConfidence / properties / level / title
      Removed value: -"Level"
    • removedOutput schema / $defs / MeasurementConfidence / properties / scope / title
      Removed value: -"Scope"
    • removedOutput schema / $defs / MeasurementConfidence / properties / score / title
      Removed value: -"Score"
    • removedOutput schema / $defs / MeasurementConfidence / title
      Removed value: -"MeasurementConfidence"
    • removedOutput schema / $defs / RateConversion / properties / from_hz / title
      Removed value: -"From Hz"
    • removedOutput schema / $defs / RateConversion / properties / method / title
      Removed value: -"Method"
    • removedOutput schema / $defs / RateConversion / properties / to_hz / title
      Removed value: -"To Hz"
    • removedOutput schema / $defs / RateConversion / title
      Removed value: -"RateConversion"
    • addedOutput schema / $defs / ReferenceAdjustment
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "band": {
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "direction": {
      +      "enum": [
      +        "reduce_candidate",
      +        "increase_candidate"
      +      ],
      +      "type": "string"
      +    },
      +    "measured_difference_db": {
      +      "type": "number"
      +    },
      +    "rationale": {
      +      "maxLength": 512,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "suggested_review_range_db": {
      +      "maxItems": 2,
      +      "minItems": 2,
      +      "prefixItems": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "number"
      +        }
      +      ],
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "band",
      +    "measured_difference_db",
      +    "direction",
      +    "suggested_review_range_db",
      +    "rationale"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / description
      Removed value: -"A/B measurements over the common, loudness-matched overlap.\n\n``target`` throughout is the candidate file supplied by the caller; the\nname is the measurement engine's, kept verbatim so the alignment lag\nconvention reads consistently."
    • addedOutput schema / properties / actionable
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / adjustments
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ReferenceAdjustment"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / alignment
      Removed value: -{
      -  "$ref": "#/$defs/AlignmentReport"
      -}
    • removedOutput schema / properties / analyzer_version
      Removed value: -{
      -  "title": "Analyzer Version",
      -  "type": "string"
      -}
    • removedOutput schema / properties / analyzer_versions
      Removed value: -{
      -  "$ref": "#/$defs/AnalyzerVersions"
      -}
    • removedOutput schema / properties / band_deltas
      Removed value: -{
      -  "additionalProperties": {
      -    "$ref": "#/$defs/BandDelta"
      -  },
      -  "title": "Band Deltas",
      -  "type": "object"
      -}
    • removedOutput schema / properties / centroid_hz
      Removed value: -{
      -  "$ref": "#/$defs/CentroidComparison"
      -}
    • addedOutput schema / properties / comparison
      Added value: +{
      +  "$ref": "#/$defs/AudioComparison"
      +}
    • removedOutput schema / properties / comparison_ready
      Removed value: -{
      -  "title": "Comparison Ready",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / confidence
      Removed value: -{
      -  "$ref": "#/$defs/MeasurementConfidence"
      -}
    • addedOutput schema / properties / generated_at
      Added value: +{
      +  "format": "date-time",
      +  "type": "string"
      +}
    • removedOutput schema / properties / interpretation
      Removed value: -{
      -  "const": "measurements_only",
      -  "default": "measurements_only",
      -  "title": "Interpretation",
      -  "type": "string"
      -}
    • removedOutput schema / properties / limitations
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "title": "Limitations",
      -  "type": "array"
      -}
    • removedOutput schema / properties / loudness_matching
      Removed value: -{
      -  "$ref": "#/$defs/LoudnessMatchReport"
      -}
    • removedOutput schema / properties / measured_at
      Removed value: -{
      -  "format": "date-time",
      -  "title": "Measured At",
      -  "type": "string"
      -}
    • addedOutput schema / properties / mutations_applied
      Added value: +{
      +  "const": false,
      +  "default": false,
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / parameters
      Removed value: -{
      -  "$ref": "#/$defs/ComparisonParameters"
      -}
    • removedOutput schema / properties / reference
      Removed value: -{
      -  "$ref": "#/$defs/InputProvenance"
      -}
    • removedOutput schema / properties / schema_version / title
      Removed value: -"Schema Version"
    • removedOutput schema / properties / target
      Removed value: -{
      -  "$ref": "#/$defs/InputProvenance"
      -}
    • removedOutput schema / properties / target_rate_conversion
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "$ref": "#/$defs/RateConversion"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • addedOutput schema / properties / warnings
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "measured_at",
      -  "analyzer_version",
      -  "analyzer_versions",
      -  "reference",
      -  "target",
      -  "parameters",
      -  "band_deltas",
      -  "centroid_hz",
      -  "alignment",
      -  "loudness_matching",
      -  "comparison_ready",
      -  "confidence",
      -  "limitations"
      -]New value: +[
      +  "generated_at",
      +  "comparison",
      +  "actionable",
      +  "adjustments"
      +]
    • removedOutput schema / title
      Removed value: -"AudioComparison"
  2. Changed4 schema fields changedv11.0.1
    • removedInput schema / properties / candidate_path / title
      Removed value: -"Candidate Path"
    • removedInput schema / properties / max_seconds / title
      Removed value: -"Max Seconds"
    • removedInput schema / properties / reference_path / title
      Removed value: -"Reference Path"
    • removedInput schema / title
      Removed value: -"audio_compare_filesArguments"
  3. First observedv10.0.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds genuine behavioral depth: alignment, loudness matching, per-band measurement over common overlap, bounded review ranges, and the condition under which actionable is false. The 'suggestions are starting points, not targets' caveat is a useful expectation-setting detail beyond structured fields.

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?

Purpose is front-loaded in the first sentence, followed by the read-only guarantee and then the mechanics. Five sentences, each carrying information, with no filler or repetition of the title.

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?

An output schema exists, so return-value explanation is not required, and the description still surfaces the key output concept (the actionable flag and bounded per-band ranges). Combined with annotations covering safety and idempotency, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents reference_path, candidate_path, and max_seconds in detail. The description adds no parameter-level syntax, format, or range information beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource: compares a candidate render against a reference and outputs tonal adjustment suggestions. Clear and non-tautological. However, it never distinguishes itself from adjacent siblings like audio_analyze_file, audio_diagnose_mix, or review_compare, so sibling differentiation is absent.

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

Usage Guidelines3/5

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

Usage is implied by the candidate-vs-reference framing and it discloses that the actionable flag is true only when alignment/readiness checks pass. But it gives no explicit when-to-use vs. when-not guidance and names no alternative among the audio analysis tools, leaving selection to inference.

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