Sonic Pi v4.2 - Now Available for Windows, macOS & Raspberry Pi OS

Version 4.2.0 ‘Batch’

14th September 2022

The main purpose of this release is to address a booting issue discovered on a school Windows cluster with common security restrictions. This issue was reported by Adam Cooper from Moor Park High School & Sixth Form in the UK. Adam was wonderfully helpful in finding the specific issue and testing potential solutions. Thanks Adam!

If you happen to have had any trouble running v4 of Sonic Pi on your school clusters, please give this release a go! (Note, this issue didn’t affect v3 of Sonic Pi).

In addition, there have been some translation improvements, Global Time Warp now has a greater range and a couple of time_warp related bugs were found and dealt with. Have fun!


  • Change Global Time Warp range from ±250 to -250 → 999. This lets users access the full phase down to a BPM of 48.


  • Booting process on Windows has been modified to enable it to run when executing in an environment which restricts access to CMD (which prevents terminal usage and running .bat files). This is typical in schools.
  • Sonic Pi stores all its history, configuration and logs in a folder called .sonic-pi which is typically placed in the user’s home directory. If the user happens to not have permission to write to their home directory, Sonic Pi now raises a descriptive error on boot and explains that the fix is to set an environment variable called SONIC_PI_HOME to point to a directory the user does have permission to write to.


  • Improvements to the Dutch, Hungarian and Indonesian translations.


  • Teach timing safety system that time_warp doesn’t sleep (even if it contains calls to sleep internally). This now means that wrapping all code within a live_loop with time_warp no longer causes the thread to spin out of control. It instead reports that the live loop did not sleep as expected.
  • Throw error when attempting to call sync within a time_warp. This is because time warps are effectively timeless and sync asks the running thread to wait for an unknown period (until a matching event appears). Attempting to wait within a timeless context is clearly nonsensical!


macOS 10.15+
Link Sonic-Pi-for-Mac-x64-v4-2-0.dmg
Size 128M
MD5 da5ee6df18ca869729ec001bad75051c
SHA256 08fa08e5a6fbdc8adb000a832c03e4f98aeaf8688104b7c6ecf54a0a3ab9d0e0
Windows x64 10/11
Link Sonic-Pi-for-Win-x64-v4-2-0.msi
Size 203M
MD5 dacbcc04ba4bdd9ce5da6603db34cd2b
SHA256 e71329970bc4ca024290586cd253832535554e50afce3b3df98cb858193c8710
Raspberry Pi OS (Bullseye) 64 bit
Link sonic-pi_4.2.0_1_bullseye.arm64.deb
Size 88M
MD5 7bffc92ea2172ddb5b4bb9bab49e9c81
SHA256 433ffd5bcd8e55aa743a3e8b1c76f04d2a4799c05847ce882a64cfe5f62f9366
Raspberry Pi OS (Bullseye) 32 bit
Link sonic-pi_4.2.0_1_bullseye.armhf.deb
Size 88M
MD5 18725a00c1bd9ff7291fec0206bac228
SHA256 37ab107fa72bf43e4f38922d6d00dcf8179fe9ce6ca5086bdaf72cd61740a033