Questions for a live stream

Some time later this month, I’m planning to a SuperCollider live stream. One of the things I’d like is to do with it is present some long-form discussions/walkthroughs/tutorials of specific questions or areas of interest - basically, the kinds of things often asked on this forum, but in a more interactive live format, and hopefully taking the time to really dig into the topic, show examples, answer questions etc.

I’d love some suggestions of topics or prompts. Some guidelines:

  • I’m thinking of something like 20-40 minutes per topic, though I wouldn’t be opposed to doing much longer for the right thing - so, deep/tricky/complex questions are encouraged!
  • I’d like to focus primarily on real challenges people are encountering in SC in their actual projects - no need to over generalize your questions: ask about what would help you move forward with your project / build your understanding — I will try to make the discussions general enough to be useful to other people, but I do want to also focus most on real-world scenarios.
  • I’ll do the stream some time in the european evening on a weekend (e.g. 7pm Berlin / 1pm NYC / 10pm Seattle) - sorry but for now, please hold off posting questions unless you think you could plausibly watch the stream - I’d really like to make this an open dialog rather than a non-interactive video. I can be more flexible about time in the future.
  • If you are interested in someone else’s question or prompt, please like the reply so I can get a sense of where interest is.
  • If there’s an existing question on the forum that might work for a presentation like this, please reply and link to it.

These can be really broad or really specific, e.g.:
“I can build SynthDefs, but I don’t fully understand them and I’d like to know more about whats going on under the hood.”
“I built this SynthDef I like, but the sound isn’t quite there - what can I do to make it really shine?”
“I want to control SuperCollider with a MIDI controller but don’t know where to start”
“WTF is a Pdef, should I use it?”
“My code is a sprawling mess - how can I make my project X more organized and maintainable?”

Looking forward to seeing what people come up with!

14 Likes

Here’s a topic: how do you approach developing a mere patch into a completed work of music with a beginning, middle, and end?

3 Likes

I think this is a great idea. More precisely I see a lot of people having issues with proper startups of projects. Often people end up having code that requires them to manually evaluate certain functions, synthdef definitions, buffer allocations, etc, etc before having achieved the system state they need to listen to the music they have made. So something boring like a good, solid startup routine that allocates resources and prepares everything in the right order I think is a great subject!

3 Likes

I’d love to see other people’s approach to this. Something I’ve struggled with, and still do.

I’ve come up with a (wayyy over-kill) solution based on the idea of targets. Looks something like this…

var subtargets = JHSubTargets()
.add(\loadSynthDefs, JHSubTargetPart(depends: [], func:{
	PathName(~pwd +/+ "synthDefs").files.do{ |f| f.fullPath.load };
	PathName(~pwd +/+ "synthDefs/mixins").files.do{ |f| f.fullPath.load };
}))
.add(\loadPreviousState, JHSubTargetPart(depends: [\loadSynthDefs], func:{
	// ...
}))
.add(\defineMainOSCMap, JHSubTargetPart(depends: [\loadPreviousState], func:{
	// ...
}))
....

JHLauncher(subtargets)
.addTarget('Full Piece', [\defineMainOSCMap, \loadPreviousState])
.addTarget('Full Piece - No Load', [\defineMainOSCMap])
.addTarget('Only External OSC', [\defineExternalOSC])
.addTarget('Full Piece - No Map', [\loadPreviousState, \defineOSCRelaySynth])
.addTarget('Synth Tester', [\synthTester])	

Which is all in a file called targets.scd;
Then later

JHImport("targets.scd").(); // basically .load 
JHLauncher.launchTarget('Synth Tester')

Which will look at all the dependencies of ‘Synth Tester’ and evaluate them in order and nothing else. I find it particularly useful when: you just want to work on a small part of the project, when using something like flucoma as you can have a remakeDataSets target, or when you quickly want to launch a test (e.g. for speaker arrangement).