Introduction - Liam C Baum

Hi All,

Very excited to be a part of this community and to have a forum where I can bounce ideas off of other SP enthusiasts.

I am a middle school music teacher who studied Jazz in college. My passion for music at a young age was started by Hip Hop music and that is somewhat central to a lot of my musical endeavors. Having studied music formally in college, I have a very good working knowledge of music theory and have found that it fits in nicely with SP. I am happy to field any theory questions people might have in regards to composing / improvising in SP.

I only have been coding for about a year now. I started with ChucK, another music based language and have done most of my work in p5.js, a javascript version of Processing. I also enjoy working with Hadware (Makey Makey, Arduino etc) to explore different possibilities of music making. I think using code for rartistic and expressive purposes is a very powerful medium. I feel it is only going to grow in popularity and I want to help share that with my students.

I am teaching SP this year to my 7th graders once a week. I feel I am approaching teaching SP somewhat differently from most as I see it used a lot as “using music to teach coding” whereas I am more “using coding to teach music” I realize that is a somewhat blurred line and am interested to discuss that more with other educators who use it.

I am also interested in using SP to explore possibilities for Hip Hop production. Most of what I’ve seen from SP seems more EDM and electronic influenced. I really enjoy working with chopping up samples and I’ve recently become more interested in Trap beats which I think has a lot to do with using SP as a vehicle for production. I do want to work more on my live coding skills, but in a way that is related to what a Hip Hop DJ does.

Looking forward to building with you all.


Same here, to an extent. Some of my workshops have been in the “teach coding through music” frame but the thrust of my own approach, including in these contexts, has been to get people to learn something about musicking.
The challenge there, though, is that people differ quite a bit in their attitudes towards learning anything about music. There are some people who are extremely eager to learn and who feel that they can. But there are also people who claim they “know nothing about music” and feel like there’s no way for them to learn. SPi fits all sorts of scenarios, including those two. But the latter group (especially educators and other adults trained to think about learning in a certain way) can be something of a challenge. So my strategy is to “pretend” that it’s about the coding. Haven’t had that much success but it was also a limited number of occasions to do this kind of training.

Heard several people in the Raspberry Pi community who’ve been through the SPi tutorial and weren’t able to connect with it. Sounds quite strange to me. My hunch is that they may have read the tutorial without experimenting the way Sam advises people to do. One of them was claiming that her ear wasn’t sufficiently developed to hear differences when she made changes to the code, which also sounds strange to me as many tweaks we can do are very striking in their effects. Makes me want to do training sessions specifically targeting these people, helping them along in realtime. What is it that someone doesn’t notice as a difference? Are there ways to provide documentation which would help them them get it?

Point is, SPi can be a very powerful tool in getting people to hear things differently. Chopping up samples, applying all sorts of effects (including reversing and slowing down) can really help in understanding what’s going on. A science teacher was pretty enthusiastic about the potential to use SPi while helping learners understand acoustics and other things in physics. Again, not about the code.

1 Like

people differ quite a bit in their attitudes towards learning anything about music. There are some people who are extremely eager to learn and who feel that they can. But there are also people who claim they “know nothing about music” and feel like there’s no way for them to learn.

I get what you mean by this and I think music is an area where people can be very closed minded about learning something because they think you either can or you can’t. This can be quite a road block when trying to get them to take risks. Although, SPi has great features that can generate things that sound good with out a lot of knowledge, like use_random_seed to choose notes out a scale. Pentatonic scales are good starting points because there are only 5 notes, none of which sound “out”. Then just through some basic harmony underneath and you have something that sounds “musical” from a pretty subjective point of view.

I think I am in a somewhat different position than you. Teaching workshops where it is probably more varied in terms of the types of participants you get is different than teaching a class. I teach 7th grade (12-13 years old) for their Music class, so they are all there for the same reason. Also, I have the same kids in 6th grade, so they all have the same reference point in terms of concepts I’ve taught. It makes it easier to try certain things in SPi because I can refer back to those ideas and make the connection to what we are trying to make in the code.

With that said, even though a workshop is supposed to be about using SPi, it might be beneficial to do some very basic introductory music theory in the beginning(even if you don’t frame it like that so people don’t get scared) so that there is some framework to build on when you start making music. This could be basic scale degrees or drum beat rhythms but for me, it’s helpful to make that connection to music in the real world. But I also realize I have a bias of coming from the point of view of a Music teacher.

Absolutely! As an ethnomusicologist, really glad other people have figured out this “trick”! Sounds so simple, but it really is very effective. Also pushes you to be more creative with other things, including rhythmic complexity.

Been playing Malian hunters’ music since 1997 and the main instrument, the donsongoni, is a six-string harp-lute tuned in a mode of the major pentatonic. On most tracks involving the instrument, been playing “in” almost exclusively. Those five same notes are so ingrained in my playing that they tend to come up elsewhere as well. Not having to worry about “avoid notes” is really freeing, in some ways.

Some iOS apps use pentatonic scales in pretty much the same way, usually without explicit acknowledgment of the effect.

Indeed! Kind of wish it were possible for me to teach a regular class about musicking. Tried adding some of that to my ethnomusicology course (third year undergraduates) and it’s been a bit difficult, probably because of my attitude. So, having the opportunity to teach a class which officially gives space for either musicking or coding would be really nice.
At the same time, having to assign grade isn’t something which helps me much in my approach. Of course, grades are essential in all of my university courses. But part of the fun of doing workshops is in fact being grade-free.

