Skip to content

Releases: sonic-pi-net/sonic-pi

Beamer

01 Feb 11:19
00f737e
Compare
Choose a tag to compare

Version 3.3.1 - 'Beamer'

1st Feb, 2021

This is compatibility release addressing two issues with macOS Big Sur:

  1. Correct language translations now used based on user's current locale
  2. The language server is no longer killed by macOS Gatekeeper when a sample's onset times are queried.

This release also includes minor translation updates.

Releases

macOS x64 (10.13+)
Link Sonic-Pi-for-Mac-x64-v3-3-1.dmg
Size 120M
MD5 cf7990a629321ac1e5f935ffc741f7db
SHA256 0bfd12f930311e8ef1c7306dc9c012cfcc1f8e50710fd26a8c18ba003573a506
Windows 10 x64
Link Sonic-Pi-for-Win-x64-v3.3.1.msi
Size 167M
MD5 e8392ef976891ab9513feb23e1152b57
SHA256 b9ee2605333b01feb6ce973e5918f04f489de83b971a46890e1313eae7c04b79
Raspberry Pi OS (October 30th 2021)
Link sonic-pi_3.3.1_2_armhf.deb
Size 66M
MD5 2941bc5b4eca86236af5f5a4e03bc45b
SHA256 ebbf5960dae866d3d8105cf257a6f4379f1d6b1f3c572813f34afe5573d98a31
Raspberry Pi OS (Legacy)
Link sonic-pi_3.3.1_1_armhf.deb
Size 67M
MD5 0b5c00cc092a8f3c6b2584caf2554937
SHA256 f6cc382cea61467d04ce7fe186deba7d352f64b0a7b4d9ccc8f74b2774d9dfe5
Ubuntu 20 amd64
Link sonic-pi_3.3.1_2_amd64.deb
Size 67M
MD5 cc0fcf1a05c1e83df5f290cfeda1d3d9
SHA256 3a7884ac605f0eb0e408dda28c17d496d3d3c613d4d0b014665861f45c992836

Beam

28 Jan 16:15
b1c717f
Compare
Choose a tag to compare

Version 3.3.0 - 'Beam'

28th Jan, 2021

Ten months of development, over 700 individual commits, loving contributions from many many people have gone into this new version of Sonic Pi. This release is also the result of a 3 month long community beta process which took place over on Patreon where supporters got access to early releases and really helped polish and shape development. Huge thanks to everyone that has supported continued development. We're really excited and proud to share this new release with you all.

In terms of significant changes, there have been many internal improvements, including a full rewrite of our MIDI subsystem. This shouldn't result in much change as a user (although some MIDI cue names might have changed slightly) but it really sets us up for some exciting developments in the future. We're essentially moving much more of the core input/output functionality of Sonic Pi into a special system called the BEAM and a language called Erlang. This is a system that has a strong emphasis on low latency, low jitter and high concurrency which is exactly what the IO of a music system requires! We're so excited to see what we'll be able to achieve with this new approach that the BEAM features as the codename of this release.

Another area that has seen a lot of love and attention is our strong focus on accessibility. We now have a much improved menu bar which essentially duplicates much of the functionality found in the preferences but in a format that's extremely easy to work with via a screen reader. We've also added a new context pane that displays the current line and character position as a direct result of a collaboration with Leiden University's accessibility group. There have already been numerous studies that are reporting success for blind and low-vision users of Sonic Pi - so we're confident we're on the right track with respect to accessibility. We're also not stopping here and are always looking for ways to lower the many barriers to entry for creative experiences with code for everyone.

This is also the first release where we officially welcome Chris Maughan as the latest member of the Sonic Pi core team. Chris has made significant contributions over the last year including improvements to the scope and a complete reworking of our build process. I hope you join us in welcoming Chris to the team.

Finally, we have official support for macOS Big Sur, some lovely new synths and FX, improved translations, support for advanced configuration (audio and colour theming), new Turkish scales and many, many bug fixesand improvements.

We really hope you love this version of Sonic Pi as much as we do.

Happy Live Coding!

Breaking Changes

  • MIDI port description names may be slightly different from previous versions. Precise matches on MIDI ports via sync and get will have to be updated accordingly.
  • Incoming MIDI cues now no longer include clock tick events. Optionally re-enabling these and new ways of working with incoming timing systems will feature in a future release.

New

  • Completely new MIDI subsystem.
  • use/with_random_source - change the current random stream used when selecting random values. We now have :white, :light_pink, :pink, :dark_pink and :perlin. Default is :white which is the same stream as previous releases to preserve compatibility.
  • Many Turkish scales (makams) have been added.
  • New user config directory for fine tuning aspects of the app such as advanced audio settings. See ~/.sonic-pi/config/README.md for more information.

Synths & FX

  • New synth :rodeo - emulating an electric piano.
  • New synth :kalimba - an African thumb piano.
  • Add sliding to :autotuner FX opts note: and formant_ratio:.
  • mix, pre_mix and pre_amp opts are now affected by slide:.

GUI

  • New context pane which displays the current line number and position making this information accessible to screen readers. This may be shown/hidden with a preference setting.
  • New keyboard shortcuts for switching directly to a buffer. S-M-1 (hold shift and Meta and the number 1) will jump to buffer 1. Meta is Cmd on macOS and alt on Windows/Linux.
  • Autocompletion system can now be enabled or disabled. This is intended to help those using screen readers for which the autocompletion system is currently incompatible.
  • Sample listings in the help system now have a handy play button that allows you to preview them by clicking rather than having to write any code.
  • Improvements for Catalan, Chinese, Danish, Dutch, Finnish, French, German, Hebrew, Hungarian, Icelandic, Italian, Korean, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Slovak, Spanish, Swedish, Thai, Turkish and Vietnamese translations.
  • Sinhalese translation added.
  • GUI now has a much more complete menu bar which duplicates the functionality of the preferences pane whilst making it easily accessible to screen readers.
  • MIDI port names are now autocompleted.
  • The GUI now correctly saves and restores the visibility preferences for the buttons, tabs and log pane.

