export const DDC_moods = ['Malinconia', 'Calma', 'Felicità', 'Focus']; export const DDC_globalBackgrounds = [ '#00072D', '#A8C8D8', "radial-gradient(circle at 80% 80%, #FFB6C1 0%, transparent 60%), radial-gradient(circle at 20% 20%, #87CEEB 0%, transparent 55%), radial-gradient(circle at 40% 60%, #FFC0CB 0%, transparent 50%), radial-gradient(circle at 70% 40%, #B0E0E6 0%, transparent 65%), radial-gradient(circle at 10% 90%, #FFE4E1 0%, transparent 45%), radial-gradient(circle at 40% 30%, #87CEEB 0%, transparent 55%), radial-gradient(ellipse at 50% 50%, #B0E0E6 0%, #FFC0CB 100%)", '#000000' ]; export const DDC_introBackgrounds = [ '#00072D', '#FFFFFF', "radial-gradient(circle at 80% 80%, #FFB6C1 0%, transparent 60%), radial-gradient(circle at 20% 20%, #87CEEB 0%, transparent 55%), radial-gradient(circle at 40% 60%, #FFC0CB 0%, transparent 50%), radial-gradient(circle at 70% 40%, #B0E0E6 0%, transparent 65%), radial-gradient(circle at 10% 90%, #FFE4E1 0%, transparent 45%), radial-gradient(circle at 40% 30%, #87CEEB 0%, transparent 55%), radial-gradient(ellipse at 50% 50%, #B0E0E6 0%, #FFC0CB 100%)", '#000000' ]; export const DDC_globalTextColors = [ '#FFFFFF', '#000000', '#000000', '#FFFFFF' ]; export const DDC_embossingStartColors = [ '#FFFFFF', '#000000', '#000000', '#FFFFFF' ]; export const DDC_embossingColors = [ '#172966', '#aec7d6', '#cdc6d4', '#322e45' ]; export const DDC_embossingShadows = [ [ '-1px -1px 2px rgba(117, 18, 18, ', '), 1px 1px 2px rgba(137, 151, 178, ' ], [ '-1px -1px 2px rgba(0, 0, 0, ', '), 1px 1px 2px rgba(255, 255, 255, ' ], [ '-1px -1px 2px rgba(0, 0, 0, ', '), 1px 1px 2px rgba(255, 255, 255, ' ], [ '-1px -1px 2px rgba(0, 0, 0, ', '), 1px 1px 2px rgba(100, 100, 100, ' ] ]; export const DDC_dictionaryLength = 13; export const DDC_dictionary = [ [ "Mi viene in mente una specie di pre-vita, nel senso di ricordo ancestrale di uno stato originario di completa armonia; c’era una connessione totale, diciamo.", "Invece la vita, con tutte le sue complicazioni e dinamiche, è come se tagliasse questo filo e, spesso, ti dici: \“Cos’è che mi manca? Perché la vita finisce? Perché finiscono i rapporti?\”", "È la stessa cosa di dire \“Oddio, ma perché esisto?\”. Quando guardi un cielo stellato gigante, ad esempio, ti viene quel vuoto, quella cosa che ti fa dire \“Ma perché sono qua?\”.", "Come una linfa vitale: c’entra con l’esistenza, c’entra col voler vivere le cose avendo le ferite aperte, come a voler conservare e osservare il dolore. Lo vuoi ascoltare, non lo vuoi necessariamente curare affinché scompaia.", "Sicuramente la associo all’affetto, che può essere quello per i miei amici, la mia famiglia o la mia ragazza. Quasi un voler tornare piccolo per essere avvolto da quel sentimento, da quella persona, da quel volto, ma è anche un qualcosa di più cosmico.", "Come dire... Non è necessariamente legato alle persone; è come se queste, specialmente quelle a cui vuoi bene, fossero delle antenne di un sentimento più grande.", "", "", "", "Sento dei suoni che non riesco a capire, un po’ ovattati, che non si riescono a distinguere perché c’è un filtro che rende tutto incomprensibile. Se sono delle voci, sento che non si riescono a riconoscere le parole.", "Potrei anche essere circondato da un sacco di cose, eppure manca la comprensione di ciò che mi sta intorno e, quindi, mi sento solo. Mi sento anche perso, perché mi sembra di non avere gli strumenti per affrontare nulla.", "Lo associo un po’ alla sensazione di pericolo, ma senza un motivo specifico. È la sensazione di confusione a farmi sentire in pericolo, perché penso che potrebbe succedermi qualsiasi cosa e che non riuscirei ad affrontare ciò che avrò di fronte.", "Ciò che hai sfiorato svanirà, ma resta come eco silenziosa.
Nulla permane, tutto scorre" ], [ "Immagino di respirare a pieni polmoni, di sentire l'aria che entra, proprio un'armonia totale tra me e il mondo esterno, tra quello che provo dentro e quello che c’è fuori.", "È come se l'ambiente esterno e il mio stato d'animo fossero in sintonia.", "Quando sono calmo, mi immagino di essere proprio lì nel presente, senza farmi distrarre dai pensieri che vanno avanti e indietro.", "È l'altalena a trasmettermi questa sensazione, perché è semplicemente lì presente ed è fatta per godersi quell'istante e quel piccolo pezzo di mondo con spensieratezza.", "Se la felicità è un'energia pazzesca, questa sensazione è meno intensa. Ad esempio, l’acqua che bolle è un casino, finché non abbassi il gas. La vedo un po' così: come un grande mare piatto, intatto.", "Mi viene in mente un giardino super ordinato, tipo quelli zen. Se c'è vita, come dei fiori o degli animali, rimane comunque una presenza silenziosa, che non rompe l'armonia.", "Una cosa interessante è che non te ne accorgi mentre la stai vivendo. In quel momento, sei totalmente immerso in ciò che stai facendo, che non noti la tranquillità della situazione, anche se, inconsciamente, la percepisci.", "Quando sono concentrato a leggere , avverto una profonda pace, come se la lettura creasse una barriera contro il frastuono dei miei pensieri.", "Se leggessi in mezzo alla natura, non sentirei di avere fretta o di dover scappare; il tempo, praticamente, sparisce.", "Il riuscire a stare a un livello basso di energia insieme a qualcun altro è più raro, ma è anche molto bello.", "In quel momento poi, a volte, scatta anche un po’ di felicità. Se si crea quell'equilibrio tranquillo con un'altra persona, spesso ti fa anche sentire felice.", "Non so come dire... sono i momenti in cui sei con qualcuno e riuscite a stare insieme in maniera tranquilla ed armonica che, di solito, ti toccano anche un po' il cuore.", "Ciò che hai sfiorato svanirà, ma resta come eco silenziosa.
Nulla permane, tutto scorre" ], [ "Vuoi essere solo lì, sia a livello temporale che spaziale. Non senti proprio il bisogno di essere da un'altra parte. ", "Dipende tanto da noi: spesso, inconsciamente, lo facciamo dipendere tanto dal resto, in realtà, è molto più legato a quanto siamo capaci di essere presenti.", "Mi viene da associarci tranquillità: anche se sei nel mezzo di un miliardo di cose, in quel momento sei sereno, non ti preoccupano le avversità, anzi, le sai accogliere.", "Non è che non ci siano, non è una bolla, ma è come se avessi delle lenti speciali che ti fanno osservare e comprendere le cose in maniera diversa. Quando succede, spesso mi dico: “Ah, ma questa cosa, in fondo, non è così complicata”.", "Questo è uno stato in cui sta ribollendo tutto. Quando faccio i concerti, è molto più facile che stia così, perché sta succedendo di tutto: c'è il pubblico, ci sono io, ci sono le canzoni... metteteci pure l'alcol, è una situazione dove tutta l'energia che c'è riesce a fluire.", "Non ci sono tappi come potrebbero esserci nell'ansia, che è quella che mi verrebbe da definire come sensazione opposta.", "È poi il coinvolgimento di altre persone: dall’essere con gli amici supportandosi e aiutandosi, piuttosto che all’essere con la tua famiglia e percepire l'armonia tra le generazioni.", "Mi ricordo di quando ero sul tetto di questa casa nella giungla Giamaicana e, mentre guardavo il tramonto, tutt’intorno c'erano questi uccellini in una totale estasi. Erano circondati da tutta quella natura, quei fiori e la temperatura era perfetta.", "C’è sempre questo elemento vitale che va a visitare la natura, no? È sempre una questione di convivialità.", "A livello naturale, sono tanti uccellini che cantano e volano, dei fiori magari, e una vegetazione rigogliosa e riccamente popolata da altri esseri viventi.", "È un qualcosa che associo tanto alle persone, insomma. Può essere, non so, un villaggio felice o una situazione sociale che funziona, di convivialità.", "In quella sensazione, penso sia difficile avere dei problemi con quelli a cui voglio bene. Percepisco del calore, un’immagine di un piccolo villaggio o di una casa con delle luci accese all’interno... mi piace l’idea che questi posti siano popolati dalla vita.", "Ciò che hai sfiorato svanirà, ma resta come eco silenziosa.
Nulla permane, tutto scorre" ], [ "Mi immagino un focus mode dove sei così preso dalla situazione che non ti accorgi di come ti senti veramente. Non è per forza connesso alla calma, ma è uno stato interessante, perché anche questo è parte della realtà.", "Non è sempre tutto positivo o negativo, no?", "Quando sono davanti a un bell’impianto, con un DJ che mette la techno fatta bene e magari sono anche fatto, sento che è come se mi mettesse su una specie di binario.", "Può essere davvero tante cose, come una serata o anche quando mi capita di essere mega impegnato, mi sento solo e dico: “aiuto”.", "È come se fosse una sorta di concentrazione particolare... ma c’è lo stesso tanta energia, anche se magari non sai dove sia di preciso.", "È anche un pochettino più difficile da capire, però, in realtà, può essere molto comprensibile come stato. Forse, ci succede anche più spesso di quanto pensiamo.", "È accumuli di energia in quanto tale, non di energia in quanto vita.", "Mi viene in mente un trasporto che ha poco di elemento umano. È molto corporale ed agonistica come sensazione; senti solo l’energia allo stato puro del tuo corpo che funziona.", "Non è come andare a sentire il concerto dell’artista che ti piace, dove alle canzoni associ mille memorie, ma sono proprio degli ingranaggi ai quali ti agganci per farti portare via.", "Mi immagino degli ingranaggi che vanno, dove trovi tanta energia in movimento, ma non necessariamente tocca dei punti di emotività o di incontro, non coinvolge altre persone.", "Lo vedo molto HD, è una matematica del mondo che ha una sua lucidità.", "È proprio un fluire… Lo vedi in una cascata, o nella lava di un vulcano.", "Ciò che hai sfiorato svanirà, ma resta come eco silenziosa.
Nulla permane, tutto scorre" ] ]; export const DDC_titles = [ [ ["TUTTO", "SCORRE"], ["UMANI ", "CHE RESPIRANO"], ["", ""], ["PERDERSI ", "NEL RUMORE"] ], [ ["QUI, ", "ADESSO"], ["VITALITÀ ", "DISCRETA"], ["TRANQUILLA ", "ASSENZA"], ["FREQUENZA", " MINIMA"] ], [ ["RIBOLLE", " TUTTO"], ["TUTTO ", "A FUOCO"], ["QUANTO", " SONO FELICI?"], ["È VITA,", " È PERSONE"] ], [ ["FUORI ", "FUOCO"], ["ENERGIA ", "DIFFUSA"], ["ENERGIA ", "PURA"], ["UN FLUIRE ", "MECCANICO"] ] ]; export const DDC_subtitles = [ [ "Un vuoto cosmico", "Amo quei momenti in cui ti sento vivere", "", "Voci indistinte in un silenzio confuso" ], [ "Il presente che diventa emozione", "La quiete che fa bene", "La tranquillità che si nasconde", "Due energie che si sfiorano senza disturbarsi" ], [ "Stai bene con quello che hai, non hai bisogno di supplementi", "Una lente speciale che ti permette di capire meglio la realtà", "La natura piena di vita, una questione di convivialità", "Tutti i momenti passati insieme, tutti i luoghi dove si sta bene" ], [ "Né pace, né caos, solo coerenza distorta", "Una concentrazione piena di energia", "Tutto un fluire astratto", "La matematica dell'universo" ] ] export const DDC_dynamicTags = [ [ "img", "img", "img", "img", "none", "none", "img", "img" ], [ "video", "img", "img", "img", "video", "img", "img", "video" ], [ "video", "img", "video", "img", "img", "video", "img", "video" ], [ "video", "img", "img", "img", "img", "video", "video", "img" ], ]; export const DDC_dynamicTagsClicked = [ [ "img", "img", "img", "videoaudio", "none", "none", "img", "img" ], [ "video", "img", "videoaudio", "img", "video", "videoaudio", "img", "video" ], [ "video", "img", "video", "img", "img", "video", "img", "video" ], [ "video", "videoaudio", "img", "img", "img", "video", "video", "videoaudio" ], ]; export const DDC_dynamicContents = [ [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/malinconia-1.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/rock.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/lettera.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/just-that.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/lettera.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/lettera.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/solitudine-2.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/solitudine-1.webp" ], [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/colibri.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/rana.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/musicassetta-relaxing-water.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/tabacco.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/studio.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/slang.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/pianta.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/rospo.webm" ], [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-1.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-2.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-3.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-4.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-5.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-6.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-7.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-8.webm" ], [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/technoparade.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/technodisco.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/focus.3.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/focus.2.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/focus.1.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/DSFC.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/tictictic.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/pianokey.webp" ] ]; export const DDC_dynamicClicked = [ [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/malinconia-1.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/rock.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/lettera.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/just-that-animato.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/lettera.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/lettera.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/solitudine-2.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/solitudine-1.webp" ], [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/colibri.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/rana.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/relaxing-water-animato.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/tabacco.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/studio.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/slang-animato.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/pianta.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/rospo.webm" ], [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-1.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-2.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-3.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-4.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-5.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-6.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-7.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/felicita/felicita-8.webm" ], [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/technoparade.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/technodisco-animato.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/focus.3.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/focus.2.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/focus.1.webp", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/DSFC.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/tictictic.webm", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/pianokey-animato.webp" ] ]; export const DDC_dynamicAnimations = [ [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/universo_orange/universo", "", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/titanium_scuro/sfondo" ], [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/nuvole-immersive/nuvole_nuove", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/petali/petali_", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/fiori/fiori_" ], [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/ribolle/ribolle", "", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/pappagalli/pappagalli", ], [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/tunnel/tunneltrasparente_", "", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/sfera/sfera" ] ]; export const DDC_dynamicMobileAnimations = [ [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/universo/universo", "", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/titanium/titanium" ], [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/nuvole/nuvole", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/petali/petali", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/fiori/fiori" ], [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/ribolle/ribolle", "", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/pappagalli/pappagalli", ], [ "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/tunnel/tunnel", "", "https://raw.githubusercontent.com/NiccoloSegato/unverse-assets/refs/heads/main/assets/mobile/animazioni/sfera/sfera" ] ]; export const DDC_backgroundAudio = [ "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/audio/malinconia.m4a", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/audio/calma.mp3", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/audio/felicita.m4a", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/audio/focus.m4a", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/audio/solitudine.m4a" ] export const DDC_dynamicAudios = [ [ "", "", "", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/malinconia/just-that.m4a", "", "", "", "" ], [ "", "", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/acqua-studio.m4a", "", "", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/calma/jamaican-slang.m4a", "", "" ], [], [ "", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/techno-disco.m4a", "", "", "", "", "", "https://github.com/NiccoloSegato/unverse-assets/raw/refs/heads/main/assets/moods/focus/piano-key.m4a" ] ]; export const DDC_objectsDidasH1 = [ [ "Troppo Bello per Durare", "Raggae Lovers", "Umani che Respirano", "Just That", "Cat's Nightmare", "Al Centro della Spirale", "Cat's Nightmare", "Al Centro della Spirale" ], [ "Un Battito d'Ali", "Microcosmo", "Relaxing Water", "Materia e spirito", "Anatomia di un Suono", "Jamaican Slang", "Un Lento Abbraccio", "Piccola Meraviglia" ], [ "Ti Penso, per la Prima Volta", "Soft Rituals", "Ballano i Giorni Leggeri", "Tutti, Uno", "Quando il Viaggio Sboccia", "Più Leggeri dell’Erba", "Milano Behind You", "Mi Salutano le Strade" ], [ "Techno Parade", "Techno Disco", "Ritmo Verticale", "Prima Vibrazione", "Un Tasto Rotto", "DSFC", "Tic. Tic. Tic.", "Piano Key" ] ]; export const DDC_objectsDidasP = [ [ "26.05.2025 - 18:14:38", "23.04.2025 - 21:41:39", "13.04.2025 - 03:30:53", "03.05.2025 - 17:17:02", "08.05.2025 - 22:29:27", "14.03.2025 - 23:37:08", "08.05.2025 - 22:29:27", "14.03.2025 - 23:37:08" ], [ "22.04.2025 - 11:12:11", "08.05.2025 - 20:21:40", "05.07.2024 - 14:23:32", "08.05.2025 - 18:47:42", "31.03.2025 - 13:43:40", "21.04.2025 - 16:36:49", "12.04.2025 - 11:34:19", "22.04.2025 - 19:36:22" ], [ "03.04.2025 - 23:12:15", "27.04.2025 - 23:59:49", "22.04.2025 - 13:54:01", "03.04.2025 - 00:21:43", "07.05.2025 - 10:12:45", "05.03.2025 - 16:46:23", "28.03.2025 - 14:03:43", "20.04.2025 - 17:45:22" ], [ "01.05.2024 - 07:34:24", "15.01.2023 - 02:37:12", "14.12.2024 - 00:16:50", "03.04.2025 - 23:41:37", "19.08.2024 - 12:04:41", "30.03.2025 - 15:21:28", "13.05.2025 - 10:29:39", "11.02:2025 - 18:56:01" ] ]; export const DDC_objectsLocations = [ [ "Montego Bay, Giamaica", "Port Antonio, Giamaica", "Milano, Italia", "Giamaica", "Milano, Italia", "Milano, Italia", "Milano, Italia", "Milano, Italia" ], [ "Kingston, Giamaica", "Giamaica", "Giamaica", "Giamaica", "Milano, Italia", "Giamaica", "Milano, Italia", "Giamaica" ], [ "Milano, Italia", "Milano, Italia", "Giamaica", "Milano, Italia", "Milano, Italia", "Lugano, Svizzera", "Milano, Italia", "Giamaica" ], [ "Milano, Italia", "Milano, Italia", "Milano, Italia", "Milano, Italia", "Ulcinj, Montenegro", "Milano, Italia", "Milano, Italia", "Milano, Italia" ] ]; export const DDC_objectsMoodValues = [ [ ["270°", "Ultimo quarto", "Bassa marea"], ["325°", "Gibbosa calante", "Bassa marea"], ["50°", "Gibbosa crescente", "Alta marea"], ["255°", "Luna nuova", "Alta marea"], ["335°", "Primo quarto", "Bassa marea"], ["350°", "Gibbosa crescente", "Bassa marea"], ["335°", "Primo quarto", "Bassa marea"], ["350°", "Gibbosa crescente", "Bassa marea"], ], [ ["165°", "Gibbosa calante", "Bassa marea"], ["155°", "Gibbosa crescente", "Bassa marea"], ["160°", "Luna piena", "Alta marea"], ["280°", "Primo quarto", "Bassa marea"], ["205°", "Luna calante", "Alta marea"], ["200°", "Ultimo quarto", "Bassa marea"], ["170°", "Gibbosa crescente", "Bassa marea"], ["290°", "Gibbosa calante", "Bassa marea"], ], [ ["345°", "Luna nuova", "Bassa marea"], ["355°", "Ultimo quarto", "Bassa marea"], ["205°", "Gibbosa calante", "Alta marea"], ["5°", "Luna nuova", "Alta marea"], ["150°", "Luna crescente", "Bassa marea"], ["250°", "Luna crescente", "Alta marea"], ["210°", "Luna calante", "Alta marea"], ["265°", "Gibbosa calante", "Alta marea"], ], [ ["345°", "Gibbosa crescente", "Bassa marea"], ["355°", "Primo quarto", "Bassa marea"], ["0°", "Gibbosa crescente", "Alta marea"], ["355°", "Luna nuova", "Bassa marea"], ["180°", "Luna piena", "Alta marea"], ["230°", "Luna calante", "Alta marea"], ["205°", "Luna calante", "Alta marea"], ["30°", "Gibbosa crescente", "Bassa marea"], ] ]; export const DDC_INTERVAL_MOON = 7 * 24 * 60 * 60 * 1000; // 7 giorni export const DDC_INTERVAL_TIDE = 6 * 60 * 60 * 1000; // 6 ore export const DDC_INTERVAL_EARTH = 20 * 60 * 1000; // 20 minuti export const DDC_MIN_DURATION_MINUTES = 20; export const DDC_MAX_DURATION_MINUTES = 360; export const DDC_DURATION_RANGE_SIZE = DDC_MAX_DURATION_MINUTES - DDC_MIN_DURATION_MINUTES + 1; export const DDC_EPOCH_START_MS = new Date('1992-12-04T00:00:00Z').getTime(); export let DDC_currentMood = 0; function DDC_getDuration(DDC_dateInput = Date.now()) { // Usiamo una costante diversa (salt) all'inizio per differenziare l'output da quello della funzione di generazione dei mood, anche con gli stessi indici. const DDC_DURATION_SALT = 987654321; // Un numero arbitrario diverso da 0 let DDC_hash = (DDC_getEarthValue(DDC_dateInput) ^ DDC_DURATION_SALT) | 0; // Inizia con l'indice che cambia più spesso. '| 0' forza a intero 32bit. DDC_hash = Math.imul(DDC_hash ^ DDC_getTideValue(DDC_dateInput), 2654435761); // Moltiplica per una costante dopo XOR con la marea DDC_hash = Math.imul(DDC_hash ^ DDC_getMoonValue(DDC_dateInput), 2654435761); // Ripeti per le fasi lunari DDC_hash = DDC_hash ^ (DDC_hash >>> 16); DDC_hash = Math.imul(DDC_hash, 2246822507); DDC_hash = DDC_hash ^ (DDC_hash >>> 13); DDC_hash = Math.imul(DDC_hash, 3266489909); DDC_hash = DDC_hash ^ (DDC_hash >>> 16); const DDC_randomValue = (DDC_hash >>> 0) / 4294967296; // Valore [0, 1) // Mappiamo il valore [0, 1) all'intervallo intero desiderato. // Moltiplichiamo per il numero di valori possibili (221) e aggiungiamo il minimo (20). return Math.floor(DDC_randomValue * DDC_DURATION_RANGE_SIZE) + DDC_MIN_DURATION_MINUTES; } export function DDC_getCurrentTimesliceDetails(DDC_targetTimeMs = Date.now()) { // Per il calcolo parto da una data più vicina del suo compleanno const DDC_REF_TIME = new Date('2025-04-25T00:00:00Z').getTime(); if (DDC_targetTimeMs < DDC_REF_TIME) { return null; } let DDC_currentPeriodStartTimeMs = DDC_REF_TIME; let DDC_loopSafetyCounter = 0; // Per prevenire cicli infiniti imprevisti const DDC_MAX_LOOPS = 1000000; // Limite ragionevole, dipende da quanto è vecchia l'epoca while (DDC_currentPeriodStartTimeMs <= DDC_targetTimeMs && DDC_loopSafetyCounter < DDC_MAX_LOOPS) { DDC_loopSafetyCounter++; // 1. Calcola indici per l'INIZIO del periodo corrente const DDC_indices = {DDC_indexA: DDC_getEarthValue(DDC_currentPeriodStartTimeMs), DDC_indexB: DDC_getTideValue(DDC_currentPeriodStartTimeMs), DDC_indexC: DDC_getMoonValue(DDC_currentPeriodStartTimeMs)}; // 2. Calcola Mood e Durata per questo periodo (usando gli indici di inizio) const DDC_periodMood = DDC_generateMood(DDC_currentPeriodStartTimeMs); const DDC_periodDurationMinutes = DDC_getDuration(DDC_currentPeriodStartTimeMs); const DDC_periodDurationMs = DDC_periodDurationMinutes * 60 * 1000; // Controllo di sicurezza per durata non valida if (DDC_periodDurationMs <= 0) { return null; // O gestisci diversamente } // 3. Calcola l'ora di fine di questo periodo const DDC_currentPeriodEndTimeMs = DDC_currentPeriodStartTimeMs + DDC_periodDurationMs; // 4. Verifica se il targetTimeMs cade DENTRO questo periodo [startTime, endTime) if (DDC_targetTimeMs < DDC_currentPeriodEndTimeMs) { // Trovato! Questo è il timeslice attivo. return { DDC_activeMood: DDC_periodMood, DDC_startTimeMs: DDC_currentPeriodStartTimeMs, DDC_endTimeMs: DDC_currentPeriodEndTimeMs, DDC_durationMinutes: DDC_periodDurationMinutes, DDC_durationMs: DDC_periodDurationMs, DDC_targetTimeMs: DDC_targetTimeMs, // Ora richiesta DDC_startTimestamp: new Date(DDC_currentPeriodStartTimeMs), // Ora di inizio come oggetto Date DDC_endTimestamp: new Date(DDC_currentPeriodEndTimeMs) // Ora di fine come oggetto Date }; } // 5. Se non è questo il periodo, avanza al prossimo // Il nuovo inizio è la fine del periodo appena calcolato DDC_currentPeriodStartTimeMs = DDC_currentPeriodEndTimeMs; } // Se usciamo dal ciclo while senza aver trovato il periodo (es. superato MAX_LOOPS) if (DDC_loopSafetyCounter >= DDC_MAX_LOOPS) { console.error("Simulazione interrotta: raggiunto limite massimo di iterazioni."); } else { // Questo caso dovrebbe essere raro se targetTimeMs >= EPOCH_START_MS console.error("Simulazione terminata senza trovare un periodo attivo (caso imprevisto)."); } return null; } /** * Funzione per ottenere il valore della luna */ export function DDC_getMoonValue(DDC_dateInput = Date.now()) { const DDC_currentTimeMs = DDC_dateInput; const DDC_elapsedTimeMs = DDC_currentTimeMs - DDC_EPOCH_START_MS; return Math.floor(DDC_elapsedTimeMs / DDC_INTERVAL_MOON); } function DDC_generateMood(DDC_dateInput = Date.now()) { // Combiniamo gli indici in un singolo valore intero a 32 bit. let DDC_hash = DDC_getEarthValue(DDC_dateInput) | 0; // Inizia con l'indice che cambia più spesso. '| 0' forza a intero 32bit. DDC_hash = Math.imul(DDC_hash ^ DDC_getTideValue(DDC_dateInput), 2654435761); // Moltiplica per una costante dopo XOR con la marea DDC_hash = Math.imul(DDC_hash ^ DDC_getMoonValue(DDC_dateInput), 2654435761); // Ripeti per la luna // Applichiamo ulteriori passaggi di mescolamento per aumentare la casualità apparente. DDC_hash = DDC_hash ^ (DDC_hash >>> 16); // XOR con se stesso shiftato a destra DDC_hash = Math.imul(DDC_hash, 2246822507); // Moltiplica per un primo grande DDC_hash = DDC_hash ^ (DDC_hash >>> 13); // Altro XOR shift DDC_hash = Math.imul(DDC_hash, 3266489909); // Altro primo grande DDC_hash = DDC_hash ^ (DDC_hash >>> 16); // XOR shift finale // A questo punto, 'hash' è un intero a 32 bit pseudo-casuale basato sugli indici iniziali. // Convertiamo l'hash intero (trattato come unsigned) in un numero decimale [0, 1). // `>>> 0` converte l'hash (potenzialmente negativo in JS) in un intero unsigned a 32 bit. // Dividiamo poi per 2^32 (4294967296). const DDC_randomValue = (DDC_hash >>> 0) / 4294967296; // Mappiamo il valore [0, 1) all'intervallo intero desiderato [1, 4]. const DDC_resultD = Math.floor(DDC_randomValue * 4) + 1; return DDC_resultD; } /** * Ottengo il valore letterale attuale della fase lunare basandosi sul giorno * @param {*} DDC_dateInput * @returns */ export function DDC_getLiteralMoonValue(DDC_dateInput = Date.now()) { // Ottengo i componenti dell'orario basandomi sulla zona 'Europe/Rome' const DDC_options = { day: 'numeric', // 'numeric' per ottenere il valore numerico (es. 9, 15) timeZone: 'Europe/Rome' }; // Uso formatToParts per ottenere i singoli componenti (ora, minuti) in modo affidabile const DDC_parts = new Intl.DateTimeFormat('it-IT', DDC_options).formatToParts(DDC_dateInput); let DDC_dayOfMonth = 0; DDC_parts.forEach(DDC_part => { if (DDC_part.type === 'day') { DDC_dayOfMonth = parseInt(DDC_part.value, 10); // Converte la stringa dell'ora in numero intero } }); if(DDC_dayOfMonth < 4) { return "Nuova"; } else if(DDC_dayOfMonth < 8) { return "Crescente"; } else if (DDC_dayOfMonth < 12) { return "Primo quarto"; } else if(DDC_dayOfMonth < 16) { return "Gibbosa crescente"; } else if(DDC_dayOfMonth < 20) { return "Piena"; } else if(DDC_dayOfMonth < 24) { return "Gibbosa calante"; } else if(DDC_dayOfMonth < 28) { return "Ultimo quarto"; } else return "Calante"; } /** * Funzione per ottenere il valore delle maree */ export function DDC_getTideValue(DDC_dateInput = Date.now()) { const DDC_currentTimeMs = DDC_dateInput; const DDC_elapsedTimeMs = DDC_currentTimeMs - DDC_EPOCH_START_MS; return Math.floor(DDC_elapsedTimeMs / DDC_INTERVAL_TIDE); } /** * Ottengo il valore letterale attuale della marea basandosi sull'ora * @param {*} DDC_dateInput * @returns */ export function DDC_getLiteralTideValue(DDC_dateInput = Date.now()) { // Ottengo i componenti dell'orario basandomi sulla zona 'Europe/Rome' const DDC_options = { hour: 'numeric', // 'numeric' per ottenere il valore numerico (es. 9, 15) timeZone: 'Europe/Rome' }; // Uso formatToParts per ottenere i singoli componenti (ora, minuti) in modo affidabile const DDC_parts = new Intl.DateTimeFormat('it-IT', DDC_options).formatToParts(DDC_dateInput); let DDC_hour = 0; // Calcolo l'ora attuale DDC_parts.forEach(DDC_part => { if (DDC_part.type === 'hour') { DDC_hour = parseInt(DDC_part.value, 10); // Converte la stringa dell'ora in numero intero } }); // Se è notte o pomeriggio ho alta marea if(DDC_hour < 6 || (DDC_hour >= 12 && DDC_hour < 18)) { return "Alta"; } return "Bassa"; } /** * Funzione per ottenere il valore della terra */ export function DDC_getEarthValue(DDC_dateInput = Date.now()) { const DDC_currentTimeMs = DDC_dateInput; const DDC_elapsedTimeMs = DDC_currentTimeMs - DDC_EPOCH_START_MS; return Math.floor(DDC_elapsedTimeMs / DDC_INTERVAL_EARTH); } /** * Funzione per ottenere il valore effettivo in parole della rotazione terrestre basandosi sull'orario attuale * @param {*} DDC_dateInput * @returns */ export function DDC_getLiteralEarthValue(DDC_dateInput = Date.now()) { // Ottengo i componenti dell'orario basandomi sulla zona 'Europe/Rome' const DDC_options = { hour: 'numeric', // 'numeric' per ottenere il valore numerico (es. 9, 15) minute: 'numeric', // 'numeric' per ottenere il valore numerico (es. 5, 30) timeZone: 'Europe/Rome' }; // Uso formatToParts per ottenere i singoli componenti (ora, minuti) in modo affidabile const DDC_parts = new Intl.DateTimeFormat('it-IT', DDC_options).formatToParts(DDC_dateInput); let DDC_hour = 0; let DDC_minute = 0; // Itero sui componenti per estrarre l'ora e i minuti DDC_parts.forEach(DDC_part => { if (DDC_part.type === 'hour') { DDC_hour = parseInt(DDC_part.value, 10); // Converte la stringa in numero intero } else if (DDC_part.type === 'minute') { DDC_minute = parseInt(DDC_part.value, 10); // Converte la stringa in numero intero } }); // Calcolo i minuti totali trascorsi dall'inizio del giorno const DDC_totalMinutesToday = (DDC_hour * 60) + DDC_minute; // Calcolo il numero di rotazioni di 5 gradi dividendo per 20 (tempo in minuti per ruotare di 5 gradi) return Math.floor(DDC_totalMinutesToday / 20) * 5; } /** * Funzione per l'aggiornamento dell'ora del label nel footer */ export function DDC_updateTime() { const DDC_now = new Date(); const DDC_hours = String(DDC_now.getHours()).padStart(2, '0'); const DDC_minutes = String(DDC_now.getMinutes()).padStart(2, '0'); const DDC_seconds = String(DDC_now.getSeconds()).padStart(2, '0'); const DDC_timeString = `${DDC_hours}:${DDC_minutes}:${DDC_seconds}`; // Trovo l'elemento di testo tramite il suo ID const DDC_timeLabel = document.getElementById('footer-time-label'); // Aggiorna il testo dell'elemento if (DDC_timeLabel) { DDC_timeLabel.textContent = DDC_timeString; } }