# Blocks

A structure you’ll see a lot in Sonic Pi is the block. Blocks allow us to do useful things with large chunks of code. For example, with synth and sample parameters we were able to change something that happened on a single line. However, sometimes we want to do something meaningful to a number of lines of code. For example, we may wish to loop it, to add reverb to it, to only run it 1 time out of 5, etc. Consider the following code:

    play 50
    sleep 0.5
    sample :elec_plip
    sleep 0.5
    play 62

To do something with a chunk of code, we need to tell Sonic Pi where the code block starts and where it ends. We use `do` for start and `end` for end. For example:

    do
      play 50
      sleep 0.5
      sample :elec_plip
      sleep 0.5
      play 62
    end

However, this isn’t yet complete and won’t work (try it and you’ll get an error) as we haven’t told Sonic Pi what we want to do with this do/end block. We tell Sonic Pi this by writing some special code before the `do`. We’ll see a number of these special pieces of code later on in this tutorial. For now, it’s important to know that wrapping your code within `do` and `end` tells Sonic Pi you wish to do something special with that chunk of code.