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.

4 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.

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.