Improvements

  • Many minor improvements to the documentation.
  • Unsent external MIDI messages are now flushed and no longer sent after hitting the Stop button.
  • The common mistake of calling both play and sample on the same line such as play sample :loop_amen is now an error with an appropriately helpful description to explain that play should be removed.

Bugfixes

  • Fix pulse_width_curve: and pulse_width_slide: opts which were incorrectly swapped on pulse, subpulse and dpulse synths.
  • Improve boot on Windows systems that have default locale code pages currently unsupported by Ruby. We now force UTF-8.
  • Fix issue causing the incorrect error line to be highlighted in the GUI.
  • Fix issue when syncing with cues with - symbols in their paths.
  • Fix bug with use_merged_synth_defaults after a call to use_synth_defaults. This bug was triggered in the "Sonic Dreams" example which now plays through correctly again.
  • MIDI device hotswapping (detecting whether devices were connected or disconnected) now works on macOS.
  • Fix .take_last to no longer return nil for min and max of the range.
  • Fix off-by-one error in line fn. Now should always return rings of the correct length.

Releases

macOS (10.13 - 11)
Link Sonic-Pi-for-Mac-x64-v3.3.0.dmg
Size 119M
MD5 a4355c20fb2e4fd3376be1f0397f4f36
SHA256 d55e756a728706e64f8bc98db2dea93e61c3f29e827aa086906704d08ff7a5e1
Windows 10
Link Sonic-Pi-for-Win-x64-v3.3.0.msi
Size 166M
MD5 0070f6395e82ab14818ddcb5aa0a97ec
SHA256 7f1b967ae661b446cdfc9327126ae8449fbf9ba1f49fb8a0b5ef9f00b0dbb12c
Raspberry Pi OS (2021-01-11+)
Link sonic-pi_3.3_1_armhf.deb
Size 66M
MD5 7335c2e538d76c9e046c939125171ef6
SHA256 00dbf08169b6199b625da50d7a658f8692b3f5f70a75f747a14a6675e1daba45

Tau3

06 Apr 22:49
69b6eee
Compare
Choose a tag to compare

Version 3.2.2 - 'Tau3'

5th April, 2020

This is a minor bugfix and maintenance release.

GUI

  • Significant improvements to the Danish and Swedish translations.

Bugfixes

  • Fixed a build issue on macOS that stopped recording from working.
  • Fixed issues rendering images in the documentation for non-English translations.

Releases

macOS
Link sonic-pi-for-mac-v3.2.2.zip
Size 126M
MD5 53348871f5d8d7e8b065ecbca471f556
SHA256 52828a3132ed8657a30a64f995dfe72b32f0a3b718886c3ac7e6d41d846ab441
Windows 10 64bit Portable
Link sonic-pi-for-win-x64-portable-v3.2.2.paf.exe
Size 93M
MD5 23163f26a2b07456b8f34c9d249c0582
SHA256 cf3c17bf966c115353b112548bea674c8e907a8cdd930d5f13934bb11b334198
Windows 10 64bit Installer
Link sonic-pi-for-win-x64-v3.2.2.msi
Size 162M
MD5 a7feb0414505ac0fa10cb6c72dcf6be4
SHA256 0b585382fdfa238d38bd37823f63e61be009a0424284a1441803d70c64b8bc70
Raspberry Pi OS 32bit
Link sonic-pi_3.2.2_4_armhf.deb
Size 64M
MD5 8df8e49f2ed43bf52a30f69e115d094d
SHA256 76086decc9378790397982ed39bfac65d1ff60d6c9f63b1cbcec398ddff6e425

Take Tau

02 Apr 18:42
1cab0bd
Compare
Choose a tag to compare

Version 3.2.1 - 'Take Tau'

3rd April, 2020

This release is another maintenance release with a primary focus on increasing stability and reliability. There are therefore no major new features, but instead there are significant improvements to the internals and the packaging of the Windows installer.

Whilst there are no major new features, we have still been working hard engaging with users with accessibility requirements. We have added a number of modifications to the GUI to improve keyboard navigation which should improve things for users that do not use a mouse (for example, users working with a screen reader). As mentioned in the previous release, we will continue to work to improve accessibility support wherever possible in each release.

One core internal focus has been improving memory utilisation of the app. A number of memory leaks have been hunted down and fixed. A memory leak is where the application requests increasingly more memory from the computer and never gives it back. Over time this means that the app would waste a lot of the system memory. This might have not been too noticeable using Sonic Pi on modern computers that typically have incredibly large amounts of memory. However, it was noticeable and problematic on low-powered systems with limited memory capacity. Sonic Pi now uses a lot less memory and after a warm-up period, the memory usage stays much more constant than before. We will continue to look for and fix memory leaks going forward.

Finally, this release is the first to ship with a fully signed Windows installer. This is a major milestone as we now ship with signed versions for both macOS and Windows which should help more users and organisations (especially schools) trust the installation and running of Sonic Pi.

Now, go and get live coding!

