Cowbell
Version 2.10 - 'Cowbell'
Friday 15th April, 2016
"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_asandwith_sample_pack_ashave been removed.- A synth opt value of
nilnow no longer resolves to 0.0. Instead it
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 viause_synth_defaultsfor 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 toifbut behaves the same as theon: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. :tanhFX is now more crunchy by default.:compressorand:krushFX now correctly honour themix:opt.
Samples
- Samples in FLAC format (Free Lossless Audio Codec) are now supported!
- The
samplefn 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:andlpf:opts. Anycutoff:opts are
automatically switched tolpf:and any errors will be reported with
anlpf: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 ahpf_andlpf_prefix (such as
hpf_attack,lpf_decay_leveland friends). - Passing a directory path to
load_sampleswill now load all the
samples within that directory. - Passing a directory path to
free_sampleswill 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-know nukes over trailing whitespace.load_samplenow 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
RETURNnow 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
samplefn have been completely rewritten and extended.
Improvements
scaleandchordcan now handle being passed no tonic such as:
(chord :minor)which will return a ring of offsets from 0.chordlearned new variants:add2,add4,add9,add11,
add13,madd2,madd4,madd9,madd11,madd13- The ring's
.takemethod 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. densitynow complains if it isn't passed a do/end block.- Improve error messages for
use/with_synthwhen 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.
- 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-idoc lookup shortcut to work with:tb303synth docs. C-inow 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 | Sonic-Pi-for-Mac-v2.10.0.dmg |
| Size | 59M |
| MD5 | db2888bbcc5fb5406ec9c54f74fbb049 |
| SHA256 | 4539cbd70f1e0d347c27231f741a245551c0d50f10e987761b9b7567ba0d82fe |
| Raspberry Pi (Jessie) | |
| Link | Sonic-Pi-for-RPi-Jessie-v2.10.0.tgz |
| Size | 48M |
| MD5 | 3eebecf9363dfa8df6599cab6d98da55 |
| SHA256 | 7ac3d97a288ea670d3ad8a683b60009fa5737faa59f924cc5f8b462797982e63 |
| Windows Portable | |
| Link | Sonic-Pi-for-Win-Portable-v2.10.0.paf.exe |
| Size | 51M |
| MD5 | fbf67315b0d99e9523d7b06bfca5a680 |
| SHA256 | e08f3ec43cdc879175dca1682d0e33b933daf4975b189ffe2e468785206c9d43 |
| Windows | |
| Link | Sonic-Pi-for-Win-v2.10.0.msi |
| Size | 73M |
| MD5 | 3368579b82c6ebfbe5995d2c9b22acfe |
| SHA256 | b79e7c20a20cc83aa752a12c2b5b7ab497c9dc4c3db3024ddce0b5ac73328e99 |