> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Kompositionsplaner

Kompositionsplaner ger detaljerad kontroll över musikgenerering. En `music_v2`- eller `music_v2_5`-plan är en ordnad lista med delar, där varje del definierar en sektion av låten med egna stilar, låttexter och varaktighet. Använd textprompter för snabb prototypframtagning och kompositionsplaner när du behöver en specifik delstruktur, exakt timing för låttexter eller komplexa arrangemang.

> **Warning**
>
> Kompositionsplaner och textprompter utesluter varandra. Använd antingen den ena eller den andra, inte båda.

```json
{
  "chunks": [
    {
      "text": "[Verse 1]\nWoke up today with a feeling inside\nSomething is changing I cannot hide\nThe sun on my face and the wind at my back\nI'm finally ready to get on track",
      "duration_ms": 16000,
      "positive_styles": [
        "upbeat pop",
        "female vocalist with clear tone",
        "acoustic guitar and light synths",
        "gentle and conversational vocals",
        "light drums in background",
        "polished production",
        "120 BPM",
        "C major"
      ],
      "negative_styles": ["dark", "aggressive", "slow tempo", "a cappella"],
      "context_adherence": "high"
    },
    {
      "text": "[Verse 2]\nUsed to be scared of the world outside\nBuilding up walls where I used to hide\nBut now I see clearly what I need to do\nTake that first step into something new",
      "duration_ms": 16000,
      "positive_styles": [
        "confident vocals",
        "fuller guitar strumming",
        "steady drum beat",
        "bass joins in"
      ],
      "negative_styles": ["a cappella", "sparse", "quiet"],
      "context_adherence": "high"
    },
    {
      "text": "[Pre-Chorus]\nNo more waiting for tomorrow\nThis is my time now",
      "duration_ms": 8000,
      "positive_styles": [
        "building intensity",
        "rising synth melody",
        "driving drums",
        "full band playing"
      ],
      "negative_styles": ["a cappella", "dropping out"],
      "context_adherence": "high"
    },
    {
      "text": "[Chorus]\nI'm breaking through\nNothing's gonna stop me now\nI'm breaking through\nFinally found out how",
      "duration_ms": 16000,
      "positive_styles": [
        "powerful and anthemic vocals",
        "full band at maximum energy",
        "punchy drums and bass",
        "layered synths and guitar"
      ],
      "negative_styles": ["a cappella", "minimal", "stripped back"],
      "context_adherence": "high"
    },
    {
      "text": "[Outro]",
      "duration_ms": 8000,
      "positive_styles": [
        "instrumental fade out",
        "guitar melody repeating",
        "drums softening",
        "gentle ending"
      ],
      "negative_styles": ["vocals", "abrupt ending", "building"],
      "context_adherence": "high"
    }
  ]
}
```

<elevenlabs-audio-player audio-title="Poplåt" audio-src="https://storage.googleapis.com/eleven-public-cdn/documentation_assets/audio/example-pop-song.mp3" />

> **Note**
>
> Delbaserade kompositionsplaner kräver `music_v2` eller `music_v2_5`. Skicka `model_id="music_v2_5"`
> när du komponerar.

## Snabbstart

Följ [snabbstarten för musik](/docs/sv/eleven-api/guides/cookbooks/music) för att konfigurera din API-nyckel och installera SDK:t, och använd sedan kompositionsplaner för mer kontroll.

### Generera musik med en kompositionsplan

