Sonic Pi v2.5 Release Notes

  • Monday 13th April, 2015 (view commits)

    🚀 This release comes with support for Minecraft: Pi Edition installed on the Raspberry Pi. You can now create music with Minecraft visuals or even code up a synth score in Minecraft blocks and read and play the score 🚀 from Sonic Pi! Another exciting aspect of this release is much improved editor functionality for navigating around and manipulating code via keyboard shortcuts. This means that live coding just got a lot more fun. The keyboard shortcuts are based on the standard shortcuts provided by GNU Emacs - the oldest and most powerful text editor in use by wizard programmers today.

    💥 Breaking Changes

    • 0️⃣ invert_wave now defaults to 1 everywhere. I found I always inverted the wave every time I used a synth/fx where wave inversion was key. This seemed like such a better default I've broken compatibility for it. Apologies if this has affected you.
    • The flanger FX now defaults the optional arg stereo_invert_wave to 1.
    • 📇 Renamed FX ring to ring_mod to reduce the potential for confusion with the ring datastructure.
    • Tab now indents current line or selection rather than inserting a useless tab character.

    🆕 New

    • 👌 Support for programming Minecraft Pi Edition.
    • 🔀 sync now accepts multiple cue ids and will sync on the first matching id.
    • 🆕 New fn pitch_ratio for converting a midi note to a frequency ratio. Useful for tuning samples.
    • 🆕 New fn line for creating a line from start to finish with a specific number of slices.
    • 🆕 New fn spark for displaying lists of numbers in a fancy text-graph (▁▃▅▇) in the log.
    • On stop, amplitude of output slides down over 1s to silence for a smoother transition.
    • sample_duration now scales result based on current BPM.
    • range now accepts optional args: inclusive: and step:.

    GUI

    • 🌐 German translation of GUI and tutorial. Simply open Sonic Pi with a machine with a German localisation setting.
    • Display GUI fully maximised when opening for first ever time.
    • Workspace indexing now starts at 0 to match standard programming indexes.
    • 🆕 New shortcuts - M-< and M-> for switching workspaces.
    • 👀 Many new Emacs-based code navigation and editing shortcuts. See the shortcut cheatsheet in the built-in tutorial for more information.
    • Increase height of doc and error panes.
    • 👌 Improve error pane colour scheme.
    • Auto-align now trims whitespace from start and end of buffer.
    • ➕ Add preference toggle to hide/show line numbers.
    • 📚 Documentation now supports semantic formatting and highlighting.
    • 📄 Docsystem tabs are now positioned at the bottom for better navigation.
    • 🆕 New preference to hide/show line numbers in editor.

    Synths & FX

    • 🆕 New FX - :pitch_shift

    🐛 Bug Fixes

    • 🛠 Fix OSC lib to properly encode multibyte chars such as UTF8
    • 🛠 Fix sporadic issue on some platforms when trigging percussive sounds within a reverb FX caused a serious audio overload.
    • Add missing fn metadata for *_sample_bpm
    • 🛠 Fix synth metadata for FX :bpf.
    • Fix arg metadata for use_sample_pack_as
    • 🖨 Rings now pretty print themselves as (ring 1, 2, 3) rather than [1, 2, 3].
    • C-k keyboard shortcut now copies text into the clipboard.
    • Scales and chords now return actual rings rather than ring-like things.
    • 👌 Improve Ring Mod FX arguments
    • Exceptions created within with_fx are now raised correctly.