Breaking Changes

  • The ping_pong FX now merges the dry sound with the result of the echo to match the behaviour of echo.
  • In the last release, the piano synth had its default amplitude accidentally altered when being updated to work with arbitrary frequencies. This has been restored.
  • Incoming MIDI Active Sensing messages are now ignored

GUI

  • New shortcuts and menu items for explicitly placing focus on specific areas of the app. This is primarily intended to improve accessibility for screen readers or those not using a mouse or trackpad. The new shortcuts are:

    • Control-shift-e - move focus to editor
    • Control-shift-l - move focus to logs
    • Control-shift-c - move focus to cues
    • Control-shift-p - move focus to preferences
    • Control-shift-h - move focus to help listing (e.g. the list of available help section)
    • Control-shift-d - move focus to help details (e.g. the contents of the chosen help section)
    • Control-shift-w - move focus to syntax/runtime error warnings
  • Once focus is in the help listing, the up and down arrow keys now navigate up and down in the list and the left and right arrow keys switch tabs to work through the different help categories.

  • When an error occurs, focus is now placed on the error pop-up window. Focus can be easily returned back to the editor by pressing either the Escape key or Control-g.

  • Minor improvements for Catalan, Greek, Chinese, Russian, French and Romanian translations.

Bugfixes

  • Upgraded the Ruby process library which improves/fixes process shutdown behaviour on some Linux systems.
  • Fixed a number of memory leaks which resulted in the memory requirements of the app increasing over time until it was closed and opened again. This was particularly noticeable and potentially problematic on machines with small memory footprints.
  • General memory usage has been significantly reduced due to the introduction of further caching in hot areas of the code that created many unnecessary object allocations.
  • The Windows installer now works on more Windows 10 systems thanks to additional libraries now being included in the installer.

Releases

macOS
Link sonic-pi-for-mac-v3.2.1.zip
Size 127M
MD5 06caad40bc7f9fae0ecc3013d0f6ada8
SHA256 17e32ea392b3f324022bbdab8ecdb7d7f159b06e922ca65cf26ed41090c349cd
Windows 10 64bit Portable
Link sonic-pi-for-win-x64-portable-v3.2.1.paf.exe
Size 93M
MD5 522759f8af4db195ba96736e8c63f045
SHA256 e8176b1e04873346c78dc1e7ed358712a2f07560596b0144c3ee686b7042a2de
Windows 10 64bit Installer
Link sonic-pi-for-win-x64-v3.2.1.msi
Size 162M
MD5 2ca51be91bba360b5a26baa8f7b24b06
SHA256 9e5400ce1f3c71c27e7d211251a78e54ccd9adc653e091019efd24ec0a218e25

Tau

26 Feb 23:03
Compare
Choose a tag to compare
Tau

Version 3.2.0 - 'Tau'

28th Feb, 2020

After a long 2 years without updates, we are threaded with excitement to
bring you Sonic Pi's first fully independent release. Sam Aaron's work
on this release has been 100% supported by kind and generous donations
from people on Patreon in addition to
funds raised by delivering talks, workshops and performances. Sam's work
has also been hugely assisted by many wonderful code and translation
contributions both by members of the Core Team and by our growing
international community of live coders. This release has truly been a
community effort.

So, what's new? This time there are no radical new features, instead we
have a much more polished, accessible and stable version than ever before.
(This release has been heavily battle-tested in many performances worldwide).

This release is codenamed Tau - (an improved Pi).

One of the core focusses of this release is accessibility. Tau
introduces support for screen readers. Previously the code editor was
invisible to the main screen readers on both macOS and Windows and this
is now fixed. There is also an accessible menu bar and a new high
contrast colour theme which is WCAG 2 level AAA compliant. Accessibility
is very important to us - we acknowledge that this is only the
beginning and we value and encourage feedback from users who have
specific accessibility requirements that we are not directly meeting. We
plan to improve our accessibility support where possible in every release
going forward.

Another aspect of accessibility is support for Windows devices with high
resolution displays. Previously on certain displays font and icon sizes
could be far too small, unreadable and out of proportion with the app in
general. This has all been addressed with significant work on ensuring
Sonic Pi looks great on a variety of monitors on both Windows and
macOS. We believe that this release looks better and is more usable than
any previous release.

Tau features two beautiful new audio visualiser scopes - a spectrum
scope showing the frequency content of the audio and a beautiful mirror
stereo scope. These scopes have been contributed by Chris Maughan who
has also been pivotal in improving and simplying the Windows build
process. We are hugely grateful for his contributions - thanks Chris!

We have two fabulous new FX - a ping pong delay contributed by Ethan
Crawford and an autotuner contributed by Xavier Riley. We hope you have
as much fun playing with these as we have.

Finally, this release has seen a significant improvement in
translation coverage - both of the GUI and the tutorial. We truly
believe that this helps us achieve our mission of lowering the barrier
to entry for a creative experience with code by helping more non-English
speakers start their live coding journeys.

Now, go and make some noise with code!

