amphibian.online · docs/sound · 28.07.2026

Χάρτης ήχου — δομή, ροή, δυναμικά μέρη

Ο ήχος του site δεν είναι «κομμάτια ανά σελίδα». Είναι ένα μίγμα που δεν σταματά ποτέ: μια συνεχής βάση, λίγα σύντομα layers που τρέχουν συγχρονισμένα από κάτω, και ένα μέρος που το οδηγούν ζωντανά δεδομένα. Η αλλαγή mode δεν ξεκινά τίποτα — μόνο μετακινεί εντάσεις.

ΣυνοδεύειSOUND-PLAN.md · SOUND-BRIEF-MUSICIAN.md
ΚατάστασηΤίποτα δεν έχει υλοποιηθεί ακόμα
Ήχος σε αυτή τη σελίδαΣυνθετικός — δείχνει τη μηχανική, όχι τη μουσική
Πάτα «Sound» για να ξεκινήσει ο ήχος και οι γραμμές παρακάτω.
01

Τα εξαρτήματα και πώς συνδέονται

Πέντε πηγές, τρεις δίαυλοι, ένας γενικός διακόπτης. Ό,τι είναι μαύρο το γράφει ο μουσικός και είναι σταθερό αρχείο· ό,τι είναι κόκκινο το υπολογίζει ο κώδικας σε πραγματικό χρόνο και δεν υπάρχει ως ηχογράφηση.

BED A · stereo BED B · stereo LAYER · visuals LAYER · χάρτης PULSE · one-shots εναλλάξ, με crossfade στο τέλος τρέχουν πάντα, συγχρονισμένα ένα ανά χτύπο — από τα δεδομένα bedGain gain 1 gain 2 gain P layerBus shotBus masterGain = το flip «Sound» έξοδος equal-power crossfade — άθροισμα πάντα 1
Το κρίσιμο σημείο: τα δύο layers δεν σταματούν ποτέ. Η αλλαγή mode κινεί μόνο τα gain 1 και gain 2. Γι' αυτό η μετάβαση είναι ακαριαία και πάντα πάνω στον χρόνο — και γι' αυτό κάθε layer πρέπει να έχει ίδια διάρκεια και να δουλεύει σε κάθε συνδυασμό.
02

Τι είναι το καθένα

ο μουσικός

Bed — η βάση

Διάρκεια
3:30 – 5:00
Κανάλια
stereo
Μέγεθος
1,9 – 2,9 MB
Διαδρομή
streaming, 2 στοιχεία εναλλάξ

Παίζει από τη στιγμή που ανοίγει ο ήχος μέχρι να κλείσει. Κουβαλά την ταυτότητα. Μεγάλο επίτηδες: ο κόσμος το αφήνει ανοιχτό για ώρες.

ο μουσικός

Layers — οι διαφορές

Διάρκεια
16 – 32 δεύτ., ίδια σε όλα
Κανάλια
mono
Μέγεθος
90 – 190 KB το καθένα
Διαδρομή
decoded buffer, loop σε samples

4–6 συνολικά. Αναγνωρίσιμα αλλά όχι αυτάρκη — όψεις του ίδιου τόπου, όχι άλλα δωμάτια. Το mono δεν είναι γούστο: το stereo διπλασιάζει και το αρχείο και τη μνήμη.

ο μουσικός

Ουρές (tails)

Τι είναι
η ουρά μετά το loop end
Μορφή
επιπλέον μπάρες ή χωριστό αρχείο
Χωρίς αυτό
ακούγεται ραφή

Το πιο εύκολο να ξεχαστεί και το πιο ακουστό όταν λείπει. Δες §04.

ο κώδικας

Pulse — ο σφυγμός

Πηγή
ζωντανό HR από το WS
Υλικό
2–3 one-shots < 1 δεύτ.
Ρυθμός
κανένας — τον δίνει η καρδιά
Κανόνας
παλιά δεδομένα → σιωπή

Ο μουσικός παραδίδει τα δείγματα, όχι τον ρυθμό. Ο ρυθμός δεν υπάρχει ως αρχείο — συντίθεται τη στιγμή που χτυπά η καρδιά.

03

Μια συνεδρία, σε πραγματικό χρόνο

Κάθε γραμμή είναι ένα εξάρτημα και δείχνει την ένταση του στα τελευταία 30 δευτερόλεπτα — όπως οι γραμμές αυτοματισμού σε ένα DAW. Χρησιμοποίησε τα χειριστήρια πάνω και δες τι κινείται. Οι κάθετες γραμμές είναι συμβάντα πλοήγησης.

γράφτηκε από τον μουσικό υπολογίζεται ζωντανά συμβάν πλοήγησης
Πρόσεξε δύο πράγματα. Πρώτο: όταν αλλάζεις mode, η μία γραμμή ανεβαίνει ακριβώς όσο κατεβαίνει η άλλη — το άθροισμα μένει σταθερό, δεν υπάρχει «βούλιαγμα» στη μέση. Δεύτερο: όσο ο ήχος είναι ανοιχτός, η γραμμή του bed δεν κουνιέται καθόλου. Αυτή είναι η συνέχεια που κρατά το site ενιαίο ενώ ο επισκέπτης κινείται.
04

