The stream setup as of May 2023

Welcome to another quarterly update on my live streaming journey. A lot of how the project works won’t be repeated in this post but should be covered in the previous ones linked above.

The first obvious change since last time is the heightening of my desk.

Initially, I wanted an adjustable desk, but the ones available in the market were too small and expensive. Creating my own mechanism seemed like a bad idea as well. So, instead, I decided to raise the height of the desk by adding two wooden boxes underneath the new tabletop I had installed. Surprisingly, it worked out quite well, even though I’m not skilled in carpentry. Now I can perform while standing, which adds a different feel and vibe to the music. The only downside is that my legs get tired easily.

Gear

I have since changed a couple pieces of gear in my setup with the first major one being replacing the Beatstep Pro with an Oxi One (pictured bottom).

As all of my other gear is black, the Beatstep (white) and Neutron (red) stood out like a sore thumb and disrupted the overall look of the stream canvas. In order to fix this I needed to find some kind of overlay or replacement faceplate for them both to make them black.

I started in my quest looking at vinyl/rubber overlays for the Beatstep pro as I couldn’t justify replacing it with a black edition. I discovered one person who made custom overlays from Germany, and another that did custom overlays for the Neutron in Finland. I purchased a nice black one for the Neutron which arrived fairly quickly, but the Beatstep overlays from Germany never responded to my follow-up email about the options.

So I floated the question “what about I just replace it with something else?” and remembered I had the Oxi One (black edition) bookmarked. The more I read the manual, the more boxes it ticked for me.

  • a) replacing the BSP like-for-like in terms of number of tracks, the kind of sequences it can produce, the size (must fit in the available space)
  • b) is black
  • c) is able to produce generative sequences

After a couple of hours, I put in an order for the standard model (I prefer the full colour pads).

Behringer Neutron with a black vinyl skin and the Oxi One sequencer

The Oxi One is a really really nice device. Very well built, fits the style and look of my setup really well, and tons of features. Unfortunately it is slightly smaller than my BSP so there is a resulting “air gap” around it, but in the future I hope to find a nice wooden chassis for it similar to the Neutron’s that can fill the space.

