# ACID BASS-LINE or Bass-lines general

**URL:** <https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686>\
**Category:** TidalCycles\
**Tags:** questions\
**Created:** [5 December 2021 19:47 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686 "2021-12-05T19:47:09Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Soldug](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Soldug](https://uzu.lurk.org/u/Soldug)\
**Post date:** [5 December 2021 19:47 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/1 "2021-12-05T19:47:09Z")

</div>

Hello, I have been using tidal for a while now. And I was wondering about how do people make bass lines. I can not figure out a nice way to generate them.

I would love to see some examples other tidal users use in their music and live shows.

---

<div class="post-metadata">

**Author:** ![ganz](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ganz/32/64_2.png) [@ganz](https://uzu.lurk.org/u/ganz)\
**Post date:** [6 December 2021 04:58 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/2 "2021-12-06T04:58:20Z")

</div>

Maybe a look into this lesson thread helps:

> [@Week 5 lesson 1 - musical notes](https://club.tidalcycles.org/t/week-5-lesson-1-musical-notes/891):
>
> Ok we're back with a surprisingly long video about how to play notes, giving them as numbers or names, and controlling samples and synths.. With a sidetrack about how to look at the actual values inside (the first cycle of) a pattern. [[[TidalClub] Week 5 lesson 1 - musical notes] ](https://www.youtube.com/watch?v=ZtCx-YMrwVU)[0:50](https://www.youtube.com/watch?v=ZtCx-YMrwVU&t=50s) - how to look at event values in the first cycle [2:26](https://www.youtube.com/watch?v=ZtCx-YMrwVU&t=146s) - floating point note values - playing between the notes [3:36](https://www.youtube.com/watch?v=ZtCx-YMrwVU&t=216s) - looking at the timespan of an event [5:43](https://www.youtube.com/watch?v=ZtCx-YMrwVU&t=343s) - sc3plugins - needed for playing sy…

---

<div class="post-metadata">

**Author:** ![jwaldmann](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jwaldmann](https://uzu.lurk.org/u/jwaldmann)\
**Post date:** [6 December 2021 19:44 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/3 "2021-12-06T19:44:44Z")

</div>

Ha, aciiid. Haven't heard that in a long time. I was looking up what Wikipedia thinks is typical ([File:Two Simple 303 Patterns.ogg - Wikipedia](https://en.wikipedia.org/wiki/File:Two_Simple_303_Patterns.ogg)) and made something vaguely similar [tidal/code/acid.ogg · master · waldmann / computer-mu · GitLab](https://gitlab.imn.htwk-leipzig.de/waldmann/computer-mu/-/tree/master/tidal/code/acid.ogg) (source in the same directory). For the actual notes:

```haskell
d1 $ s "superchip" 
  |>| note ("[c f a a f c]" -- some melodic line 
            + "[-12,0,3,7]" -- add some harmonics to each note
            - 12 -- shift one octave down (everything)
            + "[0 5 7 0]/8" -- some global structure (shift base note every two cycles)
           )
 |>| gain "[1@3 0]*12" -- chop and separate notes a bit

```

This can be compressed more, e.g., using chord notation? For the sound, add distortion and filter.

---

<div class="post-metadata">

**Author:** ![Jeff\_Brown](https://uzu.lurk.org/user_avatar/uzu.lurk.org/jeff_brown/32/2033_2.png) [@Jeff\_Brown](https://uzu.lurk.org/u/Jeff_Brown)\
**Post date:** [13 December 2021 18:34 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/4 "2021-12-13T18:34:41Z")

</div>

An important aspect of bass lines in electronica is continuous parameter changes to a monophonic voice. "accelerate" is a natural canned solution Tidal offers for continuously changing the frequency of a sample[1]. @bgold describes a completely generalsolution[1] (that is, it can vary any parameter, not just pitch -- important if you want that dubstep wah-wah sound) , but it requires some SC hacking.

One of my dreams is to be able to write, e.g.,

```haskell
d1 $f s "theremin" # freq "200 200 300 300"

```

to cause the frequency to be stable at 200 Hz for the first quarter, rise from 200 to 300 over the second quarter, stable at 300 for the third quarter, and then fall back from 300 to 200 over the fourth quarter.

Or barring that,

```haskell
d1 $f s "theremin"
      # freq "200 300"
      # transitionSpeedInSeconds "0 0.1"

```

so that the 200 Hz frequency would take effect immediately, while the 300 Hz frequency would be gradually slid into over the course of 0.1 seconds.

[1] [Slide notes? - #16 by cleary](https://club.tidalcycles.org/t/slide-notes/1166/16)

---

<div class="post-metadata">

**Author:** ![polymorphic.engine](https://uzu.lurk.org/user_avatar/uzu.lurk.org/polymorphic.engine/32/30_2.png) [@polymorphic.engine](https://uzu.lurk.org/u/polymorphic.engine)\
**Post date:** [14 December 2021 13:00 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/5 "2021-12-14T13:00:43Z")

</div>

> [@Jeff\_Brown](#):
>
> One of my dreams is to be able to write, e.g.,
> 
> ```haskell
> d1 $f s "theremin" # freq "200 200 300 300"
> 
> ```

to get what you want, is actually not that difficult with the controlbusses:

`d1 $ s "theremin" # freqbus 0 (segment 128 $ smooth "200 200 300 300")`

---

<div class="post-metadata">

**Author:** ![Jeff\_Brown](https://uzu.lurk.org/user_avatar/uzu.lurk.org/jeff_brown/32/2033_2.png) [@Jeff\_Brown](https://uzu.lurk.org/u/Jeff_Brown)\
**Post date:** [14 December 2021 15:19 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/6 "2021-12-14T15:19:52Z")

</div>

> [@polymorphic.engine](#):
>
> not that difficult with the controlbusses

Omg awesome. Any idea where I should read about control buses?

---

<div class="post-metadata">

**Author:** ![polymorphic.engine](https://uzu.lurk.org/user_avatar/uzu.lurk.org/polymorphic.engine/32/30_2.png) [@polymorphic.engine](https://uzu.lurk.org/u/polymorphic.engine)\
**Post date:** [14 December 2021 16:19 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/7 "2021-12-14T16:19:31Z")

</div>

> [@Jeff\_Brown](#):
>
> Any idea where I should read about control buses?

unfortunately they are not documented very well at the moment, but I think some people are on it. (at first it wasn't so sure if there will be some changes in their implementation, but since they are part of tidal for quite a while now, I think it should stay fairly stable)

here you can find out about the basic usage:

> [@Testing Tidal 1.7](https://club.tidalcycles.org/t/testing-tidal-1-7/2792):
>
> (We need a forum category for this sort of thing.. Not sure what to call it) The new Tidal and SuperDirt is ready for testing. They should be upgraded together. Here's a thread for people up for trying it out. We can use it to help each other get it installed, try out the features and get things documented. First things first - how to get the cutting edge running. I use Linux, but instructions should be similar for other platforms - please share any os-specific findings! First for superdirt, …

feel free to ask any questions though!

---

<div class="post-metadata">

**Author:** ![jwaldmann](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jwaldmann](https://uzu.lurk.org/u/jwaldmann)\
**Post date:** [17 December 2021 18:18 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/8 "2021-12-17T18:18:25Z")

</div>

> [@polymorphic.engine](#):
>
> > [@Jeff\_Brown](#):
> >
> > ... read about control buses?
> 
> ... not documented very well at the moment, but I think some people are on it.

Yes. [document control busses · Issue #66 · tidalcycles/tidal-doc · GitHub](https://github.com/tidalcycles/tidal-doc/issues/66) contains links to existing documentation (examples) and shows the plan to write it up.

---

<div class="post-metadata">

**Author:** ![metaChew](https://uzu.lurk.org/user_avatar/uzu.lurk.org/metachew/32/2757_2.png) [@metaChew](https://uzu.lurk.org/u/metaChew)\
**Post date:** [2 January 2022 16:30 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/9 "2022-01-02T16:30:13Z")

</div>

I'm struggling with the same thing. Haven't found the optimal way to make bass beats. I found this sample pack on freesound recently of a double bass that seems to be an improvement. Would be interested what bass samples other people use.

> **[Freesound - pack: Double-Bass single notes by MTG](https://freesound.org/people/MTG/packs/20207/)**
>
> Freesound: collaborative database of creative-commons licensed sound for musicians and sound lovers. Have you freed your sound today?

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [19 January 2022 22:29 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/10 "2022-01-19T22:29:46Z")

</div>

I made a set called `flbass` [New sample set: fretless electric bass (flbass)](https://club.tidalcycles.org/t/new-sample-set-fretless-electric-bass-flbass/2689)

I like them a lot (not that that matters), but I've seen them used quite a bit by others, so you may find that useful. `flbass` is just using notes tuned to c - it's not single notes like that double bass pack (thanks for sharing by the way) 🙂

@Soldug I've been intending to answer this for a while, but I think jwaldmann has done a pretty good job. Maybe some extra breakdown and a sound example could help -

The way I'm building bass lines at the moment is:

- separate notes from rhythm
- build the foundation harmonic part
- add harmonic variation
- add rhythmic variation
- add timbre variation

example:

```haskell
-- first pass, struct defines rhythm, foundational harmonic line defined by note
struct "t*16" $ note "[7 0 0 0 5 0 3 5 0 7 0 0 0 1 0 3 5]" 
# s "bass1:0" # cut 1

```

```haskell
-- add harmonic variation
sometimes (off 0.125 (|+ up "[7|12]")) $ 
struct "t*16" $ note "[7 0 0 0 5 0 3 5 0 7 0 0 0 1 0 3 5]" 
# s "bass1:0" # cut 1

```

```haskell
-- add rhythmic variation
sometimes (off 0.125 (|+ up "[7|12]")) $ 
someCyclesBy 0.2 (mask (binary 200)) $ 
struct "t*16" $ note "[7 0 0 0 5 0 3 5 0 7 0 0 0 1 0 3 5]" 
# s "bass1:0" # cut 1

```

```haskell
-- add timbre variation
sometimes (off 0.125 (|+ up "[7|12]")) $ 
someCyclesBy 0.2 (mask (binary 200)) $ 
struct "t*16" $ note "[7 0 0 0 5 0 3 5 0 7 0 0 0 1 0 3 5]" 
# s "<bass1:2!4 bass1:0!4>" # cut 1 
# coarse 5

```

```haskell
-- more rhythmic mods/final line
swingBy 0.2 16 $
whenmod 18 17 (#silence) $ 
someCyclesBy 0.1 (linger "s") $
sometimes (off 0.125 (|+ up "[7|12]")) $ 
slow 2 $ 
someCyclesBy 0.2 (mask (binary 200)) $ 
struct "t*16" $ note "[7 0 0 0 5 0 3 5 0 7 0 0 0 1 0 3 5]" 
# s "<bass1:2!4 bass1:0!4>" # cut 1 
# coarse 5

```

where you can modify any of those parameters live and switch up the line significantly

how it sounds:

[![](https://img.youtube.com/vi/dF1EmLMlToc/hqdefault.jpg "bassline demo estuary") ](https://www.youtube.com/watch?v=dF1EmLMlToc)

side note, I'm doing this in estuary which I need to use for a workshop performance - one of the things that has been left out here is "attack variation" - there are heaps of options with `legato` (which I'd usually use, but is not available in estuary), `begin`, `end`, alternating `gain` patterns, `speed` etc

TBH though, all of this will still not necessarily make a good sounding line - understanding the line your trying to create at a harmonic level (eg I'm leaning on the phrygian mode heavily, and making some safe `off |+ up` notes with the 5th and octave), as well as at a rhythmic level (using `swing`, 8th/16th note rhythms) will help a lot ... having a sound in your head you want to get out helps as well - maybe you can kickstart some ideas from here though.

PS one of my favourite basslines I've written is in the [second half of my solstice set](https://youtu.be/vdNX_qqWR14?t=638) ...

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [20 January 2022 01:08 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/11 "2022-01-20T01:08:56Z")

</div>

I tidal-ified the pizzicato samples - stripped silence and normalise to -1.0db, and re-sorted so C2 is `n:0` - the lower notes (e1 -b1) got moved to the end of the file list

> **[pluckng.tar.gz](https://drive.google.com/file/d/14NM2BUCVwm2scgORJsRyK5BkSrJ6AGDS/view?usp=sharing)**
>
> Google Drive file.

---

<div class="post-metadata">

**Author:** ![metaChew](https://uzu.lurk.org/user_avatar/uzu.lurk.org/metachew/32/2757_2.png) [@metaChew](https://uzu.lurk.org/u/metaChew)\
**Post date:** [21 January 2022 01:07 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/12 "2022-01-21T01:07:03Z")

</div>

Woah! This is fantastic. I can't wait to hack around with this and your flbass pack! I'm going to need a great amount of time to chew on everything you've provided here. That solstice bass line is 🔥

---

<div class="post-metadata">

**Author:** ![Soldug](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/s/7ea924/32.png) [@Soldug](https://uzu.lurk.org/u/Soldug)\
**Post date:** [30 January 2022 10:01 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/13 "2022-01-30T10:01:04Z")

</div>

Wow, @cleary this is a nice way of creating basslines, and it sounds great, in general, I find your youtube site inspiring! i find euclidian patterns good for creating basslines, and then have tidal choose between some nodes. I was thinking is Markov chains possible in tidal? I was thinking of creating three patterns to choose from?

---

<div class="post-metadata">

**Author:** ![jwaldmann](https://uzu.lurk.org/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jwaldmann](https://uzu.lurk.org/u/jwaldmann)\
**Post date:** [30 January 2022 12:38 UTC](https://uzu.lurk.org/t/acid-bass-line-or-bass-lines-general/3686/14 "2022-01-30T12:38:48Z")

</div>

> [@Soldug](#):
>
> Markov chains possible in tidal?

certainly.

- API: [Sound.Tidal.UI](https://hackage.haskell.org/package/tidal-1.7.10/docs/Sound-Tidal-UI.html#v:markovPat)
- Examples: [tidal-doc/wiki-export/markovPat.md at c3a32b6e5d545683f1b7d03f57721c992f7b9ddd · tidalcycles/tidal-doc · GitHub](https://github.com/tidalcycles/tidal-doc/blob/c3a32b6e5d545683f1b7d03f57721c992f7b9ddd/wiki-export/markovPat.md)

I used it here:

- source: [https://gitlab.imn.htwk-leipzig.de/waldmann/computer-mu/-/blob/master/tidal/code/markov.tidal](https://gitlab.imn.htwk-leipzig.de/waldmann/computer-mu/-/blob/master/tidal/code/markov.tidal)
- audio: [https://gitlab.imn.htwk-leipzig.de/waldmann/computer-mu/-/blob/master/tidal/code/markov.ogg](https://gitlab.imn.htwk-leipzig.de/waldmann/computer-mu/-/blob/master/tidal/code/markov.ogg)
