Run mod-ui on Arch Linux

I have a 2010 MacMini with Arch Linux installed and a USB audio interface with a guitar input. Jack runs (at 5ms latency!) and mod-host compiles and runs fine. I can interactively add and connect plugins from the mod-host cli. I also can run mod-host as a server and use telnet to send it commands, adding and connecting the same plugin chain. This works as well. I would like to run mod-ui to make plugin connections and control easier.

I have built mod-ui from a git checkout from today. I have set MOD_DEV_ENVIRONMENT=0 and the virtualenv and setup.py runs without error. But the server fails.

Here is the log output from running ./server.py

(modui-env) [noisebridge@jonesy mod-ui]$ ./server.py 
ERROR: Failed to open HMI serial port, error was:
__init__() got an unexpected keyword argument 'write_timeout'
Using HMI => False
cc start socket missing
jack client activated
[W 170812 23:51:41 iostream:1126] Connect error on fd 11: ECONNREFUSED
[I 170812 23:51:41 host:987] [host] popped from queue: feature_enable processing 0
[I 170812 23:51:41 host:1014] [host] sending -> feature_enable processing 0
[I 170812 23:51:41 host:999] [host] received <- 'resp 0\x00'
[I 170812 23:51:41 host:987] [host] popped from queue: remove -1
[I 170812 23:51:41 host:1014] [host] sending -> remove -1
last state file does not exist or is corrupt
[I 170812 23:51:41 host:987] [host] popped from queue: feature_enable link 0
[I 170812 23:51:41 host:1014] [host] sending -> feature_enable link 0
[I 170812 23:51:41 host:987] [host] popped from queue: transport 0 4.000000 120.000000
[I 170812 23:51:41 host:1014] [host] sending -> transport 0 4.000000 120.000000
[I 170812 23:51:41 host:987] [host] popped from queue: connect system:capture_1 mod-monitor:in_1
[I 170812 23:51:41 host:1014] [host] sending -> connect system:capture_1 mod-monitor:in_1
[I 170812 23:51:41 host:987] [host] popped from queue: connect system:capture_2 mod-monitor:in_2
[I 170812 23:51:41 host:1014] [host] sending -> connect system:capture_2 mod-monitor:in_2
[I 170812 23:51:41 host:987] [host] popped from queue: midi_program_listen 1 15
[I 170812 23:51:41 host:1014] [host] sending -> midi_program_listen 1 15
[I 170812 23:51:41 host:987] [host] popped from queue: feature_enable processing 2
[I 170812 23:51:41 host:1014] [host] sending -> feature_enable processing 2
[I 170812 23:51:41 host:999] [host] received <- 'resp 0\x00'
Host failed to initialize, is the backend running?
jack client deactivated

It looks like some code in utils/utils_jack.cpp is throwing that iostream error but I don’t have enough debug tooling to figure out why. This seems like a configuration problem rather than a bug.

Halp?

Have you done the following after checkout?

cd utils; make

Regards, Holger

You need to run mod-host with the ‘-f’ argument.
mod-host -p 5555 -f 5556

1 Like

Yea! Thanks. I can help with some chores like doc gardening on github. Looks like you added the feedback socket option less than a month ago! I’ll send a few pull requests your way.

1 Like

next little bump, which also seems like a configuration issue, is the web-ui doesn’t make the final connection between the mod-monitor:out_1 port and my hardware’s system:playback_1 port. The following opened up audio output

jack_connect mod-monitor:out_1 system:playback_1

which makes sense. Prior to creating this connection, my graph looks like the following,

[noisebridge@jonesy ~]$ jack_lsp -c
system:capture_1
   effect_0:in
   mod-monitor:in_1
system:capture_2
   mod-monitor:in_2
system:playback_1
system:playback_2
alsa_midi:Midi Through Port-0 (out)
alsa_midi:Midi Through Port-0 (in)
alsa_midi:FastTrack Pro MIDI 1 (out)
alsa_midi:FastTrack Pro MIDI 1 (in)
mod-monitor:in_1
   effect_0:out
   system:capture_1
mod-monitor:in_2
   system:capture_2
mod-monitor:out_1
mod-monitor:out_2
mod-host:midi_in
effect_0:control
effect_0:notify
effect_0:out
   mod-monitor:in_1
effect_0:in
   system:capture_1

My hack is to have a shell script that bootstraps everything and manually makes that final output connection.

Something is strange then, because directly in the code it connects to the system output ports.

(it also tries to connect to mod-peakmeter ports, but only if they exist)

Short follow up on this, I have a second copy of mod-ui running on different hardware with an older git checkout. The monitor-out connects to playback_1 correctly. I’ll compare the two checkouts and perhaps move this to github.

1 Like

mod-ui is not the one doing this.
monitor-out connects to system playback on start, you can see it right there in the code.
maybe you need to update mod-host?

Hey all,
I wrote a docker container that runs mod-ui on any machine that has jack2 and docker installed:

Enjoy :slight_smile:

3 Likes

On KXStudio, I have to set MOD_APP=1 and MOD_LIVE_ISO=1 to get mod-ui to be able to connect to the playback output instead of to some non-existent monitors.

2 Likes

If I can get Jack running in docker, it means mod-ui could also run on windows.

1 Like

…a few years later…

I bumped on the same problem, running on Ubuntu 18.04 LTS. Everything seems to run correctly, only I can’t connect the jack to the hardware playback via mod-ui. I can do it elsewhere, such as in Catia. The suggestion from @Azza did the trick for me, though!

@falkTX maybe it is a good idea to include it on the mod-ui README? You’re right that upon launching the inputs are connected to the hardware playback, however, as soon as you disconnect it, you are not able to connect it again in the mod-ui.

PS: watch your ears for feedback if your hardware input is the microphone and the playback the speakers!

We are reworking some of the client internals for v1.10 (so we can have a digital master volume), I will make sure to make it in a way that also works for desktop.
So that will solve this issue while at it.

3 Likes