Sonic Pi v2.1 Release Notes
-
Friday 21st November, 2014 (view commits)
๐ The focus of release is very much on technical improvements, efficiency ๐ and general polish.
The most obvious and exciting change is the introduction of the
live_loop
which will change the way you work with Sonic Pi. For more information onlive_loop
take a look at the new section in the tutorial. Another very exciting development is that v2.1 marks the ๐ official support for Windows thanks to the excellent work by Jeremy ๐ Weatherford. Finally, this release is also the first release where Sonic Pi has a Core Team of developers. Please give a warm welcome to Xavier Riley, Jeremy Weatherford and Joseph Wilk.API Changes
- ๐ New fn
live_loop
- A loop for live coding - ๐ New fn
inc
- increment - ๐ New fn
dec
- decrement - ๐ New fn
quantise
- quantise a value to resolution - ๐ New fn
factor?
- Factor test - ๐ New fn
at
- Run a block at the given times - ๐ New fn
degree
- for resolving a note in a scale by degree such as:i
,:iv
- ๐ New fn
chord_degree
- Construct chords based on scale degrees - New TL fn
use_sample_bpm
- for changing the BPM based on a sample's duration - ๐ New fn
rest?
- Determine if note or args is a rest - ๐ New fn
vt
- Get virtual time - New fn
set_control_delta!
- Set control delta globally - ๐
wait
now handles bothsleep
andsync
functionality - ๐ Allow first arg to
play
to be a proc or lambda. In which case simple call it and use the result as the note - Teach
play
to accept a single map argument (in which case it will extract:note
key out if it exists. - Fns
play
andsynth
now treat 'notes'nil
,:r
and:rest
as rests and don't trigger any synths.
GUI Modifications
- โก๏ธ Updated and improved tutorial
- Much improved autocompletion
- โ Add HPF, LPF, mono forcer and stereo swapping preferences to new studio section for use when performing with Sonic Pi through an external PA.
- ๐ Shortcuts overhauled - now supports basic Emacs-style Ctrl-* navigation.
- Shortcuts Alt-[ and Alt-] now cycle through workspaces
- Shortcuts now work when toolbar is hidden
- Font sizes for individual workspaces are now stored between sessions
- ๐ Ctl-Mouse-wheel zooms font on Windows
- ๐ Links are now clickable (opening external browser)
- ๐ Entries in docsystem's synth arg table are now clickable and will take focus down to arg documentation
- Stop users accidentally clearing entire workspace if they type quickly after hitting run
- Hitting F1 or
C-i
over a function name now opens up the doc system at the relevant place
๐ Bugs/Improvements
- Reworked examples.
- Much improved efficiency in many areas - especially for Raspberry Pi.
- Avoid occasional clicking sound when stopping runs
- Note Cb is now correctly resolved to be a semitone lower than C
- Non RP systems now start with more audio busses (1024)
- ๐ Array#sample and Array#shuffle are now correctly seeded with thread local random generator
- ๐ฒ Log files are now placed into ~/.sonic-pi/log
- Chords and scales now wrap around when accessed from indexes outside of their range.
rand_i
andrrand_i
now correctly return integers rather than floats- rrand arguments now correctly handle a range of 0 (i.e. min == max)
- Line offset in error messages is now correct
- ๐ When saving files on Windows, CRLF line endings are used
- Stop users defining functions with same name as core API fns
Synths, Samples & FX
- ๐ New samples (bass drums, snares and loops)
- ๐ Allow
mod_range:
opt to have negative values (for oscillating with lower notes) - Change slide mechanism to default to linear sliding with support for changing the curve type. All modifiable args now have corresponding
_slide_shape
and_slide_curve
args. - ๐ Improve TB303 synth - now supports separate cutoff ADSR envelopes. New opts:
cutoff_attack:
,cutoff_sustain:
,cutoff_decay:
,cutoff_release:
,cutoff_min_slide:
,cutoff_attack_level:
,cutoff_sustain_level:
,cutoff_env_curve:
- ๐ New fn