Workshop reports and resources

So in the past year or so I’ve helped run a couple of live-coding workshops. These were the CodeXHipHop nights that Buki Kekere (who I’ll make aware of this forum now) started.

Seeing as we’re wanting to use this primarily to help people organise and run events I thought it may be useful for me to share the slides and resources I created for the workshop, along with a bit of info about the aims, outcomes and feedback.

This thread is mainly intended to act as a starting place for other people to share information and resources from workshops they have done, with the aim being to make it easier for others who want to run workshops in the future. Either by re-using workshop plans, or using the information as the basis for their own.

Code x Hip Hop

The workshops were designed for those who had zero to a little experience with coding and/or music. Age range was about 18 to 30. Group size was about 24 for the first one and about 15 for the second. The workshops were planned to be about 2 hours, with a 15 minute break in the middle.

Plan

Gibber was chosen as the main focus, both for ease of installation and because teaching javascript seemed in-line with the aim of introducing more general programming skills.
The first workshop also used live code lab to introduce the idea of strings as patterns when creating music, but this was dropped for the second as it seemed to make more sense just to cover that in Gibber using the Drum patterns.
The html5 drum machine site was also used, both to introduce the idea of patterns, but also to make sure everybodies browsers could make sound and do an initial “is it working” check.

Structure

Both workshops started with a brief intro of myself and some information about algorave and live coding, before starting to talk about the drum machines used in hip hop. Slides linked below.

After the intro, the workshop started with the HTML5 drum machine, creating patterns and changing the sounds using the controls, and then link this into doing the same in Gibber, but defining patterns and control changes in code.

In the second workshop, mouse control was introduced at this point with the aim being to make things seem more “playable” as this was felt to be lacking in the first workshop.

From here things moved onto modifying global tempo, bass synthesis and sequencing, and adding effects.

The take away documents, emailed to participants afterwards covered most of this with code examples. The gist below contains all the information.

Feedback

Participants generally seemed to enjoy the workshops, though a couple said that it didn’t “feel very hiphop” and that the pacing was a bit off at times.

Takeaways

The FreeSound object in Gibber seems like it would be an excellent fit for a hiphop based workshop, I just didn’t know about it when putting the workshop together.

There’s plenty more I could say, but I’ll leave it at that for the moment. Please ask questions, and/or contribute your own workshop information. We’ll probably reorganise the information at some point to make it more accesible and searchable, but we have to start somewhere.

3 Likes

Hi all,
I renamed this thread to ‘workshop reports and resources’, make sense?

I ran six school workshops with year 3s (mostly 7 year olds) this week, here’s a quick report. Questions/thoughts welcome!

I did them as participatory ‘algorithmic drumming circles’, I wrote about an earlier iteration for ICLC 2019, you can read the paper here:
iclc.livecodenetwork.org/2019/papers/paper76.pdf

I worked with Y4s (mostly 8 year olds) before, but these Y3s were more able to get into it, they had better grasp of the keyboard, I think because the school had managed to give them a chromebook each. I’ve realised it’s really important to work with a whole year group. Picking out a small group of children, or a single class, is not good for the harmony of the school!

Still, the biggest challenge was getting them used to the editor, a lot of them expected the backspace key to delete the character under the cursor, rather than the one to the left. They all got it after a bit of prompting, though.

So I could cover the whole year over two days, I ran six sessions, each with a group of eight, for an hour. I had TidalCycles running on raspberry pi’s, set up on the floor, each with a speaker (a passable powered studio monitor).

For the first day, I ran it like this, with the children in a circle:

The second day, I changed a few things including making more of a horseshoe:

This worked better, I was included in the circle, and the children could better see the screen. I also changed some other things the second day after reflecting on the first day, the structure I ended up with

  • Getting them to sit on mats for a few minutes,
    • introducing myself as an artist who likes to code (I was there as part of a project is about getting ‘real’ artists into schools)
    • Getting them to guess what we were going to do (getting them to identify the computer and speaker)
    • Motivating and explaining things by showing them a couple of short video clips - one of me playing as part of CCAI at BlueDot festival, so they can see the code as part of a performance, and the start of the guardian video, the first minute or two being a really nice intro showing diverse voices explaining how expressive and easy it is to get into live coding
    • Showing a picture of a ‘real’ drumming circle, explaining that it’s about listening to each other and playing together, saying we’ll do something similar but with computers
    • Showing the editor, showing them how the editor works and demonstrating how to make either a high and low sounds