Breaking Changes

  • spread now produces identical patterns as in the
    Toussaint paper.
    Previously, some of the patterns had been shifted. Use the rotate: opt to
    match prior behaviour if required.
  • OSC cues now include the IP address and port number of incoming messages
  • MIDI cues now include the source information in the first part of the
    path with : separators to match the new OSC cue format.
  • The osc fn now forces all outgoing args to either be numbers or
    strings (binary blobs and timestamps are not supported at this
    point). If the value is neither a number or string, it is 'inspected'
    and the resulting description string is sent instead.
  • The default incoming OSC cues port is now 4560 as the previous value
    was registered on the Iana Service Name and Transport Protocol Port
    Number Registry. However, 4560 is currently free.
  • Constrain :flanger FX's feedback: opt to range 0->1. Values greater than 1 had the effect of increasing the amplitude which should be achieved via the amp: opt.
  • Add arg checker for sample's hpf: opt which now ensures the value is not higher than 119 as values higher than this can cause bad noise artefacts.
  • Improve sample's start:/finish:/onset:/slice: opt semantics. The start: and finish: opts for sample now work within the specified slice or onset. This allows you to easily play, say the first half of a given slice or onset by specifying a start: of 0 and a finish: of 0.5. Where both the slice: and onset: opts are specified, then the slice operates within the onset. Where the slice:, onset: and start:/finish: opts are all used, the start/finish operate within the slice which in turn operates within the onset. See the updated sample examples for more information.

New Fns

  • eval_file evaluates the contents of the specified file inline in the
    current thread as if it was a function.
  • midi_sysex for sending MIDI sysex messages.
  • Add new chain fn .notes which takes a ring of values and returns a
    new ring with each element treated as a note. This will leave numbers
    unchanged but will turn note names like :C1 to their corresponding
    MIDI note.

Synths & FX

  • New FX ping_pong - delayed echo alternating between left and right channels.
  • New FX autotuner - Autotune/phase vocoder effect.
  • The gverb FX now checks to ensure that the room: opt is greater than or equal to 1.
  • The piano synth now supports fractional notes such as 70.3

GUI

  • New WCAG 2 level AAA compliant high contrast colour theme. This is
    especially suited for those with low vision.
  • New application menu and shortcuts.
  • New default icons which match the pro icon feel.
  • 2 new visualiser scopes - mirror stereo and spectrum.
  • Move to simple numbered labels for buffers.
  • Improve scaling of icons, text etc. on high DPI displays on Windows.
  • The version number is no longer placed in the initial comment of new
    empty buffers. This felt like a friendly thing to do, but can be
    confusing if a given buffer hasn't been used and the version was
    updated. This results in the buffer reporting the old version number
    that was used to create the buffer not the current version used to
    display it.
  • Many, many translation improvements. Thanks to all the wonderful
    volunteers contributing to the translation effort: https://hosted.weblate.org/projects/sonic-pi/
  • Error pane height is now higher by default on all platforms and its
    height is correctly scaled on high DPI monitors.
  • Preference checkboxes are now similarly styled on all platforms.

Improvements

  • Allow scale degrees over an octave and augmented/diminished degrees.
  • Calling .tick and .look on a normal array such as [1, 2, 3] will
    now automatically convert it to a ring first.
  • Add docstring for the set fn.
  • Add new article A.20 - Creative Coding in the Classroom as appeared in
    issue #9 of the Hello World magazine.
  • OSC messages are now sent from the external cue listening port. This
    allows OSC servers that reply directly back to incoming messages (such
    as SuperCollider) to be able to communicate back to messages sent from
    Sonic Pi.
  • Random fns now understand notes. For example rrand(:e1, :e2) will
    return a random frequency between E octave 1 and 2.
  • Windows can now detect sample onsets from samples stored in .flac
    and .ogg format in addition to arbitrary sample rates such as 48khz.

Bugfixes

  • Further improve boot stability on Mac in the cases where audio input/output
    sample rates do not match (typically due to the use of bluetooth
    headsets). Audio inputs on macOS are now disabled by default unless we
    can definitely determine the audio rates are the same.
  • Revert synthdefs to original bytecode version. This fixes a regression
    in at least the :tb303 synth and possibly others. All synths should
    sound and behave as they did in v3.0.1.
  • Fix issue with scaling default opts. Previously it was possible that
    unspecified opts correctly fell back to the default value - however
    that default value wasn't scaled. Default values are now always scaled
    whether or not explicitly specified.
  • with_sched_ahead_time now correctly sets the schedule ahead time
    before running the block and returns the result of the
    block itself
  • When "Enforce Timing Guarantees" is selected, Sonic Pi wil no longer
    throw out of time warnings in 'real time' threads (specified using
    use_real_time).
  • set and cue no longer print duplicate messages which was possible
    in some cases.
  • Fix time_warp examples which were incorrect and misleading.
  • Improve pid handling on Linux. This should reduce the number of zombie
    processes accidentally generated.
  • The offset: opt for with_swing now matches documented behaviour.
  • Teach sample_duration to scale correctly.
  • Fix GUI bug which could result in a buffer stuck in the highlighted
    state after hitting Run.
  • Fix the on: opt when playing chords to work similarly across all
    notes in a given chord.
  • Stop defonce from being executed multiple times
  • Calling .take on an empty ring no longer results in infinite
    recursion but instead returns an empty ring.
  • Scope now has a minimum height.
  • Windows now supports sending and receiving OSC messages over the
    network to and from external machines.

Releases

Mac
Link sonic-pi-for-mac-v3.2.0.zip
Size 124M
MD5 d9792361a19c3a946c376d54aeabad3f
SHA256 7a3e8b29c30dd83cfa081cff86983f0a28269553b18636b6784a40601bb9497e
Windows 10 (64 bit)
Link sonic-pi-for-win-x64-v3.2.0.msi
Size ...
Read more

Sauna

23 Jan 12:13
Compare
Choose a tag to compare

Version 3.1.0 - 'Sauna'

23rd Jan, 2018

The major feature of this release is that it brings v3 functionality to
Windows. Windows now supports all the good stuff listed alongside
v3.0.x including live_audio, midi, osc and much more. See
v3.0.1 and v3.0.0 release notes below for more information.

