> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mosaic.so/llms.txt
> Use this file to discover all available pages before exploring further.

# 4. AI Music

> Generate custom AI-composed music that matches your video's mood, pacing, and style.

Generate custom AI-composed music that matches your video's mood, pacing, and style. Useful for creators who want original, copyright-safe background music without hunting through libraries.

## How It Works

The AI Music tile analyzes your video (if enabled) and generates a score that fits the visual context. You can leave it fully automatic or guide it with prompts and settings.

## Input and Settings

### Intelligent Video Analysis

When enabled, Mosaic inspects your video to determine mood, intensity, genre, BPM, and timing.

Use when:

* You want music that "just fits"
* You don't want to configure settings manually
* The video carries clear emotional or pacing cues

### Prompt (Optional)

Describe the mood/style you want.

Examples:

* *"Chill lofi background with soft drums"*
* *"Epic orchestral build-up for cinematic travel footage"*
* *"Corporate ambient for a product demo"*

Use when:

* You want creative direction
* You don't want full auto
* You want a specific genre or vibe

### Genre (Optional)

Choose the category of music (e.g., EDM, Acoustic, Ambient, Cinematic, Corporate)

Use cases:

* *Ambient* → tutorial voiceovers
* *Cinematic* → travel edits
* *Corporate* → product demos
* *EDM* → fast montage edits

**Tip:** Leave on **Auto** for best scene-matching.

### Mood (Optional)

Controls emotional tone (e.g., Calm, Energetic, Dramatic, Dark, Happy)

Use when:

* The scene's emotion is clear
* You want specific storytelling vibes

### Intensity (Optional)

Adjusts how "big" or "dense" the music feels.

Levels:

* **Low** → subtle background
* **Medium** → balanced presence
* **High** → impactful or dramatic

### BPM (Optional)

Sets musical tempo (Beats Per Minute).

Mapping:

* **60–80 BPM** → slow, emotional
* **90–120 BPM** → balanced
* **130–160+ BPM** → energetic

Use when your edit follows rhythmic cuts.

### Style (Optional)

Further refines the musical aesthetic (e.g., Cinematic, Ambient, Retro, Corporate)

Use cases:

* "Ambient" for explainer voiceovers
* "Cinematic" for travel or story edits
* "Corporate" for product demos

### Timing (Optional)

Allows partial coverage:

* **Start Time (s)**
* **End Time (s)**

Use when:

* Music should appear only in montage sections
* You want intro music only
* You want outro music only

***

## API Info

<AccordionGroup>
  <Accordion title="Node Params & API Details" icon="code">
    * **Node ID:** `3b281fb9-9eb2-40f6-b05b-4b6f909a3da9`

    ### Node params

    | Param                      | Type                                                                                                                                                  | Required    | Default | Notes                                                               |
    | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ------------------------------------------------------------------- |
    | `use_intelligent_analysis` | `boolean`                                                                                                                                             | No          | `true`  | If true, music profile is inferred from source video.               |
    | `prompt`                   | `string`                                                                                                                                              | Conditional | `""`    | Freeform direction. Strongly recommended when analysis is disabled. |
    | `genre`                    | `"Electronic" \| "Orchestral" \| "Ambient" \| "Rock" \| "Pop" \| "Jazz" \| "Classical" \| "Cinematic" \| "Synthwave" \| "Lo-Fi" \| "Trap" \| "House"` | No          | unset   | Optional style anchor.                                              |
    | `mood`                     | `"Energetic" \| "Calm" \| "Dramatic" \| "Mysterious" \| "Uplifting" \| "Melancholic" \| "Tense" \| "Peaceful" \| "Epic" \| "Contemplative"`           | No          | unset   | Emotional direction.                                                |
    | `intensity`                | `"Low" \| "Medium" \| "High" \| "Dynamic/Building"`                                                                                                   | No          | unset   | Density/energy target.                                              |
    | `style`                    | `string`                                                                                                                                              | No          | `""`    | Additional style text, often combined with prompt.                  |
    | `bpm`                      | `number`                                                                                                                                              | No          | unset   | Tempo. UI constrains 60-180; backend model accepts 0-200.           |
    | `start_timestamp`          | `number` (milliseconds)                                                                                                                               | No          | unset   | Music region start in ms.                                           |
    | `end_timestamp`            | `number` (milliseconds)                                                                                                                               | No          | unset   | Music region end in ms.                                             |

    ### Parameter groups

    * **Analysis mode:** `use_intelligent_analysis`
    * **Creative guidance:** `prompt`, `genre`, `mood`, `intensity`, `style`, `bpm`
    * **Timing window:** `start_timestamp`, `end_timestamp`

    ### Scenario requirements

    * If `use_intelligent_analysis=false`, send at least one of `prompt`, `genre`, `mood`, `intensity`, or `style` for deterministic behavior.
    * If both `start_timestamp` and `end_timestamp` are set, `end_timestamp` must be greater than `start_timestamp`.

    ### Runtime notes

    * UI displays timing in seconds, then converts to milliseconds in node params.

    ### Example

    ```json theme={null}
    {
      "use_intelligent_analysis": false,
      "prompt": "Warm cinematic score with soft piano and subtle percussion",
      "genre": "Cinematic",
      "mood": "Uplifting",
      "intensity": "Medium",
      "bpm": 95,
      "start_timestamp": 0,
      "end_timestamp": 45000
    }
    ```
  </Accordion>
</AccordionGroup>
