Command line / general accessability question

Happy to have received my Mod Duo yesterday. Very nice solid industrial design. I’ve connected via browser and that’s all fine. I get sound out of it, I guess it’s in bypass mode til I store a pedal board.

I asked a while ago but that was before I had my hands on the device and things may have changed…

Is it possible to configure the pedal board via command line? Or by dropping a text file on to the system somewhere? If so, can someone suggest where to start?

I’m a blind computer user. Not afraid of command line. Webguis can be tricky. I can’t work out how to make stuff happen using JAWS screenreader and Chrome. I see names of effects but not sure how to interact with them. I gather a mouse user drags stuff on to the area at the bottom, not sure if / how I can do that in the gui.

I’m a bit of a techie, well used to things not quite working accessability wise. I took a gamble on this front of course as the idea of an open source powered portable fx unit is great. I would obbiously like to be able to configure this myself.

Any suggestions / or thoughts re text access appreciated.

The web-gui heavily depends on visuals: drag/drop effects onto the canvas and then drag/drop connect cables to connect them. It’s not very accessible.

The data is stored in text-file on the MOD however the format is a bit hard to grok and as far as I know interaction with the plugin-host itself is only http-based.

Anyway to get you started, I suggest to start with some user-contributed pedalboad.

Connect the MOD to your PC via USB, then use a Javascript enabled browser and visit use the “Try Now” button on one of the examples. That will load a pedalboard onto the MOD and it will be active immediately.

If the “Try now” is not accessible, you can use a direct link: e.g. (It’s some Javascript page that will load a pedalboard from “the cloud” and push it to the locally connected MOD. This particular link is a Pink Floyd guitar rack: fuzz, echo, pre-amp, cabinet, echo, reverb.

The next step is to save the pedalboard on the MOD, so that you can inspect the file. With the MOD web-gui itself that is usually done using the “Save” button and a popup-dialog to enter the name. However you may prefer to do that from the command line:

Send a HTTP request from your PC to the MOD:

curl -d "asNew=0&title=test_1"

You’ll get a JSON response like this: {"ok": true, "bundlepath": "/root/.pedalboards/test_1.pedalboard"}

And there’s a clue already as to where the pedalboards are stored on the MOD. To later reload or load another board, the request is:

curl -d "bundlepath=/root/.pedalboards/TheName.pedalboard"

Hope that helps so far.


Thanks @ex42.
That looks very helpful. I’ll try this tonight. The save button is visible by the screen reader but the curl stuff looks very useful.

1 Like

the host running inside the mod has a command-line mode, but it has not been integrated with the Duo yet.

if you run this inside the mod (over ssh) you’ll be able to stop the webserver and run mod-host in CLI mode:

systemctl stop mod-host mod-ui
mod-host -i

But can’t really recommend it at this point.
Saving & loading pedalboards is done by mod-ui, and if you stop mod-ui the controller display will stop working.

So an option for now might be to always have an empty pedalboard loaded as default (no plugins or connections), then you should be able to run ‘mod-host -i’ without too many issues.
We haven’t been focusing on this particularly, so I’m not sure what state it is in at the moment.

mod-host is opensource though, and if you feel like you can modify it to suit your needs better I can explain how.


oh btw, if you need to know the cpu load and xruns in the command-line you can run ‘mod-xrun’.
It will print the current audio dsp load (provided by jack) and whenever an xrun occurs.

1 Like

Sorry, I can’t understend…
I would like to speak with mod-host to get a param value.
From client i try connecting on port 5555, it seems to connect but I receive no answer.
So, maybe better starting trying with interactive mode: “systemctl stop mod-host mod-ui” ==> “Failed to stop mod-host.service: Unit mod-host.service not loaded.”
So, to be sure, I look for mod-host service but there isn’t. Yet my Duo works fine, how is it possible?:thinking:

mod-host is a jack internal client, it gets loaded at the same time that jack does.
old versions (1.4?) had everything as separate services, but now the audio stuff starts all together.

you can jack_unload mod-host in order to stop the internal client so you can run it manually.
I do not think you can talk to mod-host while mod-ui is running

Now it’s clear, thanks.
Any tip to know a param value from socket?