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_as
andwith_sample_pack_as
have been removed.- A synth opt value of
nil
now 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_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 toif
but 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. :tanh
FX is now more crunchy by default.:compressor
and:krush
FX now correctly honour themix:
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:
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_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
andchord
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.
- 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 | 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 |