Rerezzed
Version 2.7 - 'Rerezzed'
Thursday 10th September, 2015
This release brings a substantial change to the random number
generator. This has the unfortunate side effect of breaking backwards
compatibility. If you have been using rand
, choose
, shuffle
and
friends to create predictable patterns for your riffs, your code will
produce different results in this release. Please let me apologise and
say it's for a good cause. So what is this good cause? Well, you can
now jump backwards and forwards through the random stream giving you way
more creative control than before! The random stream is now also unified
with the random stream on the synthesis server allowing you to sync
behaviour between synths and code. Exciting times.
The sampler has also been super charged. We can now easily change the
rate via MIDI note intervals with rpitch:
and stretch the sample whilst
preserving pitch via pitch_stretch:
(although with variable results
;-)
).
Finally you can now control the global mixer with set_mixer_control!
for those full filter sweeps over the entire sound...
Have fun and happy live coding!
Breaking Changes
- Complete rewrite of random number system. This means if you've been
combining calls touse_random_seed
with randomisation to create
predictable melodies/rhythms/timbral manipulations you will
unfortunately get different results inv2.7
. This change is to
synchronise both the Ruby rand stream with the one in SuperCollider as
well as enabling the reversal of calls to rand viarand_back
. sync
now causes the BPM to be inherited from the thread calling the
matchingcue
. This may be disabled with the newbpm_sync:
opt.rrand
andrand
now return 0 if called with 0.invert_chord
now handles negative inversions in a more musically
appropriate manner..
New Fns
ratio_to_pitch
which provides the inverse ofpitch_to_ratio
midi_notes
- returns a ring of numbers (mapping the source
ring/array through the fnnote
).rand_back
- reverse the random stream and 'undo' calls torand
rand_skip
- skip forward through the random stream.rand_reset
- reset the random stream to the last seed.
GUI
- It is now possible to toggle the commenting of whole selections or
individual lines with the shortcutM-/
. - Added Icelandic translation.
Synths & FX
- All synths learned the
decay_level
opt to allow the sustain phase to
shift between two distinct values. The default value fordecay_level
is to mirrorsustain_level:
thus preserving current behaviour. play
andsynth
have now learned thepitch:
opt to match
sample
. This just increments or decrements the final note.sample
now correctly validates opts.sample
learned thepitch_stretch:
opt which combinesrate:
modification (similar tobeat_stretch:
withpitch:
. Attempts to
maintain the pitch whilst simultaneously changing the rate. The
underlying implementation is very basic and can easily destroy the
sound.sample
learned therpitch:
opt for simple rate pitch
modulation. This modifies the rate to match the specified number of
MIDI notes relative from the current pitch. For example, arpitch:
of 12 would double the rate.- The unit of the FX
:echo
'sdecay:
opt is now beats and the value
is scaled with the BPM.
Examples
- Most examples have been tweaked to sound good with the new random
generator. - Tilburg has been replaced with Tilburg 2. Play it and get your
Algorave on!
Improvements
- Auto-align code on Run.
live_loop
learned theseed:
opt which will set the new thread with
the specified seed prior to initial run.- Add check to ensure BPM is a positive value.
density
has now been taught to handle values between 0 and 1 which
will now stretch time for the specified block.- Errors now no longer print out crazy print version of context object
i.e. #SonicPiSpiderUser1:0x007fc82e1f79a0 - Both
in_thread
andlive_loop
have now learned thedelay:
opt
which will delay the initial execution by the specified number of
beats. - Buffer and thread name are now printed on error.
sample_duration
now understands all the opts that you can pass tosample
- It is now possible to do basic arithmetic on symbols representing
rests::r + 3
returns:r
(a rest plus any MIDI note shift is still
a rest).
Bug Fixes
- Fixed crash when synth args were specified as Rationals.
note_info
now correctly handles octaves.- Fix windows paste shortcut
C-v
. - Teach
invert_chord
how to properly handle out of range index ranges.
Releases
Mac | |
Link | Sonic-Pi-for-Mac-v2.7.0.dmg |
Size | 93M |
MD5 | 9bf75c57995c4d91a13cbeb6dbe5f4b8 |
SHA256 | 8a02d029273a3906b4761e2d36d64d34f0c4aff4fed4253658f0dc1c0f219ff9 |
Raspberry Pi (Jessie) | |
Link | Sonic-Pi-for-RPi-Jessie-v2.7.0.tgz |
Size | 65M |
MD5 | 5b69a9fa9dc572e5b624ddc922ea30a6 |
SHA256 | 742a66407b2150ef648e577f24c4790431cc7e12e373aa9fbf892253b22a536b |
Windows | |
Link | Sonic-Pi-for-Win-v2.7.0.msi |
Size | 71M |
MD5 | 51c2626ce2dd886bebc270416396312d |
SHA256 | 8d3cd925f73d2a6159a757ea9c0d21697a16b3a921ed70b377317fae7e43e9f2 |