ACID BASS-LINE or Bass-lines general

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.

1 Like

Maybe a look into this lesson thread helps:

2 Likes

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) and made something vaguely similar tidal/code/acid.ogg · master · waldmann / computer-mu · GitLab (source in the same directory). For the actual notes:

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.

6 Likes

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.,

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,

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

3 Likes

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")

4 Likes

Omg awesome. 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:

feel free to ask any questions though!

1 Like

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

1 Like

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.

1 Like

I made a set called flbass New sample set: fretless electric bass (flbass)

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) :slight_smile:

@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:

-- 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
-- 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
-- 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
-- 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
-- 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:

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 ...

4 Likes

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

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 :fire:

1 Like

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?

1 Like

certainly.

I used it here:

4 Likes