Michael - totally cool with me; feel free to fork and have at it! :) I am not familiar with how Docker interacts with host USB audio devices. My image uses the --silent flag to avoid hitting (non-existent) audio devices in the Docker container. Fortunately you can run rebuild Docker images pretty quickly locally so it's easy to tweak and mess around with stuff. Also, you can technically run Docker images on any computer so it may be possible to run Docker containers on a box you have with said USB audio hosts and you can expose those hosts so that your image can use them.
Stuart - I think you could accomplish your idea with some work over my Docker image. AFAIK, the --silent flag does not mean no sound is produced; it just means no audio is outputted during the running of the program. You could set something up like:
1. Let ChucK produce 30 seconds of audio (with --silent it should take less than 30 seconds to produce 30 seconds of audio) and save it to an audio file. Look at
export.ck in the chuck-renderer repo for how to do this.
2. Streaming clients grab this 30 seconds of audio and start playing it.
3. While the above is occurring, you produce another 30 seconds of audio.
4. Send the next audio file to clients and they queue it up after the first segment ends.
5. Rinse, repeat.
This has the added benefit of letting ChucK shut down between producing segments to do garbage collection. :) You might need some annealing to get the separate audio to sound "together" but this should get you a "Hello, World ChucK stream."
Good luck!
mc