Sonic Pi v2.9.0 Release Notes

Release Date: 2018-02-21 // about 6 years ago
  • Thursday 31st December, 2015

    ๐Ÿš€ Hot on the heels of the previous release comes v2.9 codenamed
    ๐Ÿš€ Venster (Dutch for window). This release has a specific focus on
    ๐Ÿ›  fixing all the known issues with Sonic Pi running on Windows. If you've
    ๐Ÿ tried Sonic Pi on Windows before and had issues, make sure to try it
    ๐Ÿ again with v2.9. If you're still having issues on Windows please do
    let us know so we can fix it as soon as possible.

    For all you Raspberry Pi and Mac OS X users - you're not left out. Sonic
    Pi is just as stable as it was before (if not more stable) and v2.9
    comes with a surprising amount of tweaks and features for its short 1
    month development cycle. There's two new FX to play with: tanh and
    ๐ŸŒฒ gverb as well as a heavily revamped logging system which is much
    ๐Ÿ–จ clearer about printing which opts are actually being used for your
    synths and samples. Finally, we now include of all the published MagPi
    magazine articles in the tutorial. We also now have Hungarian and
    ๐ŸŒ Norwegian translations of the GUI.

    Happy Live Coding!

    ๐Ÿ’ฅ Breaking Changes

    • Rename fn invert_chord to chord_invert
    • Sampler no longer mixes rate: and pitch_stretch: opts. It's now
      possible to set the rate: independent of the pitch: modification
      caused by pitch_stretch.

    ๐Ÿ†• New Fns

    • block_duration - returns the duration of the given block in seconds (not scaled with the BPM).
    • ๐Ÿ”€ block_slept? - returns true if the contents of the block slept or synced.
    • synth_names - returns a list of all the available synths
    • 0๏ธโƒฃ reset_mixer! - resets the main mixer back to its default values.
    • ๐Ÿ†“ sample_free - unload a sample from memory to free up memory usage.
    • ๐Ÿ†“ sample_free_all - unload all samples from memory.
    • use_octave - similar to use_transpose but for whole octaves.
    • with_octave - similar to with_transpose but for whole octaves.
    • ๐Ÿ”€ use_merged_sample_defaults - similar to use_merged_synth_defaults
      but for samples
    • ๐Ÿ”€ with_merged_sample_defaults - similar to
      ๐Ÿ”€ with_merged_synth_defaults but for samples
    • use_cent_tuning - uniformly tune all subsequent notes in cents
    • with_cent_tuning - uniformly tune all notes in cents within the block

    Synths & FX

    • ๐Ÿ†• New FX tanh - for more distortion goodness.
    • ๐Ÿ†• New FX gverb - a different reverb FX to play with.

    GUI

    • Synths and samples now also log defaults set by use_synth_defaults
      and friends.
    • Opts are logged in the order they were defined with local opts first
      followed by inherited opts.
    • ๐ŸŒฒ BPM scaling is now accounted for in logging vals.
    • ๐Ÿ“‡ Log metadata such as run number and time is now printed in a more
      code-like way: as a hash of key value pairs.
    • C-k will now kill multiple lines if lines end with ,.
    • When saving a buffer a .txt extension is automatically added to the
      file name if none specified.
    • โž• Add Hungarian and Norwegian translations of GUI.
    • โž• Add Spanish translation of tutorial.
    • โž• Add title to main window - enables Sonic Pi to be selected in
      screensharing app lists such as Google Hangouts and OBS.
    • โž• Add autocompletion for tuning systems.

    ๐Ÿ“š Documentation

    • โž• Add 8 complete MagPi magazine articles to the tutorial in appendix A.
    • โž• Add new example 'ambient experiment' by Darin Wilson.
    • โž• Add new example 'chord inversions' by Adrian Cheater.
    • ๐Ÿ”„ Change tutorial license to CC-BY-SA 4.0.
    • โž• Add instructions for compiling and building on Windows.
    • Many, many minor tweaks and improvements.

    ๐Ÿ‘Œ Improvements

    • Add sync: opt to live_loop and in_thread. This now syncs the
      live loop once on creation. Similar to the delay: opt. If both
      ๐Ÿ”€ sync: and delay: are specified then the delay happens before the
      ๐Ÿ”€ sync.
    • The synth fn can now play chords with the notes: opt such as:
      synth :dsaw, notes: (chord :e3, :minor). This will return a single
      controllable synth node representing all the notes similar to
      play_chord.
    • BPM scaling and other normalisation is now honoured when controlling nodes
    • The on: opt is now honoured when playing chords.
    • ๐Ÿšฆ Samplers sound signal now bypasses filter envelope when not used.
    • It is now possible to use externally defined FX synths by passing a
      string as the FX name: with_fx "my_shiny_effect". This needs to be
      loaded manually via load_synthdefs.
    • ๐Ÿ‘ OS X now supports rates other than 44.1k provided they are similar for
      both audio in and out.
    • โš™ Run code in ~/.sonic-pi/init.rb on launch if it exists.
    • If environment variable SONIC_PI_HOME is set it will be used over
      ~ as the root of the user's .sonic-pi directory (used to auto-save
      ๐Ÿ”Š files and store logs).
    • 0๏ธโƒฃ Default sound card selection is now honoured on Raspberry Pi - so you
      may now use your IQaudIO hat (or similar) out of the box.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix number of synth validation errors.
    • ๐Ÿ›  Fix sporadically failing boot issues on Windows
    • โž• Add auto-reboot functionality for audio server. This now detects
      errors in the server (such as a killed or zombied process) and
      automatically reboots it to enable Sonic Pi to continue without a full
      restart. Reboots automatically reload all loaded samples and
      synthdefs.
    • 0๏ธโƒฃ sample_duration now correctly takes account of TL defaults set by
      use_sample_defaults.
    • Sampler opts pitch_stretch, beat_stretch and rpitch can now be
      0๏ธโƒฃ used in TL defaults.

    ๐Ÿš€ Releases

    Mac
    ๐Ÿš€ Link
    Size 93M
    MD5 c74d393043e2acf97a03430e824ecbf2
    SHA256 c9dcf6a9d05204b8cb51244f51f083ed5e68d36428814c768af752f4ff3686fa
    Raspberry Pi (Jessie)
    ๐Ÿš€ Link
    Size 61M
    MD5 d14eaf49b9c38a4afe4906ebc1b413b2
    SHA256 6406a92be127c50d1592ee1a3408f73fff77aa6290764f27a7a6cf273fc10e2e
    Raspberry Pi (Wheezy)
    ๐Ÿš€ Link
    Size 61M
    MD5 d63390b4167cee8a87632fbd7e22f04b
    SHA256 5f98c803c432f684382b24e9105fc6dfdc7b46fd7b6fd74c4fc5ac5ae59c2a05
    ๐Ÿ Windows
    ๐Ÿš€ Link
    Size 79M
    MD5 0311ce18b1ba35e343e1b4de533899c9
    SHA256 392fe3b1d5b8b651c86af2526e8add0b44e806207ee2ca90871fa6bbb7705b9c