Synth Options: Amp and Pan
As well as allowing you to control which note to play or which sample to trigger, Sonic Pi provides a whole range of options to craft and control the sounds. Weāll be covering many of these in this tutorial and thereās extensive documentation for each in the help system. However, for now weāll introduce two of the most useful: amplitude and pan. First, letās look at what options actually are.
Options
Sonic Pi supports the notion of options (or opts for short) for its synths. Opts are controls you pass to play
which modify and control aspects of the sound you hear. Each synth has its own set of opts for finely tuning its sound. However, there are common sets of opts shared by many sounds such as amp:
and envelope opts (covered in another section).
Opts have two major parts, their name (the name of the control) and their value (the value you want to set the control at). For example, you might have an opt called cheese:
and want to set it with a value of 1
.
Opts are passed to calls to play
by using a comma ,
and then the name of the opt such as amp:
(donāt forget the colon :
) and then a space and the value of the opt. For example:
play 50, cheese: 1
(Note that cheese:
isnāt a valid opt, weāre just using it as an example).
You can pass multiple opts by separating them with a comma:
play 50, cheese: 1, beans: 0.5
The order of the opts doesnāt matter, so the following is identical:
play 50, beans: 0.5, cheese: 1
Opts that arenāt recognised by the synth are just ignored (like cheese
and beans
which are clearly ridiculous opt names!)
If you accidentally use the same opt twice with different values, the last one wins. For example, beans:
here will have the value 2 rather than 0.5:
play 50, beans: 0.5, cheese: 3, eggs: 0.1, beans: 2
Many things in Sonic Pi accept opts, so just spend a little time learning how to use them and youāll be set! Letās play with our first opt: amp:
.
Amplitude
Amplitude is a computer representation of the loudness of a sound. A high amplitude produces a loud sound and a low amplitude produces a quiet sound. Just as Sonic Pi uses numbers to represent time and notes, it uses numbers to represent amplitude. An amplitude of 0 is silent (youāll hear nothing) whereas an amplitude of 1 is normal volume. You can even crank up the amplitude higher to 2, 10, 100. However, you should note that when the overall amplitude of all the sounds gets too high, Sonic Pi uses whatās called a compressor to squash them all to make sure things arenāt too loud for your ears. This can often make the sound muddy and strange. So try to use low amplitudes, i.e. in the range 0 to 0.5 to avoid compression.
Amp it up
To change the amplitude of a sound, you can use the amp:
opt. For example, to play at half amplitude pass 0.5:
play 60, amp: 0.5
To play at double amplitude pass 2:
play 60, amp: 2
The amp:
opt only modifies the call to play
itās associated with. So, in this example, the first call to play is at half volume and the second is back to the default (1):
play 60, amp: 0.5
sleep 0.5
play 65
Of course, you can use different amp:
values for each call to play:
play 50, amp: 0.1
sleep 0.25
play 55, amp: 0.2
sleep 0.25
play 57, amp: 0.4
sleep 0.25
play 62, amp: 1
Panning
Another fun opt to use is pan:
which controls the panning of a sound in stereo. Panning a sound to the left means that you hear it out of the left speaker, and panning it to the right means you hear it out of your right speaker. For our values, we use a -1 to represent fully left, 0 to represent center and 1 to represent fully right in the stereo field. Of course, weāre free to use any value between -1 and 1 to control the exact positioning of our sound.
Letās play a beep out of the left speaker:
play 60, pan: -1
Now, letās play it out of the right speaker:
play 60, pan: 1
Finally letās play it back out of the center of both (the default position):
play 60, pan: 0
Now, go and have fun changing the amplitude and panning of your sounds!