- avoid loading stream module in other modules, so hint wont crash by @polymorphicengine in #1019
- change streamGetnow to factor in the processAhead and also destroy the sessionstate by @polymorphicengine in #1025
- fix minor7sharp9 chord (the 9th wasn't sharp) by @cleary in #1036
- add metatune param, now against 1.9-dev by @ahihi in #1046
- Build fixes for Tidal 1.9 by @mindofmatthew in #1052
- Update link 1.9 dev by @yaxu in #1058
- More build fixes by @mindofmatthew in #1062
- Consolidate site docs into source docs, and some docs editing by @trespaul in #1070
- Fix negative numbers not working for boolean euclids by @geikha in #1063
- @ahihi made their first contribution in #1046
- @trespaul made their first contribution in #1070
- @geikha made their first contribution in #1063
Full Changelog: https://github.com/tidalcycles/Tidal/compare/v1.9.4...v1.9.5
- fix #986 by @jwaldmann in #987
- fix #988 by @jwaldmann in #989
- Tidal listener update and rework by @polymorphicengine in #996
- ci: update GitHub actions by @SpencerIsGiddy in #994
- Fix markup errors in and add to Sound.Tidal.UI documentation. by @patrickt in #992
- reset and restart by @yaxu in #997
- Add extractN and extend getN by @thgrund in #999
- @SpencerIsGiddy made their first contribution in #994
- @patrickt made their first contribution in #992
Full Changelog: https://github.com/tidalcycles/Tidal/compare/v1.9.3...v1.9.4
- fix for squeezejoin by @yaxu in #950
- tidal.el fix silencer by @zzkt in #955
- add accelerate to nobus and fix typo for begin by @yaxu in #956
- Fix warnings by @Zalastax in #962
- Add a Nix Flake for building and developing Tidal by @mitchmindtree in #963
- Make distrib only take structure from the euclid by @yaxu in #961
- Fix build by @yaxu in #965
- Fix resetCycles skipping and lateness by @Zalastax in #966
- Add setCycle by @Zalastax in #969
- CHANGELOG gardening by @mindofmatthew in #971
- Comments for some state functions by @JeffreyBenjaminBrown in #973
- Comments on time, and haddock fixes by @JeffreyBenjaminBrown in #974
- Fix warning about type constraint by @mindofmatthew in #977
- Fix squeeze join by @yaxu in #975
trigger
and friends without pattern IDs by @mindofmatthew in #970- Rename ghost'' to ghostWith by @Zalastax in #967
- Added minor major seventh chord by @jqueraltmo in #978
- support for hosc-0.20 by @yaxu in #981
- @mitchmindtree made their first contribution in #963
- @jqueraltmo made their first contribution in #978
Full Changelog: https://github.com/tidalcycles/Tidal/compare/v1.9.2...v1.9.3
Same with 1.9.1, but now with new tidal-link version 1.0.1
A quick release to set specific tidal-link version 1.0 in tidal.cabal. Stack seems to want this.
- Rename linux binary name by @ndr-brt in #911
- Fix echo by @ndr-brt in #910
- If first argument of euclid is negative, apply euclidInv by @polymorphicengine in #916
- Add squeeze operators (
||+
,*||
, etc) by @yaxu in #919 - Make chunk reverse direction with negative number by @ndr-brt in #918
- overhaul of the chord parser by @polymorphicengine in #931
- Use ableton link for scheduling by @Zalastax in #898
- tidal-link: add link source files to extra-source-files, fixes #924 by @yaxu in #925
- Use target latency in all send modes by @Zalastax in #927
- Rename cCyclesPerBeat -> cBeatsPerCycle by @Zalastax in #939
- formatting fixes in tidal.el by @zzkt in #932
- a window-excursion for tidal.el by @zzkt in #933
- autoloads for tidal.el by @zzkt in #934
- avoid race in loading bootscript during restart by @zzkt in #937
- Increase upper bounds of text dependency by @yaxu in #948
- Use system-cxx-std-lib by @Zalastax in #944
- Use c++ extra library for MacOS by @giuseppelillo in #946
- @Zalastax made their first contribution in #898
- @zzkt made their first contribution in #932
- @giuseppelillo made their first contribution in #946
Full Changelog: https://github.com/tidalcycles/Tidal/compare/v1.8.0...v1.9.0
- Removed executable from tidal.cabal file (while latest ghc on windows fails to build it)
- move tidal-listener code by @polymorphicengine in #885
- Fix a typo incurred (I assume) by a filename change. by @JeffreyBenjaminBrown in #886
- Hide contexts from Events per default by @polymorphicengine in #887
- Allow sending/receiving of broadcasted OSC control messages by @yaxu in #894
- tidal-listener: Add minimal install notes by @gamar3is in #895
- Add rolled function with variants by @thgrund in #820
- Valuable instance for Note by @yaxu in #899
- Add parsers for ints and floats that don't consume trailing whitespace by @polymorphicengine in #900
- Introduce echo and echoWith, deprecate stut and stutWith by @ndr-brt in #904
- tidal-listener: Optional WITH_GHC environment variable by @mindofmatthew in #903
Commit list: https://github.com/tidalcycles/Tidal/compare/1.7.10...v1.8.0
- Derive RealFrac for Note by @ndr-brt in #876
- Add timescale and timewin control params by @yaxu in #878
- deriving typeclass memberships for ID by @polymorphicengine in #879
- Adds the jumpMod' transition by @th-four in #881
- Import safe-tidal-cli ghci simulator as tidal binary by @yaxu in #880
- Tweaks to tidal binary, and add to linux workflow by @yaxu in #882
- add tidal ghci replacement to macos and windows workflows by @yaxu in #883
- Show lists of values by @polymorphicengine in #838
- Port listener wiki content as README by @ndr-brt in #851
- Chords - consistent naming cont'd by @cleary in #840
- Formalise pattern IDs by @mindofmatthew in #807
- Switch to non-blocking pMap updates for transitions by @bgold-cosmos in #858
- Add listener build workflows by @ndr-brt in #852
- Fix tidal-listener install process by @ndr-brt in #861
- Fix mod by @bgold-cosmos in #860
- Fix stack ci using last lts resolver by @ndr-brt in #862
- Make Pattern instance Monoid by @fbous in #865
- Added OSC playback control for silencing individual patterns by @njanssen in #863
- Use better show instances for notes & rationals by @mindofmatthew in #857
- tidal-listener: Separate build from release by @ndr-brt in #866
- Exponential double by @ndr-brt in #871
- Comments by @JeffreyBenjaminBrown in #877
- Fix for classic dirt support by @yaxu https://github.com/tidalcycles/Tidal/commit/15b5b8b91af08ebad39efe2a7e0712b21f606ca4
- New alias
number
forn
by @yaxu https://github.com/tidalcycles/Tidal/commit/ac0be63d686ab37f7b2dcd440d4bd8f3898453e8 - Allow "0..8" to be parsed as a range of doubles in mininotation by @yaxu https://github.com/tidalcycles/Tidal/commit/55f8ad9b0091b43fdd364eced25bc9c655d157cc
- Bugfix for
timeLoop
by @yaxu in https://github.com/tidalcycles/Tidal/commit/29f28ed637a7c17ad2b22558d097a694da604e2d - Retire pre ghc 8.4 support by @yaxu
- Pattern first parameter of
wedge
by @yaxu - Allow
|**|
et al to work on control patterns by @yaxu in https://github.com/tidalcycles/Tidal/commit/7142775c2039cae4cde9bdd6f68b3e0cbae2de9d - Add alias
timecat
for timeCat` by @yaxu in https://github.com/tidalcycles/Tidal/commit/363889bdc963d9357daf1893d18ab9dfc33ca5ac
- @fbous made their first contribution in #865
- @njanssen made their first contribution in #863
- @JeffreyBenjaminBrown made their first contribution in #877
Full Changelog: https://github.com/tidalcycles/Tidal/compare/1.7.8...1.7.9
- Add pattern id to patterns as id, and send it with /code/highlights
- Support hosc 0.19 in test suite @yaxu
- Fix dot shorthand in int patterns so floating point numbers raise an error @ndr-brt
- Support factors in ratio shorthand for rational patterns @ndr-brt
- support hosc 0.19 @yaxu
- Minor change to _splice so that it respects if the speed parameter was already declared @onthepeakofnormal
- Some tests for chords @cleary
- Remove direct semigroups dependency @yaxu
- Derive functor for pattern @yaxu
- Handle negative ratio shorthands for rationals @ndr_brt
- drawLine - draw non-events with periods @yaxu
- Parse chord without root note @yaxu
- Fix clock sharing between tidal processes @yaxu
- Fixes for bipolar waveforms (sine2, etc) @mindofmatthew
- More playback controls for OSC API @mindofmatthew
- Disable bus variants for MIDI controls @mindofmatthew
- Signed ratio shorthands now supported @ndr_brt
- OSC API - mute/unmute stream @mindofmatthew
- improve performance of playFor/seqP @yaxu
- Expand tests with autodiscovered laws @RSWilli
- Add
getState
to BootTidal @mindofmatthew - add fadeTime / fadeInTime / fadeOutTime params for grain envelopes @yaxu
- Fix for nrpnn and nrpnv params @yaxu
- Disable busses for MIDI parameters @mindofmatthew
- tidal-parse additions and improved errors, haskellish dependency fix @dktr0
- spring cleaning and delinting, recreated Time.hs, renamed ControlMap toValueMAp @yaxu
- start of major refactoring of chords @cleary
- fix
.
mininotation operator @zudov - stateful event parameters, for counting @yaxu
- Move some stuff from BootTidal.hs to the tidal library, to reduce dependencies there @yaxu
- Fix stack build @yaxu
- Add tidal_status command @yaxu
- Add cVerbose config setting (default on) @yaxu
- Fix for emacs plugin @jwaldmann
- Snowball bugfix @yaxu
- Migrate to github actions, tested against additional ghc versions @ndr_brt
- Fix mininotation bug - allow leading/trailing spaces @ndr_brt
- Make linger work with negative numbers (to linger on end of cycle rather than start) @yaxu
- Friendlier startup messages @yaxu
- Compatibility with ghc 9.0.1 @yaxu
- Added drum aliases from GM2 percussion spec to
drum
function @lvm getcps
helper function now in BootTidal.hs @yaxugetnow
helper function back in BootTidal.hs (returns current cycle) @bgold-cosmos- Developments towards tidal api, @yaxu et al
coarse
parameter is now floating point @lwlsnirand
parameter now patternable @ndr-brtnote
now produces its own type to avoid conflicts between parsing note names and duration shorthands @ndr-brt- Numerous tidal-parse improvements and additions @dktr0 et al
grain
function for combining begin and end (in terms of begin and duration) @khoparzi- Added missing pB and pR functions @thgrund
- Emacs plugin bugfixes @jwaldmann
binaryN
parameters now fully patternable @ndr-brtpress
andpressBy
functions for syncopation @yaxubite
's first parameter is now patternable @ndr-brt- Most SuperDirt control/effect parameters can now be modified while a sound is playing, using 'bus' functions. @telefon + @yaxu
- Sound.Tidal.Params is now generated by a script in bin/generate-params.hs @yaxu
qtrigger
is now an alias forctrigger
, which now quantises to the next cycle (via ceiling) @thgund / @yaxu- There is now also
ftrigger
andrtrigger
for floor (previous) and round (nearest) cycle whenmod
's first two parameters are now rationals, and patternable. @th-four / @yaxubrand
andbrandBy
for continuous patterns of boolean values @yaxu- Two-way protocol between Tidal and SuperDirt, initially to receive available busses @telefon / @yaxu
- bipolar waveforms - sine2, square2, tri2, saw2, cosine2 @yaxu
- Patternise first parameter of chunk @lwlsn
- Patternise fit parameter @bgold-cosmos
- Increase upper bounds of random @yaxu
- Switch travis to ubuntu bionic @yaxu
- Rollback to previous pattern on parse error @jwaldmann
- Increased strictness to catch parse errors earlier @jwaldmann @yaxu
- Support for superdirt 'panic' @yaxu
- Increase hosc upper bounds to admin 0.18
- New function 'splat' @yaxu
quantise
now uses round, add qfloor, qceiling variants and qround alis @lwlsn- Add ghc 8.8.3 to travis @jwaldmann
- Switch
substruct
to use binary pattern @yaxu
- Fix streamAll
- Bugfix splice
- Export drawLineSz @mxmxyz
- tidal-parse additions (bite, splice, pickF, select, squeeze; fixed slice) @dktr0
- New, more efficient pseudorandom number generator @dktr0
- Pattern first someCyclesBy param @bgold-cosmos
- Refactored, more flexible OSC targetting @yaxu
- Simplify tidal-boot-script in tidal.el @jamagin
- Support state substitution in mininotation #530 @yaxu
- Pattern first parameter of splice #656 @yaxu
- Pattern first parameter of chew @yaxu
- add 'x' fraction alias for 1/6 @yaxu
- add dfb alias for delayfeedback param, dt for delaytime @yaxu
- add unmuteAll and only to BootTidal.hs @yaxu
- Simplify 'show'ing of patterns @yaxu
- New
draw
function for drawing a pattern of single characters as a text-based diagram, with friendsdrawLine
anddrawLineSz
for drawing multiple cycles @yaxu - Fixes and expansions of ratio aliases - s should be a sixteenth @mxmxyz, w is now 1, f is now 0.2
- Simplify definition of
accumulate
using scanl @benjwadams - The first parameter of
someCyclesBy
is now patternable @bgold-cosmos
- Add ratio shorthand to floating point patterns @yaxu
- Support fractional scales, add Arabic scales @quakehead
- Additions to tidal-parse including support from overgain, overshape adn rot @dktr0
- Move prompt-cont setting to end of BootTidal.hs (older versions of Haskell crash out at this point) @ndr-brt
- Fix BootTidal.hs - make loadable in atom @bgold-cosmos
- More additions to tidal-parse @dktr0
- Experimental ratio shorthand ref #573 @yaxu
- Store mininotation source location(s) in events ref #245 @yaxu
- Add more things to tidal-parse @dktr0 @yaxu
- Separate out haskell parser from tidal-parse into new hackage module called 'haskellish' @dktr0
- Support patterning polyrhythmic % steps in mininotation @yaxu
- Fixes to emacs plugin (tidal.el) @xmacex
- New parameters for freq, overgain, overshape, and missing midi params including the new nrpn ones @yaxu
- Mini notation -
@
(and its alias_
) now accepts rational relative durations. E.g.a [email protected] c d
to makeb
have a half step (that would be the same asa@2 b c@2 c@d
). This can also be patterneda b@<0.5 2> c d
@yaxu #435 - Experimental
reset
function - stick in a pattern so it acts as though the cycle number was reset to 0, from the next cycle @yaxu - Bugfix for setR in BootTidal.hs @yaxu
- Mini notation -
!
,@
and_
now work properly within{}
and<>
, e.g.<a b ! c!3 d>
will repeat every 7 cycles @yaxu #369 #248 - Mini notation -
@
and_
are now aliases for each other, e.g.a_3
is the same asa@3
as are_
and@
@yaxu #369 - Frame skipping on clock jumps now configurable @yaxu #567
- Sync between tidal instances now works straight away, without having to setcps @yaxu #569
- New
while
function for applying a function selectively according to a binary pattern @yaxu - Lowercases aliases
slowappend
andfastappend
forslowAppend
andfastAppend
respectively @yaxu - Many tidal-parse updates @dktr0
- wrandcat (weighted randcat) @yaxu
- MIDI Sysex support #558 @yaxu
- Elements in an Open Sound Control path address can now be patterned #557
- 'once' now chooses a random cycle to play. To get the old behaviour of playing the first cycle, use 'first' @yaxu #476
- Make random choices in mini-notation behave independently @yaxu #560
- Add [a|b|c] syntax to mini notation for randomly choosing between subsequences @yaxu #555
- Add power pattern operators |**, | and || @yaxu
- Fix for xfade / xfadein transition
- New function plyWith
- Fix for 'nudge'
- improvements to handling of cps changes @yaxu #501
- fix for parameter patterning in 'range' @yaxu #547
- fix representation to handle continuous and analog events properly @yaxu
- Simplify <* and *>, removing any distinction between analogue and digital patterns
- Usability fix for
binary
/binaryN
(use squeezeJoin on input pattern)
- Usability fixes for
binary
/binaryN
/ascii
@yaxu
binary
andascii
functions for playing with bit patterns @yaxu- support chord inversions in chord parser @bgold-cosmos
- skip ticks when system clock jumps @yaxu
- fix crash bugs in mini notation parser and grp @yaxu
- new stitch function @yaxu
- |++, ++| and |++| for combining patterns of strings by concatenation @yaxu
- send best effort of a sound id to dirt / superdirt if sendParts is on, allowing parameter adjustment of previously triggered sound (without chopping) @yaxu
- qtrigger - quantise trigger to nearest cycle @yaxu
- add setI, setF et al to BootTidal.hs for setting state variables @yaxu
- BootTidal.hs now sends d1 .. d12 to orbits 0 .. 11 respectively @yaxu
- markov chain support with runMarkov and markovPat @bgold-cosmos
- simplify / fix mask and sew @yaxu
- Adjust <* and > (and therefore |+, +| etc) to be closer to <>, explanation here: https://penelope.hypotheses.org/1722 @yaxu
- extract minitidal into its own package tidal-parse (using cabal multipackages), renaming to Sound.Tidal.Parse @yaxu @dktr0
- benchmarking @nini-faroux
- minitidal refactor, support for parsing more of tidal, tests @dktr0
- 'chew' - like bite, but speeds playback rate up and down
- variable probability for ? in mini notation
- chooseBy takes modulo of index to avoid out of bounds errors
- 'rate' control param
- Fix dependencies for parsec/colour
- Simplify espgrid support - @yaxu
- Fix ESPGrid support - @dktr0
- Add 'snowball' function - @XiNNiW
2019-04-17 Alex McLean [email protected]
- Add
bite
function for slicing patterns (rather than samples) - Tweak tidal.el to attempt to infer location of default BootTidal.hs
- Skip time (forward or backward) if the reference clock jumps suddenly
- Fix
fit
- @bgold-cosmos - Remove 'asap'
- Add cB for boolean control input
pickF
for choosing between functions with a pattern of integersselect
for choosing between list of patterns with a floating point patternsqueeze
for choosing between list of patterns with a pattern of integers, where patterns are squeezed into the integer event durationsplice
for choosing between slices of a pattern, where the slices are squeezed into event duration- Ord and Eq instances for value type @bgold-cosmos
trigger
- support for resetting envelopes on evaluation- Support for rational event values
- Tweak how
*>
and<*
deal with analog patterns - Caribiner link bridge support
- Add exports to Sound.Tidal.Scales for
getScale
andscaleTable
- sec and msec functions for converting from seconds to cycles (for stut etc) @yaxu
- template haskell upper bounds @yaxu
- fix for multi-laptop sync/tempo sharing @yaxu
- fix toScale so it doesn't break on empty lists @bgold-cosmos
deconstruct
function for displaying patterns stepwise @yaxudjf
control ready for new superdirt dj filter @yaxugetScale
for handrolling/adding scales toscale
function * Adddjf
control for upcoming superdirt dj filter @yaxu
See also https://tidalcycles.org/index.php/Changes_in_Tidal_1.0.x for earlier stuff)
- Add 'to', 'toArg' and 'from' controls for new superdirt routing experiments - @telephon
- Fixes for squeezeJoin (nee unwrap') - @bgold-cosmos
- Simplify
cycleChoose
, it is now properly discrete (one event per cycle) - @yaxu - The return of
<>
,infix alias for overlay
- @yaxu - Fix for
wedge
to allow 0 and 1 as first parameter - @XiNNiW - Support for new spectral fx - @madskjeldgaard
- Fix for _euclidInv - @dktr0
chordList
for listing chords - @XiNNiW- new function
soak
- @XiNNiW - tempo fixes - @bgold-cosmos
- miniTidal developments - @dktr0
- potentially more efficient euclidean patternings - @dktr0
- unit tests for euclid - @yaxu
- fix for
sometimesBy
- @yaxu
- arpg, a function to arpeggiate
- within', an alternate within with a different approach to time, following discussion here #313
- sine et al are now generalised so can be used as double or rational patterns
- New Sound.Tidal.Simple module with a range of simple transformations (faster, slower, higher, lower, mute, etc)
- slice upgraded to take a pattern of slice indexes
- espgrid support
- lindenmayerI
- sew function, for binary switching between two patterns
- somecycles alias for someCycles
- ply function, for repeating each event in a pattern a given number of times within their original timespan
- patternify juxBy, e, e', einv, efull, eoff
- The
note
pattern parameter is no longer an alias formidinote
, but an independent parameter for supercollider to handle (in a manner similar toup
)
- Added
chord
for chord patterns andscaleP
for scale patterns - The
n
pattern parameter is now floating point
- Added
hurry
which both speeds up the sound and the pattern by the given amount. - Added
stripe
which repeats a pattern a given number of times per cycle, with random but contiguous durations. - Added continuous function
cosine
- Turned more pattern transformation parameters into patterns - spread', striateX, every', inside, outside, swing
- Added experimental datatype for Xenakis sieves
- Correctly parse negative rationals
- Added
breakUp
that finds events that share the same timespan, and spreads them out during that timespan, so for example (breakUp "[bd,sn]") gets turned into the "bd sn" - Added
fill
which 'fills in' gaps in one pattern with events from another.
- Swapped
-
for..
in ranges as quick fix for issue with parsing negative numbers - Removed overloaded list thingie for now, unsure whether it's worth the dependency
- The sequence parser can now expand ranges, e.g.
"0-3 4-2"
is equivalent to"[0 1 2 3] [4 3 2]"
- Sequences can now be described using list syntax, for example
sound ["bd", "sn"]
is equivalent tosound "bd sn"
. They aren't lists though, so you can't for example dosound (["bd", "sn"] ++ ["arpy", "cp"])
-- but can dosound (append ["bd", "sn"] ["arpy", "cp"])
- New function
linger
, e.g.linger (1/4)
will only play the first quarter of the given pattern, four times to fill the cycle. discretise
now takes time value as its first parameter, not a pattern of time, which was causing problems and needs some careful thought.- a
rel
alias for therelease
parameter, to match theatt
alias forattack
_fast
alias for_density
- The start of automatic testing for a holy bug-free future
- Fixed bug that was causing events to double up or get lost,
e.g. where
rev
was combined with certain other functions.