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

# Music

> Play music in your voice channels from Spotify, Deezer, SoundCloud, and Apple Music.

## Getting started

Join a voice channel, then give confine something to play — a search term or a link.

<CodeGroup>
  ```javascript Syntax theme={null}
  ,play (song or url)
  ```

  ```javascript Example theme={null}
  ,play drake headlines
  ,play https://open.spotify.com/track/...
  ```
</CodeGroup>

Confine joins your channel and starts playing. If something's already playing, the track goes to the back of the queue instead.

<Info>
  You need to be in a voice channel for any command on this page. `,p` is shorthand for `,play`.
</Info>

## Supported sources

<CardGroup cols={2}>
  <Card title="Spotify" icon="spotify" />

  <Card title="Deezer" icon="music" />

  <Card title="SoundCloud" icon="soundcloud" />

  <Card title="Apple Music" icon="apple">
    Track album links.
  </Card>
</CardGroup>

<Tip>
  Search without a link and confine looks it up for you — no need to hunt down a URL first.
</Tip>

## Playback

| Command       | What it does                                |
| ------------- | ------------------------------------------- |
| `,pause`      | Pause the current track                     |
| `,resume`     | Pick it back up                             |
| `,skip`       | Jump to the next track                      |
| `,disconnect` | Leave the voice channel and clear the queue |

### Jumping around a track

<CodeGroup>
  ```javascript Syntax theme={null}
  ,seek (position)
  ```

  ```javascript Example theme={null}
  ,seek 1:30
  ```
</CodeGroup>

Rewind by an amount rather than seeking to a spot:

<CodeGroup>
  ```javascript Syntax theme={null}
  ,rewind (time)
  ```

  ```javascript Example theme={null}
  ,rewind 1:30
  ,rewind 90
  ```
</CodeGroup>

Both accept `m:ss` or a plain number of seconds.

### Volume

<CodeGroup>
  ```javascript Syntax theme={null}
  ,volume (number)
  ```

  ```javascript Example theme={null}
  ,volume 80
  ```
</CodeGroup>

<Info>
  Between **1** and **100**.
</Info>

## The queue

`,queue` shows what's lined up.

### Adding to the front

Skip the line with a track you want next:

<CodeGroup>
  ```javascript Syntax theme={null}
  ,bump (song or url)
  ```

  ```javascript Example theme={null}
  ,bump drake headlines
  ```
</CodeGroup>

### Reordering and removing

<CodeGroup>
  ```javascript Syntax theme={null}
  ,queue move (position) (new position)
  ```

  ```javascript Example theme={null}
  ,queue move 2 1
  ```
</CodeGroup>

| Command                    | What it does                                       |
| -------------------------- | -------------------------------------------------- |
| `,queue remove (position)` | Drop one track from the queue                      |
| `,queue shuffle`           | Randomize the order                                |
| `,queue clear`             | Empty the queue, leaving the current track playing |

`,shuffle` on its own works the same as `,queue shuffle`.

## Looping

<CodeGroup>
  ```javascript Syntax theme={null}
  ,loop (track or queue or off)
  ```

  ```javascript Example theme={null}
  ,loop track
  ```
</CodeGroup>

## Looping

<CodeGroup>
  ```javascript Syntax theme={null}
  ,loop (track or queue or off)
  ```

  ```javascript Example theme={null}
  ,loop track
  ```
</CodeGroup>

| Mode    | Behavior                               |
| ------- | -------------------------------------- |
| `track` | Repeat the current song forever        |
| `queue` | Loop the whole queue back to the start |
| `off`   | Play through once and stop             |

## What's playing

```javascript theme={null}
,current
```

Shows the current track with its progress through the song.
