Weeknotes 10

October 26, 2020
  • On Sunday morning both boys were up stupidly early (thanks daylight saving time), but last night was the first night F- has slept through without waking, so go figure.
  • We went on the Gruffalo Adventure at Kew Gardens on Saturday. Kew has generously extended our membership for a couple of months to make up for the time they were closed. N- enjoyed hunting for Gruffalo characters and filling in a nature-themed treasure hunt. As long as we can keep moving around the city, I think Kew might be a popular destination for us this winter, there’s plenty to do outdoors and the large glasshouses are warm and colourful.
  • I met Joel for a catch up on Monday night, it was really great to chat for a couple of hours.
  • I’ve been playing with TidalCycles a bit this week. It’s a lot of fun, and I’ve just started to scratch the surface. I hadn’t realised that it has a SuperCollider audio engine, so some of the things I’ve been learning this year should transfer over. I still don’t really want to sit in front of a keyboard and screen to make music, but I like the idea of being able to create little audio “applications” in Tidal that control external equipment and can be controlled by MIDI controllers.

    I enjoy the Attack Magazine series beat dissected. It shows how to create music in a variety of different styles, and also includes samples. Using Tidal I made a version of the lo-fi house beat:

    Tidal code is Haskell, which I’m not familiar with at all. But the Tidal language embedded in it seems to be usable even without any knowledge. The above snippet was created with this code:

    setcps (125/60/4)
      $ slow 2
      $ sound "lofi:2 lofi:2 lofi:2 lofi:2 lofi:2 [lofi:2 lofi:2 ~ ~] lofi:2 [lofi:2 ~ ~ lofi:2]"
      # hpf 30
      # note (-2)
      # release (0.4)
      # shape 0.4
    d2 $ (0.01 <~) $ sound "~ lofi:1 ~ lofi:1" # note (0)
    d3 $ (0.01 <~) $ sound "~ lofi:3 ~ ~" # release 0.2
    d4 $ randslice 4 $ sound "lofi:4" # hpf 150 # gain 0.7
    d5 $ swingBy (0.35) 4 $ "~ lofi ~ lofi" # release 0.1 # lpf 10000
    d6 $ swingBy (0) 4 $ sound "lofi:5(5,8,3)" # release 0.15 # lpf 5000 # gain 0.7
    d7 $ slow 4 $ n "f4'maj7 c4'maj7" # s "superfm" # gain 0.4 # attack 0.5 # release 2 # lpf 200

    d1 to d7 are equivalent to “tracks”. I’ve loaded the samples from the Attack magazine article into the unhelpfully-named lofi:n variables. lofi:2 is the kick drum, for example.

    SuperCollider has a built in “record to file” option and I imported the AIFF created by that into Audacity to add a fade-in and out and covert to OGG.

    I think I have everything I need to get this running on the raspberry pi and I’d like to explore using Tidal to output MIDI next.