Then we went straight into making some sounds, I got half the group typing in "hi" and half typing in "lo", and pressing alt-enter to run it. (I found at this point having all the speakers at low volume was key, it was actually easier to pick out the sounds from the closest speaker then.) They all picked up holding down the keyboard modifiers (shift or alt) pretty quickly. With the network sync, they were already playing together, hitting a drum in unison.

I then got them to all do alt-h to stop the sound, and talk them through repeating the sound by adding *2 or *3 to make e.g. "hi*3". This took getting them to use cursor keys and correcting mistakes with backspace… Actually a challenge as it’s not clear that you place your cursor to the right of the character you want to delete or insert. The later sessions I made this clearer in my demos which helped.

The overall music at this point was already really great, with polymetrical effects. With one group I got them to stand up and walk around the circle listening to the rhythms at this point.

Some kids were already jumping ahead at this point, by realising you could run multiple patterns on separate lines, or put in extra words inside the speech marks. Either way I stopped them a couple more times and introduced more ‘tricks’ and ‘secrets’ to make ‘stranger patterns’.

  • making a sound
  • repeating sounds
  • making sequences of repeating sounds
  • transforming those with ‘functions’ - scratch (which granulates and reverses the sounds and sequence), faster which speeds up playback of sequence and audio rate (using hurry), slower which does the opposite, crunch which does bitcrushing
  • applying those functions conditionally with every and sometimes

That was about the right amount to get through inside an hour, leaving plenty of time for experimentation and play, allowing them to explore polyrhythm and other interference patterns while allowing them to take advantage of higher-order functions.

There were certain tendencies I became aware of

  • focussing on sound rather than pattern. I learned to constrain them to just two sounds - high and low (although they each had their own high and low drum samples)… Otherwise they’d just spend the whole hour triggering different sounds instead of focusing on the patterns, transformations of them, and listening to each other. If they asked for more sounds I’d let them play with some in the last five minutes though.
  • not wanting to delete their code. I decided not to challenge this one at all, and instead show them how to have multiple patterns going at once, and how to switch them on and off (with alt and a number shown next to each pattern). I found some of them really wanted to share the patterns they made at the end, so we went round playing each one. Although they all seemed very happy to play in the drumming circle, some didn’t want to play their pattern alone, I put no pressure on them.
  • pushing things to extremes, doing faster $ faster $ faster "hi*10000000000000" etc. I’d normally encourage this kind of thing, but this time their teacher would ask them to try doing a less intense one for a while. On reflection this was probably for the best.
  • trying to typing in a particular rhythm they have in mind, rather than exploring creatively. Just a bit of encouragement to just try things out was enough to keep them asking ‘what if I do this?’ rather than ‘how do I do this?’

Overall feedback from them was really good. Some said they wanted to do melodies, or beatbox sounds etc. Maybe I could mix in some pentatonic basslines or something, but at least for an hour workshop, really constraining the sounds basically to a kind of bongo each does seem for the best. When they did ask for more sounds during the workshop, giving them some sound effects to explore seemed to satisfy them anyway… and made it about exploring movement rather than just surfing through sample libraries.

A lot asked if they could run it at home / get it on steam etc - “how do we get onto this website?”. My biggest regret is Tidal’s rather difficult install process, the next step is solving that! Plus maybe having funding to give them a tidal pi zero each… For now I’ll get some information to them with links to a range of live coding environments so they can continue their exploration.

For this project I also need to make an extra activity for the teacher to run - I’ll do this around hydra, which they should be able to get running on their chromebooks straight away, and get similar instant results in the visual domain.

Anyway, masses of fun! All 48 children were really engaged and into it, and I learned a lot and improved the sessions as I went. There was a full-on flossing session at the end of the last one.

6 Likes

Thankyou guys, since discovering the live coding scene the possibilities in an educational context have really grabbed me.
This is all really useful content, I’m hoping to do something similar in the next year or so at the local high school(s) if I can get time and resources together

2 Likes

I was asked for a TidalCycles workshop. Any advice ? If you gave one, did you film it ?
edit: i found two docker containers for TC on github. Is there one which is up to date ?
Thanks.

For those who are interested, this my workshop report.

I gave a TC workshop sunday 9th. The two participants didn’t manage to install TC (macos issue : they can’t install tidal, even with stack instead of cabal). So I made a demo.
They were happy about it.

My goal at workshops is to give the impression that using the tool I introduce is easy. So i spend a lot of time designing a progressive learning curve.

I used my own samples (production ready, mastered samples). I try to not go too experimental (breakcore, braindance stuff) and only make rythms they know (4 to the floor beats, drum’n’bass etc), and show one-liners as far as i can.

Participants were impressed by the possibilities, and the richness of patterns with a few lines of code.

