Easily create up to 8 Zoom instances and route their audio output to 8 mono channels using a Gigaport HD+ USB sound card. This setup enables simultaneous translation or multilingual broadcast capabilities.
This repository provides a set of scripts to simplify the process.
- ALSA
- PulseAudio
Required tools:
pactl,qjackctl - JACK2
Required tool:
jackd - Chromium
- Devuan Linux (or compatible distro using
openrcinstead ofsystemd) - (Optional) Move the
.shscripts into~/.local/bin/or/usr/local/bin/for easy execution
Then run the following command to verify the device and its channel capabilities:
cat /proc/asound/card1/stream0Example output:
ESI Audiotechnik GmbH GIGAPort HD+ at usb-0000:00:1d.0-1.2, full speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: S16_LE
Channels: 8
Endpoint: 0x01 (1 OUT) (ADAPTIVE)
Rates: 44100
Bits: 16
Channel map: FL FR FC LFE RL RR FLC FRC
speaker-test -c 8 -r 44100 -D hw:1,0This will output pink noise through each of the 8 mono channels sequentially. You can watch the LED's blink.
Run:
./setup_jack.shThis will split the card’s stereo channels (Windows-style) into 8 mono sinks, labeled as zoom1 to zoom8.
Use QJackCtl to route each Zoom sink to its respective channel:
zoom1→ Channel 1zoom2→ Channel 2- …
zoom8→ Channel 8
Edit setup_zoom.sh and define the languages you want to broadcast (up to 8).
Then run:
./setup_zoom.shThis will:
- Create a Chromium user profile for each language
- Launch a separate Zoom instance in each profile
- Fill the name with language suffix
- Open the browser windows automatically
In each browser window, select the correct audio output device matching the sink/channel index.
If you're using a tiling window manager like dwm:
- Assign each Zoom instance to a separate tag (e.g., MOD+1 to MOD+8)
- Match Zoom language windows to the appropriate channel
- Example: If
zoom_geruses Channel 1 → put it on tag 1
- Example: If
- Quickly switch between streams using keyboard shortcuts
This enhances control, speed, and overview.
To include microphone input channels (e.g., for interpreters), we plan to:
- Use a second Gigaport HD+
- Route audio input from interpreters to Zoom channels
Made with ❤️ using Linux and open-source tools.