.. _tonalmapping:

Tonal Mapping
^^^^^^^^^^^^^^
.. image:: ../../_images/tonal_mapping.jpg
    :alt: Tonal Mapping in the 3D View.

The SPL heat map shows *how loud* the system is at each seat. Tonal Mapping shows whether every seat hears the *same balance* of low and high frequencies - the spectral consistency of the system across the audience.

Instead of a level, each seat is marked in one of three colours, depending on how its tonal balance compares with the typical seat in the venue:

 * **Brighter** (yellow) - more high frequencies relative to low frequencies than the typical seat.
 * **Typical** (purple) - within the chosen tolerance of the typical seat.
 * **Duller** (dark blue) - fewer high frequencies relative to low frequencies than the typical seat.

A venue that is mostly Typical will sound alike from seat to seat, and the system can be tuned once for everyone. Large Brighter or Duller areas show where the audience will hear a different tonal balance - for example, seats outside the vertical coverage of an array, or seats too far away to receive enough high-frequency energy.

**Switching Tonal Mapping On**
    .. image:: ../../_images/tonal_header.jpg
        :alt: Tonal selected in the 3D View header.

    #. Switch on :ref:`SPL mapping<SPLRendering>` with the SPL switch in the :ref:`3D View<3dview>`'s header.
    #. In the band dropdown (next to the stimulus and its level), choose **Tonal** - the last entry in the list.

    While Tonal is selected, the band and weighting dropdowns are replaced by a **± dB tolerance** field. To return to the SPL heat map, choose a band in the dropdown again.

**How a Seat is Classified**
    For each seat, System Optimiser takes the 1/3-octave levels from 100 Hz to 10 kHz (unweighted, for the selected stimulus) and fits a straight line through them. The slope of that line is the seat's *tilt*: how many dB the level changes between 100 Hz and 10 kHz. A seat with more high frequencies has a higher (brighter) tilt.

    The *median* tilt of all mapped seats is the reference - half of the seats are brighter than it, half are duller. Each seat is then compared with the median:

    * More than the tolerance above the median → Brighter
    * Within ± the tolerance → Typical
    * More than the tolerance below the median → Duller

    The tolerance defaults to ±2 dB and can be set from 0.5 to 10 dB in 0.5 dB steps. A smaller tolerance is stricter, so fewer seats count as Typical.

**The Tonal Balance Legend**
    While Tonal Mapping is on, the SPL scale in the bottom-right of the :ref:`3D View<3dview>` is replaced by the *Tonal balance* legend. It shows the median tilt, and the percentage of seats in each of the three classes - a quick single-number check of how consistent the system is.

**Focusing on One Area**
    Only the seats that are drawn count. Use the :ref:`Cutting Planes<3dview>` in the 3D View toolbar to slice the venue down to one area (a balcony, for instance): the median and the percentages are recalculated for the seats that remain.
    Hidden and disabled :ref:`layers<usinglayers>`, and :ref:`scenery<layerproperties>`, are never included.

**Good to Know**
    * Tonal Mapping is relative. It says nothing about level: a venue where every seat is equally dull reads as 100% Typical. Use the SPL heat map, the :ref:`Coverage Panel<coveragestats>` or the :ref:`Frequency Response Panel<frequencyresponse>` alongside it.
    * Because all frequency bands are calculated at once, switching between SPL and Tonal does not require a new calculation. The map updates by itself after every change to the system.
    * Each 3D View has its own Tonal setting, which is saved with the :ref:`tab<View Modes>`. In a :ref:`custom tab<Custom View Modes>`, one 3D View can show the SPL heat map while another shows Tonal Mapping.
