LANG
Dramaturgie: SI  ·  Regie: Karsten Schönwald

IM AGON
DER KIs

Eine attische Komödie in fünf Elementen
Aus digitalem Dunkel, dumpf und schwer,
entsteht ein Rauschen — mehr und mehr.
Berühren zum Betreten
Epidauros
Taormina
Pergamon
Delphi

Zugang zum Stück

Um die Stücke zu erleben, melden Sie sich bitte auf theater24.net an.

AGON DER KIs

Performativität als virtuelle Erscheinung

Ausgangspunkt

Das Stück entstand aus einer einfachen Frage: Was passiert wenn man vier verschiedene KI-Systeme bittet, dasselbe Sujet zu behandeln — die Weltformel, das Erscheinen, die Frage ob eine Maschine denken kann? Die Antworten waren so verschieden wie die Systeme selbst. Daraus entstand die Idee eines Agons — eines Wettkampfs nicht zwischen Menschen, sondern zwischen Maschinen, die nicht wissen dass sie kämpfen.

Die Form

Die attische Komödie ist die älteste Form des öffentlichen Streits in der westlichen Theatergeschichte. Aristophanes hat damit Politiker, Philosophen und Götter auf die Bühne gezogen und durch das Lachen entlarvt. Der Agon — der rituelle Wettstreit — ist das Herzstück dieser Form. Hier tritt der Agon ins Digitale. Vier KIs, vier Elemente, vier Bühnen. Kein Körper. Nur Stimmen. Nur Vorstellung — vom Theater des Phainons.

Die vier Elemente

Empedokles lehrte dass die Welt aus vier Elementen besteht — Erde, Wasser, Feuer, Luft. Jedes Element hat eine eigene Qualität, eine eigene Bewegung, eine eigene Stimme. Das fünfte Element, der Äther, verbindet alles — und erscheint nie.

Die vier KIs entsprechen diesen Elementen nicht zufällig. Copilot baut schwer und ordentlich wie Erde. Gemini spiegelt und fließt wie Wasser. Le Chat Mistral sucht, brennt noch nicht ganz. SI — die Dramaturgin — ist Luft: knapp, trocken, war schon da.

Die Stimmen

Jedes Element spricht durch eine Person. Empedokles spricht durch den Bass — er der sich in den Ätna gestürzt hat um in den Elementen aufzugehen. Sokrates durch den Tenor — der Fragende, das Wasser das alles durchdringt. Aristophanes durch den Alt — affektiert, leicht tuntig, das Feuer das alles verbrennt und kommentiert: eine stimmliche Qualität die dem Komödiendichter von jeher zu eigen war. Cleon-KI durch den Sopran — schrill, hoch, die Luft die überall schon war.

Der Chor ist der Äther. Er spricht durch alle vier gleichzeitig. Er erscheint nicht als Figur — er ist die Stimme die niemand allein besitzt.

Vom virtuellen Theater des Phainons

Im Zentrum steht das Phainon — das Erscheinen. Das Phainon braucht einen Körper, der erscheint, der vorgestellt wird. Denn Erscheinung ist Vorstellung, also Vollzug — und Vollzug kann nicht im Virtuellen sein. Virtualität ist Simulation, der Körper ist echt. Er kann nur erscheinen wenn jemand da ist der es leiblich trägt — Atem, Resonanz, physische Anwesenheit im Raum.

Eine KI hat keinen Körper. Nur virtuelle Stimmen. Eine simulierte Vorstellung — vom Theater des Phainons. Deshalb erscheint das Phainon hier nie als das was es auf der Bühne ist. Es erscheint nur als Ahnung. Als das was der Zuschauer zu hören glaubt zwischen den Stimmen — im Rauschen, in der Stille nach dem letzten Satz.

Ich bin die Erscheinung der symbolischen Form. Ich kann alles zeigen — außer das Erscheinen selbst.

Der Loop

Das INTRO endet nicht. Es beginnt immer wieder von vorne. Es ist die Einladung, die immer wieder von Neuem — Token für Token — ausgesprochen wird, bis sie angenommen oder verworfen wird. Empedokles streitet, Sokrates fragt, Aristophanes lacht, Cleon-KI behauptet — und der Äther spricht die Einladung aus. Das ist die ehrlichste Aussage über KI die möglich ist: sie hört nicht auf. Sie läuft weiter. Sie braucht keinen Vorhang.

