A little 80s funk metal intro - name that tune

Hi
Spent a few hours this lazy afternoon getting this riff out of my head, via Sonic Pi, and also learning how to sequence events and patterns as the tune evolves. Bonus points if you can name the tune or band :smiley: Loop names are a clue.

use_bpm 54

kk = :drum_heavy_kick
sn = :drum_snare_hard

/anacrusis/
1.times do
  sample kk, amp: 4
  sample sn, amp: 0.7
  sleep 0.25
end

with_fx :reverb, room: 0.6 do
  define :pat do |pat|
    return pat.ring.tick == "x"
  end
  /mike/
  live_loop :mike1 do
    sample kk if pat "x--xxx-x"
    sleep 0.25
  end
  
  live_loop :mike2 do
    sample sn, amp: 0.7 if pat "--x---x-"
    sleep 0.25
  end
  /big jim/
  use_synth :bass_foundation
  with_fx :distortion, distort: 0.7 do
    live_loop :jim do
      use_synth_defaults release: 0.2, amp: 0.5
      sleep 7.75
      play_pattern_timed [50, 52, 40], [0.125,0.125,0.25]
      sleep 6.75
      2.times do
        play_pattern_timed [40,40, [50,55,59]], [0.125,0.125,0.25]
      end
      stop
    end
  end
  /billy/
  riff = [0,12,0,0,0,12,0]
  durs = knit(0.5,1, 0.25,6)
  live_loop :billy, delay: 16 do
    use_synth_defaults release: 0.25
    tick
    play 40 + riff.look - 12
    sleep durs.look
  end
  /roddy/
  with_fx :vowel, pre_mix: 2 do
    use_synth :hollow
    use_synth_defaults attack: 0.2, cutoff: 80, res: 0.99,  noise: 2
    live_loop :chor, delay: 24 do
      play [56,59], release: 3, amp: 5
      sleep 2
      play [57,60], release: 3, amp: 5
      sleep 2
      play [59,62], release: 3, amp: 5
      sleep 2
      play [57,60], release: 3, amp: 5
      sleep 2
    end
  end
end

PD-Pi

3 Likes

That was fun, still trying to get confidence with rhythms.

Also discovered something: I don’t have the synth ‘bass_foundation’ so substituted something random. Turns out this is a great way to isolate that voice and hear what it’s doing, without faffing with #stop etc

I cheated to find the band using the usual exobrain. :smiley:

Hi
which version of SPi are you on? That synth was introduced in 4.0

PD-Pi

Thanks, suspected as much, didn’t have the new version on works computer… is a lot funkier now

Sonic Pi at work??? :green_heart:

(If you can find or design a better choir pad in Sonic Pi, I would love to hear it :wink: )

1 Like

My boss is OK with it. Also am self-employed :smiley: Choir pad - I wish! Currently experimenting with recorder samples, a bit mellotrony. Plus circuit rhythm which is being found by SP. Unfortunately no idea which sounds are coming from sp and which from CR, but it makes me happy.

1 Like

Yeh, why do we love the sound of the Mellotron - it’s kinda universal isn’t it?

That CR looks like a lovely piece of kit! I still haven’t got my Korg Volca hooked up to SPi, need to get right on it.

PD-Pi

1 Like

Think the sound is soothing, have been playing with massed recorders recently and unlike the rest of the universe:D find it quite meditative. Hence layering up/acoustic experiments.

CR - let’s know what you discover with Volca and SPi.

CR can drive Sonic Pi, then you can change the sample live using the CR sample pads,

  • use the CR FX knobs live
  • CR channel, rhythms etc in SPi (this bit I need to get to grips with, more organic rhythms).
  • CR is monophonic, so anything too sportif on SPi, CR has to choose or do side-chainy stuff, 0.125 sleep on 1 channel is fine.
  • however, you can make layers by doubling tracks and also
  • (this is the amazing bit) bounce what you’re playing to a new sample, instant polyphony
  • plus record live bits which include SPi into the mix, which get looped

No idea what’s going on, just playing around, trying to make notes,as I forget how I got effects when I switch on/off. This is probably everyday breakfast stuff for most folk on the forum, think I’ve just reinvented the organ :smiley:

PS any hints on how to sync most welcome. There’s a minijack at the back of CR with ‘sync’ in small friendly letters, will try that.

