Thanks, SSC, for the suggestion to use a TriggeredSoundToGlobalController.
That almost worked. There was a period of about 2 minutes before the sound would be audible. I think this is becuase !LocalTime will only become non-zero and trigger the TSTGC after one second. So initially the !ClockFreq would be 0.5 Hz. Stepping through the array of 64 VCS controls at 0.5 Hz takes about 2 minutes. !ClockFreq sets the duration of the TimeIndexSound. Even though the "HoldRateDuringLoop" parameter is not enabled it seems that changing the Duration field of the TimeIndex Sound has no effect until it has completed a full cycle.
To get round this I changed the TSTGC Trigger parameter to:
!localTime eq: 0
This should just trigger when the Sound first starts.
This looks like a useful design pattern: using a TriggeredSoundToGlobalController, enabling AllowLiveOverride and setting the Trigger to !localTime eq: 0.
It's a bit like an "OnLoad" event.