# Serato<no value>

{{< callout note >}}
Serato support is experimental. You will be required to download new djctl builds periodically to continue using this feature.
{{< /callout >}}

{{< callout note >}}
The Serato track detection supports up to 2 decks. Unfortunately, 4 deck support is not possible at this time.
{{< /callout >}}

## Install location

djctl must be installed on the same machine running Serato.

## Launch djctl

After unarchiving the djctl download, open a terminal window and switch to the directory containing the djctl binary. Use the `djctl start --source=serato` command to launch djctl and await a connection from the Serato software.

### Mac or Linux

To launch on a Mac or Linux, use the following command:

```sh
./djctl start --source=serato
```

### Windows

If you are on Windows, use the following command:

```sh
djctl.exe start --source=serato
```

### Output

If all goes well, output in the terminal window will resemble the following:

```sh
time="2025-01-15T09:47:19-08:00" level=warning msg="No license key, running in demo mode"
time="2025-01-15T09:47:19-08:00" level=warning msg="Visit https://www.djctl.com/buy/ to purchase a license"
time="2025-01-15T09:47:19-08:00" level=warning msg="Experimental Serato source will self-destruct on 2025-01-21. Please acquire the latest version from www.djctl.com"
time="2025-01-15T09:47:19-08:00" level=info msg="Starting http listener" httpAddr=":9090"
time="2025-01-15T09:47:19-08:00" level=info msg="track transition detected" artist="" song=""
time="2025-01-15T09:47:19-08:00" level=info msg="Starting Serato source"
time="2025-01-15T09:47:19-08:00" level=info msg="Serato listener awaiting connections" address="[::]:53470"
```

djctl is now awaiting a connection from Serato.

## Setup Serato

Launch the Serato DJ Pro application and click on the gear icon in the top right corner to enter the settings screen.

{{< img src="serato-settings-icon.png" class="img-fluid mb-3" >}}

Once in the settings screen, click on the "Expansion Packs" tab. Within the "Expansion Packs" section, select "External Control". djctl should appear in the "Available Devices" portion of the screen.

{{< img src="serato-expansion-packs.png" class="img-fluid mb-3" >}}

Select djctl and click the "Activate" button.

{{< img src="serato-activate.png" class="img-fluid mb-3" >}}

djctl should move from the "Available Devices" section to the "Active Devices" section.

{{< img src="serato-active-devices.png" class="img-fluid mb-3" >}}

Click the gear icon to return to the main Serato screen.

{{< img src="serato-return-to-main-screen.png" class="img-fluid mb-3" >}}

## Connect to the djctl web server

Connect to [http://127.0.0.1:9090/](http://127.0.0.1:9090/).

## Go DJ!

Start DJing! You'll see track transitions automatically update in the browser view. You should also see track transition messages log to the terminal.

```sh
time="2025-01-15T10:32:00-08:00" level=info msg="track transition detected" artist="DJ Tripp" song="Track title unavailable in demo mode"
time="2025-01-15T10:32:00-08:00" level=info msg="Wrote featured track to websocket"
time="2025-01-15T10:32:14-08:00" level=info msg="track transition detected" artist="Pitch Slider" song="Track title unavailable in demo mode"
time="2025-01-15T10:32:14-08:00" level=info msg="Wrote featured track to websocket"
time="2025-01-15T10:32:16-08:00" level=info msg="track transition detected" artist="" song=""
time="2025-01-15T10:32:16-08:00" level=info msg="Wrote featured track to websocket"
```

To exit, hit CTRL-C.

```sh
^Ctime="2025-01-15T16:32:07-08:00" level=info msg="Received signal interrupt, shutting down..." _source="start/start.go:65"
time="2025-01-15T16:32:07-08:00" level=info msg=Exiting... _source="start/start.go:72"
```