Lockdown Live Stream
My Double Vision project was one of my most complex AV projects to complete and I’m still immensely proud of it. The live show was a tough fit for venues and festivals though as I used 3 decks, 2 mixers, 2 laptops and 2 screens and presented 2 streams of AV that interacted and cross referenced each other. Sadly, I didn’t get to perform it as many times as i’d have liked due to its technical demands and relatively long build. Using OBS and some chromakey trickery I’ve now developed a cool way of presenting the show via a live stream for you to enjoy at home delving further into an idea I had a few years ago.
Chromakey has been around since the end of the 19th century and was first used commercially in 1903’s The Great Train Robbery so its not exactly a new thing. The use of blue screens in the film industry is now common place and I’ve been experimenting with green screens since I was a teenage college student. Since getting into video DJing I’ve had a few dips back into the world of green screens, most notably the Twitch jam I did with DJ Moneyshot where we aimed for Addams Family style hands smashing out a freestyle jam using cues and loops from Shake Your Rump (Btw, Twitch was rad harware from Novation that pioneered the pad design you se on every mixer these days). I used it heavily in the production of the Lofi Funky Space Quest theatre show and I also did a scratch jam with a virtual me (via a green screen) in my Studio to Stage AV mix but Prince’s copyright people have sadly ensured its been wiped from the web (It had an edit of Batdance in it).
Moving forward to 2020, worldwide virus induced lockdown has inspired the worlds DJs to live stream on platforms like Twitch, YouTube, Facebook and Instagram to perform and stay connected with their audiences. Much of the software and platforms have been robbed from the tech savvy and stable gaming world with the main software used for broadcasting streams being OBS. Digging into this software a bit deeper, I realised I might be able to for-fill an idea I had a long time ago for presenting a video DJ set from an overhead camera with the videos appearing in the platters using green (or blue) Serato control vinyl.
Naturally, I wrote a list of potential issues that I’d need to work through (this list kept growing the more I got into it)
– AV content?
Considering it would look best if both decks presented different and constant video content I looked to adapt my Double Vision show files to make the idea really pop.
– Audio quality?
I foolishly thought this would be a breeze. OBS natively will take audio from my Rane mixer soundcard but cant single out the master output feed which comes through channels 5/6. I tried running an RCA to mini jack but that didn’t work and my Akai EIE Pro audio interface has been made obsolete since Akai have failed to build a Catalina driver yet (Cheers Akai). Solution was reached using Loopback. This is a super dope app that routes internal computer audio and meant i could single out channels 5/6 from the Rane’s soundcard. Problem solved.
(my Rane 72 was obviously not connect at the time of screenshot)
– I need the right records. Colour is important.
I could have splashed out on some solid green control discs from 12inchskinz but got reasonable results from some clear blue vinyl on a pure white slipmat. I am after all, currently out of work and broke. I tried gluing green material to some old discs but the grip was all wrong.
– Lighting. A good chromakey effect is hugely dependent on it. Avoiding shadows is always tricky.
Again, working on a budget, I experimented with lamps and even security lights but got the best results from an overhead strip light that I defused with some whit material. Having a white mixer was admittedly a bit of a pain.
– Record middles would need to be masked (especially if using Phase remotes)
I didn’t want the video images to be obscured by record labels or Phase remotes. I could have got a solid colour control vinyl made and used needles but, again, this would obscure the image a bit and you’d still see the platter spindle. In the end i opted for standard blue control records and masked the middles using the mask filter in OBS. This took a ton of fiddling… Importantly, you have to make the masks based on the webcam’s (or content’s) original output before rotating, cropping etc. Knowing this at the start would have saved me some time! No doubt, you’ll see my hands and arms pass through the masks at some point but i cant get round that sadly.
– What video output would be in the decks? Ideally I’d like each deck to represent the videos on each side rather than a master output.
In Mix Emergency you can opt to syphon output the two video channels which is awesome but using these presented another problem I had to work around…
– Synchronicity. If the camera has even a 100ms delay i’ll need to compensate all other inputs.
After a ton of trial and error testing, I calculated my camera to have a delay of 200ms. I could delay my audio easily by 200ms using a filter in OBS but Mix Emergency’s delay compensation only applies to the master output*. Solution: re-export the show files with a 200ms delay on the video. I did this by chopping 200ms off the start of the audio and associating the original video files, therefore achieving the desired delay without video editing. Anyone struggling with this might find answers in this great video from DJ Avionyx
*Edit: There’s a video delay feature in Serato Video that could do this job on the two channels and Mix Emergency will work using that same info. Dope. (Credit: Karl ‘the Serato/ME oracle’ Yankovic)
– Decent broadband upload speeds.
This should be simple but I’ve recently moved studio to my (semi-converted garage) and the home wifi doesnt reach. I got a wifi range extender but the signal was only strong enough for the odd email, It certainly wouldn’t cope with the video and data uploads needed for decent streaming. Solution: I bought a 70m ethernet cable. I’ve loaned out my MDP ethernet adaptor so connected my old mac (which has an ethernet port) and shared its connection giving me really good results.
– Streaming platform?
Stability and copyright is the biggest factor to consider here. I hear endless tales of streams being muted on Facebook, Instagram and Youtube due to copyright infringements. The gaming centric platform Twitch is something i’ve looked at before and watched a few streams from Coldcut’s Matt Black and enjoyed the real time comments set up too. Since writing this Mixcloud have also launched their Mixcloud Live service in beta which promises to legally deal with the copyright issues of DJing online.
– Presentation design tweaks?
The more I played with the options in OBS the more i thought about design tweaks I could add to my stream. Using some layers of display capture I have displayed the Serato DJ track info giving live updates of the track names/artist/video. I also added the dB meters from Serato DJ… Just because it looks cool. Showing the track info will save the usually inevitable “Track ID please?” comments.
I didn’t want to rush into this and have it fail in some way so did some streaming tests to ensure it was all playing nicely. A massive concern was the CPU load of running Serato DJ, Mix Emergency and OBS on my 2013 Macbook Pro. Early trials showed it couldn’t handle it at all. One option would be to use OBS on another machine and send the video content via NDA link but again (i wrongly assumed) this only works for the main output of Mix Emergency*. Its possible i could have used VDMX5 to route the 2 channels but that would add additional CPU drain anyway. Solution: Digital housework to reduce all unnecessary CPU use on my Mac. First up: while testing, open up Activity Monitor app and see if there’s anything running I dont need to be. Then I followed some steps HERE including resetting my PRAM and SMC as well as turning off all the OS things that i don’t need like transparency and dock animations. This helped TONS and i’ve not seen the CPU redline since. Remember this is a 2013 machine running Catalina that was previously screaming with all its might from the fans. The video content isn’t as smooth as I’d like but its good enough and for sure the best im going to get given the laptop power I have and all the processing required for the stream.
*Edit: I was wrong about this. Mix Emergency can send both channels via NDI (which is cool). (Credit: Karl ‘the Serato/ME oracle’ Yankovic)
Final test can be viewed below where you can also see some holding screens i’ve made including one of my favourite gifs of all time (its all about the loop)
Im planning to do the live stream on Thursday May 7th 2020 at 9pm BST (10pm CET). Keep an eye on my socials for the latest news!
Thanks again all
OBS: Open Broadcaster Software
Serato DJ Pro
Rane 72 mixer
Sharing Mac wifi
Fixing Synch issues in OBS – DJ Avionyx tutorial