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

# The listener page

> What the person on the other end sees, and the commands that route the stream to their speakers

# The listener page

The listener opens your link in a browser. The page installs nothing and needs no account. It decodes the stream in the browser and renders it to the listener's own outputs.

## Browser support

| Browser | Plays the stream | Chooses the output device |
| - | - | - |
| Chrome, Edge | yes | yes, with `device` |
| Safari, Firefox | yes | no; plays through the system output however it is configured |
| Phones and tablets | yes | no; renders binaural by default |

To use a multichannel interface that is not the system output, listen in Chrome or Edge. On load, Chrome and Edge ask once for microphone permission: the browser shows output names only after it is given. Nothing is recorded and the microphone closes at once. Declining is fine; the page never asks again, and outputs are then listed by number.

## Listening

The page types its header and then **Press enter to listen.**, with the commands most listeners need underneath. Pressing Enter (or tapping the prompt on a phone) starts listening. Pressing Enter again while listening prints where things stand.

The status line at the top of the page reads, for example:

`IAMF · 12 ch · 7.1.4 · direct · buffer 312 ms · clean`

That is the stream format, the number of channels rendered and the render layout, the routing, the depth of the listener's buffer, and **clean** or a count of interruptions. It adds **sender stopped** while the sender is sending no audio, **silence** while the audio arriving is silent, **network too slow** after the listener's network has stalled, and **no audio for N s** when nothing has arrived for more than 3 seconds. A stream of numbered channels shows its count and **numbered** (`8 ch · numbered`).

## Commands

Type a command at the prompt and press Enter. `help` lists all of them.

| Command | What it does |
| - | - |
| Enter | listen, or say where things stand |
| `stop` | stop listening |
| `layout X` | the render layout: `auto`, `binaural`, `2.0`, `5.1`, `7.1`, `7.1.4`, `9.1.6` |
| `device` | list the outputs this browser can use; `device 2` plays to the second (Chrome and Edge) |
| `device names` | show output names (asks for the microphone once; nothing is recorded) |
| `route` | show the routing matrix; click a cell to connect a stream channel to an output |
| `route 5-8>1-4` | route by typing; also `route direct`, `route fold 4`, `route quad` |
| `test` | a soft noise burst on each output in turn; `test 3` for one output, `test 3 4` for two |
| `buffer MS` | the jitter buffer floor, 300 to 2000 milliseconds (300 by default) |
| `link` | copy the link to this stream |
| `log` | show the engineering log, with buffer, packet and arrival statistics |

## Layout

`layout auto` (the default) plays a stream in its own layout when the output device has the outputs for it, starting on output 1: stereo on outputs 1 and 2, 5.1 on outputs 1 to 6, and so on. A stream wider than the device, or an ambisonic one, gets the richest render that fits:

| Output channels | Render |
| - | - |
| phone or tablet | binaural |
| 16 or more | 9.1.6 |
| 12 to 15 | 7.1.4 |
| 8 to 11 | 7.1 |
| 4 to 7 | 5.1 (folded onto the outputs when there are fewer than 6) |
| 1 to 3 | 2.0 |

A numbered stream plays as sent, channel for channel, and `layout` leaves it as it is; route its channels with `route`.

`layout binaural` renders for headphones from any stream, including ambisonics. A fixed layout (`layout 7.1.4`) holds whatever the device. The choice is kept in the browser for the next visit.

IAMF has no four-channel render, so a quad system receives 5.1 and the page folds its six channels onto four outputs. For a 7.1 stream on four speakers, `route quad` maps the 7.1 channels to a quad layout directly.

## Routing to the listener's outputs

The player is always as wide as the output device, and a routing matrix maps the stream's channels onto the outputs. Type `route` to see it: each row is a channel of the stream, labelled with its speaker, and each column is an output of the interface. Clicking a cell sends that channel to that output, at once.

| Typed form | Effect |
| - | - |
| `route direct` | channel 1 to output 1, channel 2 to output 2, and so on |
| `route fold 4` | fold every channel onto outputs 1 to 4 (`fold 2` for stereo) |
| `route quad` | 7.1 to quad (an 8-channel stream and at least 4 outputs) |
| `route 5-8>1-4` | channels 5 to 8 to outputs 1 to 4, one to one |
| `route 3>1,2` | channel 3 to outputs 1 and 2 |
| `route 4>` | mute channel 4 |

An output fed by more than one channel is turned down to match (by the square root of the number of channels feeding it) and held under full scale. The default routing is `direct`, or a fold when the stream has more channels than the device has outputs. The page remembers the routing for each output device and stream width.

## Finding the speakers

`test` plays a soft pink noise burst on each physical output in turn, ignoring the routing, so the listener can check which speaker each output number drives before routing the stream. `test 3` plays output 3 only. The **test outputs** button in the routing card does the same for every output.

## Messages

| The page says | Meaning |
| - | - |
| Connected. Waiting for the sender to start playing. | the link is live, and the sender has not started sending audio |
| The sender has stopped sending audio (playback stopped or paused). | the sender's DAW stopped or paused; the page waits for it |
| The sender is playing again. | audio has resumed after a stop |
| Receiving silence from the sender. | the stream is arriving and its audio is silent |
| Your network stalled N s: it is too slow for this stream. The sender can switch on Low Bandwidth (Opus), which needs far less. | the listener's connection could not keep up; the second sentence appears only for a lossless FLAC stream |
| The host disconnected. Waiting for it to return. | the plugin lost its connection; the page reconnects when it returns |
| This session has ended. | the host pressed STOP; ask for the new link |
| This link is not live: the session has ended or has not started. | an old link, or one from a session that has ended |
| This link is not valid or has expired. Ask the host for a new one. | the link cannot be used |
| This link is full. It already has N listeners. | the link has reached its listener limit |
| No direct connection to the host, and the host cannot relay right now. | the listener's network allows no direct path and the host's relay is unavailable |
| The host's free hour of relay is used up. If audio stops, ask the host to subscribe at nomn.jp. | the host's trial relay has ended; audio continues only over a direct connection |

Of these, only a stalled network counts as a dropout, on the page and in the sender's **LISTENER DROPOUTS**; a sender that stops, pauses or plays silence adds none.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.