Netjack pluggin

How difficult would it be to add a special pluggin that would (for instance) use netjack2 to steam sound outside of the mod to another jack process on the computer ?

If you can make it an lv2 plugin, then it will work on the MOD :wink:

You might want to try this:
http://wiki.moddevices.com/wiki/Audio_Through_USB

I also had an idea for a plugin that outputs to a USB-audio interfaceā€¦

3 Likes

Thanks for the pointer !

Hello,

just to share a little experiment Iā€™ve made which really made my day :slight_smile:
I was actually more interested in the reverse setup than the one described in your like : having the slave running on my PC while the mod runs the master. So I wrote the following script, which allows me to record on my PC the signal coming from the MOD and to playback anything from the PC through the amp plugged in the MOD (my keyboard, via QSynth for instance) :smile:

EDIT : As you can see, it is quite customable to your needs. One could add more channels and push sounds from the PC to any intermediate effect in the pedal-board (or reversely, collect it back to the PC). For a full list of available ports, use 'jack_lsp -cpt" on the mod. I have not tried yet, but I suppose MIDI forwarding should be doable too (for instance to control the starting/stopping of the recording on the PC from the MIDI controller plugged in the MOD, if your DAW allow it). I suppose a nice thing to have in the future would be a GUI on the PC side to add/remove/connect ports as you go.

#!/bin/bash

pgrep "jackd$" > /dev/null && echo && echo && echo "Jack seems to be already running. Please stop it before running this command" && echo && echo && exit 1


sshpass -p mod ssh root@modduo.local << EOF 
jack_load netmanager -i "-a 192.168.51.1" 
EOF

jackd -R -P 80 -d net -a 192.168.51.1 -C 2 -P 2 -i 0 -o 0 -l 9 -n connected-pc &

sleep 5

sshpass -p mod ssh root@modduo.local <<EOF
jack_connect connected-pc:from_slave_1 system:playback_1 && jack_connect connected-pc:from_slave_2 system:playback_2 && jack_connect connected-pc:to_slave_2 mod-monitor:out_2 && jack_connect connected-pc:to_slave_1 mod-monitor:out_1
EOF

jack_lsp -cpt
4 Likes

This looks neat, but quite a bit advanced.
I wonder if we can abstract away the jackd net driver into a generic code that can be used elsewhere (audio plugin from daw to modā€¦).
In theory, we could just send a request to the mod (via mod-ui) and have it load netmanager, then simulate jackā€™s net driver and pass audio to it. hmmmm

2 Likes

I am not sure I am getting what you mean by simulating the net driverā€¦

What is the latency with it? Could I build a box that extents the duo with two more outputs? Maybe just a raspberry pi that does netjack -> DAC -> outputs?

I have not measured latency, but it was not noticeable. Regarding connecting a Pi, why not, but keep in mind that netjack imposes that the hardware is on the master side (hence the mod with my setting, or the pc with the reversed setup). You canā€™t plug your guitar on the mod and get the output sound to the PC/Pi soundcard.

1 Like

Iā€™ve been making some tests, this is actually quite reliableā€¦ :slight_smile:
The target should be to make this as easy to use as possible, requiring a custom jackd instance is a bit troublesome, but indeed it works.

So coming in v1.4, you can do:

  1. on your own pc, run:
    jackd -R -P 80 -d net -a 192.168.51.1 --opus -C 2 -P 2 -i 1 -o 1 -l 4 -n mod-slave -s
  2. on mod, via ssh, run:
jack_load netmanager -i "-a 192.168.51.1"
systemctl restart mod-ui

The ā€œslaveā€ ports will appear in the web interface, allowing to easily connect things.
If you stop the jackd instance on your system, just restart mod-ui service again.

5 Likes

Ho ! Gorgeous !!!

Love the idea and simplicity! Should this go into the wiki?

2 Likes

This has been added to latest test release.
Creating a file in the root filesystem will enable the netmanager, then simply loading ā€œjackd -d netā€ on your local pc will make it work, no need to restart any services or load netmanager manually.
Still, itā€™s an advanced experimental feature. Will put it on the wiki when 1.4 gets a release candidate.

3 Likes

I tried it (with @Azzaā€™s approach) and did not notice much of an increase in CPU load. Cool!

Sorry to ask, but where again do we find the test releases ?

Itā€™s for the testers group only.
I asked sometime ago who wanted to join this group, Test users wanted

Weā€™re currently testing the new features coming in v1.4, which is mostly control-chain.

Do you want to be part of the group too?

I am not sure I will have enough time to make really useful contributions, but I wouldnā€™t mind being part of the group.

Great script! I got it running here and could record some stuff from mod <3! But now when i look to my pedalboard it looks like this (it should have 4 plugins connected to each other), even after restarting mod, and its failing to connect to MOD Cloud too:

When you say ā€œnowā€, you mean that your pedalboard started looking funny as soon as you ran the script, or after you recorded your stuff, disconnected/reconnects etcā€¦? If you give more details about the sequence of events, that might help understand what happened. Also, did you stop the script ? restarted your PC etcā€¦

Which flavour of Linux do you run ?

Sorry for being vague. By ā€˜nowā€™ i mean after running the script (I had some trouble at the beginning because the script wasnā€™t coming back from the ssh, but after trying and fixing it I tested right after a reboot running without stoping) and doing some recording, when I tryed to change the pedalboard i noticed that. Im using an Archlinux,

Better to wait for 1.4-rc1, I added some minor things and checks that help this case.
There are still 2 issues with it, which I think are minor (and this is all experimental/testing anyway):
1 - pedalboard thumbnails donā€™t show connections from/to slave ports
2 - when loading netmanager after the mod has been started (ie, running jackd after the mod boots), the gui might show some connections which have not truly been made yet. Reloading the current pedalboard fixes it.

Because this is still being experimented with, those 2 small issues will remain.
Things are already usable in 1.4 as it is.
(Iā€™ll let everyone know how to enable this on its official release post)