Skip to main content
Glama

mcp_opendaw_create_riff

Create a genre-specific riff for rock, funk, metal, blues, or hip hop. Configure key, scale, bars, and velocity.

Instructions

Create a genre-specific riff — catchy repeated melodic fragment.

A riff is a short, memorable, repeated musical phrase that defines a song's identity. Unlike a melody (which develops through a section) or an ostinato (which repeats a scale pattern), a riff is a self-contained hook with rhythmic character and pitch content that immediately identifies the song.

  • rock: Power chord-based riffs, palm-mute aesthetic, bluesy bends, syncopated rests. Deep Purple, Led Zeppelin, Black Sabbath.

  • funk: Sixteenth-note syncopation, ghost notes, staccato stabs, octave jumps, tight pocket. James Brown, Funkadelic, Tower of Power.

  • metal: Galloping rhythms, palm-muted low strings, tritone intervals, fast alternate picking. Iron Maiden, Metallica, Slayer.

  • blues: Shuffle feel, pentatonic bending, call-response phrases, turnaround aesthetic. B.B. King, Freddie King, Albert King.

  • hip_hop: Sample-chop aesthetic, short repeating loop, melodic minor pentatonic, sparse placement. Dr. Dre, RZA, J Dilla.

riff_type: rock | funk | metal | blues | hip_hop key_root: Root note scale_type: minor_pentatonic | major_pentatonic | blues | minor | phrygian bars: Riff length (1-4, default 2) octave: MIDI octave (3 = C3=48, good for guitar range) velocity: Base velocity 0-1 seed: PRNG seed for reproducibility

Example: create_riff(riff_type="rock", key_root="E", bars=2) create_riff(riff_type="funk", key_root="D", scale_type="minor_pentatonic", bars=1) create_riff(riff_type="metal", key_root="E", scale_type="phrygian", bars=2)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
barsNo
seedNo
octaveNo
key_rootNoE
velocityNo
riff_typeNorock
scale_typeNominor_pentatonic
start_beatNo
unit_indexNo
track_indexNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not specify side effects like whether existing notes are overwritten or appended, nor does it clarify the role of parameters like track_index and unit_index in placement. The musical behavior is well-described, but operational transparency is lacking.

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?

The description is well-structured: a one-line summary, definition, genre details, parameter list, and examples. It front-loads the purpose. However, the genre sections are somewhat verbose (e.g., artist lists), and some sentences could be condensed. Overall, it efficiently imparts necessary information.

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

Completeness3/5

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

With an output schema present, the description need not explain return values. It thoroughly covers musical intent and genre-specific behaviors, but it omits operational details like where the riff is placed (track, unit, beat) and fails to describe all parameters. For a 10-parameter tool, this leaves noticeable gaps.

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?

The schema has 0% parameter descriptions, so the description must compensate. It explains 7 of 10 parameters (riff_type, key_root, scale_type, bars, octave, velocity, seed) with meaningful context (e.g., octave range for guitar). However, start_beat, unit_index, and track_index are not mentioned, leaving critical placement parameters undocumented.

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 clearly states 'Create a genre-specific riff — catchy repeated melodic fragment.' It then defines a riff in contrast to melody and ostinato, distinguishing it from sibling tools like create_melody or create_ostinato. This precise differentiation and strong verb-resource pairing earn a top score.

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 description provides genre-specific guidance and examples (e.g., rock, funk, metal) and contrasts riff with melody/ostinato, which helps the agent decide when this tool is appropriate. However, it lacks explicit 'when to use' or 'when not to use' directives, such as prerequisites or alternatives, so it does not fully reach a 5.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AMEOBIUS-team/opendaw-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server