> For the complete documentation index, see [llms.txt](https://mango-5m.gitbook.io/mango5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mango-5m.gitbook.io/mango5m-docs/resources/mango-radio/features/the-carousel.md).

# The Carousel

The quick surface — tap to skip, hold to browse, never stop driving.

The carousel is the fast surface. It rides at the top of the screen, out of your sightline, and exists so that changing station never becomes a menu interaction.

<figure><img src="https://3694989814-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6edDnCRamvDxPx0AsLch%2Fuploads%2FtVpBRhhrRn25RmrDSExj%2Fmango_radio_carousel.webp?alt=media&amp;token=c676bee8-dd7f-4b77-9022-2c008ae91fc9" alt=""><figcaption></figcaption></figure>

## Tap

A short press skips one station immediately. The carousel appears for about a second and a half showing the new station's artwork enlarged in the centre, its name, and — for music stations — the artist and song title, then fades out.

`Config.TapCooldown` stops a mashed key from flying through several stations at once.

## Hold

Hold past `Config.HoldTime` and it opens properly:

* The station you are on sits enlarged in the exact centre, with its colour ring
* Four stations either side shrink and fade geometrically towards the edges
* A cursor appears, and moving it left or right skims through the list
* The scroll wheel steps one station at a time
* Releasing selects whatever is centred, with a bounce and a colour ripple

You keep full control of the car throughout. The resource disables camera-look and combat controls while the carousel is open — so the mouse skims stations rather than turning your view — but steering, throttle and brake are untouched.

## Edge scrolling

The skim is based on cursor position, which on a long station list means you can physically run out of screen. Push the cursor into the outer 12% and it keeps scrolling at up to six stations a second; move back inward and it picks up smoothly from where it got to.

Configurable via `Config.Mouse.EdgeScroll`, `EdgeSpeed` and `EdgeZone`.

## The now-playing flash

When the station you are already on moves to a new song, the carousel flashes up briefly to tell you what it is — no input required. `Config.TrackChangeDisplayTime` controls how long, and `0` disables it.

It deliberately does **not** fire when you change station yourself, since that would fight the animation already playing.

## What it shows

| Element        | Source                                               |
| -------------- | ---------------------------------------------------- |
| Artwork        | Real station logos, vector where available           |
| Station name   | `label` in `Config.Stations`                         |
| Artist / title | The bundled 1056-track database                      |
| Colour ring    | The two dominant colours of that station's logo      |
| Equalizer      | Only while a known track is playing                  |
| On-air dot     | Marks the playing station while you browse elsewhere |

## Behaviour

* Opens only inside a vehicle that has a radio (bicycles are excluded)
* Detects the correct station when you get in
* Follows changes made by other scripts within half a second
* Hides completely while the station browser is open
* Cursor and focus are always released on vehicle exit, death, pause or resource restart
