Overwitch, a JACK client for Overbridge devices, AKA Overbridge for Linux

Configuration for Digitone II added to the project.

Thanks for testing this an reporting it, @Manumistral. :heart:

2 Likes

hi, I have just noticed this update. I would like to help test overwitch with analog4 mk1

2 Likes

Sorry for taking so long to answer.

The situation of the MKI code and branch feat-add-mki is that it could work but… it doesn’t.

I’ve been working with the MKI user abique (Alexandre Bique) · GitHub and didn’t manage to fix it. We together have reverse-engineered the Overwitch MKI USB packets, or so we think and adapted the existing code to make it compatible with USB isochronous transmission. I think the issue is in this last part but, since I have no MKI devices, I can not test it myself. I’d add this is the main reason this is not ready yet.

Anyway, It’d be great if you could give it a try.

Take a look at Add support for MKI devices · Issue #4 · dagargo/overwitch · GitHub and the surrounding comments. You need to create a separate JSON file with the definition of the MKI device you want to use so configure it in the Elektron Overbridge panel and mimic that configuration in the JSON file. Notice that all tracks, independently of being output or input, need a different name. That configuration is invalid because of this.
Due to a current Overwitch limitation, devices need to have both inputs and outputs.

Let me know if you have any issue or if I can help you with a more specific question.

2 Likes

hey! I have been ill, but have finally got around to testing this branch.

I have created a ~/.config/overwitch/devices.json file with the contents

[
  {
    "pid": 2891,
    "name": "Analog Four MK1",
    "type": 1,
    "input_tracks": [
      {
        "name": "Main L Input",
        "size": 2
      },
      {
        "name": "Main R Input",
        "size": 2
      }
    ],
    "output_tracks": [
      {
        "name": "Main L",
        "size": 2
      },
      {
        "name": "Main R",
        "size": 2
      }
    ]
  }
]

I have configured analog4 to have the input and output tracks as above in the overbridge control panel under windows and I have run overwitch-cli -n 0 -vvv. I get

ERROR:engine.c:921:ow_engine_init: Type 1 devices requiere a libusb 1.0.27 version because the Overbridge package size is unknown
ERROR:engine.c:943:ow_engine_init: Error while initializing device: generic error
ERROR:jclient.c:307:jclient_init: Overwitch error: generic error

now the tricky part is I am running Ubuntu 20 which has 1.0.23 as the highest version of libusb. I’ll look into whether I can make 1.0.27 compile on this installation…

never mind, I have figured it out. pasting the result of my run of overwitch-cli -n 0 -vvv to the github issue discussion

Hello, thank you for the effort to create this great tool!

I am trying to record from my Digitone II using overwitch-record.
To my understanding, and after reading a bit of the code, overwitch-record records samples taken from the usb bus and directly writes them to a multi-channel wav file. This is my exact goal as my computer is not that powerful.

I found that using large buffers and timeouts improves the recording : overwitch-record -n 0 -s 2048 -t 25

But still, when trying to record all the tracks at once, the sound is sometimes corrupted, just as if frames where missing. But there is no error message. My system seems OKish:

rtcqs
rtcqs - version 0.6.6

Root User
=========
[ OK ] Not running as root.

Group Limits
============
[ OK ] User ***** is member of a group that has sufficient rtprio (99) and memlock (unlimited) limits set.

CPU Frequency Scaling
=====================
[ OK ] The scaling governor of all CPUs is set to performance.

Simultaneous Multithreading
===========================
[ OK ] Simultaneous Multithreading (SMT, also called hyper-threading) is disabled.

Kernel Configuration
====================
[ OK ] Valid kernel configuration found.

High Resolution Timers
======================
[ OK ] High resolution timers are enabled.

Tickless Kernel
===============
[ OK ] System is using a tickless kernel.

Preempt RT
==========
[ OK ] Kernel 6.15.7-200.fc42.x86_64 is using threaded IRQs.

Spectre/Meltdown Mitigations
============================
[ WARNING ] Kernel with Spectre/Meltdown mitigations found. This could have a negative impact on the performance of your system. See also https://wiki.linuxaudio.org/wiki/system_configuration#disabling_spectre_and_meltdown_mitigations

RT Priorities
=============
[ OK ] Realtime priorities can be set.

Swappiness
==========
[ OK ] Swappiness is set at 10.

Filesystems
===========
[ OK ] The following mounts can be used for audio purposes: /, /home
[ WARNING ] The following mounts should be avoided for audio purposes: /boot. See also https://wiki.linuxaudio.org/wiki/system_configuration#filesystems

IRQs
====
[ OK ] Soundcard snd_hda_intel:card1 with IRQ 154 does not share its IRQ.
[ OK ] USB port xhci_hcd with IRQ 124 does not share its IRQ.
[ OK ] USB port xhci_hcd with IRQ 155 does not share its IRQ.

Power Management
================
[ OK ] Power management can be controlled from user space. This enables DAWs like Ardour and Reaper to set CPU DMA latency which could help prevent xruns.

So, given the large number of tracks to record from the Digitone II (42 as given by overwitch), is it possible to record all of them easily using overwitch-record? Is my computer just too old?

I can create a github issue if preferred.

1 Like

Welcome to Elektronauts, @sebos69!

In this case, it’s probably better if you create a GitHub issue as details might get too technical and tied only to your setup and also we can better track possible changes in the code.