```python
import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs

load_dotenv()
elevenlabs = ElevenLabs(api_key=os.environ.get("ELEVENLABS_API_KEY"))

composition_plan = {
    "chunks": [
        {
            "text": "[Verse]\nWalking down an empty street\nWondering who I'll meet",
            "duration_ms": 15000,
            "positive_styles": ["pop", "upbeat", "female vocals", "soft vocals", "acoustic guitar"],
            "negative_styles": ["dark", "slow"],
            "context_adherence": "high"
        },
        {
            "text": "[Chorus]\nThis is my moment\nI won't let it go",
            "duration_ms": 15000,
            "positive_styles": ["powerful vocals", "full band"],
            "negative_styles": [],
            "context_adherence": "high"
        }
    ]
}

audio = elevenlabs.music.compose(
    composition_plan=composition_plan,
    model_id="music_v2_5",
    # with_timestamps=True,  # Optional: return word-level timestamps
)

with open("output.mp3", "wb") as f:
    for chunk in audio:
        f.write(chunk)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY,
});

const compositionPlan = {
  chunks: [
    {
      text: "[Verse]\nWalking down an empty street\nWondering who I'll meet",
      durationMs: 15000,
      positiveStyles: ["pop", "upbeat", "female vocals", "soft vocals", "acoustic guitar"],
      negativeStyles: ["dark", "slow"],
      contextAdherence: "high",
    },
    {
      text: "[Chorus]\nThis is my moment\nI won't let it go",
      durationMs: 15000,
      positiveStyles: ["powerful vocals", "full band"],
      negativeStyles: [],
      contextAdherence: "high",
    },
  ],
};

const audio = await elevenlabs.music.compose({
  compositionPlan,
  modelId: "music_v2_5",
  // withTimestamps: true,  // Optional: return word-level timestamps
});
```

### Generera en plan från en prompt

Generera en kompositionsplan från en textbeskrivning och ändra den sedan före generering:

```python
plan = elevenlabs.music.composition_plan.create(
    prompt="An upbeat pop song about summer adventures",
    music_length_ms=60000,
    model_id="music_v2_5"
)

# Modify the generated plan
plan["chunks"][0]["text"] = "[Verse 1]\nCustom lyrics here"

audio = elevenlabs.music.compose(composition_plan=plan, model_id="music_v2_5")
```

```typescript
const plan = await elevenlabs.music.compositionPlan.create({
  prompt: "An upbeat pop song about summer adventures",
  musicLengthMs: 60000,
  modelId: "music_v2_5",
});

// Modify the generated plan
plan.chunks[0].text = "[Verse 1]\nCustom lyrics here";

const audio = await elevenlabs.music.compose({ compositionPlan: plan, modelId: "music_v2_5" });
```

## Strukturreferens

### Delar

En kompositionsplan är en ordnad lista med upp till 30 delar. Varje del genererar en sektion av låten från sin `text` och sina stilar. Den första delen är viktigast: dess stilar sätter den övergripande tonen och genren för hela låten.

| Fält                | Typ    | Beskrivning                                                                                                                  |
| ------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- |
| `text`              | string | Sektionsnamn inom hakparenteser (`[Verse 1]`), textrader och infogade instruktioner inom klammerparenteser (`{scratching}`). |
| `duration_ms`       | number | Längd i millisekunder (3 000–120 000).                                                                                       |
| `positive_styles`   | array  | Stilar och instruktioner att inkludera (max 50).                                                                             |
| `negative_styles`   | array  | Stilar och instruktioner att undvika (max 50). Standardvärdet är tomt.                                                       |
| `context_adherence` | string | `low`, `medium` eller `high` (standard). Hur nära delen följer omgivande delar.                                              |

En låt kan ha upp till 30 delar. Den totala längden måste vara mellan 3 sekunder och 10 minuter, där varje del är mellan 3 och 120 sekunder.

> **Tip**
>
> Stilarna för den första delen är viktigast eftersom de sätter den övergripande tonen och genren. Sikta
> på minst 6–7 stilar i de tidiga delarna tills riktningen har etablerats. Generiska stilar som
> "great production quality" är bra standardvärden att lägga till i listan.

Delar kan också referera till ljud från en sparad låt för att behålla befintliga sektioner oförändrade eller basera nytt ljud på dem. Se [musik-inpainting](/docs/sv/eleven-api/guides/how-to/music/inpainting) för att redigera och kombinera befintliga låtar.

## Skriva låttexter

Fältet `text` kombinerar sektionsnamn, låttext och infogade instruktioner:

* **Sektionsnamn** inom hakparenteser: `[Verse 1]`, `[Chorus]`, `[Bridge]`
* **Låttext** som vanlig text, där varje rad separeras med en radbrytning (`\n`)
* **Fonetiska ljud** inom parenteser: `(hmmm hmmm)`, `(ooh)`, `(yeah)`
* **Infogade instruktioner** inom klammerparenteser: `{guitar solo}`, `{scratching}`, `{instrumental break}`

