{% extends "basis.html" %}{% set seiten_module = ("dig",) %}{% block titel %}{{ d.titel or (t.blatt.ohne_titel if d.interpret else t.blatt.ohne_namen) }} – Timbre{% endblock %}{% block weich %} data-weich{% endblock %}{% block inhalt %} {% set b = t.blatt %}{% set m = d.merkmale %}{% set sig = m.signal or {} %}{% set abg = m.abgeleitet or {} %} {% macro punkt(art) %}{% set erkl = t.herkunft[art][1] %}{% endmacro %} {% macro dez(x, n) %}{% set s = ('%.' ~ n ~ 'f') | format(x) %}{{ s | dezimal(sprache) }}{% endmacro %} {# Die Sicherheit der gemessenen Tonart steht immer in einer eigenen Zeile (ohne Trennpunkt): neben „gemessen 4m“ passt sie in keiner Breite. #} {# Tonart-Codes kommen intern als 1A–12B und werden nur zur Anzeige nach Open Key (1m–12d) umgerechnet; data-tonart trägt den internen Code für titelblatt.js. #} {# Tag-Werte (BPM, Tonart) stehen ohne Herkunftspunkt mit „(Tags)“, gemessene Werte mit Punkt. Ungültige Werte gelten als fehlend. #} {% set cam = abg.camelot if abg.camelot | camelot_stil else none %} {% set gem = sig.camelot_gemessen if sig.camelot_gemessen | camelot_stil else none %} {% set sicher = sig.camelot_gemessen_sicherheit if sig.camelot_gemessen_sicherheit is number else none %} {# Energie nur als Stufe o · + · ++ · +++ (energie.py), nie die Feinstufe #}{% set e_stufe = abg.energiestufe | energie_stufe %} {% set sek = (d.dauer_s | int) if d.dauer_s is number and d.dauer_s >= 0 else none %} {% if demo and not demo_angemeldet %}{% include "demo_band.html" %}{% endif %}
{{ [none if namenlos else (d.interpret or b.ohne_interpret), d.album, d.jahr] | select | join(' · ') }}
{# Live-Demo: Namensnennung je Track – „Titel – Artist · Lizenz · Quelle“ (demo_credits.json) #} {% if demo_credit %}{% set c = demo_credit %}{{ t.demo.credit_zeile }} {{ c.titel }} – {{ c.artist }} · {{ c.lizenz }} · {{ t.demo.credits_quelle }}
{% endif %} {# Tag List (Paket 2): Knopf +/✓ und Taste T im Blattkopf; ohne Skript bleibt der Knopf verborgen #} {# „Passt als Nächstes“ (22.10.2026): der Knopf klappt den Abschnitt in der Tiefe auf und springt hin (Booth, mobil); ohne Skript verborgen #} {# Ort der Datei in Worten; titelblatt.js setzt Symbol und – wenn die Datei im Onlinespeicher liegt – den Abspielknopf davor. #} {% if (d.ort and status_speicher) or d.herkunft %}{{ b.keine_rohwerte }}
{% endfor %} {% if m %}{% for art in ('gemessen', 'abgeleitet', 'modell') %}{{ t.herkunft[art][0] }}: {{ t.herkunft[art][1] }}{% endfor %}
{% endif %}