Skip to main content
Glama
synopsys0

PostFader V12 — FL Studio MCP Server

compose_bassline

Read-onlyIdempotent

Generate a deterministic bass part from a Roman-numeral progression and key, matching your chord progression, and return a beat-based note sequence for piano roll or MIDI export.

Instructions

Generate a bass part that follows a Roman-numeral progression, without touching FL.

Deterministic for a given seed. Use the same progression and key as
compose_chord_progression so the parts agree. Returns a note sequence in
beats for piano_roll_write_notes or compose_export_midi.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rootNoTonic note name, for example C, F#, or Bb.C
seedNoVariation seed; the same inputs and seed give the same notes.
styleNoRhythmic and melodic pattern.roots
octaveNoBass octave.
tempo_bpmNoTempo recorded in the sequence, in BPM.
collectionNoBundled scale, mode, or raga name such as major, dorian, or harmonic_minor; custom uses custom_intervals.major
progressionYesRoman-numeral chords the bass follows.
beats_per_chordNoLength of each chord in beats.
custom_intervalsNoSemitone offsets from the root when collection is custom.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
seedNo
notesYes
warningsNo
generatorYes
tempo_bpmNo
note_countYes
duration_beatsYes
engine_versionNopostfader-creative-1
schema_versionNo1.0
pitch_collectionNo
mutations_appliedNo
note_digest_sha256Yes
time_signature_numeratorNo
time_signature_denominatorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed38 schema fields changedv11.0.2
    • addedInput schema / properties / beats_per_chord / description
      Added value: +"Length of each chord in beats."
    • changedInput schema / properties / collection / description
      Previous value: -"Bundled scale/mode/raga name, or custom."New value: +"Bundled scale, mode, or raga name such as major, dorian, or harmonic_minor; custom uses custom_intervals."
    • addedInput schema / properties / custom_intervals / description
      Added value: +"Semitone offsets from the root when collection is custom."
    • addedInput schema / properties / octave / description
      Added value: +"Bass octave."
    • addedInput schema / properties / progression / description
      Added value: +"Roman-numeral chords the bass follows."
    • changedInput schema / properties / root / description
      Previous value: -"Tonic note name."New value: +"Tonic note name, for example C, F#, or Bb."
    • changedInput schema / properties / seed / description
      Previous value: -"Deterministic variation seed."New value: +"Variation seed; the same inputs and seed give the same notes."
    • addedInput schema / properties / style / description
      Added value: +"Rhythmic and melodic pattern."
    • addedInput schema / properties / tempo_bpm / description
      Added value: +"Tempo recorded in the sequence, in BPM."
    • removedOutput schema / $defs / CreativeNote / properties / color / title
      Removed value: -"Color"
    • removedOutput schema / $defs / CreativeNote / properties / duration_beats / title
      Removed value: -"Duration Beats"
    • removedOutput schema / $defs / CreativeNote / properties / muted / title
      Removed value: -"Muted"
    • removedOutput schema / $defs / CreativeNote / properties / pan / title
      Removed value: -"Pan"
    • removedOutput schema / $defs / CreativeNote / properties / pitch / title
      Removed value: -"Pitch"
    • removedOutput schema / $defs / CreativeNote / properties / pitch_offset_tenths / title
      Removed value: -"Pitch Offset Tenths"
    • removedOutput schema / $defs / CreativeNote / properties / portamento / title
      Removed value: -"Portamento"
    • removedOutput schema / $defs / CreativeNote / properties / release / title
      Removed value: -"Release"
    • removedOutput schema / $defs / CreativeNote / properties / selected / title
      Removed value: -"Selected"
    • removedOutput schema / $defs / CreativeNote / properties / slide / title
      Removed value: -"Slide"
    • removedOutput schema / $defs / CreativeNote / properties / start_beats / title
      Removed value: -"Start Beats"
    • removedOutput schema / $defs / CreativeNote / properties / velocity / title
      Removed value: -"Velocity"
    • removedOutput schema / $defs / CreativeNote / title
      Removed value: -"CreativeNote"
    • removedOutput schema / properties / duration_beats / title
      Removed value: -"Duration Beats"
    • removedOutput schema / properties / engine_version / title
      Removed value: -"Engine Version"
    • removedOutput schema / properties / generator / title
      Removed value: -"Generator"
    • removedOutput schema / properties / mutations_applied / title
      Removed value: -"Mutations Applied"
    • removedOutput schema / properties / name / title
      Removed value: -"Name"
    • removedOutput schema / properties / note_count / title
      Removed value: -"Note Count"
    • removedOutput schema / properties / note_digest_sha256 / title
      Removed value: -"Note Digest Sha256"
    • removedOutput schema / properties / notes / title
      Removed value: -"Notes"
    • removedOutput schema / properties / pitch_collection / title
      Removed value: -"Pitch Collection"
    • removedOutput schema / properties / schema_version / title
      Removed value: -"Schema Version"
    • removedOutput schema / properties / seed / title
      Removed value: -"Seed"
    • removedOutput schema / properties / tempo_bpm / title
      Removed value: -"Tempo Bpm"
    • removedOutput schema / properties / time_signature_denominator / title
      Removed value: -"Time Signature Denominator"
    • removedOutput schema / properties / time_signature_numerator / title
      Removed value: -"Time Signature Numerator"
    • removedOutput schema / properties / warnings / title
      Removed value: -"Warnings"
    • removedOutput schema / title
      Removed value: -"NoteSequence"
  2. Changed10 schema fields changedv11.0.1
    • removedInput schema / properties / beats_per_chord / title
      Removed value: -"Beats Per Chord"
    • removedInput schema / properties / collection / title
      Removed value: -"Collection"
    • removedInput schema / properties / custom_intervals / title
      Removed value: -"Custom Intervals"
    • removedInput schema / properties / octave / title
      Removed value: -"Octave"
    • removedInput schema / properties / progression / title
      Removed value: -"Progression"
    • removedInput schema / properties / root / title
      Removed value: -"Root"
    • removedInput schema / properties / seed / title
      Removed value: -"Seed"
    • removedInput schema / properties / style / title
      Removed value: -"Style"
    • removedInput schema / properties / tempo_bpm / title
      Removed value: -"Tempo Bpm"
    • removedInput schema / title
      Removed value: -"compose_basslineArguments"
  3. First observedv10.0.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and non-open-world. The description adds value beyond them: determinism for a given seed, that it runs 'without touching FL' (no project side effects), and that it returns a note sequence in beats rather than writing anything.

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

Conciseness5/5

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

Three short sentences, front-loaded with the purpose, followed by determinism and integration notes. Every sentence earns its place with no filler.

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, yet the description still summarizes the return ('note sequence in beats') and names consumers. Combined with the determinism and FL-safety notes, an agent has everything needed to call it correctly and use the result.

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 coverage is 100%, so the baseline is 3. The description adds semantic meaning beyond the schema by tying the progression parameter to compose_chord_progression's progression and key, clarifying that these must match for coherent output.

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?

States a specific verb and resource ('Generate a bass part'), names the input model ('Roman-numeral progression'), and distinguishes itself from compose_chord_progression, compose_melody, and compose_drums. An agent can tell what it produces without opening the schema.

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?

Explicitly routes the agent: reuse the same progression and key as compose_chord_progression so parts agree, and points to downstream consumers (piano_roll_write_notes or compose_export_midi). It gives clear context but no explicit when-not-to-use guidance.

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