# Tidal 1.7 is released!

**URL:** <https://uzu.lurk.org/t/tidal-1-7-is-released/2801>\
**Category:** Announcements\
**Created:** [26 January 2021 09:01 UTC](https://uzu.lurk.org/t/tidal-1-7-is-released/2801 "2021-01-26T09:01:46Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![yaxu](https://uzu.lurk.org/user_avatar/uzu.lurk.org/yaxu/32/2_2.png) [@yaxu](https://uzu.lurk.org/u/yaxu)\
**Post date:** [26 January 2021 09:01 UTC](https://uzu.lurk.org/t/tidal-1-7-is-released/2801/1 "2021-01-26T09:01:47Z")

</div>

The new version 1.7 of Tidal and 1.7.2 of SuperDirt is out! They should be upgraded together. Here's info about the upgrade, please hit reply if you have problems. The next effort is to document the changes, there's some good stuff!

I use Linux, but instructions should be similar for other platforms - please share any os-specific findings!

First for superdirt, upgrade the quark to v1.7.2. You can do this by running the following in SuperCollider:

```haskell
Quarks.checkForUpdates({Quarks.install("SuperDirt", "v1.7.2"); thisProcess.recompile()})

```

The next and final job is to install version 1.7 of the tidal Haskell library. For simplicity and lack of bugs, I recommend using the old 'v1-' install method with cabal.

_For the most predictable experience, it might be best to wipe your haskell packages at this point and start from a clean slate, especially if you have previously installed tidal with the now default 'v2' `cabal install` method. Under linux/mac os can do this by removing the `~/.ghc` and `~/.cabal` folders._

Here's how you install tidal 1.7, from a terminal window:

```haskell
cabal v1-update
cabal v1-install tidal

```

> _If you later want to change back to a previous version of tidal, you can do this:_
> 
> ```haskell
> ghc-pkg unregister tidal-1.7
> cabal v1-install tidal-1.6.1 -- or whatever version you prefer
> 
> ```

**Trying it out**

We're working on a new documentation website but there's a couple of fun things to try below. You can also check the brief [release notes for tidal](https://github.com/tidalcycles/tidal/releases) and [superdirt](https://github.com/musikinformatik/superdirt/releases).

**Control busses**

This lets you route an effect via a bus.. In practice, this means you can pattern the effects of a sound while it's playing.

```haskell
-- A simple sax sound
d1 $ sound "sax" # legato 1

-- This doesn't do anything different
d1 $ sound "sax" # legato 1 # squiz "0 1.5 0 1.5"

-- A workaround is to chop up the sounds into parts:
d1 $ chop 4 $ sound "sax" # legato 1 # squiz "0 1.5 0 1.5"

-- But now you can use a bus to change a single sound while it plays:
d1 $ sound "sax" # legato 1 # squizbus 1 "0 1.5 0 1.5"

-- You can add a bus to most things but have to take care to give each thing a different bus number:
d1 $ sound "sax" # legato 1 # squizbus 1 "0 1.5 0 1.5" # lpfbus 2 "400 2000 3000" # lpq 0.2

-- You can pattern things within bus patterns:
d1 $ sound "sax" # legato 1 # squizbus 1 (chunk 4 (fast 4) "0 1.5 0 1.5")

-- A big limitation is that bus patterns are monophonic. So if you do some patterning that layers them up, you'll be disappointed with the results:
d1 $ jux rev $ s "sax" # ampbus 1 ("[1 0 [1 0] 1]*6") # legato 1 

-- A workaround is to add 1 to the bus number, and 0 to the value: 
d1 $ jux (rev . (|+ ampbus 1 0)) $ s "sax" # ampbus 1 ("[1 0 [1 0] 1]*6") # legato 1 

-- Or replace the control using a different bus number with `#`
d1 $ jux (rev . (# ampbus 2 "1 0 1 0")) $ s "sax" # ampbus 1 ("[1 0 [1 0] 1]*6") # legato 1 

```

Most things work, but some key things like speed, gain, vowel and note don't.

`panbus` will work, but in the range -1 to 1 instead of 0 to 1. Working on this.. (That range would be better in general, as you could multiply patterns to change amplitude)

**Syncopation with `press`**

A simpler function that I'm excited about is `press`. In mininotation terms it basically turns every instance of 'a' into '[~ a]'.. Every beat then becomes an offbeat and so the overall effect is to syncopate a pattern.

A couple of quick examples:

```haskell
d1 $ stack [every 4 (fast 2) $ sound "drum*4" # squiz 1.3 # speed 2,
            every 2 press $ sound "sd:1*2 sd:4*3 sd*2 sd:2*2"
]

d1 $ jux press $ sound "sd:1*2 sd:4*3 sd*2 sd:2*2"

```

Funky times ahead!

---

_[View the full topic](https://uzu.lurk.org/t/tidal-1-7-is-released/2801)._