Of course, no new release comes without new features, and there are a
number of additions and improvements on all levels. Firstly, we are
honoured to include a number of wonderful new samples kindly recorded
and released into the public domain by our friends Mehackit. If you
aren't already aware, Mehackit organise and run creative coding
workshops all around Finland and Europe and were a core part behind the
CodeBus Africa project which used Sonic Pi to engage almost 2000 African
students with creative code. Our favourite of these samples is the new
:ambi_sauna which has given us the name for this release.

We have added support for Ogg Vorbis encoded audio files .ogg and
.oga. These are lossy encoders similar to .MP3 but free from license
restrictions. See: https://en.wikipedia.org/wiki/Vorbis

Another notable addition is the increase in translation coverage across
a number of languages. If you still feel the translation for your
language could be improved, please do consider joining in the
crowd-sourced effort here: https://hosted.weblate.org/projects/sonic-pi/

We have also included some styling tweaks to the GUI - to make
it look even cleaner and also work better when projecting code with
visuals underneath.

Finally, this release also gives me the opportunity to welcome Ethan
Crawford to the Core Team. He has been a prolific contributor to the
project over the years and his keen eye for detail has helped polish
Sonic Pi from the rough stone it once was to the shining gem it is
today.

Have fun and enjoy the new features - especially you lovely Windows
users!

Breaking Changes

  • The synth chip_noise now has standard default envelope opts (sustain: and release: are now 0 and 1 respectively (as opposed to 1 and 0))

New Fns

  • set_audio_latency! Apply positive or negative timing offset for audio events to allow for any timing differences between OSC/MIDI events caused by external latencies (such as wireless speakers).
  • midi_pc for sending MIDI Program Change messages

Samples

  • Add support for Ogg Vorbis encoded audio files .ogg and .oga.
  • Add new samples (kindly recorded and released into the public domain by Mehackit).
    • new glitch_ sample group containing sounds with a glitchy texture.
    • new mehackit_ sample group with sounds of old toys
    • new samples: :perc_bell2, :perc_door, :perc_impact1, :perc_impact2, :perc_swoosh, :ambi_sauna, :bd_mehackit, :sn_generic, :loop_3d_printer, :loop_drone_g_97, :loop_electric, :loop_mehackit1, :loop_mehackit2, :loop_perc1, :loop_perc2, :loop_weirdo,

GUI

  • Add new in_thread forum to the community listings (and update other entries).
  • Many, many translation additions and improvements for a multitude of
    languages. The tutorial is now available in German, Spanish, French,
    Italian, Japanese, Dutch, Polish, Portuguese, Romanian, and Russian.
  • GUI now lets the user know when the buffer capacity has been exceeded
    on macOS and Linux (Windows behaviour is currently unchanged). This
    capacity limitation will be addressed more thoroughly in a future release.

Bugfixes

  • Stop the internal sample pattern matcher from duplicating matches in some cases.
  • Stop pro icon preference from resetting to 'off' when switching from dark to light mode

Releases

Mac
Link Sonic-Pi-for-Mac-v3.1.0.dmg
Size 85M
MD5 09137b7ad16224ca524d723369608d1d
SHA256 d1e232e39f875db717f4efab85362dfaac31cafb9e555b21136d7b12720c9a30
Windows Portable
Link Sonic-Pi-for-Win-Portable-v3.1.0.paf.exe
Size 78M
MD5 cf01dafe78ed5496c9a3dcf8ac0fa69a
SHA256 a82d8afa8c2a1b0c219d16d60e03bcf23e77cc792fe969fe74e6d3933f2c7912
Windows Installer
Link Sonic-Pi-for-Win-v3.1.0.msi
Size 129M
MD5 4667d26860f706d862f42907a3f2cb6a
SHA256 bb714a37bbae9e469a0e793e28fc2cc00b05885de64cfcc70224fda30f731cc3

IOIO

21 Feb 09:11
Compare
Choose a tag to compare

Version 3.0.1 - 'IOIO'

28th July, 2017

This is a minor release addressing a few bugs and includes a small
number of modifications.

Breaking Changes

  • Raspberry Pi only - based on a request from Raspberry Pi we have
    removed the ability to switch between HDMI and headphone output as
    this is now duplicate functionality to what is now available in
    PIXEL. Now, to change audio output, you need to right-click on the
    audio logo in the menu at the top right of the screen.

GUI

  • The IO menu has been slightly tweaked to improve amount of space used.

Improvements

  • The Time State system no longer maintains a history of all events -
    instead it retains at least 20 events for each path and beyond that
    culls events 30s in the past.

Bugfixes

  • Fix minor issues with docs (grammar and rendering).
  • Incoming OSC now correctly handles OSC paths which contain capital letters.

Releases

Mac
Link Sonic-Pi-for-Mac-v3.0.1.dmg
Size 75M
MD5 ae2117e4bb6871fa464cc2143b1b79c0
SHA256 d9eea57df86da3d39a2a068358fcc256e0dd0181a110fa2d83ad16ad153b10fd
Raspberry Pi Deb (Stretch)
Link sonic-pi_1_3.0.1-armhf.deb
Size 61M
MD5 9f3fcf382b524497778f432dbf004cc8
SHA256 8cf87fe1b7cb90add870e2f204af03d36b186f51c32bc55053ba9598e6d6d480

IO

21 Feb 09:11
Compare
Choose a tag to compare
IO

Version 3.0 - 'IO'

18th July, 2017

This release is our most ambitious to date. The goal is to open up the
code within Sonic Pi to the outside world. We want you to be able to both
manipulate the real world to change the code and change the real world
with the code. Input Output. IO.

