Sonic Pi v2.3 Release Notes
-
Wednesday 28th January, 2015 (view commits)
๐ฅ Breaking Changes
- Playing chords with the fn
chord
now divides the amplitude of each resulting synth by the number of notes in the chord. This ensures the resulting amplitude isn't excessive and is normalised. - Chords now evaluate their args once and those args are used for all synth triggers. This means random values are only generated once and are similar across all notes in the chord. Previous behaviour can be obtained by calling play multiple times with no interleaved sleeps.
- ๐ Ensure each new thread's random number generator is unique yet seeded
in a deterministic manner. This stops random vals across
at
from being identical. range
is now exclusive:(range 1, 5) #=> (ring 1, 2, 3, 4)
๐ New
- ๐ New fn
density
for compressing and repeating time Dr Who style. For example, wrapping some code with a call to density of 2 will double the bpm for that block as well as repeating it twice. This ensures the block takes the same amount of time to execute while doing double the work. - New fns
with_bpm_mul
anduse_bpm_mul
which will multiply the current bpm by a specified amount. Useful for slowing down and speeding up the execution of a specific thread or live_loop. - ๐ New fn
rdist
- generate a random number with a centred distribution - ๐ New examples:
square skit
,shufflit
andtilburg
๐ Improvements
- Teach control to ignore nil nodes i.e.
control nil, amp: 3
will do nothing. - Teach Float#times to yield a float to the block. For example,
3.4.times {|v| puts v}
will yield0.0
,1.0
and2.0
. - Synth, Sample and FX args now handle bools and nil correctly.
true
resolves to1.0
andfalse
,nil
resolve to0.0
. This allows you to write code such as:play :e3, invert_wave: true
- ๐ Teach
at
to handle varying block arities differently. See docs for more detail. Original behaviour is preserved and only extended. - โก๏ธ App now checks for updates (at most once every 2 weeks). This may be disabled in the prefs.
- Teach
:reverb
FX to extend its kill delay time with larger room sizes to reduce the chance of clipping.
Synths & FX
- ๐ New FX
bitcrusher
- for crunching and destroying those hi-fi sounds. - ๐ New FX
flanger
- a classic swhooshing effect typically used with vocals and guitars. - ๐ New FX
ring
- ring modulation for that friendly Dalek sound - ๐ New FX
bpf
- a band pass filter - ๐ New FX
rbpf
- a resonant band pass filter - ๐ New FX
nbpf
- a normalised band pass filter - ๐ New FX
nrbpf
- a normalised resonant band pass filter
๐ New Samples
perc_snap
- a finger snapperc_snap2
- another finger snapbd_ada
- a bass drumguit_em9
- a lovely guitar arpeggio over Em9
๐ Bug Fixes
- Namespace
live_loop
fn and thread names to stop them clashing with standard user defined threads and fns. - GUI no longer crashes when you start a line with a symbol.
with_fx
now returns the result of the block- ๐ Kill zombie scsynth servers on startup for better crash recovery.
- ๐ Handle paths with UTF8 characters gracefully
- ๐ฎ Force sample rate for output and input to 44k on OS X. This stops scsynth from crashing when output and input sample rates are different.
- Playing chords with the fn