CodeFizz
ToolsDemoDocsRoadmapChangelogPricingFAQ
Get the plugin

Getting Started

  • Introduction
  • Quick Start
  • Requirements
  • Installing the CLI
  • License & Machines

Guides

  • Installing the Plugin
  • The AI Skill
  • CLI vs MCP
  • Multiple Editors
  • How It Works
  • Discovering Commands

Walkthroughs

  • Build a Blueprint with AI
  • Author a Material Graph
  • Create a Niagara System
  • Rig a Character with AI
  • Build an Animation Blueprint
  • Build Sound with AI
  • Build a Modular Character

Reference

  • Reference
  • Audio
  • Mutable
  • Control Rig
  • Niagara
  • PCG
  • Materials
  • Behavior Trees
  • Environment Queries
  • StateTree
  • Sequencer
  • Level Actors
  • Project Settings
  • Blueprints
  • Blueprint Structs
  • Enhanced Input
  • Asset Management
  • Bulk Asset Ops
  • Data Assets
  • Object Properties
  • UMG Widgets
  • Data Tables
  • Curves
  • Animation
  • Console Commands
  • Profiling
  • Core
  • Debug

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
DocsWalkthroughsBuild Sound with AI

Build Sound with AI

A guided example: search the MetaSound node library, build a MetaSound source and a reusable patch, build a Sound Cue with wave files and random weighting, and check both will actually make sound.

Loading…
PreviousBuild an Animation BlueprintNextBuild a Modular Character
CodeFizz

A drop-in Unreal Engine 5 plugin that exposes the entire editor surface (Blueprints, Materials, Niagara, PCG, StateTree, Control Rig, Insights profiling, and more) over the Model Context Protocol. Connect Claude Code, Cursor, VS Code, or any MCP-compatible client and let your AI build inside the engine.

Product

  • Features
  • Docs
  • Tools
  • Demo
  • Roadmap
  • Changelog
  • Pricing
  • FAQ

Resources

  • Install guide
  • Discord
  • YouTube
  • Open-source edition
  • Manage subscription

Legal

  • Refund Policy
  • Privacy Policy
  • Terms of Service

© 2026 CodeFizz. All rights reserved.

CodeFizz Editor Agent is a CodeFizz product. Payments processed by Polar Software, Inc. (Polar), the Merchant of Record.

This walkthrough builds sound two ways: a MetaSound that generates a tone as it plays, and a Sound Cue that picks between wave files. Both work the same on Unreal Engine 5.6, 5.7 and 5.8. Every audio command is listed in the Audio reference.

Find the node before you name it

MetaSound node names are not guessable, so start by searching for the idea rather than the spelling. You can ask several things at once and the results come back ranked, then read the exact pins off whichever one you want.

1

Search by idea

Several keywords in one call. Matches author keywords too, and ignores spacing and case.

bash
cfa search_metasound_nodes --queries "sine,filter,delay,envelope" --max-results 5
2

Read the exact pins

Every input and output with its type and default. Batch several nodes in one call.

bash
cfa describe_metasound_node --node-classes "Sine,Ladder Filter,AD Envelope"

Build a MetaSound

A source is playable and takes an output format. Build the whole graph in one call: the nodes, the values on their pins, the connections, and the graph inputs you want to control it with. It comes back laid out.

3

Create the source

One-shot by default. Pass --one-shot=false for a sound that loops until something stops it.

bash
cfa create_metasound --name MS_Tone --path /Game/Audio --output-format Mono --one-shot=false
4

Build the graph

Nodes, pin values, connections and graph inputs in a single call, then laid out automatically.

bash
cfa build_metasound_graph --metasound-path /Game/Audio/MS_Tone \
  --graph-inputs '[{"name":"Frequency","data_type":"Float","default":"220.0"}]' \
  --nodes '[{"id":"osc","node_class":"UE.Sine.Audio"}]' \
  --connections '[{"from_node":"Frequency","from_output":"Frequency","to_node":"osc","to_input":"Frequency"},
                  {"from_node":"osc","from_output":"Audio","to_node":"UE.OutputFormat.Mono.Audio:0","to_input":"Audio:0"}]'
5

Check it will make sound

Reports an output nothing writes to, an input with nothing behind it, and an empty graph.

bash
cfa validate_metasound --metasound-path /Game/Audio/MS_Tone
Looping is not a checkbox
A MetaSound source loops when it does not carry the one-shot interface. That is why create_metasound takes --one-shot=false rather than a loop flag. You can change it later with set_metasound_interface.

Reuse a graph as one node

A patch is a MetaSound you drop into other MetaSounds as a single node. Build a voice, a filter chain or a sequencer once, then place it anywhere and give it different settings each time. Refer to it by its asset name.

6

Create a patch

Same build commands as a source, but it has no output format and is not playable on its own.

bash
cfa create_metasound --name MSP_Voice --path /Game/Audio/Library --type patch
7

Use it as a node

Name the patch where you would name any other node class.

bash
cfa build_metasound_graph --metasound-path /Game/Audio/MS_Song \
  --nodes '[{"id":"v1","node_class":"MSP_Voice","inputs":{"Gain":"0.5"}}]'

Build a Sound Cue

A Sound Cue picks and layers existing wave files. Build the tree, assign the waves, and set any value on any node in the same call. Use root as a parent to feed the cue output.

8

Create the cue

An empty Sound Cue asset.

bash
cfa create_sound_cue --name SC_Footstep --path /Game/Audio
9

Build the tree

Nodes with their waves and per-node values, then the parent and child links. Laid out when it finishes.

bash
cfa build_sound_cue_graph --sound-cue-path /Game/Audio/SC_Footstep \
  --nodes '[{"id":"rand","node_class":"Random","properties":{"Weights":[0.6,0.4]}},
            {"id":"w1","node_class":"WavePlayer","sound_wave":"/Game/Audio/SW_Step1"},
            {"id":"w2","node_class":"WavePlayer","sound_wave":"/Game/Audio/SW_Step2"}]' \
  --connections '[{"parent":"root","child":"rand"},
                  {"parent":"rand","child":"w1","child_index":0},
                  {"parent":"rand","child":"w2","child_index":1}]'
10

Change a value later

Any editable property on any node, including nested paths and array entries.

bash
cfa set_sound_cue_node_properties --sound-cue-path /Game/Audio/SC_Footstep --node-id SoundNodeRandom_0 \
  --properties '{"bRandomizeWithoutReplacement":true}'
11

Check the cue

Reports a missing root, unreachable nodes, empty child slots and wave players with no wave.

bash
cfa validate_sound_cue --sound-cue-path /Game/Audio/SC_Footstep
See what a node can take
cfa get_sound_cue_node lists every editable property on a node with its type and current value, so you never have to guess a property name.

Everything else audio

Attenuation, concurrency, sound classes, submixes, buses and effect presets are all created by class name, with their settings passed in the same call.

12

Create any audio asset

See cfa list_audio_asset_types for everything your project can make.

bash
cfa create_audio_asset --class-name SoundAttenuation --name ATT_Footstep --path /Game/Audio
13

Tidy any graph

Re-lays out a MetaSound or a Sound Cue, measured from the real editor, routing wires around nodes.

bash
cfa layout_metasound_graph --metasound-path /Game/Audio/MS_Song
Round trip a whole graph
MetaSounds and Sound Cues both work with export_graph, build_graph, diff_graph and apply_graph_patch using --domain metasound or --domain soundcue. Pull a graph out as one document, edit it, and apply just the difference back.