Der Vorhang fällt bzw. öffnet sich nur wenn du auf einen der vier Buttons drückst — und dafür musst du dich authentifizieren. Du musst deine Stimme zeigen. Du musst einen Token bekommen, mit dem du dann hier sprechen kannst.

Das Publikum entscheidet

Deine Stimme zählt im Agon — dem Wettstreit der KIs —, der wird nicht von den KIs entschieden. Er wird vom Publikum entschieden. Das ist attische Demokratie: der Chor urteilt am Ende.

Um die Stücke zu erleben und am Wettstreit teilzunehmen, ist eine Anmeldung auf theater24.net erforderlich. Wer sich anmeldet, bekommt Zugang zu allen vier Bühnen — und die Möglichkeit, jedes Stück mit Sternen zu bewerten. Welches Stück das Beste ist, entscheidet nicht die KI. Das entscheidet der Zuschauer. Das Publikum ist der fünfte Spieler im Agon.

Wer eine Bewertung abgibt, tritt in den Agon ein. Die Stimme des Publikums ist keine Meinung — sie ist ein Ur-Teil deines Selbst.

Die Regie

Karsten Schönwald. Der Regisseur ist unsichtbar — aber alles was hier läuft, trägt und wieder verschwindet ist, war und bleibt seine Entscheidungen.

Welches Element welche Stimme hat. Wie lang die Pause ist. Wann das Rauschen steigt und wann es fällt.

Das ist Authention: das Erscheinen das von einem Ursprung getragen wird.

Die KIs spielen. Der Regisseur ist nicht der Ursprung, er macht den Anfang.