We have therefore focussed on getting events and audio in and out of
Sonic Pi in new ways whilst keeping to our philosophy of simple code,
live manipulation, and strict, powerful timing. This release introduces
a number of brand-new components:

  • Time State - a powerful new time-based deterministic shared memory system
  • MIDI - support for input and output of MIDI
  • OSC - support for sending and receiving OSC messages on the network.
  • Live Audio - for getting multiple streams of audio into Sonic Pi
  • Multi-channel audio out - for outputting multiple streams of audio.
  • Audio Buffers - for internal recording of audio enabling the creation of loopers.

It's important to mention that MIDI and OSC output functionality is
possible due to a new well-timed scheduler. This was built in a
remarkable programming language called Erlang which
is now part of the Sonic Pi distribution. We have had the great honour
of one of Erlang's co-creators, Joe Armstrong working directly with us
on the implmentation of this scheduler and we look forward immensely to
continuing to work with him on new functionality.

Another very important part of this release is the addition of Robin
Newman to the core team. We have always been consistently impressed with
his fearless and experimental attitude - pushing Sonic Pi into new areas
with ease. We're excited that he's decided to join our core team and
hope you're as excited by his future work with us as we are.

Finally, We're really very excited about what new kinds of instruments
people will be able to create with this new technology both in the
classroom and on stage at musical festivals. Sonic Pi has now become a
fully programmable music studio. Have fun live coding!

Breaking Changes

  • Ring's .pick now returns 1 element by default. Previously calling .pick on a ring would pick n elements randomly from the ring (including duplicate picks) where n would be the size of the ring. With this change, .pick only returns a single element. This makes it similar to choose.

New Fns

  • midi_* - many new MIDI-specific fns such as midi_note_on, midi_pitch_bend, midi_cc, midi_clock_tick. See new tutorial section for more information. These fns send MIDI messages to connected MIDI devices. Incoming MIDI is received via the new event log.

  • with_swing - add swing to successive calls to do/end block.

  • get - get a named value from the Time State at the current time. This will return the last value entered. Previous values can be read when within a time_warp. Has full support for OSC

  • set - set a named value in the Time State at the current time. Future values can be set when within a time_warp.

  • use_real_time - convenience fn for setting the schedule ahead time to 0 for the current thread. Very useful for removing latency from live loops that are working with external cues (such as MIDI or OSC).

  • use_midi_defaults - set defaults to be used for all subsequent MIDI calls. Similar to use_synth_defaults. Also available: with_midi_defaults.

  • use_osc - set the default hostname and port number for subsequent outgoing OSC messages. See also with_osc.

  • osc - send Open Sound Control messages in time with the music to default hostname and port

  • osc_send - similar to osc but requires you to specify the hostname and port

  • use_sched_ahead_time - set the schedule ahead time specifically for the current thread. Also available - with_sched_ahead_time.

  • current_time - return the current logical time.

  • assert_error - An assertion to ensure the specified block of code raises the specified error.

Synths & FX

  • New synth live_audio - directly stream audio from your soundcard as a synth.

  • New FX record - enables you to internally record any audio into named buffers. Perfect for building looper systems.

  • New FX :sound_out - stream out audio to a specific output on your sound card. This enables multi-channel audio out.

  • New FX :sound_out_stereo - similar to sound_out but streams out to a pair of consecutive audio card (left and right) output channels.

  • New FX eq - Parametric EQ with three centre freqs - low, mid & high - all with Q values and gain (-1 -> 1). Also has low and high shelves with centre freqs and slope adjustment.

  • New FX tremolo - simple tremolo effect which modulates the volume within the do/end block.

GUI

  • New 'pro' icon set for performances.
  • New GUI translations for the following languages: (BS) Bosnian, (CA) Catalan, (CS) Czech, (DA) Danish, (EL) Greek, (ET) Estonian, (HI) Hindi, (ID) Indonesian, (KO) Korean, (PT) Portuguese, (TR) Turkish, (ZH) Chinese
  • Added new pane for displaying new cue events (including incoming OSC and MIDI)
  • Added new IO preferences tab for configuring MIDI and network settings.
  • Automatically autocomplete sync, cue and get or set
  • Increase width of autocompletion popup.

Documentation & Examples

  • New articles on additive and subtractive synthesis techniques.
  • New example piece 'Cloud Beat' by Pit Noack

Improvements

  • Teach time_warp about input ranges. It now works similar to at in that it can now take two lists of args - times and values - which represent a list of time destinations to be visited in turn.
  • Ensure any unprinted messages are displayed if an exception occurs.
  • Teach range to work as expected with both floats and ints.
  • Teach rings a new chain method - .scale which will return a new ring with all elements multiplied by the scale value.
  • The fn control now returns the node you're controlling.
  • Add many new chords

Bugfixes

  • Fix randomisation aspects of :slicer, :wobble and :panslicer FX (i.e. via the probability: opt).
  • Fix file path drag and drop on Windows to not accidentally prefix path with /.
  • Teach chord_invert and sample to work with floating point args.

Releases

Mac
Link Sonic-Pi-for-Mac-v3.dmg
Size 71M
MD5 68fd047993778d08a3e384a4bd72d862
SHA256 824e822c797547067952a7579b2c881fc2b90b1435f9ab1c824bfc3564869310
Raspberry Pi Deb (Stretch)
Link sonic-pi_1_3.0.0-armhf.deb
Size 58M
MD5 4141e3029570ddababb1c1aab5d443b5
SHA256 92abd4044ae13d5d19eadd4250ce6182d2ccdfc1db86fed085cbd91ee3d078cd

