1 Welcome to Sonic Pi
1.1 Live Coding
1.2 Exploring the Interface
1.3 Learning through Play
2 Synths
2.1 Your First Beeps
2.2 Synth Options
2.3 Switching Synths
2.4 Duration with Envelopes
3 Samples
3.1 Triggering Samples
3.2 Sample Parameters
3.3 Stretching Samples
3.4 Enveloped Samples
3.5 Partial Samples
3.6 External Samples
3.7 Sample Packs
4 Randomisation
5 Programming Structures
5.1 Blocks
5.2 Iteration and Loops
5.3 Conditionals
5.4 Threads
5.5 Functions
5.6 Variables
5.7 Thread Synchronisation
6 FX
6.1 Adding FX
6.2 FX in Practice
7 Control
7.1 Controlling Running Synths
7.2 Controlling FX
7.3 Sliding Options
8 Data Structures
8.1 Lists
8.2 Chords
8.3 Scales
8.4 Rings
8.5 Ring Chains
9 Live Coding
9.1 Live Coding Fundamentals
9.2 Live Loops
9.3 Multiple Live Loops
9.4 Ticking
10 Time State
10.1 Set and Get
10.2 Sync
10.3 Pattern Matching
11 MIDI
11.1 MIDI In
11.2 MIDI Out
12 OSC
12.1 Receiving OSC
12.2 Sending OSC
13 Multichannel Audio
13.1 Sound In
13.2 Live Audio
13.3 Sound Out
14 Conclusions
A Appendix A - MagPi Articles
A.1 Tips for Sonic Pi
A.2 Live Coding
A.3 Coded Beats
A.4 Synth Riffs
A.5 Acid Bass
A.6 Musical Minecraft
A.7 Bizet Beats
A.8 Become a Minecraft VJ
A.9 Randomisation
A.10 Control
A.11 Tick Tock
A.12 Sample Slicing
A.13 Code a Probabilistic Sequencer
A.14 Amplitude Modulation
A.15 Five Live Coding Techniques
A.16 How to Practice Live Coding
A.17 Sample Stretching
A.18 Sound Design - Additive Synthesis
A.19 Sound Design - Subtractive Synthesis
A.20 Creative coding in the classroom with Sonic Pi
B Essential Knowledge
B.1 Using Shortcuts
B.2 Shortcut Cheatsheet
B.3 Sharing
B.4 Performing
C Minecraft Pi
C.1 Basic API
Beep
Blade
Bnoise
Chipbass
Chiplead
Chipnoise
Cnoise
Dark Ambience
Dpulse
Dsaw
Dtri
Dull Bell
Fm
Gnoise
Growl
Hollow
Hoover
Kalimba
Mod Dsaw
Mod Fm
Mod Pulse
Mod Saw
Mod Sine
Mod Tri
Noise
Piano
Pluck
Pnoise
Pretty Bell
Prophet
Pulse
Rodeo
Saw
Sound In
Sound In Stereo
Square
Subpulse
Supersaw
Tb303
Tech Saws
Tri
Zawa
Autotuner
Band EQ Filter
Bitcrusher
Band Pass Filter
Compressor
Distortion
Echo
EQ
Flanger
GVerb
High Pass Filter
Techno from IXI Lang
krush
Level Amplifier
Low Pass Filter
Mono
Normalised Band Pass Filter
Normalised High Pass Filter
Normalised Low Pass Filter.
Normaliser
Normalised Resonant Band Pass Filter
Normalised Resonant High Pass Filter
Normalised Resonant Low Pass Filter
Octaver
Pan
Pan Slicer
Ping Pong Echo
Pitch shift
Resonant Band Pass Filter
Record
Reverb
Resonant High Pass Filter
Ring Modulator
Resonant Low Pass Filter
Slicer
Sound Out
Sound Out Stereo
Hyperbolic Tangent
Tremolo
Vowel
Whammy
Wobble
Ambient Sounds
Bass Sounds
Bass Drums
Drum Sounds
Electric Sounds
Glitchy Sounds
Sounds featuring guitars
Sounds for Looping
Mehackit Sounds
Miscellaneous Sounds
Percussive Sounds
Snare Drums
Sounds of a Tabla Drum
Vinyl sounds
all_sample_names
assert
assert_equal
assert_error
assert_not
assert_not_equal
assert_similar
at
beat
block_duration
block_slept?
bools
bt
buffer
choose
chord
chord_degree
chord_invert
chord_names
clear
comment
control
cue
current_arg_checks
current_beat_duration
current_bpm
current_cent_tuning
current_debug
current_midi_defaults
current_octave
current_random_seed
current_sample_defaults
current_sched_ahead_time
current_synth
current_synth_defaults
current_time
current_transpose
current_volume
dec
define
defonce
degree
density
dice
doubles
eval_file
factor?
fx_names
get
halves
hz_to_midi
in_thread
inc
kill
knit
line
live_audio
live_loop
load_buffer
load_example
load_sample
load_samples
load_synthdefs
look
loop
map
mc_block_id
mc_block_ids
mc_block_name
mc_block_names
mc_camera_fixed
mc_camera_normal
mc_camera_set_location
mc_camera_third_person
mc_chat_post
mc_checkpoint_restore
mc_checkpoint_save
mc_get_block
mc_get_height
mc_get_pos
mc_get_tile
mc_ground_height
mc_location
mc_message
mc_set_area
mc_set_block
mc_set_pos
mc_set_tile
mc_surface_teleport
mc_teleport
midi
midi_all_notes_off
midi_cc
midi_channel_pressure
midi_clock_beat
midi_clock_tick
midi_continue
midi_local_control_off
midi_local_control_on
midi_mode
midi_note_off
midi_note_on
midi_notes
midi_pc
midi_pitch_bend
midi_poly_pressure
midi_raw
midi_reset
midi_sound_off
midi_start
midi_stop
midi_sysex
midi_to_hz
ndefine
note
note_info
note_range
octs
on
one_in
osc
osc_send
pick
pitch_to_ratio
play
play_chord
play_pattern
play_pattern_timed
print
puts
quantise
ramp
rand
rand_back
rand_i
rand_i_look
rand_look
rand_reset
rand_skip
range
ratio_to_pitch
rdist
reset
reset_mixer!
rest?
ring
rrand
rrand_i
rt
run_code
run_file
sample
sample_buffer
sample_duration
sample_free
sample_free_all
sample_groups
sample_info
sample_loaded?
sample_names
sample_paths
scale
scale_names
scsynth_info
set
set_audio_latency!
set_cent_tuning!
set_control_delta!
set_mixer_control!
set_recording_bit_depth!
set_sched_ahead_time!
set_volume!
shuffle
sleep
spark
spark_graph
spread
status
stop
stretch
sync
sync_bpm
synth
synth_names
tick
tick_reset
tick_reset_all
tick_set
time_warp
uncomment
use_arg_bpm_scaling
use_arg_checks
use_bpm
use_bpm_mul
use_cent_tuning
use_cue_logging
use_debug
use_merged_midi_defaults
use_merged_sample_defaults
use_merged_synth_defaults
use_midi_defaults
use_midi_logging
use_octave
use_osc
use_osc_logging
use_random_seed
use_random_source
use_real_time
use_sample_bpm
use_sample_defaults
use_sched_ahead_time
use_synth
use_synth_defaults
use_timing_guarantees
use_transpose
use_tuning
vector
version
vt
wait
with_arg_bpm_scaling
with_arg_checks
with_bpm
with_bpm_mul
with_cent_tuning
with_cue_logging
with_debug
with_fx
with_merged_midi_defaults
with_merged_sample_defaults
with_merged_synth_defaults
with_midi_defaults
with_midi_logging
with_octave
with_osc
with_osc_logging
with_random_seed
with_random_source
with_real_time
with_sample_bpm
with_sample_defaults
with_sched_ahead_time
with_swing
with_synth
with_synth_defaults
with_timing_guarantees
with_transpose
with_tuning
Changelog
Contributors
Community
Coreteam
License
Info
Tutorial
Synths
FX
Samples
Lang
Sonic Pi v3.3.1 Docs (zh-Hk)
🌐 Language
Bosanski
Català
Čeština
Dansk
Deutsch
ελληνικά
English
Español
Eesti keel
Suomi
Français
Galego
हिन्दी
Magyar
Bahasa Indonesia
Íslenska
Italiano
日本語
한국어
Norsk Bokmål
Nederlands
Polski
Português
Português do Brasil
Română
Pусский
Slovenščina
Svenska
Türkçe
简体中文
廣東話
臺灣華語
🎨 Theme
Light
Dark
High Contrast
Minecraft Pi - set location to coords of specified tile/block
mc_set_tile
x
(number)
, y
(number)
, z
(number)
Introduced in v2.5
Example
# Example 1