asked Dec 22 '19 at 21:42 by ensonic74 (11)

edited Dec 23 '19 at 17:59

I am testing the demo (3.1) on linux. I am using a focusrite 18i20 interface for audio i/o and a korg nanokey2 for input. Initially I used jack and disabled the midi use in jack. With that softsynths can be played with the controllers.

Now I also have a bunch of hw synths -each with separate midi though an emagic unitor 8 and the audio comming back to the focusrite card. To use them I add an instrument track with the hardware device there and setup the midi out + audio return. Now I can play notes on the nanokeys2 and the midi gets send to the hw synth and the audio gets back to bitwig. Unfortunately only for a few seconds. The nanokeys2 still works, if I select a softsynth, its all good. When I select a track with the hardware device, nothing. Some of my synth have indicators for incoming midi and they don't signal anything.

To exclude jack, I restarted my experiments using pure alsa (no jack running). Same problem :/

So for sure bitwig studio stops sending midi out. I was super exited to buy bitwig studio for xmas, but this is quite a bummer. Any ideas or workarounds?

Spend more time on it. I believe something is getting stuck at writing raw midi out. Here is my fix

rm /tmp/strace.log.*
strace -e file -ff -ttt -o /tmp/strace.log bitwig-studio

# find process that handles midi i/o
grep -l "/dev/snd/midi*" /tmp/str*.log*

# watch activity
tail -f /tmp/strace.log.27772

# add hw instrument in bitwig studio and select midi-out, take a note of the 'fd' number for the /dev/snd/midi* device
1577105534.147069 stat("/usr/share/alsa/alsa.conf", {st_mode=S_IFREG|0644, st_size=9625, ...}) = 0
1577105534.147320 openat(AT_FDCWD, "/dev/snd/controlC5", O_RDONLY|O_CLOEXEC) = 16
1577105534.147622 openat(AT_FDCWD, "/dev/snd/controlC5", O_RDWR|O_CLOEXEC) = 16
1577105534.147827 openat(AT_FDCWD, "/dev/snd/midiC5D0", O_WRONLY|O_CLOEXEC) = 18

# make sure the fds don’t fill up (needs to be started for each midi fd)
tail -f /proc/27772/fd/18 >/dev/null

I'll test this more and write some scripting to make it automated.


answered Dec 23 '19 at 14:30 by ensonic74 (11)

And voilá, an easier workaround:

# check what midi devices are used (just do this once and rember
ll /proc/27772/fd | grep midi
lr-x------ 1 ensonic users 64 23. Dez 17:44 14 -> /dev/snd/midiC4D0
l-wx------ 1 ensonic users 64 23. Dez 17:44 15 -> /dev/snd/midiC4D0
lr-x------ 1 ensonic users 64 23. Dez 17:44 17 -> /dev/snd/midiC3D0
l-wx------ 1 ensonic users 64 23. Dez 17:44 18 -> /dev/snd/midiC5D0
l-wx------ 1 ensonic users 64 23. Dez 17:44 19 -> /dev/snd/midiC5D0
l-wx------ 1 ensonic users 64 23. Dez 17:44 20 -> /dev/snd/midiC5D0

# keep midi-out working (need to run this once per interface)
tail -f /dev/snd/midiC5D0 >/dev/null

answered Dec 23 '19 at 17:51 by ensonic74 (11)

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: Dec 22 '19 at 21:42

Seen: 206 times

Last updated: Dec 23 '19 at 17:59