No sounds will be played.
This is only on the live server. Having everything locally and on the same machine (app running in browser) does not lead to this bug.
Observations
As mentioned above, I currently am only able to observe this when using a mobile device connected to the live server.
It seems like not all tracks are affected: issue_82_stretched, for instance, seems to work just fine.
Connecting after the track has started without dis- and reconnecting does not work either.
The partials are distributed correctly, it seems. With only on connecting client, after reconnecting (going from 0 to 1 connected client) the reconnected client receives the 1 partial that is in the track (in case of the click track).
After reconnecting, stopping and starting the track leads to the playback starting correctly.
I made two test tracks. One with just one really long partial, and another with many short ones one after the other. The one with the really long partial doesn't work (the click track is also just one really long partial). The one with the short ones does work.
Current hypothesis
The last point above is a big hint I think. If the partial has already started when the client joins, playback never starts, even though something is being distributed to the client. This also explains why Goldklang doesn't work, as it also is a collection of a small number of very long partials. The stretched tracks work, because here partials start all the time. One might miss some but there are also a lot that are audible.
Cause & Solution
The reason for this apparently was two-fold. On the one hand, joining after all partials have already started set the starting time of the oscillator too far in the future. We now start the oscillator immediately after creation, with gain set to 0. On the other hand, there was a bug in the partial distribution: Partials were added to the map of partials that were distributed in the last iteration, without them really having been distributed. Then, after a client joining, the joined client only got one partial where it should have gotten all.
For the fix to work we need to upload a new version of the app to the stores. So I'll leave this issue open for now.
How to reproduce On live server:
Observations
Current hypothesis The last point above is a big hint I think. If the partial has already started when the client joins, playback never starts, even though something is being distributed to the client. This also explains why Goldklang doesn't work, as it also is a collection of a small number of very long partials. The stretched tracks work, because here partials start all the time. One might miss some but there are also a lot that are audible.
Cause & Solution The reason for this apparently was two-fold. On the one hand, joining after all partials have already started set the starting time of the oscillator too far in the future. We now start the oscillator immediately after creation, with gain set to 0. On the other hand, there was a bug in the partial distribution: Partials were added to the map of partials that were distributed in the last iteration, without them really having been distributed. Then, after a client joining, the joined client only got one partial where it should have gotten all. For the fix to work we need to upload a new version of the app to the stores. So I'll leave this issue open for now.