A method of providing a collaborative session over a network, comprising: setting, by a distribution server (130, 300), a global latency for the collaborative session, the collaborative session comprising a series of geographically-separated temporally-coordinated events including an audio performance, the global latency being: greater than a longest latency for a plurality of client devices engaging in the collaborative session; defined as a function of a temporal rate for the series of temporally-coordinated events, the temporal rate comprising a number of beats per minute for the audio performance; and defined as a time period equal to a non-zero number of beats of the audio performance; and during the collaborative session: receiving, by the distribution server (130, 300), data streams from the plurality of client devices communicatively coupled to the distribution server, a given data stream being received from a given client device of the plurality of client devices; and synchronising presentation of the received data streams on the plurality of client devices to enforce the global latency, wherein synchronising presentation of the received data streams comprises, by the distribution server (130, 300), at a plurality of times during the collaborative session: measuring latencies for the plurality of client devices; and determining values for a set of non-zero delays to add to the received data streams to enforce the global latency, the values being determined as a function of the global latency and the measured latencies; and wherein the collaborative session comprises at least one of audio and video content and the method comprises, by the given client device: capturing audio and/or video data using at least one input device (275, 280) of the given client device; and encoding, using an encoder of the given client device, the captured audio and/or video data to create the given data stream. setting, by a distribution server (130, 300), a global latency for the collaborative session, the collaborative session comprising a series of geographically-separated temporally-coordinated events including an audio performance, the global latency being: greater than a longest latency for a plurality of client devices engaging in the collaborative session; defined as a function of a temporal rate for the series of temporally-coordinated events, the temporal rate comprising a number of beats per minute for the audio performance; and defined as a time period equal to a non-zero number of beats of the audio performance; and greater than a longest latency for a plurality of client devices engaging in the collaborative session; defined as a function of a temporal rate for the series of temporally-coordinated events, the temporal rate comprising a number of beats per minute for the audio performance; and defined as a time period equal to a non-zero number of beats of the audio performance; and during the collaborative session: receiving, by the distribution server (130, 300), data streams from the plurality of client devices communicatively coupled to the distribution server, a given data stream being received from a given client device of the plurality of client devices; and synchronising presentation of the received data streams on the plurality of client devices to enforce the global latency, receiving, by the distribution server (130, 300), data streams from the plurality of client devices communicatively coupled to the distribution server, a given data stream being received from a given client device of the plurality of client devices; and synchronising presentation of the received data streams on the plurality of client devices to enforce the global latency, wherein synchronising presentation of the received data streams comprises, by the distribution server (130, 300), at a plurality of times during the collaborative session: measuring latencies for the plurality of client devices; and determining values for a set of non-zero delays to add to the received data streams to enforce the global latency, the values being determined as a function of the global latency and the measured latencies; and measuring latencies for the plurality of client devices; and determining values for a set of non-zero delays to add to the received data streams to enforce the global latency, the values being determined as a function of the global latency and the measured latencies; and wherein the collaborative session comprises at least one of audio and video content and the method comprises, by the given client device: capturing audio and/or video data using at least one input device (275, 280) of the given client device; and encoding, using an encoder of the given client device, the captured audio and/or video data to create the given data stream. capturing audio and/or video data using at least one input device (275, 280) of the given client device; and encoding, using an encoder of the given client device, the captured audio and/or video data to create the given data stream.