So, my ideal setup would be something closer to what you might call “enrichment”. You can still have a defined group like a class without learners having to worry about grades.

I’d love to see some rough sketches of resources that teach basic scale degrees or drum beat rhythms in Sonic Pi to help bootstrap people’s introductory music theory…

Perhaps there’s opportunity to collaborate on some new tutorial sections?

1 Like

I would be happy and honored to contribute. I’ve taught a numbers-based approach to learning scales for a few years now that students are able to pick up fairly easily. Obviously teaching how to write a good melody with those notes is another story.

One idea I’m playing around with to teach drumbeats involves creating diagrams of a measure which progress from top to bottom as opposed to left to right as is the standard when looking at DAW grids. There is a bit of math involved but nothing that a 12 year old can’t handle.

This is my first year trying it out, but I will share whatever I come up with as I go. I’m also keeping a journal on my experience teaching SPi each week. I was thinking about sharing those thoughts here, perhaps in the Educators section…

The schools I teach at are very free thinking private schools. I approach it as a coding class, but I give them a lot of subtractive synthesis theory, and very basic music theory.They do get a grade based on participation in practice exercises and a final original composition.

What type of criteria or requirements do you use for your exercises and final composition? The first project I just had my students do was using some basic functions in a composition: play (using midi or letter notes), sleep, use_bpm, use_synth, and repeat block (4.times do, end) and an option to loop the whole thing. I wanted to see if they were able to use these commands correctly in a short piece.

I would love to hear more about how you teach subtractive synthesis theory to kids. I had to google it. Looks like a great way to find real world application to fundamental and harmonics which is the foundation to timbre which is sometimes a tough concept to grasp for kids “Its the way that a sound sounds”???!!!. I like teaching the scientific concepts of elements of sound (amplitude /volume = size of wave, frequency/pitch = speed of wave) but have always struggle to find a digestible way to introduce harmonics and timbre.


I - or rather I should say - the students have the luxary, that we have no prescribed curriculum. So to say: we can play (but not sleep;).

My concept is based on a rather broad approach. The most prominent goal is to get them interested to dive deeper into producing sounds via Sonic Pi. This does not have to be music - or what we usually mean it to be. I had a student who created a (rather complicated) ring tone for her mobile phone to wake up in the morning. I frequently encourage to produce self recorded samples and e. g. to produce a short radio play.

In the end of the course they will have to deliver a short piece (be it drum programming, a musical peace, a ring tone) and a project documentation. During the course we have several presentations done by the students covering the basics of synthetic sound production (or more concrete: how does a synthesizer work and of what parts is it composed) but there is also a session about Stockhausen and the funny conversation with more modern representatives of electronic music such as Aphex Twin. This is a step towards subjects like musicology, musical history but also musical analysis; duriing the last course students took the opportunity, analysed a piece of Scanner and created a new piece based on these ideas.

Last but not least we do pair-programming (or should I say: pair-composing?) during the course hours. This encourages communication and develops skills you need for that ("If you know more, you can help; if you know less you will probably ask better questions because you do not suffer the curse of knowledge)

I think Sonic Pi is a brilliant tool not only to talk and learn about programming and music, but also about the aforementioned subjects and aspects as well as - of course - musical theory, creative techniques, musical genres aso.

And you are right: sound synthesis is a tricky and broad field. I myself did not know much about it before I started the course for the first time. I still have not figured out an ideal approach (if there is any) but I have a guideline:

I want my students to understand e. g. the synthesizer first and foremost with respect to Sonic Pi. In the best case I manage to show additive synthesis via Sonic Pi. Another example: they need to know what a “cutoff” is. First thing is to listen and to recognise the sound of it; second it is quite useful to understand the underlying concept; obviously a “cutoff” will have different effects in a lowpass compared to a highpass filter. But for me it would be enough if they just used it with some awareness, I don’t need them to know the internals of it (different filter slopes and so on). So in the best case they will have an idea about what optons they are tweaking.

But: to listen is not always the best - or better - the first way. As far as I think it is mostly a better approach to make audible and to visualise. There are some excellent resources online, especially for things like synthesis. See e. g. Overtones, harmonics and Additive synthesis or Amplitude Modulation. Yet I still have to figure out how and when it’s the best moment to use these during the course. Right now I rely on student’s initiative and provide these resources via a reading list. That said: Probably it is a good idea to use some synth like e. g. helm (which has a very nice interface) to show things live. I will try it this time (because last year I hadn’t experimented with software synths).

One more thing: The course is every fortnight for 3 hours and my experience is that students do not work at home (which I strongy advise to get the most out of our meetings). So this year (starting in two weeks) I decided to give homework. Motto: Restriction triggers creativity ( - or would you rather use the word: contraint? I can’t tell…). I got this idea from a book by a German artist: “Klieber, Ulrich: Plastische Übungen in der künstlerischen Lehre” (parts of Dennis de Santis’ Making Music also advise restriction, not to mention Brian Eno for whom this was/is one of the key principles of art especially in the age of digital technology with its abundance of options). If you have a chance have a look inside inside Klieber’s book. It is awesome what you can build from drip mats and drinking straws. I just adopted this principle and the first task will be: Build something using only play, sleep, amp, attack, release and sustain. This obvously involves to experiment not only with key concepts of Sonic Pi but also with the ADSL envelope. Whoever likes to use other/more constructs (e. g. change the synth) can do that - but not for this task.

I can report back next year whether this worked out…

Sorry, post got longer than I planned.