Skip to content

Commit 28e662e

Browse files
committed
Changelog - update for v4.1 release
1 parent 26a09c4 commit 28e662e

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

CHANGELOG.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# History
2-
* [v4.1.0 'Beta'](#v4.1.0), Yet to be released...
2+
* [v4.1.0 'Phase'](#v4.1.0), 30th August 2022
33
* [v4.0.3 'Dovetail'](#v4.0.3), 18th July 2022
44
* [v4.0.2 'Relink'](#v4.0.2), 15th July 2022
55
* [v4.0.1 'Verknüpfen'](#v4.0.1), 12th July 2022
@@ -29,15 +29,30 @@
2929
* [v2.0 'Phoenix'](#v2.0), 2nd Sept, 2014
3030

3131
<a name="v4.1.0"></a>
32-
## Version 4.1.0 'Beta'
33-
Yet to be released...
32+
## Version 4.1.0 'Phase'
33+
30th August 2022
3434
<!-- [(view commits)](https://github.com/sonic-pi-net/sonic-pi/commits/v4.1.0): -->
3535

36+
The release of v4 of Sonic Pi introduced the ability to change the tempo of live running code to an external beat. This is possible either by setting the tempo manually to a specific BPM (Beats Per Minute) or by using the Tap Tempo button to tap along to an external rhythm. However, even when you do this, it's quite likely that things still don't sound quite right as there's a good chance that the two rhythms are out of phase despite being at the same tempo. This release introduces a new feature - Global Time Warp which lets you shift the phase of Sonic Pi's timing back or forward up to 250 milliseconds to let you align it with an external rhythm.
37+
38+
Taking a quick step back, what does it mean for two rhythms to be out of phase and why is it a problem? Imagine you had two metronomes ticking away. If one has a higher tempo than the other, then one will be ticking faster than the other. This can be fixed by setting the tempos to be the same. However, unless they were both started at exactly the same time, they both wont be ticking at the same time. Instead, one will tick, then the other, then the first, then the second, etc. The second will always be a little later than the first and as they are at the same tempo, they will never catch up with each other, they will always tick at different times. This is called being out of phase. When two rhythms are out of phase it can sound very messy. Therefore, being able to get rhythms to start at exactly the same time is really important to being able to jam together and for it to sound good.
39+
40+
The new Global Time Warp control lets you shift the timing of all triggered synths, MIDI and OSC messages forwards or backwards by a specified time in milliseconds. You can either slide a slider or type in a specific time to adjust the phase of Sonic Pi's timing to match the phase of an external rhythm.
41+
42+
This means you can now easily jam to an external track - first by tapping out the tempo and then by shifting the phase using the new Global Time Warp controls until it sounds right. This is essentially what DJs do when they mix tracks together in a live set - only now you can layer coded rhythms, basslines and riffs on top of external music with code. This is not only a great way to perform live, but it's also a wonderful way to practice - by jamming along to music you love.
43+
44+
In addition to this, the accuracy of the Tap Tempo functionality has been improved in addition to UI tweaks to all the metronome controls.
45+
46+
Have fun jamming in phase to external music and take your live coding collaborations to the next level!
47+
3648

3749
### GUI
3850
* New Global Time Warp controls. This lets you adjust the timing of all scheduled events (synths, samples, MIDI and OSC) forwards or backwards up to 250 milliseconds. This is important for matching the phase of an external rhythm.
3951
* Improved Tap Tempo logic aimed towards increased BPM detection accuracy and speed.
52+
* BPM scrubber and new Global Time Warp scrubber now respond to mouse wheel changes.
4053

54+
### Improvements
55+
* Clearly specify in the tutorial that user-defined function names should start with a lower case letter. Therefore use `define :foo` rather than `define :Foo`.
4156

4257
### Translations
4358
* Minor improvements to the Indonesian, Korean Portuguese (Brazil) and Russian translations.

0 commit comments

Comments
 (0)