Refactors LC3 file handling to stream frames byte-by-byte from disk instead of loading the entire file into memory. Adds _lc3_file_byte_gen generator function that skips the 18-byte LC3 header, reads frame size headers, and yields individual bytes with optional looping. Removes read_lc3_file usage and itertools.cycle approach in favor of the new streaming generator.
Modifies read_lc3_file to collect LC3 frames in a list before joining, and updates multicast streamer to write each LC3 frame to all BIS queues in the BIG. Previously the entire LC3 file was concatenated into a single byte string without frame boundaries.
Updates all audio source references in config and demo mode from WAV to LC3 format. Removes obsolete WAV test files including wave_particle samples in multiple languages (de, en, es, fr, it, pl) at various sample rates, test tones, and unused announcement files. Refactors demo content handling to use kwargs for stream name and program info configuration.
Adds a selectbox in Demo mode UI to choose between program material and a 1 kHz test tone. Includes test tone WAV files at 16/24/48 kHz sample rates. The server detects and persists the demo content type based on the selected audio source files.