sonic-pi: v2.7.0 - Rerezzed
Creators
- Sam Aaron1
- Joseph Wilk2
- Jeremy Weatherford
- Hanno Zulla3
- xavriley
- Martin Keegan
- ethancrawford
- Nicolas Dermine
- Wolfgang Werner
- Robin Newman
- Clare Macrae
- Hannes Fritz
- G. Martin Butz
- Łukasz Siwiński
- Steve Traylen4
- Martin Zeilinger
- Katie Miller
- Will Stephenson5
- kn1kn1
- Ben Nuttall6
- Bruce Adams
- Daniel Canelhas7
- Joseph Haig8
- Alex McLean9
- Ivan Zarea
- Hrafnkell Eiríksson
- Graham Taylor10
- Emlyn Corrin11
- Cosmin Stroe12
- Christian Perfect
- 1. University of Cambridge
- 2. SoundCloud
- 3. epublica
- 4. CERN
- 5. SUSE Linux Products GmbH
- 6. Raspberry Pi Foundation
- 7. Örebro University
- 8. BBC
- 9. University of Leeds
- 10. rpi school
- 11. SwiftKey
- 12. Backstop Solutions Group
Description
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 to use_random_seed with randomisation to create predictable melodies/rhythms/timbral manipulations you will unfortunately get different results in v2.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 via rand_back.
- sync now causes the BPM to be inherited from the thread calling the matching cue. This may be disabled with the new bpm_sync: opt.
- rrand and rand now return 0 if called with 0.
- invert_chord now handles negative inversions in a more musically appropriate manner..
- ratio_to_pitch which provides the inverse of pitch_to_ratio
- midi_notes - returns a ring of numbers (mapping the source ring/array through the fn note).
- rand_back - reverse the random stream and 'undo' calls to rand
- rand_skip - skip forward through the random stream.
- rand_reset- reset the random stream to the last seed.
- It is now possible to toggle the commenting of whole selections or individual lines with the shortcut M-/.
- Added Icelandic translation.
- All synths learned the decay_level opt to allow the sustain phase to shift between two distinct values. The default value for decay_level is to mirror sustain_level: thus preserving current behaviour.
- play and synth have now learned the pitch: opt to match sample. This just increments or decrements the final note.
- sample now correctly validates opts.
- sample learned the pitch_stretch: opt which combines rate: modification (similar to beat_stretch: with pitch:. Attempts to maintain the pitch whilst simultaneously changing the rate. The underlying implementation is very basic and can easily destroy the sound.
- sample learned the rpitch: 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, a rpitch: of 12 would double the rate.
- The unit of the FX :echo's decay: opt is now beats and the value is scaled with the BPM.
- 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!
- Auto-align code on Run.
- live_loop learned the seed: 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 and live_loop have now learned the delay: 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 to sample
- 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).
- 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.
Files
sonic-pi-v2.7.0.zip
Files
(72.3 MB)
Name | Size | Download all |
---|---|---|
md5:76b74d28b0c8a8a66b9792ae92b12dc7
|
72.3 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/samaaron/sonic-pi/tree/v2.7.0 (URL)