Sonic Pi v2.10.0 Release Notes

Release Date: 2018-02-21 // about 6 years ago
  • Friday 15th April, 2016
    (view commits)

    "I gotta have more cowbell!" - The Bruce Dickinson

    ๐Ÿš€ The main feature in this release is the completely new sample system for
    working with large folders of samples. You can now easily index into and
    filter over whole folders of samples with a simple yet powerful filter
    system. This system has been in development for over a year now and has
    ๐ŸŽ been tuned and tweaked over many performances and practice sessions. See
    ๐Ÿ“š the documentation and examples for sample as well as the new tutorial
    section 3.7 for details.

    We also have a number of exciting new sounds to play with including some
    beautifully sounding chiptune synths, fun retro FX and new drum samples
    including a full tabla set and a cowbell.

    ๐Ÿ Finally, even more boot issues on both OS X and Windows have been
    ๐Ÿ›  fixed making this the most polished and stable release to date.

    Now go and get your live code on!

    ๐Ÿ’ฅ Breaking Changes

    • use_sample_pack_as and with_sample_pack_as have been removed.
    • A synth opt value of nil now no longer resolves to 0.0. Instead it
      0๏ธโƒฃ masks any defaults and ensures the downstream default (for the actual
      synthdef itself) is honoured. This allows you to override any existing
      synth defaults specified via use_synth_defaults for a given synth
      trigger.
    • โฑ Default schedule ahead time is now 0.5s on all platforms for
      consistency (except for Raspberry Pi 1 which remains at 1s).

    ๐Ÿ†• New Fns

    • current_random_seed - Get the current seed value of the random generator.
    • set_cent_tuning! - global tuning.
    • on - similar to if but behaves the same as the on: opt for
      synths and samples.
    • halves - create a ring of successive halves.
    • doubles - create a ring of successive doubles.
    • pick - similar to shuffle but allows duplicates. You may also
      specify how many items to pick.
    • fx_names - create a ring of all available FX.

    Synths & FX

    • ๐Ÿ†• New synth :dtri - detuned triangle waves.
    • ๐Ÿ†• New synth :pluck - a lovely synthesised plucked string.
    • ๐Ÿ†• New synth :chiplead - retro NES style lead synth.
    • ๐Ÿ†• New synth :chipbass - retro NES style bass synth.
    • ๐Ÿ†• New synth :chipnoise - retro NES style noise synth.
    • ๐Ÿ†• New FX :whammy - low-tech transposition effect similar to the
      Digitech Whammy guitar pedal.
    • ๐Ÿ†• New FX :octaver - low-tech octave effect similar to early guitar
      pedals.
    • ๐Ÿ†• New FX :vowel - modifies incoming signal to match human vowel
      sounds.
    • ๐Ÿ†• New FX :mono - mono effect for summing stereo channels.
    • 0๏ธโƒฃ :tanh FX is now more crunchy by default.
    • :compressor and :krush FX now correctly honour the mix: opt.

    Samples

    • ๐Ÿ‘ Samples in FLAC format (Free Lossless Audio Codec) are now supported!
    • The sample fn gained source and filter pre-opts. You may now specify
      a number of parameters directly before the opts which describe both
      folders containing samples and filters over those folders to allow you
      ๐Ÿ‘€ to easily and quickly work with large sample sets. See Section 3.7 of
      the tutorial for more information.
    • Samplers now have hpf: and lpf: opts. Any cutoff: opts are
      automatically switched to lpf: and any errors will be reported with
      an lpf: prefix.
    • The sampler synth gained a compressor enabled via the compress:
      opt. This means you can now compress any triggered sample directly
      without the need to reach for an FX.
    • Samplers gained the pre_amp: opt which applies the amp at the
      ๐Ÿšฆ beginning of its internal signal chain. You can use this to overload
      the new compressor.
    • Samplers now have both high pass and low pass filter envelopes which
      behave similarly to the amplitude envelope but control internal hpf
      and lpf FX. These are available via new opts which mirror the standard
      envelope opts but with a hpf_ and lpf_ prefix (such as
      hpf_attack, lpf_decay_level and friends).
    • Passing a directory path to load_samples will now load all the
      samples within that directory.
    • ๐Ÿ†“ Passing a directory path to free_samples will now free all the
      loaded samples within that directory.
    • Samples are now loaded asynchronously in a separate thread. This
      therefore doesn't block the current thread and cause any subsequent
      synth/sample triggers to be late.
    • ๐ŸŒฒ Sample trigger logging now includes the directory of the contained
      sample.
    • Samples are now reloaded asynchronously after a server reboot (and
      therefore no longer block execution).
    • โž• Add new :tabla_ sample group with a range of tabla drum sounds.
    • โž• Add new :vinyl_ sample group with a range of vinyl scratches and
      hisses.
    • Add new samples: :drum_cowbell, :drum_roll, :misc_cros,
      :misc_cineboom, :perc_swash, :perc_till, :loop_safari,
      :loop_tabla.

    GUI

    • โž• Add new preference to enforce strict synth/FX timing. When enabled
      synths and samples no longer trigger if it is too late - instead they
      โš  are silent and print a warning message. This behaviour ensures samples
      or synths are never triggered out of time.
    • ๐Ÿ†• New load button which will load the contents of a file into the
      current buffer.
    • The vertical bars which help visualise nesting now render in a
      contiguous fashion over blank lines.
    • C-k now nukes over trailing whitespace.
    • load_sample now has sample autocompletion.
    • GUI now correctly reports if the host is a Raspberry Pi 3.
    • ๐Ÿ†• New editor preference - Log Auto Scroll. When enabled will always
      ๐Ÿ–จ scroll log to the bottom after printing every new message.
    • Whitespace at top and bottom of buffer is no longer trimmed.
    • Hitting RETURN now auto-indents the buffer - ensuring that the
      ๐Ÿšš cursor is moved to the correct indentation on the following line.
    • โž• Added Chinese Simplified GUI translation.
    • ๐ŸŒฒ Log visibility now correctly matches GUI preference.

    ๐Ÿ“š Documentation

    • ๐Ÿ†• New tutorial section 3.7 on Sample Pack Filters.
    • ๐Ÿ†• New appendix sections.
    • Examples for sample fn have been completely rewritten and extended.

    ๐Ÿ‘Œ Improvements

    • scale and chord can now handle being passed no tonic such as:
      (chord :minor) which will return a ring of offsets from 0.
    • chord learned new variants: add2, add4, add9, add11,
      add13, madd2, madd4, madd9, madd11, madd13
    • The ring's .take method can now take more elements than the original
      ring by wrapping around:
      (ring 1, 2, 3).take(5) #=> (ring 1, 2, 3, 1, 2)
    • Rings may now be added or subtracted from each other e.g.
      (ring 1, 2, 3) + (ring 4) #=> (ring 1, 2, 3, 4)
    • โž• Adding or subtracting a number from a ring will create a new ring with
      the number added or subtracted from each of the original ring's
      elements: (ring 1, 2, 3) - 1 #=> (ring 0.0, 1.0, 2.0)
    • Calling (ring 1, 2, 3).take(0) will now return an empty ring.
    • density now complains if it isn't passed a do/end block.
    • ๐Ÿ‘Œ Improve error messages for use/with_synth when accidentally passed opts.

    ๐Ÿ›  Bugfixes

    • On OS X only raise an error on boot if it's clear the sound card's in
      and out rates are different.
    • ๐Ÿ‘Œ Improve robustness of boot process on Windows.
    • ๐Ÿ–จ Rest notes are no longer printed if synth logging is disabled.
    • 0๏ธโƒฃ No longer apply synth defaults to FX.
    • You may now control opts that have no associated info (previously it
      would raise a 'not modulatable' error).
    • ๐Ÿ›  Fix index lookup of Vectors.
    • ๐Ÿ›  Fix C-i doc lookup shortcut to work with :tb303 synth docs.
    • ๐Ÿ“„ C-i now always displays docs where available (previously it was
      ๐Ÿ“„ possible for docs not to be displayed).
    • Sliding between chords now works correctly
    • ๐Ÿ Windows version will now boot mutiple networked machines logged in
      with the same account.

    ๐Ÿš€ Releases

    Mac
    ๐Ÿš€ Link
    Size 59M
    MD5 db2888bbcc5fb5406ec9c54f74fbb049
    SHA256 4539cbd70f1e0d347c27231f741a245551c0d50f10e987761b9b7567ba0d82fe
    Raspberry Pi (Jessie)
    ๐Ÿš€ Link
    Size 48M
    MD5 3eebecf9363dfa8df6599cab6d98da55
    SHA256 7ac3d97a288ea670d3ad8a683b60009fa5737faa59f924cc5f8b462797982e63
    ๐Ÿ Windows Portable
    ๐Ÿš€ Link
    Size 51M
    MD5 fbf67315b0d99e9523d7b06bfca5a680
    SHA256 e08f3ec43cdc879175dca1682d0e33b933daf4975b189ffe2e468785206c9d43
    ๐Ÿ Windows
    ๐Ÿš€ Link
    Size 73M
    MD5 3368579b82c6ebfbe5995d2c9b22acfe
    SHA256 b79e7c20a20cc83aa752a12c2b5b7ab497c9dc4c3db3024ddce0b5ac73328e99