Γιατί ζητάμε ουρά — η ανατομία του loop

Πάνω: αν το αρχείο σταματά στο loop end, η αντήχηση κόβεται μαχαίρι και ακούγεται ραφή σε κάθε κύκλο. Κάτω: με ρενταρισμένη ουρά, ο ήχος συνεχίζει πάνω από την αρχή του επόμενου κύκλου και η ραφή εξαφανίζεται. Τα fades στα άκρα δεν λύνουν το πρόβλημα — το κάνουν αδύνατο.
05

Η καμπύλη της μετάβασης

Δύο ήχοι που σβήνουν γραμμικά δίνουν άθροισμα ισχύος που βουλιάζει ~3 dB στη μέση — ακούγεται σαν τρύπα. Οι καμπύλες equal-power (cos/sin) κρατούν την αντιληπτή ένταση σταθερή. Είναι δουλειά του κώδικα, αλλά αφορά τον μουσικό: σημαίνει ότι στη μέση της μετάβασης ακούγονται και τα δύο layers μαζί, στο 71% το καθένα.
06

Ποιος κάνει τι — mix & master

Η πιο συχνή παρανόηση: ο μουσικός δεν κάνει master «για το site». Κάνει master ουδέτερα και με χώρο, και ο κώδικας κάνει τα υπόλοιπα ζωντανά.

Ο μουσικός — στο στούντιο

  • −20 έως −18 LUFS integrated. Όχι −14: είναι παρουσία στο βάθος.
  • ≤ −2 dBTP true peak — το lossy encoding υπερβαίνει.
  • ±0.3 LU μεταξύ όλων των layers. Η πιο συχνά παραλειπόμενη απαίτηση.
  • Χωρίς brickwall limiting. Δεν ανταγωνίζεται κανέναν σε ένταση.
  • High-pass 40–50 Hz· έλεγχος σε mono· χωρίς fades στα άκρα του loop.
  • Παραδίδει 48 kHz / 24-bit WAV — ποτέ έτοιμα web αρχεία.

Ο κώδικας — στον browser

  • Encoding σε Opus + AAC από τα masters. Ο μουσικός δεν το αγγίζει.
  • Όλα τα fades: crossfades mode, fade-in στο άνοιγμα, σίγαση σε background tab.
  • Loop με loopStart/loopEnd σε samples, ώστε το padding του codec να μένει έξω από τον κύκλο.
  • Συγχρονισμός — όλα τα layers ξεκινούν στο ίδιο tick και δεν σταματούν.
  • Δυναμική — φίλτρα και εντάσεις που ακολουθούν τα δεδομένα (§07).
  • Προϋπολογισμός — τίποτα δεν κατεβαίνει πριν πατηθεί το «Sound».

Πρακτικά: κάθε φορά που ο μουσικός μπαίνει στον πειρασμό να «σβήσει ομαλά» ή να «δέσει» δύο μέρη μεταξύ τους, η απάντηση είναι μην το κάνεις — παράδωσέ τα χωριστά και άφησέ μας να το κάνουμε ζωντανά. Ό,τι ψηθεί μέσα στο αρχείο δεν μπορεί πια να αντιδράσει στον επισκέπτη.

07

Τα δυναμικά μέρη — ό,τι οδηγούν τα δεδομένα

Αυτά είναι που δεν μπορούν να ηχογραφηθούν. Ο μουσικός παραδίδει υλικό και όρια· η τιμή τη στιγμή της αναπαραγωγής έρχεται από το ίδιο WebSocket που ταΐζει τα γραφήματα.

Κανάλι δεδομένωνΟδηγείΕύροςΤι χρειάζεται από τον μουσικό
heart_rateρυθμό των one-shots παλμού40–190 bpm 2–3 δείγματα παλμού που δουλεύουν και αραιά και πυκνά
heart_ratecutoff φίλτρου στον layerBus400 Hz – 6 kHz, πολύ αργό υλικό με αρκετό φασματικό περιεχόμενο ώστε το φίλτρο να ακούγεται
speedένταση ενός layer κίνησης0 – 1 ένα layer που να στέκει και στο 0 (πρέπει να μπορεί να λείπει)
activityποιο layer είναι ενεργό ανά άθλημα4 καταστάσεις να δουλεύουν όλοι οι συνδυασμοί — δες τη μήτρα συνδυασμών
coverage / freshnessσιγεί τον παλμό σε κενόon / off τίποτα — αλλά να ξέρει ότι ο παλμός θα λείπει συχνά
ώρα ημέραςένταση bed τη νύχτα−6 dB τα ξημερώματα bed που αντέχει να ακούγεται πιο σιγά χωρίς να χάνεται

Ο κανόνας που δεν σπάει: όταν τα δεδομένα λείπουν, το δυναμικό μέρος σιωπά — δεν παγώνει στην τελευταία τιμή και δεν φαντάζεται σφυγμό. Δοκίμασέ το με το flip «Κάλυψη → Νυχτερινό κενό» πάνω: ο παλμός σβήνει και μένει μόνο ό,τι έγραψε ο μουσικός. Είναι η ίδια αρχή με τα γραφήματα, που δείχνουν κενά αντί να τα στρογγυλεύουν.