Store and present Beep assets under Audio/beep while keeping legacy Audio/general reads working so existing files remain accessible during the directory transition.
Use the musicAudioFiles form field on music.html so the page matches the multer configuration for /api/upload/music-audio and stops returning Unexpected field.
Use the Create station method set from the CC:Tweaked integration docs to identify attached train stations even when the peripheral type string is not reported as train_station.
Detect train station peripherals from all discovered names and automatically write station_identity.cfg from the physical station identity so attached main hosts stop falling back to manual slave setup.
Avoid prompting manual slave setup on main hosts when the train station block is attached somewhere other than the back side, and log the detected side for easier diagnosis.
Switch generated station audio entries from en-* to ja-* and update the generator flow so Chinese plus Japanese audio imports use the new suffix consistently.
Update the generator and temp broadcast flows to send the new Fish Audio model and reference IDs so Chinese and secondary-language audio use the latest requested voice configuration.
Keep the active music stream attached until Audio.stop runs so stop requests finish the stream reader cleanly and the next music playback can start again without getting stuck behind the previous stream.
Stack the console layout vertically on smaller screens, wrap the action toolbar, collapse file rows into compact mobile cards, and make the bottom console, modal, and toast areas usable on phones without desktop splitters.
Make monitors optional so slave nodes can boot and play audio in terminal-only mode, while still using the monitor UI automatically when one is present.
Remove station_name from the slave identity config and prompt for station code and platform on startup when no train station peripheral and no usable identity file are present, so slave nodes can be configured interactively on first boot.
Allow station_broadcast to run without a train station peripheral on the back, add a local station_identity.cfg override for station name/code/platform, and display the active station code, platform, and identity mode so slave nodes can be grouped to a platform manually.
Merge stations with the same station code and platform into one logical target, and expand music and temp broadcast playback to all online slave nodes while the console and picker UIs show grouped station entries with node counts.
Add an Audio/voice directory with upload and preview support, and expose it in the console file manager so the structure now shows Configuration, Music, Voice, Beep, and Station.
Add an Audio/music path for uploaded music, keep the existing general audio directory as the Beep group, and update the console and music page so the file manager now shows Configuration, Music, Beep, and Station with matching upload and preview routes.
Allow the console and music page to upload common audio formats, expand music track detection and playback source selection beyond wav/dfpwm, and update station list name normalization so common extensions resolve consistently. Bump the station build to v1.0.6.
Bump the station build to v1.0.5, reduce live WAV chunks to 0.25 seconds, and queue decoded samples in a synchronized multi-speaker mode so multiple speakers stay aligned during streaming playback.
Bump the station build to v1.0.4, reduce live WAV chunk size to 0.5 seconds, and keep native speaker queues fed during streaming instead of draining after every chunk so playback is less jittery and stays closer to real time.
Bump the station build to v1.0.3 and send decoded WAV samples through each speaker's native playAudio path before falling back to controller.playAudioAll, with logs to show which output path was used.
Bump the station build to v1.0.2 and decode streamed WAV chunks into PCM samples on the client before feeding playAudioAll/playAudio, while keeping the HQ WAV path as a fallback for decode failures.
Add a station build version counter, show it on the monitor and terminal header, log it at startup, and report it to the server during register and heartbeat so deployed client versions are visible during troubleshooting.
Increase live WAV chunk size to one second and log chunk acceptance, queue depth, and retry state on stations so the HQ speaker path can be diagnosed from runtime logs.
Slice realtime WAV audio into small self-contained chunks on the server and feed them into the HQ speaker WAV queue on stations so music can start playing before the full file finishes transferring.