The clients are audio endpoints. There is one client per speaker, and there
is a stereo pair of speakers. The audio chain starts at a third "source"
computer where audio is played/controlled, passes into the software
Gstreamer, is sent to the client computers over the LAN using RTP where it
is received and processed again using Gstreamer in order to perform DSP
(this implements the loudspeaker crossover filtering) and then is rendered
via an audio interface to amplifiers and the loudspeaker drivers. On the
clients, Gstreamer uses the RTP timestamps and the local disciplined clock
to regulate the playback rate. This helps to correct for dropped packets and
for differences in the playback rate of the DACs, which have their own
internal clocks that are independent of the system clock. There are
certainly lots of balls in the air with this setup, but I am building active
wireless loudspeakers with onboard self-contained amplification that use
home WiFi as a means to distribute the audio signal. This is about the best
way to do that as far as I know.