00:00:09.920
Hello, everyone! I’m Raia, and that was quite the intro. Thank you!
00:00:15.360
I'll jump right in. Have you ever wondered what makes a good song? Maybe it's a sweet melody or that beat that keeps you pushing through to the end of a workout.
00:00:22.960
Whatever your use case, Ruby-based Sonic Pi can synthesize it. Today, I'll guide you through coding a range of song components, and together we'll build a band of live loops including rhythm sections, embellishments, chords, and melody.
00:00:33.239
From there, we'll construct a song that can be mixed at will, and in the process, learn some key elements of what makes Sonic Pi 'sing.'
00:00:39.680
So, let's go! This is the Sonic Pi interface. You have some comments there with my information if you're inclined. Above that are our commands, which can be triggered with the keyboard when you're live coding.
00:01:03.120
As developers, you know how to use keyboard shortcuts! Let’s get into the commands. It's really simple: play and sleep. When we play a note, we can relate it to a note like C, if that means anything to you.
00:01:30.360
Let's listen to what we have. We just got a nice beep; that's our default synth. We can add more sounds. If we want to play something different, we can just change the number.
00:02:00.240
Kind of clear? I want to play two notes. Let's see if this will work. We've got it in Symphony, so I'm going to teach it to play in order.
00:02:04.320
You got it, right? We can play around with those numbers, remove the line that includes sleep to play in concert and see what happens. When we're staying play, we're actually calling upon built-in synthesizers to play within Sonic Pi.
00:02:31.840
Now we've just heard a beep; it's kind of boring. It's just your regular sine wave, but there are other synths built into Sonic Pi itself. I'm going to call upon my Usynth, and we get some nice drop-downs to help us out.
00:03:08.400
Let's hear that. Oh, that's a little interesting—a little funkier! From here, we can not only use synthesizers but also add samples. Samples are just audio snippets that you can manipulate to sound faster, slower, or completely different from the original tone.
00:03:20.560
Let's fill in some samples here. I'm going to let Sonic Pi lead me, and as you can see, it's prompting us with some options. I feel like I want some bass. I don’t know about you guys. Maybe we'll get into some bass drums because that will come into play a little later.
00:03:45.080
And why not add one more sample for fun? This is normally done in my basement cave, so thank you for being here! Let's hear what we have and figure out if there are some typos, which will be some fun too.
00:04:15.080
Okay, that was a little different, right? I'm with you. What happened? One of the samples is much longer than anything else we have, or our sleep in total. I'm going to just put it out there, and I'm guessing it's the first one because something started and never stopped.
00:04:49.600
BD in line 10 corresponds to the bass drum—just a random little snippet. And of course, the cowbell is also a one-off sound. I'm kind of grooving with it, though. Let's listen to it one more time.
00:05:23.920
I like it! I'm not upset. I mean, I could be; I could do something, I don't know—but honestly, this is kind of boring. It's pretty step-by-step.
00:05:49.520
The way I actually live code is I change things on the fly. So let’s do that! I'm going to add in a loop, and let's see it play continuously.
00:06:08.760
Now things are getting somewhere. What is this? A little funky, a little fun—but now we can consider the timing. A lot of popular music uses something called 4/4 time, so we want our sleep to total a factor of four.
00:06:29.440
That could be 2, 1, 0.5, 8, 16, and so on. Right now, I'm saying that sleep is a total of three, so let's just keep it simple and copy that in.
00:06:53.080
Okay, now let's see if this is something I feel like I could run to.
00:07:07.750
So, this can be our first instrument, and I’m actually going to make this a little smaller. If you can’t see, just raise your hand, and I'll make it bigger again.
00:07:30.360
I want to add another instrument. This block of code kind of represents our melody. It's a little abstract today, but let's see what happens.
00:08:01.280
First, I want to isolate the drum section we just added, but I got a runtime error. Sonic Pi will give you feedback if you're doing something it doesn't like.
00:08:36.760
Here, it’s telling me the loop did not sync. It's helpful because it even tells you which loop is problematic. We're going to add a little adjustment and comment this out so we can fully hear our drums.
00:09:02.880
It’s a very simple drum. I might want to change it on the fly.
00:09:38.000
So, we've created an EDM drop with just four lines of code! I love noodling around with Sonic Pi—it creatively satisfies me.
00:10:01.680
This is where you could start, but I’d also love to share a bit about where I come from with it and what I do.
00:10:22.080
I'll start with an original song. This is the strangest venue ever for that, but I want to showcase Sonic Pi in action.
00:10:38.720
It's structured differently than a performance; I might mingle some comments with it, but I hope you enjoy.
00:11:05.600
This is called 'Play the Long Game' and is an original song of mine.
00:11:43.840
So, you’ve been told your worries of yesteryear are all gone away. The thing about playing the long game is that it's your only way.
00:12:35.600
This is like the least efficient code possible; it's fun! I think there are places where I’m like, 'Oh, you added this at month three,' and then 'that at month five.'
00:13:02.520
Today, I could make sense of it in ten lines of code, whereas I have fifty— and that’s me.
00:13:22.560
I've labeled things in a way that I know what they mean; long bass is this booming synth that hugs your heart a little.
00:13:49.280
During a chorus, I can bring my dubla in, and let’s give it a bit more.
00:14:06.640
I've made some decisions while allowing Sonic Pi to pick between a couple of variables.
00:14:31.760
I also add notes to myself, indicating where I can make adjustments.
00:14:52.920
Now, maybe I want to change the song. How do I go about that? I’ve just changed the variables, and this is a Danish artist, Weina Aab.
00:15:09.680
I found this on TikTok about a year ago, and I thought, 'This is such a good song, I need to sing it!'
00:15:59.020
You can hear some changes, and for those who know the song, I pulled up some lyrics. I enjoy singing along.
00:16:32.680
Every second, every day, I spend thinking this is where I belong. I have no doubt in my mind we would make it far.
00:17:06.560
I want to remember this moment in time with you, and I hope you’ve enjoyed a glimpse into my practice.
00:17:29.240
Thank you for your patience and acceptance.
00:18:31.880
I think today has been a bit of déjà vu, as the first place I really dug into Sonic Pi was at a research institute I used to work at before moving to India.
00:19:00.920
I was in the informatics unit as a project manager, and although I wanted to code, it felt outside of my realm.
00:19:39.360
But then, I discovered Sonic Pi, and it sparked a journey that I would like to share with you.
00:20:10.360
I feel like Sonic Pi has allowed me to expand into ideas like visualizing ecosystems with sound and implementing this creatively.
00:20:49.280
Thank you so much for listening!