Roland VT-4 working with pipewire

Hello! Not sure if this is the right place to post, but I wanted to share my success in getting the Roland VT-4 working.

I was having similar isues as the person in this post.

I’m using manjaro-pipewire and pavucontrol.

The device was recognized and it actually used the right input, but the output seemed to be going to the mic-in, creating an awful feedback loop.

After some testing I found that using the built-in output (the aux port on my laptop) didn’t cause this issue. So I used pw-loopback to get the input from the VT-4 to play on my built-in output, and it worked great! No noticeable delay either!

To make things easier I created a script that found the device id’s for the VT-4 input and my built-in output and binded that script to a keyboard shortcut in sway.

Script

#!/bin/bash

# Function to get the -C number dynamically
get_C_number() {
    pw-cli list-objects | grep -B 10 VT-4:capture_FR | grep object.serial | awk '{print $3}' | tr -d '"'
}

get_P_number() {
    pw-cli list-objects | grep -B 10 Built-in | grep -B 1 playback | grep object.serial | awk '{print $3}' | tr -d '"'
}

# Define the command to check if pw-loopback is running
is_loopback_running() {
    pgrep -x "pw-loopback" >/dev/null
}

# Define the command to start pw-loopback
start_loopback() {
    local C_number
    C_number=$(get_C_number)
    local P_number
    P_number=$(get_P_number)
    pw-loopback -C "$C_number" -P "$P_number" &
}

# Define the command to stop pw-loopback
stop_loopback() {
    pkill -x "pw-loopback"
}

# Check if pw-loopback is running
if is_loopback_running; then
    stop_loopback
else
    start_loopback
fi

Setting in my sway config:

bindsym $mod+i exec 'sh loopback.sh'

For this to work you must have your headphones plugged in to the aux port on you computer, NOT the VT-4.

I hope this helps anyone else trying to use the Roland VT-4 on linux!

If there are any questions I’d be more than happy to try to help. (fyi I’m still a bit of a noob)