For now, it’s not really useful, i have to add more comments, but here are the files I used.

Later I’ll share sample packs too.

Thanks for reading. Thanks for TC.

PS : the workshop was streamed on twitch. It’s in french. Maybe I’ll share you a link if the result is watchable.

1 Like

I just found this old Gibber workshop I ran; it worked well for a short session with high school students, and got them doing some simple beats, some simple visuals, and then tying them together.

Was not really a workshop, but a presentation of TC, organised by Antipattern. I think i convinced a few people to try it.

I gave a workshop on clive. Install took longer than expected with unanticipated issues due to differences between Linux Mint and Debian. JACK worked fine eventually. I prepared too much, but it may come in useful later. Should have prepared more about using git (what tools exist to visualize tree branch history?).

Materials linked from
https://forum.toplap.org/t/clive-workshop-zagreb-23-november-2019/928/3

I gave a workshop in Rotherham on Saturday, working with Young Minds Together, a group of around fourteen girls from 8 to 16.

The original plan was to run live coding workshops at DiversityFest, a big summer festival in Rotherham. We (@ojack, @heavy-lifting and I) did that, but knew we’d have to be flexible with our aims in the middle of a busy festival, and due to the noisy environment, we turned these into individual drop-in sessions. So this was a two hour follow-up session, which I ended up running solo, although the two adult group leaders got involved too.

I ran the workshop on eight computers, each a raspberry pi 4, with pimoroni phat dac sound module and one studio monitor (i.e. four stereo sets split between eight computers). There weren’t enough computers to go round, but some of the girls were happy to pair up and share. The tech was a mix of stuff I had from previous projects and stuff I’d bought with a small British Science Association grant.

There’s a tradeoff between running a workshop on headphones, and over speakers – noise versus collaboration. Looking at the feedback forms, some of the participants found it got a little too noisy.

I had a network running, getting all the computers tightly in sync, so while experimenting and learning, they were always playing together. This really helped with peer learning, there was a lot of ‘how are you doing that?’ going on.

I also limited sounds to just two each (different ‘high’ and ‘low’ tomtom etc sounds). This kept them focussed on exploring rhythm, but one or two mentioned they’d have liked more sounds on the feedback forms. A great next step would be to get them recording their own sounds to feed into the system.

I had a break halfway through, with refreshments (fruit). Important!

Apart from the noise, the feedback forms were really positive. They all engaged really well and I’m looking forward to working with them more, towards a public performance.

One issue is that this was a group of girls from a local Black community, in Rotherham which is on the whole a deprived area, and I present as a pretty middle class white male. By the end I was really co-leading the workshop with the (adult) group leaders - one was a great musician and drumming workshop leader, who really knew how to get the most out of the girls. I had showed some of the Guardian algorave video at the start which I hope showed some of the diversity of the scene. Still, I think it’ll be important to find ways to bring ethnic and gender diversity to people running future workshops, and generally learn how to best support these young people with their creative aims. Thoughts + ideas much appreciated on this one!

With some encouragement and help from the group leaders, the participants organised themselves to compose and record a theme song for their group. Pretty amazing they did that within this two-hour introductory workshop. Here it is:
https://soundcloud.com/yaxu/young-minds-together-rotherham/

This sounds great and super interesting to my ears, and their approach to bringing this together really breathed life into the workshop for me. Listening back does make me want to encourage the group to focus on one or two time signatures next time though, to explore polyrhythm in a more organised way.

I’m running a new set of workshops at a local kids creative shop/venue in about a month’s time.
It’ll be 6x 1hr workshops over 6 weeks - in the past I’ve gone for a very regimented/structured approach to the teaching, and remaining well within my comfort zone/knowledge areas. This time I’m going for maximum flexibility and a shared approach to exploring/learning (so I’ll likely be using unfamiliar tools a lot of the time too)

Long story short, the loose structure is to spend 4 of the weeks on 4 different tools - estuary/minitidal, strudel, estuary/punctual, hydra. The 5th week will be spent assembling groups to prepare for a little demo performance in week 6 to family/friends.

The key things I want to work on are sharing the ideas amongst each other in the group (the hydra/strudel sketch sharing is really useful here) and collaborating (estuary’s strength, we will likely also look at flok)

The idea is to make it flexible, if the group gets right into one language and wants to explore further, we can just delve deeper and leave the other languages out. If something doesn’t gel at all then we can go explore unlisted languages. The plan is to not plan too much :slight_smile:

This is the (loose) structure I’m starting from:

I’ll report back once it’s all over (sometime in September 2024…)

1 Like