Get Ready to Rock with Sonic Pi - The Live Coding Music Synth for Everyone

Sam Aaron

Recorded at GOTO 2018


Get notified about Sam Aaron

Sign up to a email when Sam Aaron publishes a new video

[Music]
hi I'm Sam normally when I give these
talks I often do a very similar thing so
I'm not going to do that today if you
want to know more about the background
or what I'm going to talk about
there's tons of videos on YouTube so I
recommend you go and just watch those
today I'm not going to spend too much
time talking about how and why I've
started this project what I'm going to
do is just try it because you all
programmers right how many of you a
you play with sonic PI oh that's lovely
that's growing every time I give all
these talks what I'm going to do this
talk is just just dive in that's okay
because often when I watch my own videos
back it's obviously pretty horrendous to
watch your own videos but I always think
why have I spent so long talking and
before getting to actually the coding so
I'm going to spend very little time
talking and then spend more time coding
is that cool no so this is I'm not
finished yet hold on hold on oh wait but
that's great if you just remember that
for the end I'll give you I'll give you
a moment to do this so here we are this
is the the website it's got some crazy
effects so much speed some some cloud
system going on go to here if you want
to when you and you enjoy what I'm doing
you can you can go to this place
download the software it runs at Windows
runs at Mac runs on in Raspberry Pi if
you have one it's installed by default
but I always recommend updating to the
latest version of raspbian and also if
you're a Linux person it's it's much
harder but there isn't there is a way of
getting it installed the problem with
Linux is there's no Linux is there's
links it and so supporting is an in
terribly difficult task and especially
with music and audio Linux it's not the
most straightforward but if any of you
Linux people out there like audio things
and like to give me some help
I'd love some support so that's to bear
in mind but certainly with a macaroons
machine you get the simplest way of
starting you can read some things you
can find out that we use it for the
classroom there's we have a community
which is great to get involved and talk
to and this community is not programmers
if there are some programmers but there
are educators on there there are artists
on there there's musicians on there it's
lovely place to actually share your
ideas it's super
friendly there's no right or wrong
questions just get involved in a stand
and ask questions and you'll get support
from lots different people the people
making performance really I've given
talks they're sick watch this talk if
you want to see the background okay read
a book here's some examples but that's
boring well it's actually code if you
download sonic PI this is what you'll
see all right so this is the the editor
it's just a text editor has Emacs
shortcuts if that's useful to you if not
I'm terribly sorry but you need to learn
any Mac shortcuts or you don't need to
use the shortcuts at all and you get a
text editor there's a log to say what
it's doing and there's a cues thing
which is about events
I might not spend too much time talking
about this but this is the most exciting
part for me going forwards because we're
able to deal with real world events and
MIDI controllers open sound control
messages on the network and internal
events as well this is a totally ordered
internal event system which has pattern
matching and it's kind of like a tuple
space but instead of saying get foo you
say get through at time t logical time T
and that's a really powerful way of
deterministically working across threads
so that if you have a multi-threaded
system and we'll see very quickly how
that happens immediately you could
actually deterministic and make sure the
same code produces the same music and
this is a really important goal because
if I make some cool music out of code I
want to be able to share it with you
right and if it's got threads in and
those threads have race conditions and
the results of those wretched conditions
can choose different music that's not
cool right I want to be able to make
sure the regardless of threads and what
they're doing in terms of states that we
always get the same results so this is
interesting and might have some time to
talk about it more but but it couldn't
find me afterwards right let's go so the
way to get started a sonic pie is that
so you just write the word play and make
it bigger you choose a number and how
loud is that's not particularly low if I
tell myself up a bit more brilliant
that's awesome so and this is important
for schools because the school's the
teachers have no time at all and that's
that's before they've even got the
management sorted out and got the kids
to be quiet
right so they all that stuff happens and
when they've got the kids quiet they
have to say their sentence we're just
going to excite
children to learn how to count what
would your sentence be it's hard isn't
it really is it open up Eclipse so
that's not even Xcode or IntelliJ or any
of these things right or Emacs right no
so it needs to be something which is
interesting and engaging and so having
the word play and the number 60 you can
immediately make some resorts and it's
lovely to see the children's faces as
they light up that one simple line of
code can actually produce some actual
results which are meaningful to them not
sorting algorithms not binary arithmetic
not functions not test-driven
development none of these things making
something which has an impact in their
life which is meaningful which is not
programming right that's the key and
music is one of many tools I'm not
saying this is the only approach it's
this approach I'm taking the cool thing
is we've got an example of syntax we can
talk about the fact that the mistakes
are the default position of programmers
because we're always in a state where
the code doesn't work that's totally
normal because when it does work you're
on to the next problem right and and
people have no idea about this they
think always that programmers are always
working correctly we're not so getting
to make mistakes
having mistakes play and cool we've got
with nice ways to say actually did you
actually mean this kind of thing so we
can hint towards the correct way of
working so yes we did mean play lovely
and the numbers have a lovely property
they can go up and they can go down
that's good it's good you sometimes I
ask this I ask this to a bunch of Java
programmers they didn't know that so I'm
pleased that you're you're happy with a
be able to do this and and there's a
beautiful app murmurs they are an
abstraction right so they don't really
mean anything until you relate them to
the real world right and so lots of
things in the real world can go up and
can go down like I can jump rope and
Crouch or notes themselves have pitch
and pitch you can go up or it can go
down now let's taste the bass test the
base of the system oh yeah let's make
this oh yeah
the worst sound systems and then you
just don't even hear this right so the
last time I had a really good result
like this was in a cinema you can
imagine that and I see there's the same
Java programmers there in their comfy
seats like this whoa that's awesome
right so one line of code having some
fun now if introduce options so we can
obviously start to modify the sound
sounds have tumblr the tumblr then is
manipulated with these controls and this
is no different from a synthesizer you
might bind a shot with all those
controls and knobs instead of knobs
we've got named parameters or options I
tend to call them because they're
optional because you do not need to use
them to make a notes but when you want
to actually start to change things then
this is available right so lovely now we
get to the fun part what might this do
right this is interesting as programmers
you might know who might not know you
might have an idea you won't have an
idea probably less use use the system
this though is a sequential piece of
code it is actually executing line one
before line two sonic PI has a very
strong notion of time and you have to
have a strong notion of time to make
music right because it's all out of
rhythm and rubbish right if you don't
have time and so when you don't talk
about time and sonic pie everything
happens simultaneously
so I mean all at same time if I make
this a bit bigger at higher 50 maybe 60
to maybe 60 to plus 162 I can type
besides do chords and if you notice on
the log and the right-hand side it says
at time zero I'm doing both of these
things so that maybe audience a strange
way of working but it's actually super
useful when you're making music so don't
talk about time everything happens
simultaneously what's also interesting
before I start talking about time it's
that you can change the sound so if I
use synth profit I can play note e one
and have it a long release time releas
is a fancy word and synthesizers have
this idea of envelopes to talk about
actually if I go to the documentation
there's a full tutorial sixty thousand
words teaches you everything need to
know and in here there are pictures of
envelopes there's also another way to
look at the documentation is to go to
the websites and there's a web version
as well so let's look at the same thing
here and then we are slightly nicer and
we could start to talk about how the
sound changes through time so by default
the sango's requires allowed
instantaneously that's like a clap yep
and then it fades out typically over one
second and if unless you change it so we
can change that release time to be eight
seconds and crazy easy right if you also
start to play with other options at the
cutoff it changes how much the crunchy
values are in there so there's also
crunchy bit more i've even take away
numbers from symbols
so you can start to do this what's
interesting you might have noticed that
happening there Phi
- sounds at once but it didn't wait for
the first time to finish before it
introduced the second time so every time
it goes pink it creates a new threat so
this is a multi-threaded system by
default by design and that's really
powerful so already with just two lines
of code I can start building ominous
sound tracks where the sounds are
overlapping and playing together and
this is one way of programming or live
coding is just by having a single line
or a couple of lines and changing them
and let's their long they'll overlap in
interesting ways and this is a beautiful
thing so it's important to point out
that by default it's concurrent and I
[Music]
and you don't need to know about it just
makes sense right then you know every
time you press run it just adds another
sound it layers it on top the way to
think about this really is like when I
press run a musician just magically
appears it has these instructions to
follow he or she follows the
instructions and when the completed
disappears again right so this is how
this we have these musicians just
popping onstage and disappearing and
reappearing so there we go so once
you've got this that's already fun but
maybe we want to make a rhythm or a
melody that's often useful in music so
if let's go back to play 60 and play 72
to separate them we need to sleep
between them lovely right so that's
fabulous isn't it amazing this is most
of Western music seriously like it
shouldn't surprise you in the sense that
logo where we were drawing you know
children to learn to code see what
puppet and Cynthia Solomon and Friends
they were able to draw any picture with
just pen down pen up rotate and forwards
right you can draw anything with those
commands with these two commands you can
make any melody any Daft Punk bassline
any Mozart's any bark okay it's gonna
sound pretty crappy with the beeps but
you are able to reproduce it and
children do and that's the lovely thing
to see and this is this is how to get
them started my six-year-old niece she
was playing with this and at the time
when she was six and she'd written 30
lines of codes how that's amazing as she
said I'm not finished and she was
continued so it's lovely to see that so
this is the way to get started now this
is also interesting because at this
point actually when I built the system
the first version that on the system in
schools teachers are very happy with
this because at this point we can teach
most of the fundamentals of the UK's new
computer science curriculum because it's
very easy to add a bit of conditionals
on here but a repetition on here you can
start to use these things to explore
what the basic principles of computer
science are so you can totally imagine
repeating this five times and this
language is based on Ruby so we have an
nice way of representing that now you
can do this kind of thing or you can say
if some value is true then do it if not
so you can explore those things but to
me this wasn't enough right I don't just
want to just have some basic things that
it frustrates the hell out of me that we
have all these education systems to
teach codes that that are beautifully
simple to get started but once you reach
a level like once you've mastered play
and sleep which is not long frankly is
it that's all you can do and it has a
glass ceiling immediately and for me I
thought that that's an interesting
challenge can I build a system that is
simple enough for 10 year old kids to
use and also actually the harder
challenges for teachers to use and it's
not that they're not they're not capable
just have no time teachers no time to
learn anything certain in the UK there's
so stretched so stressed so focused on
are making sure the schools are able to
jump off from the league tables and
exams and tests and and examiners coming
in to test to see if they're teaching
correctly it's just it's a very very
difficult environment to work in that
learning new things is incredibly hard
so teachers are actually that the
hardest and most important sort of
domain users to work on the system but
to me that wasn't enough I wanted to ask
the question could I get professional
musicians to use the system right and
that's that sounds nuts why on earth
would you build a tool that is good for
education and good for professionals
that's crazy do one or the other but
what's a guitar
play all the notes on a piano pretty
easily right super easy to get started
but it's that way you stop no you can
then learn how to do Mozart and
Beethoven embark and you cannot start
playing ragtime jazz and all those
amazing things because there's a whole
culture of practice and there's a whole
lot of experience and doing amazing
things with the piano that same as the
guitar now let's reverse that what I
would you bother playing the guitar is
it because you're told to it
is it because it's a beautiful object
and some guitars are beautiful but
that's not necessarily what's gonna
excite you it's cuz you've seen Jimi
Hendrix you think what is he wearing
around his neck I need one of those and
I need to learn it or whatever your
favorite guitarist is or
instrumentalists of any kind right
and so having something which is good
for professionals provides motivation
it now in the UK and I'm sure around the
world we're currently describing and we
saw earlier today there is definite
motivation to learn to program to get a
professional job that's very important
and we as an industry were crying out
for more diversity more people who are
who wouldn't typically learn it like
weirdos like me to get involved and do
programming in a professional capacity
but to me that is not the reason we
should be teaching programming in
schools because we don't teach sports
and schools to make professional sports
people we don't teach history in schools
to make professional historians we don't
teach mathematics in school to make
professional mathematicians we don't
teach anything in school to make
professional anything it's just crazy of
course some sports people learning
sports in school will become
professional sports people and that's
awesome right and we should be totally
supporting them and enabling them and
that's really very important because
they become the inspiring individuals
which can make sure that new generations
of sports people come along that's
that's very important but it's not why
we teach it at schools we teach the ball
in schools because it's beautiful for
the body it's great for teamwork it's
great for synchronization it's great for
collaboration you know it's great for
physical exercise and health and so many
important things that are beyond being a
professional at X and I think the same
should be for learning to code so if
that's the case what is the motivation
we use to learn to code and I don't
think it is being a professional coder I
of people who just don't want to be
professional and and it forces a version
of elitist attitude so that's not to say
that we shouldn't support professional
Antigo that's very important but at the
same time it doesn't necessary
involve everybody and I think we need to
get everybody doing a bit of coding just
like we get everyone to do a bit of
reading and writing right that's just as
important it's not to say that the same
and so to me we need to find these tools
which are motivate and I think music is
a great way or of DAPs are you doing
this so let's get let's get cracking so
at this point we have play and see if we
can make music we can make beats and we
as programmers I think the exciting
thing is what can we do with this where
can we take it that's more interesting
could we actually take this and
challenge professional musicians and do
new things more exciting things and take
music into new places this is not to say
this is going to replace the guitar not
at all in fact I actually have a
fabulous collaboration with the
guitarists where we work together and I
can code his guitar as much as he can
work with it with a code as well and and
that's really worth saying um so the
question is what can we do with this and
and these are questions now at this
point we break away from the computer
science curriculum right we're talking
more about the music curriculum when
we're talking about music in general
what our musical tools that we can use
that are exciting now the next thing to
think about is once we've got the
synthesizers built in what about samples
so often certainly like hip-hop for
example is based entirely around samples
and manipulation of samples so it's
clearly important to me and this wasn't
in the UK curriculum for computer
science to play samples so we have a
bunch of built-in samples you can play
any wave file any a file f or flak or
OGG and let's play a sample let's play
the famous our main break
oh yeah it's not allowed enough can we
can make it louder please okay so we're
in Bristol right we've got drone base
kicking off this is the famous track
similar time actually bit earlier NWA
the Straight Outta Compton use exactly
they slowed it down to make it a bit
more interesting in groovy and so they
played it half speed that's important
and then you go back to it to London and
we're playing what we're playing the
jungle and we're using the same sample
right so this at this point people who
okay it can play samples of course you
can you can manipulate them but what did
all that what did people do with these
kind of things so jungle wasn't just
about playing that sample fast it was
reversing him doing all sorts of fun
things how do you take a sample and chop
it up well what they used to do is they
used to use like these crazy graphical
editors where they actually have by hand
find all the transients in the audio and
move them around and copy and paste it
took them weeks and weeks to make this
interesting tracks painstaking laborious
work well we've got codes haven't we so
wouldn't it be fun if I could treat my
standard sample as an array a list of
drum hits yeah well we can do that we
just use the on set option insight pie
and actually ask for this first drum or
the second drum or the third or the
fourth drum that's pretty cool so it
automatically does feature detection on
the wav file returns all the DES
starting and end points of those things
but this is something I can teach to a
10 year old child and the strong thing
here is that we can really easily
replicates some weird jungle music by
[Music]
right and then if you want to you can
put a bit of envelope on that so your a
release time shorts and then now kids
would do this it's a lot of fun but
they're also let's just comment this out
crate another loop and in there they
would maybe I know make a place line so
that's place since tb-303 notes II won
at least time short seek for I know if I
make a bit longer like this baseline
alright hey that's gonna sound wicked
with the drums let's let's crank it up
the baseline now I'm sure all of you can
see why there's no baseline right but
children cards and teachers cards so you
save them is right this isn't something
I thought was good this is something
that every child I've taught within a
few hours asks how do I play the drums
at the same time as the bass they all
ask this question very very quickly and
you say you can't you've got a way to
the university before you can do threads
and they look at you like you some sort
of crazed idiots like and the problem is
you take the teachers yeah I think we
should be teaching threads because the
kids want to do this right and it will
engage them to be excited they'll keep
being motivated because when you say you
can't do something they just look at
something else and that's not what we
should be doing right when we're
teaching computer science we should be
trying we should be teaching people the
same thing we should be asking them what
they want
individually and making sure that the
tools are used can support their
expressions because of what we
ultimately doing is giving people new
tools to express themselves and code is
a fabulous way of doing that so saying
no is not an answer but the problem is
you go to the teachers and teachers say
they say no because their focus on
making sure that they get good school
when the examiners for them come in and
their scores are based on whether
they're teaching the curriculum
correctly or not and if it's not in the
curriculum then they don't get any extra
points for teaching stuff which is not
in the curriculum regardless of whether
it helps the children engage regardless
of whether actually gives them tools to
become more creative coders right so
this is a problem and the cool thing
about being programmers is we can cheat
we saw earlier that cheating is super
important
like if the goal is cheating right the
goal is if you don't cheat that you're
not being professional if you don't ask
the right people you're not and so this
is why I fundamentally disagree with
exams in many ways because they don't
they don't support cheating and they
don't support collaborative working and
changing their rules so we should be
able to change the rules so what do you
do when you can't do threads with loops
you create a new kind of loop that is
threaded and that's what I've done right
so I don't teach this I don't talk about
loops and that fact if you see this kind
of code in sonic pie just tell people
don't do this you want to use the live
loop
wait it's got a way cooler name for
starters and when you run it it gives
you an error right so it's not quite the
same it says let's get rid of this
documentation though here sorry
Boop it says live look needs to have
unique name so live loops are band
members right so have a bassist and have
a drummer right so let's give them some
names so what should we call the drummer
let's call the drummer what we call
Peter and let's call the bass player
Fiona right so now we give them names we
can run the code
[Music]
awesome
the problem is though you get pretty
ball of that pretty quickly because Luke
just they loop done they they just keep
going and it means great to start with
but after Y start getting a bit bored of
the music so what do you want to do well
I want to change it maybe that note is a
bit too long so I'm gonna change it to
be a bit shorter right maybe I want to
have like a higher notes I maybe want to
cut off to be like a random value
between 70 and 130 or maybe you want to
actually have it as fast as this buddy
it's quite fun to explore these things
by just changing the numbers and hearing
it and changing it which is great for me
but it's rubbish for you because if you
want I mean obviously you all seated
that's a problem but let's assume that
you weren't seed in the your actually
you're in a party mood I mean are you in
a party mood
yes like that's rubbish you will be
later if you're in a party mood you do
not want the DJ or the performer or the
band to stop every time they want to
change something it has to be able to
otherwise it's not a good performance
well obviously it could you could
imagine performances that are very weird
and esoteric and a cosmetic and whenever
they do that but in general you want to
be able to keep the music play
[Music]
so this live loo allows you to change it
once it's running find this hell and
this is what engages me but this is not
on the curriculum but it's something
that actually people can start tinkering
with and it's addictive and it's
something that our juices flow and it's
just fun and I spent hours every day
you do too because right if for anything
else it'll give you a tool to make more
friends but how many of you I say this
all the time and most converse is that
it's just it's just an amusing thing how
many of you go to parties and struggle
to talk to people because when you say
you're a programmer it's the end of the
conversation it's true isn't it right
and so I don't sell anymore people ask
me what I do after I'm a musician Oh
wicked what do you play coat coat I
think but at least now having a
conversation right and you can - and
this is a cool thing is like I don't
know how many people who struggle to
talk about how you've had an issue with
the docker container that had a service
nginx Apache whatever configuration like
no one wants to listen to that but they
want to listen to this and so this is a
way of getting involved and getting
talking and and broadening the
conversation beyond the people like
yourselves who themselves fell into
programming right that's great that we
have people who themselves want to
become programmers but if you want to
diversify our communities we need to be
appealing to the people who wouldn't
necessary to be programmers and so this
is and a good test of that is can you
have a conversation of them at the party
and I think this actually passes that
test and in fact what you can do is you
can become the party by being a coder
which is what I'm gonna do later and
that's that's amazing I I was randomly
in a nightclub in Berlin in a big
warehouse and for some reason I had
synthesizers in my laptop in my bag and
I was completely concerned about this
I've got a few thousand pounds worth of
things in this bag because I was giving
a workshop earlier at Microsoft
headquarters and the DJ didn't turn up
it was like 3:00 in the morning and my
friend who knows the guy who organized
the club said do you wanna play
so I cracked over laptop coded the night
club
it was amazing the best experience I've
had in a very long time so you can
become the party if you can live code
right I've got 10 minutes left what else
can you do the fun things let's go back
to Ashley let's go back to this because
this pattern doesn't just work for drums
[Music]
that's fun
what about another thing that children
asked all the time is I'm making music
this doesn't sound very good okay what
do you mean well I wanted to sound roomy
big and when I listen to my music it has
this beautiful sound like if I'm making
music in this kind of room has that kind
of sound but you don't have access to
this kind of room in a classroom do you
and so you say again you can't do that
sits on the curriculum that's obviously
a rubbish answer so you sneak these
things in right so it was really
important to me to be able to allow
children to write effects and so if I
have let's think of like good that's
just what should we do let's do eight
times do and let's play notes no scale
just got type scale right
you see how I switch those letters
around the control T for me max choose
released I'm sure see 495 little ditty
and actually we've got the reverb from
this room already well let's let's crank
it up even further so what we can do is
I won't go to detail by this it's is
that I gave a talk of strange of a few
years ago I actually talked about how
this works and super interesting but in
terms of actually it's good to talk
about the technologies about these
things but it's also really much better
to talk about how to use it and what to
do and so in my head whatever you want
to do is create sort of another Lex
of the code I wanted to affect with some
effect like a reverb or distortion so
this is the kinda thing I had in my head
like between these doin em blocks I want
to be able to have this code with reverb
so you could do this by adding with
effects the front choosing effects
reverb and reverb supports different
options so the room size being one is
the most reverb and so by doing this I
can I can crush it it's super easy now
the implementation of this is the
hardest code of ever in my entire life
and I'm super happy to talk to you later
about how this works and why works but
that the scheme of the problem is that
essentially you have to setup the effect
so the echo effect you have to ensure
that all the audio inside of it reroute
to that but then the harmless bit is you
have to then tear down the echo when
it's finished and the problem with this
is that you've got to basically observe
and watch all the synthesizers are
crated in the code block wait for them
to complete before you can kill it
but also the code book can start
spawning threads arbitrarily so you have
to wait for the threads to complete and
their threads and they're threatened
manage the whole network of threads and
to be honest and I've had a much better
time not working with Ruby working with
Erlang to do this and I wish I had done
and I probably should in the future
so that's that if you want to be
implement this do it in Erlang but there
we go right so we're able to this and we
can obviously nest these things so
that's X crush it's horrible so it's
very easy to make sounds which are
hideous but you can start to see where
you wake this and this is this is fun
because I can put any code in here and
it will be echoed and crushed and I can
also do something like this which I'm
not gonna run because I haven't got my
sound card plugged in but if I have a
guitar into this right now I have a
guitarist friends Ben he can play his
guitar
it's got echo and cross from the guitar
and it's super fun to see and when we
give talks to kids we gave a talk at the
Big Bang fair the UK's largest stem
pher give a separate but tall
performances one of the fun things to do
is just to do live audio he's playing a
clean guitar sound add reverb add
distortion suddenly he's that in this is
a rock mode and it's really fun to play
and you can live code all this stuff and
modify it in time and work with it it's
really a lot of fun right what else
should I talk about let's let's think
about this well it's worth actually just
spending a little time just flicking
through these tutorial so you can make
beeps you can change the synthesizers
you can switch the sensor sizes you can
change the envelopes you can play with
samples fun thing to do with samples is
to work with external samples so you can
also use the built-in ones but if you
have a directory of samples that's fine
a directory of samples so Sam nodes
samp's here's my directory of samples
that's fine like a house samples we've
got some loops in here I've got some
bass lines
so that's track one of these things so I
can go here I can write sample I can
then drag this sample across and then so
I can work with external samples super
easy but that's a pain in the bum to
write all that stuff and also if I
wanted to work on the next sample of
directory I needed to go and find it and
find the name of it and figure it out
and that's annoying as well so it's
actually much more fun first of all just
to give it a name it works and then
actually instead of using the file name
it's much more fun to use the directory
name get the same results how does that
work what does that mean to play a
directory what it does is actually it
will then look at that directory for all
the eight FLAC or basically all the
music files sort them alphabetically and
play the first one which may or may not
be what you want but once it knows the
list of all the files in that directory
and you can glob this so you can do
nested directories totally easily you
can then use filters to say actually I
know that my folder structure here has
the BPM and the and the key so I can
find the first one that's in F minor by
next one alright and I can actually play
to them together these things and you
can use sub string matches regular
expressions you can use an arbitrary
lambda function which will take in the
list of options and you can return a new
things if you want to show you're free
to really play around this stuff it's a
lot of fun and once you've got that then
you can start to use the live loop to
make some music so a live loop call it
foo bring this down here let's just use
one of these
I have loops bass but I also have loops
drums and here let's find any 120 that's
good so that can then say be is drums
and then here I can sample a and sample
B and I can make sure that both have 120
in the string name so that's good and
then we can we've got an arrow stops key
and see white stops because obviously if
you try and loop something with no
sleeps in it essentially asking the
commuters spin it round infinitely
number in front of times in zero time
that's just nuts
so it actually tells you you can't do
this so live loops need to sleep or sync
and syncing is working on external
events which I haven't got time to talk
about but here I can our sleep for 8 an
hour off
and now changing the numbers of the next
time around this is a great way to get
started it's using existing samples
which sound good find ones you like and
then just start messing with them and
this this is this is a very simple
pattern you should learn and it's just
fun just to play with and twinkle
changing and tinker with this stuff I
think how many minutes of got left no no
minutes right okay perfect so let me
just give you the the website to go to
again
sonic pie nets please download it please
play with it please share it with your
friends with the children with your
grandparents with your parents or with
our friends and their children and their
grandparents spread the word or creative
coding get everyone coding in little
bits and then some of them will become
professional programmers win and just
most of them will be able to have a
conversation with you at parties and
that's what we ultimately about is
trying to affect the world in a good way
and get more people to understand that
coding is the most creative and powerful
tool we've ever made as humans it's
another language just like poetry except
they can do stuff that's wicked and you
can write poems with code so that's
awesome as well but you can also make
code that can actually affect the real
world and we should be trying to find
ways to empower people to change their
worlds and ways which are meaningful for
them and the important thing about this
is those ways don't always have to make
money they don't have to be about
industry they don't have to make rich
people richer so we should make people
be more expressive as we should be using
our skills as programmers to enable that
in priority over companies in my opinion
so I hopefully some of you might agree
with that and hopefully spread that word
and if you don't then come and have a
chat with me later and I'd love to hear
opinions about why that's different and
it's important we all have our ideas and
share them together so thank you very
much for your time I'm going to be
playing here later tonight at about 7:30
so there's going to be two parties it's
gonna be one over there where there's
going to be drinks and some nibbles from
chit chats go over there if you want to
do those things initially to start off
with but then come here 7:30 for some
crazy music we're gonna do some dancing
hopefully thank you very much for your
time
I'm gonna ask one quick question but
first thank you so much that was my
favorite life time of today so
appreciate it so why did you choose
integers for the notes and what does
zero represent in in the music world
there's already existing ideas certainly
in western music about pitch and the
numbers on a piano these are what we
call MIDI notes and so the integers
represents MIDI notes on the piano but
you do not need to use integers I didn't
show you but you can use floats so you
can say play note 60 point four to make
a note in between notes the nice thing
about interpret integers a MIDI notes is
it's a linear scale not logarithmic
which is what hurts is so it's much
easier to reason about as humans and
easy to teach it to kids so it's not
integers it's floats I just happen to
use integers on stage cool yep zero is a
very low note yeah it's a value is it
valid note it's just very very low yeah
you heard out no low thirty was and the
speakers won't be able to reproduce zero
we can try later last question yeah are
you gonna play Lollapalooza next year
I'm sorry you're gonna play Lollapalooza
next year it's the big Chicago Music
Festival if they invite me I'd be
delighted to go yeah and it's Moke fest
and raleigh-durham I go into the Rolling
Stone magazine they said I trans end of
the presence and I'm gonna perform next
year at the Royal Albert Hall that's
pretty cool yeah I'd love to
so then the follow-up is what's your dj
name sorry what's your dj name my
teacher name is Sam Aaron super easy to
remember I struggle with that for a
while I just felt pretentious coming
with the different names there why not
use my own name I like it
simple we all know it now well thank you
so much Sam we're it's time to party so
feel free to go grab a drink and some
food and the Lakeview Terrace but as you
leave one last round of applause for Sam