NOTAM Meetups: Spring 2023

:railway_track: :steam_locomotive: :railway_car: :railway_car: :railway_car: :railway_car: :railway_car: We are starting up again with the Online #SuperCollider Meetup at Notam. First meetup is Monday next week, January 9th, at 7PM GMT+2.

As in the past, these will happen at 7pm CET (Oslo time). The meetups are occurring online-only via Zoom , and are graciously organized by Notam .

Free and open to everyone, as usual.

SuperCollider meetup:
Meeting ID: 974 3258 0111
Link: Launch Meeting - Zoom

At these meetups, SuperCollider users of all skill levels get together to share ideas, frustrations, help each other and show off projects and workflows in an inspiring and friendly way.

Follow this post using the bell icon (right) to see updates to the schedule, and more specific information about meetup topics.

If you have accessibility related requests or questions about the meetup, please do not hesitate to contact me ( @eirikblekesaune ) and I will will do my best to address them.

All community events at Notam fall under the NOTAM Code of Conduct to make them as inclusive as possible. Please follow the link and read the full Code of Conduct before joining an event: Notam Code of Conduct - Notam

Looking forward to see friendly faces from all parts of the globe in the Zoom room!:smiley:
:last_quarter_moon_with_face::new_moon: :waxing_crescent_moon: :first_quarter_moon: :waxing_gibbous_moon: :full_moon: :full_moon_with_face: :full_moon::waning_gibbous_moon: :last_quarter_moon: :waning_crescent_moon: :new_moon::first_quarter_moon_with_face:

The meetup dates this fall season are:


This evening 2023-01-09T18:00:00Z is the first NOTAM SuperCollider meetup for 2023!

At the last meetup in 2022 we aimed to get some pulses beating and patterns flowing, but we actually didn’t get to it. So for this evening we will try to re-vamp rhythms, both as a topic and as actual beeps and pops in somewhat organized time structures.

Please don’t hesitate to bring your own rhythmical snippets and/or masterpieces for all of us to enjoy.

And, if you feel like talking about something completely different, a project you have been working on, a problem your stuck with, please do.

Or, if you just wanna hang out and be cool, that is most certainly cool too! :sunglasses: :dancer: :man_dancing:

And then the first NOTAM SuperCollider meetup has been wrapped up, and it was supernice hanging out, discussing various tricks and methods for using SuperCollider. :weight_lifting_woman: :biking_man:

For those who could not make it this time, the next meetup is 2023-02-06T18:00:00Z

Over the course of the upcoming meetups we will continue to explore various ways to work with rhythms in SuperCollider.

I have created a GitHub repo where I will put up all contributions from the participants:

Feel free to follow it on GitHub and stay tuned for upcoming examples, tricks, references etc. If you want to contribute with examples etc. please submit pull request and the like.


I mentioned my weekly(-ish) stream sessions in today’s meetup, but (my wife alerted me to the fact that) I gave the wrong weekday! If I said Thursday, that’s wrong. I currently stream on Tuesdays!

Very nice session everyone! I forgot that I also had a problem with array / Pkey selection we discussed about. There is also this solution using @_ operator (don’t know what is the name of it). You can read array’s outside of the pattern with it.

~freq=[100, 200, 400, 500, 600];
~amp=[0.1, 0.5, 0.6, 0.3, 0.6];

~freq=[100, 200, 400, 500, 600].scramble;
~amp=[0.1, 0.5, 0.6, 0.3, 0.6].scramble;

	\instrument, \default,
	\choose, Prand([0,1,2,3,4], inf),
	\dur, Pseq([1/16], inf),
	\freq,Pseq([Pkey(\choose).collect(~freq@_)], inf),
	\amp, Pkey(\choose).collect(~amp@_),


1 Like

It isn’t an operator. @ is an operator, with different meanings depending on context. _ represents the index (see the help on partial application).

The baseline way to address an array is with the method at. The full way to write out the expression is .collect { |index| }. Partial application makes the index argument implicit, so it doesn’t have to be declared and then used: .collect(

Back in SC2 days, I believe, someone decided .at was too verbose and added the operator @, which for arrays simply redirects to at. So .collect(~freq @ _) is only a shorter way to write the first version, nothing more. (Note that I added spaces around the binary operator, as I normally do in my own code, to make it clear that the two punctuation marks do not fold down into a single operator. They are two distinct syntactic elements. Many users favor a style of minimal whitespace but I don’t fully agree with that.)

SC3 introduced C-style array indexing, do you can also write .collect { |index| ~freq[index] } or .collect(~freq[_]). The brackets simply compile to an at call (that is – key concept – array indexing in SC eventually ends up with at).

Here’s a case, btw, where clever, compact syntax makes it harder for users to understand what is going on.


1 Like

Yup for sure. I had that Pkey / array problem back in 2017 in when I was enrolled a year long SuperCollider course and my teacher Alejandro Olarte showed that solution. Never really investigated futher what it actually was.

In the meetup redFrik showed this other solution. We discussed about how to select freqs/durs from the same array.

	#[dur, freq], Pseq([
		[0.2, 400],
		[0.3, 500],
		[0.4, 600],
		[Rest(0.6), nil],
		[0.7, 700],
		[0.8, 800],
		[0.9, [600, 700, 800]]
1 Like

Dear Meetup SC people,
I have finally uplaoded some sketches and notes from the previous meetup here at the repo:

Next meetup is next week. I’ll post some more information about it soon. And, if anyone want to present something, please don’t hesitate to contact me.