Virtual Jam Session Hands-Free Helper

Virtual Jam Session Hands-Free Helper
Foot pedal with function glyphs added so I remember which does what

A couple of tools which have been really handy for me in managing the monthly virtual jams are OBS Studio and an Airturn BT200S-6 bluetooth foot pedal. Here’s how I’m using them:

In OBS, I’m creating two scenes. The first is just my laptop’s camera, taking up the full canvas. The second is a window capture of Adobe Reader with the sheet music for the jam loaded up and set to full screen, full-width display, and the laptop camera inset down at the bottom, like this:

Capture from YouTube stream of jam session

I start the virtual camera in OBS, and select that as my camera in Zoom so that I’m feeding the output of OBS into Zoom as my camera. During the jam, when we’re between tunes I switch to the scene that’s just the camera view and set my Zoom client to show the gallery view (everyone in a grid), and when we’re playing a tune I switch to the sheet music scene and set my Zoom client to speaker view, with my own video pinned. This allows people on the Zoom version of the jam to choose whether they see the sheet music (by switching to speaker view themselves) or if they see everyone else playing along (by being in gallery view). It avoids forcing them into the sheet music mode like it would do if I were sharing my screen in Zoom, but it does let me choose which view is being streamed to YouTube. I use Zoom’s built-in streaming feature to stream the jam to YouTube, and whichever mode my client is in, that’s the view that goes to the stream.

What the bluetooth pedal lets me do is switch everything without using my hands. The pedal has seven modes, six of which are configurable (one of which sends MIDI commands, which I want to start experimenting with). I’ve configured one of those modes to send the following keyboard commands:

AirTurn Manager’s button configuration
  • Alt-F1: Zoom’s hotkey to switch to Speaker mode
  • Alt-F2: Zoom’s hotkey to switch to Gallery mode
  • Alt-F3: A hotkey I set in OBS to transition between scenes in Studio mode
  • Alt-S: Zoom’s hotkey for screen sharing
  • Spacebar: hold to un-mute myself if I’m muted in Zoom
  • Alt-M: Zoom’s hotkey to toggle “Mute All”

I’m not using Alt-S or Spacebar, so if I get my act together before next month’s jam, what I’ll probably do is rebind those to keys which turn the page back and forth in Adobe Reader, so I can make a PDF containing just the tunes for that month, and page through them without using my hands there, either. Right now I have to use my hands to find the next tune in the full PDF, which is mildly annoying. I may have to load some kind of system hotkey software to send those keypresses specifically to Reader; I’m not sure. Zoom and OBS both have settings to let their hotkeys work no matter what application has focus, which is letting me switch scenes in OBS even though it’s in the background while I’m in Zoom, and lets me mute/unmute everyone in Zoom even if I’ve switched over to Reader to find the next tune. I don’t know if Reader has similar functionality built in.

OBS Studio with the two scenes I’m switching between

So what my process looks like now is:

  • While we’re between tunes and my camera is just showing me, switch to Reader and find the next tune to be played. On the ipad or laptop that’s running Strum Machine for accompaniment, load up the next tune there as well.
  • Tell everyone what’s up next, and that I’ll be muting them soon.
  • Step on button 3 to switch my camera to the sheet music view, button 6 to mute everyone, and button 1 to switch the stream to the sheet music view.
  • Tap start in Strum Machine, and play the tune.
  • Step on button 6 to un-mute everyone, button 3 to switch my camera to just me, and button 2 to switch the stream to gallery view, and start over from the top.

The only time I have to use my hands there is to load up the next tune in Reader and Strum Machine and start Strum Machine. And if I get a key binding to turn pages in Reader, that’ll eliminate one. Maybe I can ask Luke, the Strum Machine developer, for a playlist feature and a key binding to go to the next tune in a playlist, at which point I could bind a macro to turn the page in Reader and advance to the next tune in Strum Machine, then I could bind button 4 to that macro and 5 to a macro that selects the Strum Machine tab and presses the space bar to start it playing. I’d have to work out how to get audio from Strum Machine running on the same device as Zoom into Zoom, mixed with my microphone, but I’m pretty sure I could do that with VoiceMeeter.

The one annoyance I have with this setup is that there doesn’t appear to be a version of the Airturn Manager app for Windows, so I can’t change the configuration of the foot switches without connecting the pedal to my Mac or possibly an iPad or android tablet. But since I do have a way of configuring the pedal, that’s a pretty minor quibble. If I didn’t have a way to do that, I bet I could change the hotkeys in Zoom and OBS to match a set available in the default pedal configuration.

OBS is free, and if you’d like to do something like this I’d be happy to help you get it set up. There are plenty of good tutorials on YouTube, too. The AirTurn pedal is a bit pricy at $129 (and the link above is an affiliate link at Amazon, which means if you buy one from there I get around $1, but that’s not why I’m recommending it—I just think it’s a useful bit of hardware and am using it myself), but it can be used for a lot more than this. I may set it up with midi controls and finally get around to playing with Loopy on the iPad, using the foot switches to control the app. I definitely want to see how it works with forScore and Anytune (either one of which would be worth buying an iPad for, in my opinion, depending on whether you’re more into sheet music or learning by ear).

The first couple of virtual jams I did without this setup were a lot more annoying, with having to put the fiddle and bow down a lot more to get everything set up with the keyboard. Even with a couple things still requiring hands, the last two jams with the foot switches have been a lot easier to manage. I definitely recommend a foot switch of some sort if you’re going to be doing anything like this, and the AirTurn seemed like the best of the lot I looked at when I was deciding what to buy.

2 Comments on “Virtual Jam Session Hands-Free Helper

  1. Hello! I can’t tell you how great it is to ready your post. I’m struggling with my own set up and wonder if you had any of these challenges.

    I just can’t get OBS to recognize my AirTurn BT200-4. I assign hotkeys in OBS and then I made MODE 6 on my AirTurn match those keys … but nothing.

    Also, you say that OBS responds to your hotkeys even when it’s in the background. I can’t get that to work either. I’m on a Mac so maybe that’s the difference? Anyway, any help you could provide would be greatly appreciated.

  2. Ok, this is curious. I’m testing it with my Mac laptop now, and getting kind of weird results.

    It seems like if OBS is running when I pair with the pedal, then the hotkeys may or may not work when OBS is in the foreground, but definitely don’t work when it’s in the background. If I pair the pedal first and then launch OBS, then the hotkeys work when OBS is in the foreground and generate a system beep but usually still trigger the OBS action when OBS is in the background.

    I did add OBS to the list of applications with Accessibility permissions in the Security & Privacy system settings earlier while trying to make it work, and I don’t know if that’s required or not, but it probably doesn’t hurt.

    As for getting it to work at all, you might want to download keycastr from https://github.com/keycastr/keycastr and confirm that the pedal is sending the keycodes you expect. Have you set the pedal to mode 6 (hold the mode button down until the red light has flashed six times, then let go — it should flash both lights six times to confirm the new mode setting)? If not, it might be sending the codes from a different mode.

Leave a Reply

Your email address will not be published. Required fields are marked *

*