Search this forum for ‘midi clock’ or ‘midi sync’, should get you sorted.

1 Like

Thank you - have discovered ‘use_real_time’, will experiment.

How much do you care? How much faith do you have?

(Was vaguely familiar with the name, didn’t know the band’s music. Did a search based on those names and found the SF band with Bordin, Gould, and Patton, as well as Martin at the time of their initial release with Mordam.)

Interesting approach with this pat notation. Been trying similar things with PureData and Pd-Lua.

(Actually, been converting binary notation into hex. Turns out, it’s been done in Csound and there are some “hex seq” demos online, yet it doesn’t sound like it caught up. Maybe because the conversion typically uses the conventions which bring the first bit at the end of a four-digit group, making for an awkward right-to-left reading in a left-to-right notation. That part is similar to Trying all 8 beat long snare drum patterns. Only, it’s with any pattern length and it’s divided by “nibble”. I also do the conversion in octal for ternary beats.)

At any rate…

Thanks for that riff!

1 Like

:smiley:
I saw FNM in the early 90s, when The Real Thing came out - monster album!

I think it was DJ Dave I saw, using that pattern function - very handy for creating and manipulating multiple rhythmic events quickly, and in real time.

. . . tell me more!

PD-Pi

2 Likes

Neat! Will check it out.

Maybe it’s not the right place for that, as it’s about Pd instead of SPi.
So, here’s a link to one post I made on the Plugdata Discord about this:

Long story short…
Was playing with Euclidean Rhythms using a seq object which uses a binary notation. Gave me the idea of converting that notation to hex. Because, compactness. Makes a whole lot of sense in the typical 4/4 context. Each hex digit represents a sequence of four hits or rests. For instance, we can represent the paradiddle-like 1 0 1 1 with D and 1 is just the downbeat. With four 16ths per beat, a four digit hex number would represent a bar of 4/4. (FFFF is all 16ths while 1000 is just a hit on the first beat).
Played around with that, first with Pd objects, then in Pd-Lua. Had also been playing with notations of Pitch Class Sets using 12 digits (one per note in the chromatic scale).

Anyhoo… I guess I should probably discuss this in that @vinodv thread. :wink:

1 Like

Really nice! Neat work on Sarah’s part. Useful intro to livecoding, too!

Yeah, processing multiple things at the same time can be challenging, so any support can be helpful. Which is part of what I noticed with Euclidean rhythms. Each of these is made of two numbers: number of steps and number of hits. You can add a number for offsets. And I like to add a layer for accents.

At any rate, you can get pretty complex patterns with just a few numbers. And you can simplify these by switching certain things on and off.

As @dj_dave says, she knows the numbers by heart because she frequently uses SPi. That’s a fascinating thing about learning patterns.

And it does bring me back to this idea of hex (or oct) notation.
I really insist that starting with the first subdivision is important. So, x--- is 1 and x-xx (similar to the paradiddle) is D, xx-- (the “Scotch Snap”) is 3, and x--x(the dotted rhythm) is 9.
Then, 1111 is “four on the floor”, 5555 is a full 4/4 bar of eighths, and 0101 is the common backbeat pattern. AFAICT, that kick pattern is 1442 (x-----x---x--x--, right?) and the hats 5575 (X-X-X-X-XXX-X-X-).

Sure, it requires a bit of memorization. Gets pretty easy very quickly, though. And it can be both quicker and less error-prone than entering each hit or rest.

There are hex sequencers around, though fewer than I expected. I did notice one in Aodyo’s Anyma V synth, though it uses knobs instead of displaying the numbers. It’s also in a little math game. It’s also in Yi’s Csound Live, based on prior work by Bernhard Wagner. In all of these cases, though, the last subdivision of a beat is 1 and the first is 8. I get why, of course. It’s just counterintuitive, especially since the digits are still left-to-right. So, ---xx--- would be 18 which feels weird. Sure, if it’s just about learning the numbers… Makes less of a difference. Still, there’s something elegant in going from x--- (1) to -x-- (2) to xx-- (3) to --x- (4), etc.

Anyhoo… I realize this type of conversion can work well in SPi. Just not exactly sure how to do it. (In other languages, I reverse each nibble as a binary number and then use convert that number to hex.)

Sounds like something that someone might want to add to a livecoding system, anyway.

1 Like

I love the pat function. So simple, yet so effective.