The Oxi primarily powers my drum track using the 4th (and 3rd) sequencers set to Multitrack mode. Each note (C, C#, D, D#, etc) correspond to a particular drum hit (Kick, Snare, Hat, Open hat, etc) and each octave corresponds to a particular sample on that track (C1 = kick1, C2 = kick2, C3 = kick3, etc).

The remaining 2 (or 3 if I need) sequencers can either be used for more drum samples or utilise any of the other cool sequencers available.

I also restructured my project (described below) to allow me to control each midi track directly from the Oxi One using a particular midi channel (channel 12 for bass, 13 for yellow, 14 for blue, etc). With this routing, I can bypass the clip and send the midi directly to the track FX chain so I can play both clip and sequence at the same time.

Push2 hasnt changed at all. I won’t be upgrading any time soon to the Push3.

Ableton Push 2

The third change to my gear is the replacement of the knobs on the FaderFox and Launch Control XL (later replaced like-for-like with the Akai Midimix) with coloured knobs. These map very well to the colour coded system I use in the Ableton Live project.

The Launch Control XL became relegated to be the drum mixer after I purchased my Push2 to replace a lot of the rich parameter macros. I recently replaced it with an Akai Midimix as the Midimix is slightly smaller allowing my Juno to be more inline with the push2 visually on stream.

Faderfox PC4, Akai Midimix, Roland JU-06A

The final change was the addition of a second Launchpad Mini MK3. I really like these controllers. They are small, light, and fairly customisable with 3 user templates. I re-arranged my midi macros so that the left unit controls utility based macros such as selecting tracks, sending to cue, resetting all the parameters, etc. Another template controls some pre-made drum clips in Live. And the session mode is used for my audio looper tracks in Live.

Left-side launchpad mini MK3 velcroed to the Komplete Kontrol

The right side Launchpad Mini MK3 is used for more performative things such as muting midi on a track, enabling arp/arp length, adding oct, etc. The session mode on this is set to control the midi clips.

Right side launchpad mini mk3

All my other gear remains the same, mainly the Komplete Kontrol and my Stream Deck that I use as a push to talk button.

Ableton Live Set

By far the most evolving part of my project is my Live set. Because I save a copy of the liveset at the end of each stream, and the complexity of the project itself, I do not use Live templates when preparing for a stream, but instead I simply open the last saved project and clear out the midi clips. This means that the sound is always evolving as little tweaks that happen during the last liveset will reflect in the next.

An overview of my Ableton Live project

The project is structured into 5 main components.

  1. Midi Tracks
  2. Audio Tracks
  3. Drum Tracks
  4. Midi Sequencers
  5. Midi routing/utility tracks
  6. (bonus utility tracks) Click and Cue
Ableton Live project structure

Drums

I’ll start with the drums as I always start a liveset with drums.

This is quite a complex change. Previously, I had 2 separate drum tracks each with a drum rack and 8 hit samples. One for kick, snare, hat, etc. This mapped nicely to the Beatstep with the 2 rows of 8 pads (one for each track). But I wanted to try and utilise the push’s sequencer a bit more and I also wanted to be able to control the existing pads mapped to the BSP via the push. I was already able to use the drums via the push, but a limitation of having drums on a single track is that I cant easily do thinks like change just the hat pattern, I’d have to duplicate the drum clip, remove the hats, and record a new pattern.

Drum track structure

In this new structure, I have one separate track for each drum hit, each with a Drum Rack of samples for that track. The first 2 notes (C, C#) are mapped to the original drum channels from the BSP whilst the rest exist to use with the push as variations.

An advantage of having the drums in separate tracks is that adjusting the volume and sends is much much easier than when in a Drum Rack because you can midi cc to select a track where as you can not midi cc to select a chain.

To support this, I needed to set up some additional midi routing tracks where I needed to take the incoming midi note from the Oxi One and map it to the corresponding track and specific drum hit in the drum rack (C1, C#1, D1, etc)

Drum sequencer routings from the Oxi One. Drum sends on channel 4

Using key selector and chains, I adjust the pitch of the note before it is then sent to the drum rack.

Midi mapping — maps from C to the correct drum pad on the drum track
Drum track with multiple samples

In order to preserve the reverb and delay sends that Drum Rack provides, I had to create 2 additional audio tracks in the group which each track can send to via the A and B sends controls. Note — the A and B sends tracks in my live set are muted and exist as a convenience only. No audio is actually routed there, instead I use a custom Max4Live device that allows me to map the value of the sends parameter to another device’s parameter.

Drum track FX + audio sender

All the drum tracks are then routed into the “Group” track which contains the main filter and some compressors.

Dual compressor, audio gain, and filter for drum tracks

The XO track still serves as my “swing” kit and mixes into the same audio stream as track one, but still retains its own independent filter.

XO Drum track chain

Midi + Audio

The next piece of the project is the Midi and Audio source. I have these separated into two different groups, and specifically counted to maximise my workflow and access on the push.

The synth tracks are the same as before. Dual external synth track, bass, 3 Komplete Kontrol tracks, and a track that hosts the new Drift synth.

Midi and Audio looper tracks

Each midi track has the same FX chain as before but with the addition of the Max4Live Audio Sender device. This device routes the audio from the midi track to its paired Looper/audio track. I can then capture the audio into a clip and automatically playback whilst blocking any output from the original midi track. With this, I can then route the midi track audio to my Cue track to make modifications/create new loops without disrupting the playing loop.

This completely transformed the way I could build loops because now I am able to do things like changing the bass line without having to take it out first, and then build the new loop.

Midi FX chain with audio sends and sends parameter mappers for Reverb and Delay

The paired audio track has a beat repeat and a group with 2 chains. The first chain is the standard audio pass through which comes from the midi source (or beat repeat) and through the filter device which is controlled by the FaderFox PC4. Each audio track has its own HPF and LPF controls.

Corresponding audio track

The “EXT” chain when enabled pulls the audio post mixer from the source midi channel using the “Audio Receiver” device. With this, I can record a loop to an audio clip AND play audio from the midi source at the same time. This allows me to do cool things like create a hard-panned stereo effect or create a bass layer and add a top layer.

Ext audio looper chain

The last 2 audio tracks are the A and B guitar tracks. These are audio tracks that receive audio from the pedalboard track. Their A and B sends are mapped to the L-Reverb and L-Delay tracks instead of having their own plugin instances like on the midi tracks.

Guitar A and B tracks

Similar to the audio tracks, there is a group on each of the Guitar tracks that allow me to both play the audio from the clip and live from the guitar at the same time — in case I’m feeling extra jammy.

The looper reverb track uses Blackhole and the delay track uses my trusted Replika. These output to my Sends track in REAPER and recorded. Although I mostly use these 2 sends tracks for the guitar tracks, I am able to send to them via any of my audio or midi tracks.

Looper reverb and delay tracks

Instead of having a DSP plugin on each of the 2 guitar tracks, I have a central track that contains a group of various plugins and presets. I essentially treat this like a virtual pedalboard that I can change the preset of via the Left Launchpad mini.

Pedalboard track

On the pedalboard track I have 5 options of various plugins, guitar rig 5 & 6, and some Ableton devices configured for a particular sound. The select parameter is mapped to some macro buttons on the Left Launchcontrol mini.

Sub Bass

The Neutron does bass really well. I currently have it set up to provide the low frequencies of the clip playing on the bass track. Using this midi routing track, I take midi from the bass track and route it into my Ext synth channel, directly into the sub chain (allowing me to continue to use the Juno chain via the clips on that track, or another sequencer)

Bass-Sub midi routing track

The Neutron chain on the Ext track has a few different max4live patches that help me sustain long bass notes, even from an arpeggiaged bassline.

Sub Bass chain

Sequencer routing

Next up are the midi routing and sequencers.

The KompleteKontrol track remains the same and is routed to the Juno via channel 2.

The chordgen track is currently mapped to the Left Launchpad and takes a midi note and produces a chord to the loopback midi device on channel 1.

The drumpads are described above.

The push2 routings remain the same.

Routing tracks

The seqroute group contains a single track for each midi instrument. Each track’s channel is set to the corresponding track number + 10 (so track 2 — bass — accepts midi from the OxiOne on track 12). This routing means I am able to quickly set up custom sequencers from the OxiOne and set them to a particular midi instrument whilst also playing the track’s clip.

Midi sequencer routing

Extra utilities

I now have a dedicated cue track that outputs into a REAPER track which can be sent audio from anywhere else in Live with the Audio Sender device. With this, I am able to drop in and out of what is being sent to CUE by soloing the track in REAPER.

My click track remains the same and has been an incredible advancement in my editing workflow.

Click track with a quantised midi clip

My stream output FX chain now just a simple +6db limiter before sending to OBS via ReaStream.

My master track now has various utility patches. The timer patch is a custom patch to help me with timing 8 bar loops as the transport numbers in Ableton do not show divisions of 8, only total. I also have a fixed length recorder device that duplicates the fixed length button functionality from the push, and a “navigator” direction pad mapped to some macros on the Left Launchpad. Useful for navigating around the session grid to select a clip without needing the 2 button combination from the push, or using a mouse.

And finally the REAPER template set which has mostly remained the same except for a bit of a track shuffle and some workflow template changes like adding an eq3 to each track and adding a differentiator for when the mic is on and off.

A typical live set in REAPER

Visuals

I’ve played around with many different kinds of visuals. I started off with manually cut montages of various scenery and nature-sk videos that worked really well and fit the vibe of the music great.

https://www.youtube.com/watch?v=HUqTzEC-qB8

I next started generating live visuals using a max4live plugin called Zwobot. Zwobot was great and because it’s modular, you could get some very interesting visuals by moving the order of the plugins. Using various images as sources, mostly either pride flags or generated AI images with Midjourney, I created a lot of very cool and interesting visuals, some (most) of the time Twitch’s compression couldn’t handle and it would ruin the stream. Then there were the crashes. Zwobot is very impressive but because of how complex it is, it caused my live set to become very unstable and recovering from a crash was impossible. Zwobot would prevent a live set project file be open up unless an empty instance of Live with Zwobot pre-loaded was opened first.

https://www.youtube.com/watch?v=7c9ozjBi4ZE

After a very bad crash during a livestream, I moved back over to pre-renders and found some nice long (slow-tv) style movies of train journeys provided by NRK in Norway. After some searching I was actually able to find the torrent links for the original footage (all 162gb of it!) and quickly started building my next visuals.

https://www.youtube.com/watch?v=wNDMRwnUruA

I have to give my partner credit because it was actually their idea, but we discovered that there’s quite a lot of dark tunnels on that particular route and wouldn’t be cool if you could cut between a random clip? well the answer is yes and so I spent 4 days cutting up 40 hours of footage into tunnel-to-tunnel clips. I exported all the ones shorter than 5 minutes and loaded them into a VLC plugin source for OBS and selected the “shuffle” option. Thus the Infinitrain was born and just like the project it was created for, it has no end. The journey is what it’s about.

My stream view
A gift from my partner

See you in another 4 months after I make 100 more changes to the project.

--

--