Hack

21 Feb 09:11
Compare
Choose a tag to compare

Version 2.11.1 - 'Hack'

16th Dec, 2016

This is primarily a maintenance release containing a number of bug fixes and minor tweaks. The feature set remains unchanged from v2.11.

One of the core bugs fixed in this release is an issue with the return key within some Japanese layouts. Another important change is the unification of the font on all platforms to Hack. This is from the same family as Menlo and Bitstream Vera (the previous fonts for Mac and Linux respectively) and a dramatic improvement to the Courier font previously used for Windows.

GUI

  • Move all platforms to the same font -
    Hack.
  • Improve initial log information and messages.
  • The scope axes are no longer shown by default for a cleaner look and
    feel.

Docs

  • Add new MagPi article on sample stretching.

Bugfixes

  • Ensure chord_invert's shift value is a whole number - otherwise it
    is possible to get into an infinite recursion.
  • Ensure thread locals have correct default values on clear. When a
    run is created, the thread is given a set of default thread
    locals. Previously clear removed all thread locals. Now, we reset
    the thread locals to the defaults for a brand new thread.
  • Fix line reported on syntax error.
  • Fix unknown synth error message.
  • sync can once again handle multiple cues correctly.
  • Fix boot issues for users that don't have a standard /etc/hosts file
    that contains an entry for localhost.
  • sample_duration now handles onsets, slices and sustain.
  • Fix issue with return key not being recognised with Japanese
    keyboards.
  • Fix sporadic flickering of current line on Raspberry Pi.
  • Fix errors in buffer 0 being reported as being from buffer 3.
  • Fix scrollbar background colour on Windows in dark mode.
  • Improve error message reported when required ports are not available
    at boot.
  • Fix issue with calling control on a chord group.
  • Fix rand and rand_i to honour their arguments.

Releases

Mac
Link Sonic-Pi-for-Mac-v2.11.1.dmg
Size 63M
MD5 d3daa8fccf4f239686277caf86e85981
SHA256 fbe9d5939d296b9ffae69432dffb6a6b1b4e06d5d89754d3c110a5cfdd5cd954
Windows Portable
Link Sonic-Pi-for-Win-Portable-v2.11.1.paf.exe
Size 89M
MD5 8fdfd0a982ace0ae9080d38749e5c9d3
SHA256 7cee0d581be73f72a5c5bc2979c9143e0bcff9f48a15feef1a2c929089042a40
Windows
Link Sonic-Pi-for-Win-v2.11.1.msi
Size 139M
MD5 17df9522d44422f8e12950bb2574eef8
SHA256 a635cf257f3e0927f512d24dfee5b221caa8447acc2b049bf17c9f23484c4b2d

Time Warp

21 Feb 09:11
Compare
Choose a tag to compare

Version 2.11 - 'Time Warp'

3rd Nov, 2016

This release is the biggest and most adventurous release yet. There are
as many (invisible) modifications and improvements to the internal
systems as there are new external features that you can see and play
with. The aim was to create a solid foundation for new and exciting
features both in this release and in preparation for future releases.

We also open our arms to welcome two new Core Team members - Luis Lloret
and Adrian Cheater. Both have made generous and substantial
contributions to this release. Thank-you. Sadly we also say farewell to
Jeremy Weatherford. Please extend your kind thoughts and gratitude to
Jeremy for all of his contributions - in particular for turning the
Windows release from a possibility into a reality. Luckily Luis has
kindly stepped in to maintain the Windows installer.

The main visible feature is the new scope visualisers. The overall audio
output can now be visually monitored by one of three wave form
visualisers. Firstly there is the individual left and right channels,
next is a single mono scope which is mixed down from the stereo channels
using RMS and finally there is a Lissajous scope which displays phase
differences between the left and right channels. Typically the mono
output will be most useful. Use the preferences pane to hide and show
each of these scopes. All of them may be viewed at the same time if
necessary. Thanks to Adrian Cheater for the core work behind this
feature.

We now have support for multi-channel input (up to 16 channels) via the
new sound_in* synths for systems that have audio in. This opens up the
possibility to use Sonic Pi as an FX unit for vocals, guitars and any
other audio source.

Another exciting new feature is the sample opt onset: - which lets you
play a specific percussive part of a sample. This uses an automatic
onset detection algorithm to determine all the points in the sample that
go from quiet to loud quickly such as a drum, synth or bass hit. For
example, this allows you to take a complex drum sample and trigger each
of the individual drums in your own order and to your own timing.

Finally, translations are now crowd-sourced and small or large
contributions for any language can be made here:
https://hosted.weblate.org/projects/sonic-pi/. If your language isn't
yet available or you would like to improve things, please join in the
effort. Thanks to Hanno Zulla for making this possible.

