- Use createScriptProcessor instead of Tone.UserMedia for transmit - Use analyser.getByteFrequencyData() for proper visualizer - Keep per-user timing with userTimelines Map for listen - Remove Tone.js dependencies from transmit - Restore proper AudioContext usage