Använd klammerparenteser för korta, infogade anvisningar. För bredare egenskaper som gäller för hela delen — genre, instrumentering eller övergripande sångstil — använder du `positive_styles` i stället.

**`Felaktigt`**

```json title="Felaktigt"
{
  "text": "[Verse]\n(soft female vocals) I've been waiting\n(instrumental break)\nfor you"
}
```

**`Korrekt`**

```json title="Korrekt"
{
  "text": "[Verse]\nI've been waiting\n{instrumental break}\nfor you",
  "positive_styles": ["soft female vocals"]
}
```

I det korrigerade exemplet flyttas den övergripande sångstilen till `positive_styles`, medan den korta infogade anvisningen stannar i `text` med klammerparenteser i stället för parenteser.

## Stiltips

Var specifik med stilbeskrivningar:

```json
{
  "positive_styles": [
    "warm acoustic guitar with light fingerpicking",
    "soft female vocals with intimate delivery",
    "gentle percussion with brushed snare",
    "80 BPM"
  ]
}
```

Använd negativa stilar frikostigt för att förhindra oönskade ljud. Stilar måste vara på engelska (låttexter kan vara på valfritt språk).

Om du inkluderar upphovsrättsskyddat innehåll i stilar returnerar API:t felet `bad_composition_plan` med ett föreslaget alternativ. Se [hantering av upphovsrättsskyddat material](/docs/sv/eleven-api/guides/cookbooks/music#copyrighted-material).

## Exempel

### Cinematiskt instrumentalt

```json
{
  "chunks": [
    {
      "text": "[Tension Build]",
      "duration_ms": 15000,
      "positive_styles": [
        "cinematic",
        "orchestral",
        "epic",
        "low strings tremolo",
        "building intensity",
        "80 BPM",
        "D minor"
      ],
      "negative_styles": ["vocals", "lyrics", "pop", "electronic", "bright"],
      "context_adherence": "high"
    },
    {
      "text": "[Climax]",
      "duration_ms": 15000,
      "positive_styles": ["full orchestra", "brass fanfare", "triumphant"],
      "negative_styles": ["quiet", "vocals"],
      "context_adherence": "high"
    },
    {
      "text": "[Resolution]",
      "duration_ms": 10000,
      "positive_styles": ["gentle strings", "piano melody", "fading out"],
      "negative_styles": ["intense", "vocals"],
      "context_adherence": "high"
    }
  ]
}
```

<elevenlabs-audio-player audio-title="Cinematiskt instrumentalt" audio-src="https://storage.googleapis.com/eleven-public-cdn/documentation_assets/audio/example-cinematic-instrumental.mp3" />

### Annons med voice-over

```json
{
  "chunks": [
    {
      "text": "[Intro]",
      "duration_ms": 5000,
      "positive_styles": [
        "upbeat",
        "modern pop",
        "energetic",
        "120 BPM",
        "instrumental",
        "catchy hook"
      ],
      "negative_styles": ["sad", "slow", "dark", "vocals"],
      "context_adherence": "high"
    },
    {
      "text": "[Voiceover]\nIntroducing the future of productivity\nWork smarter, not harder",
      "duration_ms": 10000,
      "positive_styles": ["spoken voiceover", "confident male voice", "background music"],
      "negative_styles": ["singing"],
      "context_adherence": "high"
    },
    {
      "text": "[Outro]",
      "duration_ms": 5000,
      "positive_styles": ["musical sting", "memorable"],
      "negative_styles": ["vocals"],
      "context_adherence": "high"
    }
  ]
}
```

<elevenlabs-audio-player audio-title="Annons" audio-src="https://storage.googleapis.com/eleven-public-cdn/documentation_assets/audio/example-advertisement.mp3" />

## Nästa steg

#### [Snabbstart för musik](/docs/sv/eleven-api/guides/cookbooks/music)

Kom igång med grundläggande musikgenerering

#### [Musik-inpainting](/docs/sv/eleven-api/guides/how-to/music/inpainting)

Remixa, förläng och sätt ihop sektioner från befintliga låtar

#### [API-referens](/docs/sv/api-reference/music/compose)

Fullständig API-dokumentation

#### [Promptguide](/docs/sv/overview/capabilities/music/best-practices)

Bästa praxis för musikprompter