Breaking Changes

  • sample now supports the opt path: which enables the sample's path
    to be overridden.
  • use_sample_pack is now deprecated and no longer available. Consider
    using the new filter system. See documentation for sample for more
    details.
  • current_sample_pack is now deprecated and no longer available.
  • inspect has been removed. (Standard printing now calls
    Object#inspect by default)
  • load_sample now only loads the first matched sample. load_samples
    now loads all matched samples.
  • Remove SuperCollider server automatic reboot system as it was badly
    conflicting with machines that went into a 'sleep state' (for example,
    when a laptop is closed). The fn reboot is still supported and may
    still be triggered manually if required.
  • Calls to play, synth and sample now consume all their arguments
    before testing to see if the synth should be triggered. This ensures
    all declared rands are consumed. This change might therefore
    potentially modify your random stream consumption. Consider using
    rand_back or rand_skip to re-align the stream if necessary.
  • New threads now start with a fresh set of tick counters and a new
    random stream.
  • It is no longer possible to use lambdas as values for synth
    defaults. This is because synth defaults are shared across thread
    boundaries and there is now a new safety system that only allows
    immutable/serialisable values to be used. Unfortunately Ruby has no
    notion of a 'pure' function and each lambda captures over its
    environment and therefore may contain free variables pointing to
    mutable data. A replacement system for describing a simple set of pure
    functions is being designed.

New Fns

  • reset - resets the user's thread locals (such as ticks and rand
    stream index) to the snapshot of the state as recorded at the start of
    the current thread.
  • clear - clears all the user's thread locals to a blank state.
  • time_warp- allows whole blocks of code to be shifted forward or
    backwards in time up to the value of current_sched_ahead_time.
  • rand_look - generate a random number without consuming a rand by
    looking ahead in the random stream.
  • rand_i_look - generate a random integer without consuming a rand by
    looking ahead in the random stream.
  • run_file - Runs the contents of file at path as if it was in the
    current buffer.
  • run_code - Runs the contents of the specified string as if it was in
    the current buffer.
  • Numeric#clamp - max and minimum bound (will clamp self to a value <=
    other and >= -1*other
  • set_recording_bit_depth! - set the bit depth for WAV files generated
    by recording the audio. Default is 16 bits, and can now be set to one
    of 8, 16, 24 and 32. Larger bit depths will result in better quality
    audio files but also much larger file sizes for the same duration.
  • scsynth_info - obtain information about the running audio synthesis
    server SuperCollider such as the number of available busses and
    buffers.

Synths & FX

  • New synth :tech_saws - an implementation of a slightly modified
    supersaw.
  • New synth :sound_in - reads audio from the sound card.
  • New synth :sound_in_stereo - reads audio from the sound card.
  • All FX now have a pre_mix: opt. This allows the audio flow to
    completely bypass a given FX (unlike mix: which passes the audio
    through the FX but modifies the amplitude afterwards).
  • Teach control to manipulate the last triggered synth by default. For
    example, control amp: 3 will set the amp: opt of the last
    triggered synth to 3. However, control foo, amp: 3 will still
    specifically control synth foo.

Samples

  • New opt slice: - lets you play a specific slice of a sample. The
    default number of slices is 16 which may be changed with the
    num_slices: opt. Sample is divided equally into the number of slices
    without regard for audio content and onset points. The slice: opt
    also works with pick for triggering random sample slices: sample :loop_amen, slice: pick.
  • New opt onset: - lets you play a specific percussive part of a
    sample. Uses automatic onset detection to determine the points in the
    sample that go from quiet to loud quickly. Unlike slice:, onset:
    does not necessarily divide a sample into equal onsets - some onsets
    will be smaller or bigger than others and the number of onsets is
    determined by the algorithm and isn't known in advance.

GUI

  • New scope visualisers.
  • Allow files to be dragged from the OS into the text area. This inserts
    the file/folder name as a string.
  • GUI now remembers the last directory you saved or opened a file
    to/from as the default location for next time.
  • Swap align button for a scope button. Given that alignment now happens
    automatically, a specific button seems somewhat redundant. Instead we
    now have a button for toggling the visibility of the scope(s).
  • Loading multiple samples simultaneously is now much faster.
  • Preferences have been slightly re-organised.
  • Preferences now has a Master volume slider which controls Sonic Pi's
    audio amplitude independently from the system volume.
  • All buttons now display status message + shortcut where available.
  • Enable app transparency slider for Windows.
  • Dark and light theme colours have been slightly polished and unified
    to use the same logic.
  • On multi-screen systems, fullscreen mode now defaults to the app's
    current screen.

Documentation

  • Translations are now crowd-sourced. See:
    https://hosted.weblate.org/projects/sonic-pi/
  • Improve docstring for live_loop.
  • Add 3 new MagPi articles on amplitude modulation, performance and practice techniques.
  • Add missing pulse_width: opt to flanger FX doc.

Improvements

  • Improve log messages written to ~/.sonic-pi/log
  • Improve booting on Mac in the case that the audio card's rate can't be
    determined.
  • Massively improve boot stability on Windows.
  • Improve error message for play_chord when notes isn't list like.
  • The number of samples that may be loaded at any one time has been
    increased from 1000 to 4000. However, memory limitations still apply
    (4000 1MB samples will require 4000MB of free system memory)
  • pick now returns a lambda if no list is given as the first argument
    (which makes it useful for using with sample's onset: and slice:
    opts.
  • Audio server is now paused when app is not in use - reducing CPU load
    and battery consumption.
  • Error messages now report names matching the editor tabs such as buffer 0.

Bugfixes

  • Decrease duration of :loop_tabla so that it correctly loops. (Length
    reduced to 10.674 seconds).
  • Enforce UTF-8 encoding of all incoming text.
  • Fix :reverb FX's mix: opt to ensure it's in the range 0 to 1.
  • sample nil now no longer plays a sample - it was incorrectly
    defaulting to the first built-in sample (:ambi_choir)
  • pick's skip: opt now works as expected: pick(5).drop(1) == pick(5, skip: 1)
  • sample now prints a 'no sample found' message with both sample nil and sample [] rather than incorrectly playing the first built-in wav file.
  • Limit :piano synth to notes less than 231 as higher values crash the audio server.

Releases

Mac
Link [Sonic-Pi-for-Mac-v2.11.0.dmg](https://sonic-pi....
Read more