Welkom in ZetList
ZetList helpt je om setlists te bouwen en te beheren voor optredens. Deze handleiding legt elke functie stap voor stap uit.
π΅ Tab: Optredens
Het startscherm toont alle aankomende optredens. Je kunt schakelen tussen een lijstweergave en een kalenderweergave via de knop rechtsboven.
Nieuw optreden aanmaken: Klik op + Nieuw optreden. Vul de volgende velden in:
- Datum (verplicht) β de speeldatum
- Eerder gebruikt β kies een eerder gebruikte locatie om locatie en stad automatisch in te vullen
- Locatie / zaal (verplicht) β naam van de zaal of het podium
- Stad (verplicht) β stad van het optreden
- Formatie (verplicht) β welke bezetting speelt dit optreden
- Naam / omschrijving (optioneel) β bijv. "Bruiloft Jansen" of "Openingsact"
- Notities (optioneel) β vrije tekst voor praktische info zoals "Soundcheck 17:00" of "Geen versterking beschikbaar"
- Template (optioneel) β pas een vaste blokopbouw toe
- Aantal blokken β hoeveel blokken de setlist krijgt (1β10)
- Doelduur per blok β optionele streeftijd per blok in minuten
Opties per optreden-kaart: elke kaart heeft drie knoppen β de primaire actie links en twee menu-knoppen rechts.
- β Bewerken (Optredens) of Bekijken (Historie) β de primaire actie, oranje uitgelicht
- β¬ Export βΎ β menu met export-opties:
- Standaard export β XLS van de setlist
- Template Bob β XLS in het Bob-sjabloon
- BUMA/Stemra β PDF voor muziekrechten
- β― β menu met overige acties:
- Deel link β genereer een QR-code en deelbare URL (zie Delen)
- Clone β dupliceer het optreden met een nieuwe datum (zie Clonen)
- Verwijder β verwijder het optreden (na bevestiging)
Als je notities hebt ingevuld, verschijnen deze zichtbaar op de kaart onder de locatie-info.
𧬠Optreden clonen
Handig als je regelmatig op dezelfde locatie speelt of een setlist wilt herbruiken. Kies Clone in het β―-menu van een kaart (zowel in Optredens als in Historie).
- Er opent een dialoog met alle velden van het bron-optreden ingevuld, behalve de datum
- De nieuwe datum is verplicht en mag niet gelijk zijn aan die van het origineel
- De naam kun je aanpassen (bijv. "Kerstborrel 2027" i.p.v. "Kerstborrel 2026")
- Locatie, stad, formatie, notities en alle blokken + nummers worden overgenomen
- De kloon start met een schone tour status (geen doorgestreepte nummers)
- Wijzigingen aan de kloon beΓ―nvloeden het origineel niet
πΈ Tab: Set List Bouwer
De bouwer bestaat uit drie panelen naast elkaar.
Linker paneel β Nummers:
- Formatie-filter β toont alleen nummers die beschikbaar zijn voor de gekozen formatie
- Zoekbalk β typ een naam om de lijst direct te filteren
- Favorieten-knop β toggle om alleen favoriete nummers te tonen (zie β Favorieten)
- β Ster-icoon per nummer β klik om een nummer als favoriet te markeren, wordt oranje bij actieve favoriet
- Nummer toevoegen β klik op een nummer om het toe te voegen aan het actieve blok, of sleep het naar een specifiek blok
- Per nummer zie je de naam, componist (indien bekend), duur en een M-badge als het een medley is
Middelste paneel β Setlist:
- Optreden-infobalk bovenaan toont de naam, datum, locatie en formatie van het huidige optreden
- βοΈ Potlood-knop β bewerk de gegevens van het optreden (datum, locatie, formatie, notities) zonder de builder te verlaten
- β Vergelijk-knop β ga naar de Vergelijken-tab met dit optreden als vertrekpunt (zie π Vergelijken)
- Afsluiten β sluit het huidige optreden en ga terug naar het Optredens-overzicht
- Autosave-status β toont "Opslaan..." of "Opgeslagen om HH:MM". De setlist wordt automatisch opgeslagen 1,2 seconden na elke wijziging
- Babbels β stel het aantal seconden praatjes per nummer in (standaard 30 sec.). Dit beΓ―nvloedt de totaaltijd
- Tijdsbalk β toont de totale Muziekduur, Babbeltijd en Totaalduur live bijgewerkt
Blokken beheren:
- Elk blok heeft een naam (klikbaar en bewerkbaar) en een optionele doelduur
- De huidige speelduur van het blok wordt automatisch berekend
- Klik op + Blok toevoegen onderaan om een nieuw blok toe te voegen β geef het een naam en optionele doelduur
- Klik op Γ naast een blok om het te verwijderen (na bevestiging als het nummers bevat)
- Het actieve blok (het blok waaraan je toevoegt) is gemarkeerd β klik op een blok om het actief te maken
Nummers in een blok:
- Klik op een nummer in de linkerlijst om het toe te voegen aan het actieve blok
- Sleep nummers binnen een blok om de volgorde te wijzigen
- Klik op een nummer in de setlist om de details te bekijken in het rechter paneel
- Klik op Γ naast een nummer om het uit het blok te verwijderen
- Elk nummer heeft een Toegift toggle β een schakelaar met het label "Toegift" vΓ³Γ³r de duur. Zet de schakelaar aan om het nummer als toegift te markeren, uit om de markering te verwijderen
β¦ Toegift
Markeer één of meerdere nummers als toegift via de Toegift toggle schakelaar in de setlist. Als de schakelaar aan staat kleurt het label oranje en krijgt het nummer een oranje rand en "TOEGIFT" badge. Op de gedeelde setlist-pagina verschijnen toegift-nummers apart onder een ⦠Toegift scheidingslijn, zodat de tourmanager ze direct herkent. Ze zijn net als andere nummers swipebaar om door te strepen.
Rechter paneel β Nummer detail:
- Klik op een nummer in de setlist om de details te zien
- Toont: titel, componist/artiest, duur, in welke formaties het beschikbaar is
- Technische info: click track, click pattern, auto cue, audience track, MIDI-code
- Bij medleys: de lijst van sub-nummers
- Bovenaan het detailpaneel zie je de notities van het huidige optreden (als die ingevuld zijn)
- Als een nummer meer dan één keer in de setlist voorkomt, verschijnt er een oranje waarschuwingsbalk bovenaan het detailpaneel met de namen van de dubbele nummers
β Favorieten
Favorieten helpen je om een vaste kern van nummers snel bij de hand te hebben.
- Klik op het β ster-icoon naast een nummer om het als favoriet te markeren β het icoon kleurt oranje (β
)
- Klik nogmaals om de favoriet ongedaan te maken
- Klik op de knop Favorieten bovenaan de nummerslijst om alleen favorieten te tonen β de knop kleurt oranje als het filter actief is
- Klik nogmaals op Favorieten om terug te gaan naar de volledige lijst
- Favorieten worden per gebruiker opgeslagen op de server β ze zijn beschikbaar op elk apparaat waarmee je inlogt
π Notities
Notities zijn praktische aantekeningen per optreden, zoals logistieke info of bijzonderheden.
- Voeg notities toe bij het aanmaken of bewerken van een optreden via het notities-veld
- Notities zijn zichtbaar op de optreden-kaart in het Optredens- en Historie-overzicht
- In de builder verschijnen notities als oranje balk bovenaan het detail-paneel (rechts)
- Notities aanpassen vanuit de builder: klik op het βοΈ potlood-icoon bovenaan
π Vergelijken
Met de Vergelijken-tab check je hoeveel overlap er zit tussen twee optredens β handig als je op dezelfde locatie of voor hetzelfde publiek meerdere keren speelt.
- Ga naar het tabblad Vergelijken
- Kies voor zowel Optreden A als Optreden B een optreden via de filters:
- Alle / Aankomend / Historie β filter op tijdsperiode
- Jaar-filter β filter op specifiek jaar
- Zoekbalk β zoek op naam, locatie, stad of datum
- Klik op Vergelijk om het resultaat te zien
- Het resultaat toont drie kolommen:
- Links β volledige setlist van optreden A
- Midden (oranje) β nummers die in beide optredens daadwerkelijk gespeeld zijn (geen geschrapte)
- Rechts β volledige setlist van optreden B
- Nummers die ook in de andere setlist zitten zijn oranje gemarkeerd met β in de buitenkolommen
- Nummers die tijdens een optreden via de tour manager geschrapt zijn, tellen niet mee als overlap β ze verschijnen doorgestreept met een rood β en tellen niet mee in het midden
Vergelijken vanuit de builder: Klik op β Vergelijk bovenaan de builder. Je gaat direct naar de Vergelijken-tab met het huidige optreden als A (vergrendeld). Kies alleen nog optreden B en klik Vergelijk. Gebruik β Terug naar builder om terug te gaan.
π Tab: Statistieken
Geeft een compleet overzicht van je speelgeschiedenis op basis van alle ingevulde setlists.
- KPI-kaarten bovenaan: totaal optredens, unieke nummers, totale speeltijd, gemiddeld aantal nummers per optreden, en het meest gespeelde nummer
- Top 5 per formatie β de vijf meest gespeelde nummers per formatie, in een overzichtelijk raster
- Optredens per formatie β hoeveel optredens per formatie zijn gespeeld
- Optredens per maand β staafdiagram van de afgelopen 12 maanden
- Meest gespeelde nummers (inklapbaar) β top 15 met speelfrequentie, visuele balk en laatste speeldatum
- Lang niet gespeeld (inklapbaar) β nummers die meer dan 90 dagen geleden voor het laatst gespeeld zijn
- Nooit gespeeld (inklapbaar, standaard ingeklapt) β alle nummers die nog nooit in een setlist hebben gezeten
Klik op de koptekst van een inklapbare sectie om die open of dicht te klappen.
π
Tab: Historie
Toont alle optredens die al hebben plaatsgevonden (datum in het verleden).
- Zoekbalk β zoek op naam, locatie of stad
- Per kaart dezelfde drie knoppen als bij Optredens: Bekijken (primair), β¬ Export βΎ en β― (Deel link, Clone, Verwijder)
- Bekijken β toont een leesoverzicht van de setlist per blok met duurtijden, zonder de builder te openen
π Tab: Templates
Templates zijn herbruikbare setopbouwen. Ze slaan de blokstructuur op (namen en doeldurations), maar geen nummers.
- Maak een template aan via + Nieuwe template: geef hem een naam, kies de formatie en stel het aantal blokken in met optionele doeldurations per blok
- Bij het aanmaken van een nieuw optreden kies je een template β de blokken worden dan automatisch aangemaakt
- Templates zijn per formatie β je ziet alleen relevante templates bij de juiste formatie
- Bewerken of verwijderen via de knoppen op de template-kaart
π€ Delen & Exporteren
- Deel link β klik op "Deel link" bij een optreden. Er opent een modal met een QR-code die je kunt scannen met een telefoon, en een URL die je kunt kopiΓ«ren. De ontvanger heeft geen account nodig om de setlist te bekijken.
- Setlist XLS β download de volledige setlist als Excel-bestand, inclusief blokindeling en duurtijden
- BUMA/Stemra PDF β download een PDF met alle gespeelde nummers, componisten en originele artiesten. Als er nummers doorgestreept zijn via de tourmanager-functie, vraagt de app of je die wilt weglaten uit de export.
π± Tour manager β gedeelde setlist
De ontvanger van een deellink ziet de setlist op zijn telefoon als een overzichtelijke pagina. Hierop kan de tourmanager tijdens het optreden nummers doorstrepen zonder dat de originele setlist in de app wordt gewijzigd. De status wordt opgeslagen op de server en is zichtbaar voor iedereen die dezelfde link heeft geopend.
Op de gedeelde pagina (mobiel):
- Swipe een nummer naar links om de knop "Doorstrepen" te onthullen
- Tik op Doorstrepen β het nummer wordt grijs weergegeven met een β en doorgehaalde tekst, maar blijft zichtbaar in de lijst
- Als een nummer al doorgestreept is, toont de knop Ongedaan maken β tik erop om de doorstreping te wissen
- Klik op ⺠Alles herstellen om alle doorstreepingen in één keer ongedaan te maken
- Andere apparaten met dezelfde link zien de wijzigingen automatisch binnen 5 seconden
Op de gedeelde pagina (pc/laptop):
- Beweeg de muis over een nummer β er verschijnt een β knop rechts in de rij
- Klik op β om het nummer door te strepen, nogmaals klikken maakt het ongedaan
- Klik op ⺠Alles herstellen om alle doorstreepingen in één keer ongedaan te maken
Tour status in de builder:
- Op de optreden-kaart verschijnt een oranje badge "π€ X doorgestreept tijdens optreden" zodra er nummers zijn doorgestreept
- In de Set List Bouwer (detail-paneel) verschijnt een "π€ Tour status" blok met de lijst van alle doorgestreepte nummers β maximaal 5 zichtbaar, daarna scrollbaar
- Klik op βΊ naast een individueel nummer om alleen dat nummer te herstellen
- Klik op Reset in de koptekst om de volledige tour status in één keer te wissen β dit is direct zichtbaar voor alle gebruikers van de deellink
- Zolang er doorgestreepte nummers zijn, is de setlist vergrendeld β een gele banner geeft dit aan. Nummers toevoegen, verwijderen of verplaatsen is geblokkeerd totdat de tour status gereset is
- De builder herlaadt de tour status automatisch elke 10 seconden
π§ Setlist Intelligentie
Tijdens het bouwen van een setlist helpt ZetList je met suggesties gebaseerd op je historische optredens in dezelfde formatie. Alle patronen worden automatisch berekend uit eerdere setlists β geen extra invoer nodig.
- Freshness-balk (bovenaan het detail-paneel): toont hoe vernieuwend deze setlist is t.o.v. je historie. Hoger percentage = meer nieuwe nummers. De balk toont ook met welk historisch optreden de meeste overlap is (datum + locatie), plus een π-badge als het dezelfde locatie/stad betreft.
- "Meestal na X": klik op een nummer in de setlist en er verschijnt direct een strip met de top-3 nummers die in je historie het vaakst na dit nummer volgden. EΓ©n klik = toevoegen aan het actieve blok.
- "Vaak samen": in het detail-paneel rechts staat onder elk nummer een lijstje met nummers waarmee dit nummer vaak in hetzelfde blok voorkomt. Klik = toevoegen.
- π¬ opener / π afsluiter badges in de linker songlijst: nummers die minimaal 3Γ als eerste of laatste van een blok gebruikt werden.
- Belangrijk: matching gaat op basis van de songnaam (exact). Als je een nummer hernoemt, breekt de koppeling met de historie voor dat nummer.
π Thema
Rechtsboven staat een π / βοΈ knop om te schakelen tussen donker en licht thema. Je voorkeur wordt onthouden in je browser.
Technische handleiding
Deze handleiding is bedoeld voor beheerders en gevorderde gebruikers.
βοΈ Beheer β Branding
Stel de organisatienaam en het logo in. Het logo (PNG/JPG, max 4 MB) wordt getoond op het inlogscherm en in gedeelde setlists. Opgeslagen als base64 in de database.
πΌ Beheer β Formaties
Pas de weergavenamen van de formaties aan (wb, bd, tape, carn, akoes). De sleutel (de korte code) is gekoppeld aan kolommen in de Google Sheet en blijft ongewijzigd β alleen de weergavenaam verandert overal in de app.
π€ Beheer β Gebruikers
Voeg gebruikers toe of verwijder ze. Wachtwoorden worden gehashed opgeslagen (bcrypt). De eerste aangemaakte gebruiker (laagste ID) is de admin en kan nooit verwijderd worden. Elke gebruiker heeft toegang tot alle functies β er zijn geen rollen. Favorieten worden per gebruiker opgeslagen op de server.
π Beheer β Google Sheet
ZetList haalt de nummerslijst op uit een Google Sheet. Configureer de URL en kolommen via Beheer β Google Sheet.
Google Sheet URL: plak hier de export-URL van je Google Sheet (moet eindigen op export?format=csv). De URL wordt opgeslagen in de database en gebruikt door de server. De hardcoded standaard-URL is de fallback als er geen URL is opgeslagen.
- Nummer, Details, Origineel, Componist, Label, Duur β informatiekolommen
- WB, BD, Tape, Carn, Akoes β beschikbaarheidskolommen per formatie
- Medley, Click, Click Pattern, Auto Cue, Audience Track, MIDI β technische kolommen
Filterwaarden: de waarden die in een formatie-kolom staan als het nummer beschikbaar is (bijv. "x", "ja", "1"). Meerdere waarden mogelijk, gescheiden door komma of Enter.
Gebruik Preview sheet om de mapping te controleren vΓ³Γ³r opslaan. Gebruik βΊ Nummers herladen om de lijst te verversen na wijzigingen in de Sheet.
πΎ Beheer β Backups
Onder Beheer β Backups vind je een overzicht van alle beschikbare backups met datum en grootte. Alleen de admin (laagste user-ID) heeft toegang.
- Bij elke wijziging maakt de server maximaal één backup per dag aan in
backups/data-YYYY-MM-DD.json, vΓ³Γ³rdat data.json overschreven wordt
- Backups ouder dan 30 dagen worden automatisch opgeruimd
- De
save()-functie schrijft atomair (via .tmp + rename): een crash midden in het schrijven laat data.json intact
- Klik op Restore naast een backup om die terug te zetten. De huidige
data.json wordt eerst als pre-restore-<timestamp>.json in de backups-map bewaard β een restore kan dus altijd ongedaan gemaakt worden
- Na een succesvolle restore herlaadt de pagina automatisch
πΎ Database
De data wordt opgeslagen in een lokaal JSON-bestand via de db.js module. Structuur:
- optredens β alle optredens inclusief blokken, nummers en
tourState (array van doorgestreepte nummerindices)
- templates β setlist-templates
- users β gebruikers (gehashte wachtwoorden)
- branding β organisatienaam en logo
- formaties β weergavenamen per formatie-sleutel
- shares β tokens voor gedeelde setlist-links
- settings β Google Sheet kolomconfiguratie
π Authenticatie
JWT-tokens met 7 dagen geldigheid. Token wordt opgeslagen in localStorage. Alle API-endpoints vereisen een geldig token via Authorization: Bearer <token>, behalve de publieke share-endpoints en tour state endpoints via het share-token.
π Deellinks
Een deellink genereert een uniek token (16 bytes hex) dat gekoppeld is aan een optreden-ID. De link is permanent geldig totdat het optreden verwijderd wordt. De ontvanger heeft geen account nodig. QR-codes worden server-side gegenereerd via de qrcode library.
π€ Tour status
Doorgestreepte nummers worden server-side opgeslagen als tourState: [0, 3, 5] op het optreden-object β een array van globale nummerindices (0-based, opgeteld over alle blokken). De gedeelde setlist-pagina pollt elke 5 seconden GET /api/share/:token/tour-state en schrijft wijzigingen via PUT. De builder pollt elke 10 seconden en toont een vergrendelingsbanner zodra tourState.length > 0. Zolang de vergrendeling actief is, blokkeert de frontend het toevoegen, verwijderen en verplaatsen van nummers (tourLocked variabele). Beheerders kunnen de tour status per nummer of volledig resetten vanuit de builder via PUT/DELETE /api/optredens/:id/tour-state; na reset wordt de vergrendeling opgeheven. Bij het exporteren van de BUMA/Stemra PDF kan de gebruiker kiezen of doorgestreepte nummers worden meegenomen; de server filtert ze via de query-parameter excludeIndices.
π‘ Auto-save
De builder slaat automatisch op 1,2 seconden na de laatste wijziging (debounced). Het volledige optreden-object (datum, formatie, alle blokken en nummers) wordt via een PUT /api/optredens/:id opgestuurd. Notities, babbels-instelling en formatie worden altijd meegestuurd om overschrijven te voorkomen. De tourState wordt nooit door de auto-save overschreven.
β Favorieten
Favorieten worden per gebruiker server-side opgeslagen als favorites array op het gebruikersobject in de database. Ze worden geladen bij het inloggen en opgeslagen via PUT /api/favorites na elke wijziging. Favorieten zijn beschikbaar op elk apparaat waarmee de gebruiker inlogt.
π₯οΈ API-overzicht
| Methode | Endpoint | Auth | Omschrijving |
| GET | /api/songs | β | Nummerslijst ophalen (+ ?refresh=true voor herladen) |
| GET/POST | /api/optredens | β | Alle optredens (incl. tour_count) / nieuw aanmaken |
| GET/PUT/DELETE | /api/optredens/:id | β | Enkel optreden ophalen / bijwerken / verwijderen |
| GET/PUT/DELETE | /api/optredens/:id/tour-state | β | Tour status ophalen / bijwerken / resetten |
| POST | /api/optredens/:id/share | β | Deeltoken aanmaken |
| GET | /api/optredens/:id/share-qr | β | QR-code + URL genereren |
| GET | /api/optredens/:id/pdf/buma | pdf-token | BUMA/Stemra PDF (+ ?excludeIndices=0,3,5) |
| GET | /api/share/:token | β | Publiek optreden ophalen via token |
| GET/PUT | /api/share/:token/tour-state | β | Tour status ophalen / bijwerken via deeltoken |
| GET/PUT | /api/formaties | β | Formatie-labels ophalen / opslaan |
| GET/POST | /api/branding | β | Branding ophalen / opslaan |
| GET/POST | /api/templates | β | Templates ophalen / aanmaken |
| GET/PUT/DELETE | /api/templates/:id | β | Template beheren |
| GET | /api/stats | β | Statistieken berekenen |
| GET/POST/DELETE | /api/users | β | Gebruikersbeheer (admin kan niet verwijderd worden) |
| GET/PUT | /api/favorites | β | Favorieten ophalen / opslaan (per gebruiker) |
| GET/POST | /api/settings | β | Sheet-instellingen ophalen / opslaan (kolommen, filterwaarden, sheetUrl) |
| GET | /api/backups | admin | Lijst van beschikbare backups |
| POST | /api/backups/restore | admin | Backup terugzetten (met veiligstelling van huidige data) |