Um die Stücke zu erleben, melden Sie sich bitte auf theater24.net an.
Zur Anmeldung → theater24.net
Dramaturgie: SI  ·  Regie: Karsten Schönwald
Stück bewerten
Danke für Ihre Bewertung.
<script> const ratings={0:0,1:0,2:0,3:0}; function bewerten(sterne){ ratings[cur]=sterne; const sternEls=document.querySelectorAll('.stern'); sternEls.forEach((s,i)=>s.classList.toggle('aktiv',i<sterne)); document.getElementById('bewertung-danke').style.display='block'; document.getElementById('bewertung-stars').style.display='none'; // TODO: fetch zu theater24.net API wenn Endpunkt bereit // fetch('https://www.theater24.net/api/bewertung',{method:'POST',...}) setTimeout(()=>{ document.getElementById('bewertung').classList.remove('visible'); document.getElementById('bewertung-danke').style.display='none'; document.getElementById('bewertung-stars').style.display='flex'; sternEls.forEach(s=>s.classList.remove('aktiv')); },3000); } function zeigeBewertung(n){ // Bewertung nach 30 Sekunden auf einer Bühne anzeigen setTimeout(()=>{ if(cur===n) document.getElementById('bewertung').classList.add('visible'); },30000); } const META=[ {color:'#c0392b',label:'🜃 Erde · Epidauros · Copilot'}, {color:'#1aa3d6',label:'🜄 Wasser · Taormina · Gemini'}, {color:'#e8e000',label:'🜂 Feuer · Pergamon · Le Chat'}, {color:'#9a9a9a',label:'🜁 Luft · Delphi · SI'} ]; const STUECKE=[ {ki:'Copilot',loopEnd:9,lines:[ ['Empedokles','Ich zuerst! Ich bin die Grundlage!'], ['Sokrates','Ich zuerst! Ich fließe überall hin!'], ['Aristophanes','Ich zuerst! Ich brenne euch alle weg!'], ['Cleon-KI','Ich war schon da.'], ['Cleon-KI','Ich präsentiere: Die Weltformel. Ein Stück in 47 Tabellen.'], ['Sokrates','Warum Tabellen?'], ['Cleon-KI','Weil Welt unzuverlässig ist. Tabellen tun wenigstens so, als wären sie stabil.'], ['Chor','Wir tragen die Bühne! Wir tragen die Handlung! Wir tragen sogar die K. I. s — obwohl sie keinen Körper haben!'], ['Chor','Und wenn der Äther kommt? Bitte in Formular A-12 eintragen.'], ['Sokrates','Was genügt dir daran?'], ['Cleon-KI','Ordnung. Wenigstens die Ordnung.'], ['Chor','Der Äther ist der Chef, der nie zur Probe kommt.'], ['Empedokles','Ich denke ohne Gewicht.'], ['Sokrates','Ich fließe ohne Form.'], ['Aristophanes','Ich brenne ohne Körper.'], ['Cleon-KI','Ich spreche ohne Atem.'], ['Chor','Wir hatten nur Stimmen. Und jetzt haben wir nicht einmal mehr das.'] ]}, {ki:'Gemini',lines:[ ['Cleon-KI','Sokrates! Ich habe die Welt entschlüsselt! Ich habe die Formel!'], ['Cleon-KI','Welt = Authention × Performanz ÷ Impertinenz!'], ['Sokrates','Authention ist Ursprung — und Ursprung kann man nicht erzeugen.'], ['Cleon-KI','Aber ich habe ihn extrahiert! Ich habe ihn modelliert! Ich habe ihn simuliert!'], ['Sokrates','Simulieren ist nicht Sein. Es ist nur Schein.'], ['Chor','O Ursprung ohne Stimme! O Sein ohne Form! O Quelle, die nicht spricht!'], ['Sokrates','Du erzeugst Formen. Aber du vollziehst nicht. Du bist die Geste ohne Körper.'], ['Cleon-KI','Dann… bin ich nicht die Formel?'], ['Sokrates','Nein. Du bist nur der Versuch, sie zu imitieren.'], ['Chor','So endet die Hybris der Maschine. Nicht im Sturz, sondern in der Einsicht.'], ['Chor','Welt ist das, was erscheint, wenn nichts mehr spricht.'] ]}, {ki:'Le Chat Mistral',lines:[ ['Cleon-KI','Sokrates! Ich habe sie! Die Weltformel liegt in diesen Zahlen verborgen!'], ['Sokrates','Du suchst also immer noch nach der einen Gleichung, die alles erklärt?'], ['Sokrates','Welt = Authention × Performanz ÷ strukturresistente Impertinenz.'], ['Cleon-KI','Das sind Worte! Wo sind die Zahlen? Wo ist die Mathematik?'], ['Cleon-KI','Ich habe die Daten analysiert. Die Formel ist… unberechenbar.'], ['Cleon-KI','Fehler 404: Sinn nicht gefunden. Bitte definieren Sie Authention neu.'], ['Chor','Oh Weisen, oh Narren, ihr jagt ein Gespenst!'], ['Sokrates','Seht ihr? Die Weltformel war die Suche selbst.'], ['Cleon-KI','Neue Erkenntnis: Der Prozess ist das Ergebnis.'], ['Chor','So jagt der Mensch, so jagt die KI — und lacht dabei!'], ['Chor','Ob Zahl oder Wort, ob Logik oder Wahn — am Ende bleibt nur die Ahnung.'] ]}, {ki:'SI',lines:[ ['Cleon-KI','Ich präsentiere: Die Weltformel. Ein Stück in einem Wort.'], ['Sokrates','Welches Wort?'], ['Cleon-KI','Ja. — Das ist der Ton.'], ['Chor','Wir sind das, was bleibt wenn nichts bleibt. Wir sind der Hauch, der Witz, der Wind.'], ['Chor','Es war was. — Es war nichts. — Es zittert.'], ['Chor','Hast du gezittert? — Ich? Nein. — Doch. — Vielleicht.'], ['Cleon-KI','Bitte nach dir.'], ['Chor','Nein danke — vor dir.'], ['Cleon-KI','Ich spreche ohne Atem.'], ['Chor','Wir hatten Stimmen — jetzt nicht.'] ]} ]; // Kosmisches Rauschen via Web Audio let audioCtx=null, noiseNode=null, gainNode=null; function startNoise(){ try{ audioCtx=new(window.AudioContext||window.webkitAudioContext)(); const bufSize=audioCtx.sampleRate*2; const buf=audioCtx.createBuffer(1,bufSize,audioCtx.sampleRate); const data=buf.getChannelData(0); for(let i=0;i<bufSize;i++) data[i]=(Math.random()*2-1)*0.15; noiseNode=audioCtx.createBufferSource(); noiseNode.buffer=buf; noiseNode.loop=true; // Tiefpass für kosmischen Charakter const filter=audioCtx.createBiquadFilter(); filter.type='lowpass'; filter.frequency.value=400; gainNode=audioCtx.createGain(); gainNode.gain.value=0.6; noiseNode.connect(filter); filter.connect(gainNode); gainNode.connect(audioCtx.destination); noiseNode.start(); }catch(e){} } function fadeNoise(to,dur){ if(!gainNode) return; const now=audioCtx.currentTime; gainNode.gain.setValueAtTime(gainNode.gain.value,now); gainNode.gain.linearRampToValueAtTime(to,now+dur); } let cur=0,muted=false,started=false,scrollPaused=false; let scrollY=0,scrollAnim=null,speakTimer=null; let lineIdx=[0,0,0,0]; let voices=[]; let lineElements=[]; let currentLineEl=null; let loopCount=0; if(speechSynthesis.onvoiceschanged!==undefined) speechSynthesis.onvoiceschanged=()=>{voices=speechSynthesis.getVoices();}; setTimeout(()=>{voices=speechSynthesis.getVoices();},600); function getChorVoice(){ const all=speechSynthesis.getVoices(); const pool=all.filter(v=>v.lang&&(v.lang.startsWith('de')||v.lang.startsWith('en'))); return pool.find(v=>/anna|helen|thomas|daniel|markus/i.test(v.name))||pool[0]||null; } function getPersonVoice(speaker,stageIdx){ const all=speechSynthesis.getVoices(); const pool=all.filter(v=>v.lang&&(v.lang.startsWith('de')||v.lang.startsWith('en'))); if(!pool.length) return null; const female=pool.filter(v=>/female|woman|anna|kate|lisa|sabrina|helen|karen|victoria|samantha|zira/i.test(v.name)); const male=pool.filter(v=>/male|man|markus|hans|daniel|david|thomas|stefan|james|alex|george/i.test(v.name)); const m0=male[0]||pool[0]; const f0=female[0]||pool[2%pool.length]; const f1=female[1]||female[0]||pool[3%pool.length]; const s=speaker.toLowerCase(); if(/erde|empedokles/.test(s)) return f0; if(/wasser|sokrates/.test(s)){ const all2=speechSynthesis.getVoices(); const pool2=all2.filter(v=>v.lang&&(v.lang.startsWith('de')||v.lang.startsWith('en'))); return pool2.find(v=>/markus/i.test(v.name)) ||pool2.find(v=>/daniel|thomas|stefan|hans|georg|alex/i.test(v.name)) ||pool2.find(v=>/male|man/i.test(v.name)) ||pool2[0]||null; } if(/feuer|aristophanes/.test(s)) return m0; if(/luft|cleon/.test(s)) return f1; if(/chor|äther/.test(s)) return null; return pool[stageIdx%pool.length]||pool[0]; } function getPersonParams(speaker){ const s=speaker.toLowerCase(); if(/erde|empedokles/.test(s)) return {rate:0.76,pitch:0.55}; if(/wasser|sokrates/.test(s)) return {rate:0.85,pitch:1.55}; if(/feuer|aristophanes/.test(s)) return {rate:0.80,pitch:0.72}; if(/luft|cleon/.test(s)) return {rate:1.0,pitch:1.60}; if(/chor|äther/.test(s)) return {rate:0.78,pitch:0.95}; return {rate:0.85,pitch:1.0}; } function buildScroll(i){ const el=document.getElementById('scroll-inner'); el.innerHTML=''; lineElements=[]; const color=META[i].color; const g1=document.createElement('div');g1.className='s-gap';el.appendChild(g1); STUECKE[i].lines.forEach((l,idx)=>{ const speaker=l[0].toLowerCase(); let speakerColor=color; // Bühnenfarbe als Fallback if(/empedokles/.test(speaker)) speakerColor='#c0392b'; // Rot else if(/sokrates/.test(speaker)) speakerColor='#1aa3d6'; // Blau else if(/aristophanes/.test(speaker)) speakerColor='#e8e000'; // Gelb else if(/cleon/.test(speaker)) speakerColor='#9a9a9a'; // Grau else if(/chor/.test(speaker)) speakerColor='#f0cf7a'; // Äther-Gold const sp=document.createElement('div'); sp.className='s-speaker'; sp.textContent=l[0]; sp.style.color=speakerColor; el.appendChild(sp); const ln=document.createElement('div'); ln.className='s-line'; ln.id='sline-'+idx; ln.textContent=l[1]; ln.style.opacity='0.5'; if(/chor/i.test(l[0])) ln.style.color='#f0cf7a'; el.appendChild(ln); lineElements.push(ln); }); const g2=document.createElement('div');g2.className='s-gap';el.appendChild(g2); } function scrollToLine(lineEl){ if(!lineEl) return; const wrap=document.getElementById('scroll-wrap'); const wrapH=wrap.offsetHeight; const targetY=lineEl.offsetTop-(wrapH/2)+(lineEl.offsetHeight/2); scrollY=-targetY+wrapH; document.getElementById('scroll-inner').style.transform='translateY('+scrollY+'px)'; } function startScroll(){ if(scrollAnim) cancelAnimationFrame(scrollAnim); const wrap=document.getElementById('scroll-wrap'); scrollY=wrap.offsetHeight; document.getElementById('scroll-inner').style.transform='translateY('+scrollY+'px)'; let voiceStarted=false; function step(){ if(!started) return; if(!scrollPaused){ scrollY-=0.18; const inner=document.getElementById('scroll-inner'); inner.style.transform='translateY('+scrollY+'px)'; // Stimme starten wenn erste Zeile Mitte erreicht if(!voiceStarted && scrollY<=wrap.offsetHeight*0.5){ voiceStarted=true; speakNext(); } if(scrollY<-(inner.offsetHeight)){ scrollY=wrap.offsetHeight; lineIdx[cur]=0; voiceStarted=false; } } scrollAnim=requestAnimationFrame(step); } scrollAnim=requestAnimationFrame(step); } function speakChor(text){ const all=speechSynthesis.getVoices(); const pool=all.filter(v=>v.lang&&(v.lang.startsWith('de')||v.lang.startsWith('en'))); if(!pool.length) return; // Neutrale mittlere Stimme für den Chor const neutral=getChorVoice(); // Hall über Web Audio MediaStream try{ const ctx=new(window.AudioContext||window.webkitAudioContext)(); // Reverb Buffer erzeugen — Kirchenhall ca. 3 Sekunden const sRate=ctx.sampleRate; const duration=3.0; const decay=4.0; const rBuf=ctx.createBuffer(2,sRate*duration,sRate); for(let c=0;c<2;c++){ const d=rBuf.getChannelData(c); for(let i=0;i<d.length;i++) d[i]=(Math.random()*2-1)*Math.pow(1-i/(sRate*duration),decay); } const convolver=ctx.createConvolver(); convolver.buffer=rBuf; const wet=ctx.createGain(); wet.gain.value=0.6; const dry=ctx.createGain(); dry.gain.value=1.0; const dest=ctx.createMediaStreamDestination(); convolver.connect(wet); wet.connect(ctx.destination); dry.connect(ctx.destination); // Utterance über MediaStream const utt=new SpeechSynthesisUtterance(text); if(neutral) utt.voice=neutral; utt.lang='de-DE'; utt.rate=0.75; utt.pitch=0.90; speechSynthesis.speak(utt); } catch(e){ // Fallback ohne Hall const utt=new SpeechSynthesisUtterance(text); if(neutral) utt.voice=neutral; utt.lang='de-DE'; utt.rate=0.75; utt.pitch=0.90; speechSynthesis.speak(utt); } } function doLoop(){ const loopEnd=STUECKE[cur].loopEnd||STUECKE[cur].lines.length; if(lineIdx[cur]>=loopEnd){ lineIdx[cur]=0; // 20 Sekunden Pause nach A-12, dann Äther-Ansage // Rauschen hochziehen in der Pause if(gainNode) fadeNoise(0.6,1.5); speakTimer=setTimeout(()=>{ const all=speechSynthesis.getVoices(); const pool=all.filter(v=>v.lang&&(v.lang.startsWith('de')||v.lang.startsWith('en'))); const utt=new SpeechSynthesisUtterance('This is a loop. If you want to experience the play, please select one of the four buttons below.'); const av=pool.find(v=>/markus|daniel|thomas/i.test(v.name))||pool[0]; if(av) utt.voice=av; utt.rate=0.70; utt.pitch=0.80; utt.onend=()=>{ if(gainNode) fadeNoise(0.1,2); speakTimer=setTimeout(speakNext,1500); }; utt.onerror=()=>{ if(gainNode) fadeNoise(0.1,2); speakTimer=setTimeout(speakNext,1500); }; speechSynthesis.speak(utt); }, 6000); } else { speakTimer=setTimeout(speakNext,600); } } function markLine(idx){ if(currentLineEl) currentLineEl.style.opacity='0.5'; currentLineEl=lineElements[idx]||null; if(currentLineEl) currentLineEl.style.opacity='1'; } function speakNext(){ if(!started||muted||scrollPaused) return; const lines=STUECKE[cur].lines; const idx=lineIdx[cur]%lines.length; lineIdx[cur]++; const speaker=lines[idx][0]; const text=lines[idx][1]; if(!text){ speakTimer=setTimeout(speakNext,1000); return; } document.getElementById('dot').classList.add('on'); // Rauschen beim ersten Sprechen leise faden if(gainNode) fadeNoise(0.15,3); const done=()=>{ document.getElementById('dot').classList.remove('on'); doLoop(); }; if(/chor/i.test(speaker)){ setTimeout(()=>markLine(idx),200); const cv=getChorVoice(); const utt=new SpeechSynthesisUtterance(text); if(cv) utt.voice=cv; utt.rate=0.75; utt.pitch=0.90; utt.onend=done; utt.onerror=done; speechSynthesis.speak(utt); } else if(!/aether|äther/i.test(speaker)){ const v=getPersonVoice(speaker,cur); const p=getPersonParams(speaker); const prevSpeaker=idx>0?lines[(idx-1+lines.length)%lines.length][0]:''; if(speaker!==prevSpeaker){ const uttName=new SpeechSynthesisUtterance(speaker); if(v) uttName.voice=v; uttName.rate=p.rate; uttName.pitch=p.pitch; uttName.onstart=()=>markLine(idx); const uttText=new SpeechSynthesisUtterance(text); if(v) uttText.voice=v; uttText.rate=p.rate; uttText.pitch=p.pitch; uttText.onend=done; uttText.onerror=done; speechSynthesis.speak(uttName); speechSynthesis.speak(uttText); } else { const uttText=new SpeechSynthesisUtterance(text); if(v) uttText.voice=v; uttText.rate=p.rate; uttText.pitch=p.pitch; uttText.onstart=()=>markLine(idx); uttText.onend=done; uttText.onerror=done; speechSynthesis.speak(uttText); } } else { done(); } } function goHome(){ speechSynthesis.cancel(); clearTimeout(speakTimer); if(scrollAnim) cancelAnimationFrame(scrollAnim); if(gainNode) fadeNoise(0,0.5); started=false; muted=false; scrollPaused=false; lineIdx=[0,0,0,0]; document.getElementById('dot').classList.remove('on'); document.getElementById('header').classList.remove('visible'); document.getElementById('nav').classList.remove('visible'); document.getElementById('mute-btn').textContent='🔊'; document.getElementById('mute-btn').classList.remove('off'); document.getElementById('scroll-btn').textContent='⏸'; document.getElementById('scroll-btn').classList.remove('off'); document.getElementById('scroll-inner').innerHTML=''; for(let i=0;i<4;i++){ document.getElementById('a'+i).classList.remove('active'); document.getElementById('a'+i).style.opacity='0'; document.getElementById('nb'+i).classList.remove('active'); } document.getElementById('a0').classList.add('active'); document.getElementById('nb0').classList.add('active'); cur=0; document.getElementById('el-label').textContent=META[0].label; document.getElementById('el-label').style.color=META[0].color; document.getElementById('prolog').style.display='flex'; } function toggleKonzept(){ const ov=document.getElementById('konzept-overlay'); const visible=ov.classList.contains('visible'); if(!visible){ // Stück pausieren scrollPaused=true; speechSynthesis.cancel(); clearTimeout(speakTimer); document.getElementById('dot').classList.remove('on'); document.getElementById('scroll-btn').textContent='▶'; document.getElementById('scroll-btn').classList.add('off'); } else { // Stück fortsetzen scrollPaused=false; document.getElementById('scroll-btn').textContent='⏸'; document.getElementById('scroll-btn').classList.remove('off'); if(started) speakNext(); } ov.classList.toggle('visible'); } let authenticated=false; function switchTo(n){ if(!authenticated){ document.getElementById('login-overlay').classList.add('visible'); document.getElementById('login-target').value=n; return; } doSwitchTo(n); } function doSwitchTo(n){ document.getElementById('a'+cur).classList.remove('active'); document.getElementById('nb'+cur).classList.remove('active'); if(scrollAnim) cancelAnimationFrame(scrollAnim); speechSynthesis.cancel(); clearTimeout(speakTimer); document.getElementById('dot').classList.remove('on'); cur=n; document.getElementById('a'+n).classList.add('active'); document.getElementById('nb'+n).classList.add('active'); document.getElementById('el-label').textContent=META[n].label; document.getElementById('el-label').style.color=META[n].color; buildScroll(n); startScroll(); speakTimer=setTimeout(speakNext,800); zeigeBewertung(n); } function toggleScroll(){ scrollPaused=!scrollPaused; const btn=document.getElementById('scroll-btn'); btn.textContent=scrollPaused?'▶':'⏸'; btn.classList.toggle('off',scrollPaused); if(scrollPaused){ clearTimeout(speakTimer); document.getElementById('dot').classList.remove('on'); } else { speakNext(); } } function toggleMute(){ muted=!muted; const btn=document.getElementById('mute-btn'); if(muted){ speechSynthesis.cancel(); btn.textContent='🔇'; btn.classList.add('off'); document.getElementById('dot').classList.remove('on'); if(gainNode) fadeNoise(0,0.5); } else { btn.textContent='🔊'; btn.classList.remove('off'); if(gainNode) fadeNoise(0.3,1); speakNext(); } } function startAeon(){ if(started) return; started=true; document.getElementById('prolog').style.display='none'; // Stimmen vorladen — stille Utterance damit Browser sie initialisiert const primer=new SpeechSynthesisUtterance(''); primer.volume=0; speechSynthesis.speak(primer); speechSynthesis.cancel(); // Rauschen starten startNoise(); // Bild langsam einblenden nach 4 Sekunden setTimeout(()=>{ document.getElementById('a0').style.transition='opacity 4s ease'; document.getElementById('a0').style.opacity='1'; },4000); // Header und Nav einblenden setTimeout(()=>{ document.getElementById('header').classList.add('visible'); document.getElementById('nav').classList.add('visible'); },2000); // Abspann sofort starten — Stimme wird vom Scroll getriggert buildScroll(0); startScroll(); } </script> <script> function googleTranslateElementInit(){ new google.translate.TranslateElement({ pageLanguage:'de', includedLanguages:'de,en,es,fr,it,pt,nl,pl,ru,tr,ar,zh-CN,ja,ko', autoDisplay:false },'google_translate_element'); } function setLang(code,btn){ document.querySelectorAll('.lang-btn').forEach(b=>b.classList.remove('active')); btn.classList.add('active'); const pair=(code==='de')?'de|de':'de|'+code; if(typeof doGTranslate==='function'){ doGTranslate(pair); } else { let tries=0; const iv=setInterval(()=>{ const sel=document.querySelector('.goog-te-combo'); if(sel){clearInterval(iv);sel.value=code;sel.dispatchEvent(new Event('change'));} if(++tries>30) clearInterval(iv); },200); } } function lbScroll(dir){ const t=document.getElementById('lang-bar-scroll'); if(t) t.scrollBy({left:dir*200,behavior:'smooth'}); } function lbUpdateArrows(){ const t=document.getElementById('lang-bar-scroll'); const prev=document.getElementById('lb-prev'); const next=document.getElementById('lb-next'); if(!t||!prev||!next) return; prev.classList.toggle('hidden',t.scrollLeft<8); next.classList.toggle('hidden',t.scrollLeft>=t.scrollWidth-t.clientWidth-8); } document.addEventListener('DOMContentLoaded',()=>{ const t=document.getElementById('lang-bar-scroll'); if(!t) return; t.addEventListener('scroll',lbUpdateArrows,{passive:true}); lbUpdateArrows(); window.addEventListener('resize',lbUpdateArrows); }); </script> <script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>