My Dream Live Setup

My dream setup for live work, until the next one. I’ve been round the houses and back with options, and there’s loads of ways to do this and I thought I share this one.

The aim of the game is to have maximum creativity, minium setup hardware, cables and fuss. While still using Sonic Pi and VCV Rack. Honestly, I could probably do everything in either one but I like both of them so want to use them both. I did try getting both to run on the one Windows PC, but for various reasons it’s not robust.

So the recipe is:

  • A Raspberry Pi running Sonic Pi with the backing sequences, main percussion, loops ready for live coding and samples triggered off the virtual on-screen midi keyboard vmpk.

  • Windows 10 PC running VCV Rack with the Arturia MiniLab midi keyboard for live playing, and midi control of some of the Rack parameters. My patch for a current crop of songs has one synth voice for live playing off the keyboard; a sequencer set up to record off the keyboard on another midi channel; a Turing Machine module playing patterns on scales; a sequencer and drum machine that I can edit live on screen.

  • A little usb-powered wifi access point (the small blue box)

  • A VNC client on the W10 PC to control Sonic Pi

  • Cuckos OSII-bot running on the Windows PC that picks up OSC messages from Sonic Pi to send them to VCV Rack as MIDI notes that work to sync the clocks. This needs loopMidi on the PC too handle them. Here’s the bit of EEL script to do that https://gist.github.com/soxsa/1ec89e49285ad3f72c933bb72254af3c

  • Audio ouput straight from the output jacks of the Pi and PC straight into an audio mixer, then to the PA. No external audio interfaces as latency is not a great concern here.

2 Likes

…A follow up on this. Might help somone wanting to do something similar…

I tried this at a (distanced) rehearsal yesterday and it worked well, very usable in practice.

I also tried an even sparser setup which was ‘everything on one PC’

  • Windows PC
  • Wifi access point
  • External USB soundcard, WASAPI
  • VCV Rack
  • Sonic Pi
  • Arturia Midi keyboard -> VCV Rack
  • Android phone running an OSC app -> Sonic Pi

…which I gave a really good soak test at home. But when I tried it out at the rehearsal, there were all kinds of problems. The phone/osc app refused to send any osc messages - still a mystery. I got timing glitches on the VCV Rack and at one point couldn’t get a live loop playing samples to make any sound. My guess is that the PC had recently updated itself and - you know how it goes - it then decides to do a load of stuff for a while until it settles down. Back at home, it worked no problem.

These are the practial realities of using computers for live work. When it happens I think of using actual synths instead - the kind that you turn on and they just work. But a quick look at the prices tag for such a setup, and… :smile:

I’ve explained the mystery of my phone not sending OSC. At home, my private wifi network has a gateway to the Internet, but not when I’m at the rehearsal. Although the phone is still definitely connected to the network, it won’t send OSC when there’s no Internet gateway. Might just be my phone.

Cool setup @soxsa, I am planning on a smilar setup including SPI as sequencer and live programmer and Rack as a modular setup.

1 Like

Thanks. I like to hear the details when you get set up - always looking for new ways. Mine is working well at the minute - the sync goes out every now and then but gets corrected each phrase, or manually if necessary.

That said, watching @samaaron’s set on Saturday, he was using a Moog (yes a real one!!!) but didn’t touch it, he was sending it stuff from SPi. But I couldn’t quite see what.

Yeah so I now route audio from SPI to an output in Rack (via loopbe) and then feed it into a mixer. Also I send midi from SPI to Rack.

But I don’t know how to check if everything is in sync and also if I change the timing in one live_loop it could be that it is out of sync of the loop that sends the midi. Do you happen to know how to sync this?

That’s interesting, not looked at loopBe before - so all your audio is coming out via Rack? In my setup - if running SPi on the same PC as Rack rather than a separate RPi - I’m using WASAPI so both SPi and Rack are running to the same soundcard and the mix is via the Windows Mixer. I like your idea (if I understand it) as you could further treat the SPi signal e.g. with delay, reverb, filter.

How are you sending midi from SPi to Rack, are they both on the same PC? I found that Rack and SPi can’t use midi at the same time.

Anyway, using OSC rather than MIDI for syncing (but it would be similar), this is the sort of code I’m using. The :main loop represents a bar (or could a longer phrase of several bars) and the :send loop sync’s on the cue from :main.

live_loop :send do
  sync :main
  play :C4, amp: 0.1
  time_warp 4-rt(0.07) do
    #Send OSC, or midi to remote synth
    use_osc "192.168.1.64", 4561
    osc "/pulse", 49
  end
  #Sleep 7 #If you wanted to send e.g. every two bars
end

live_loop :main do
  #This loop represents a bar
  play :G4, amp: 0.1
  sleep 4
end

Other things I’ve found useful are using cues for e.g. every bar, 4 bars, 8 bars…then triggering Rack phrases off those

live_loop :main do
  #Send cues each bar, 4 bars and 8 bars
  sleep 4
  cue :bar
  
  n = tick(:barcount)+1
  
  if n.divmod(4)[1]==0 then
    cue :bar4
  end
  
  if n.divmod(8)[1]==0 then
    cue :bar8
  end
end