Difference between revisions of "Audio Through USB"

From MOD Wiki
Jump to navigation Jump to search
m (→‎Using netJACK2: link to ssh paage)
(17 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
'''NOTE: This requires v1.4 or later.'''
 
'''NOTE: This requires v1.4 or later.'''
  
First, connect the MOD Duo to your PC via usb cable.<br/>
+
First, connect the MOD Duo to your PC via usb cable. Make sure to open port 19000 on your firewall. If you use Linux with ufw, you can use:
Make sure to open port 19000 on your firewall. If you use Linux with ufw, you can use:
+
 
 
<source lang="bash">
 
<source lang="bash">
 
sudo ufw allow 19000
 
sudo ufw allow 19000
 
</source>
 
</source>
  
 +
Then, [[Access_MOD_using_SSH|ssh into the Duo]], and run:
  
Then, ssh into the Duo, and run:
 
 
<source lang="bash">
 
<source lang="bash">
 
touch /data/enable-netmanager
 
touch /data/enable-netmanager
 
systemctl start jack-netmanager
 
systemctl start jack-netmanager
 
</source>
 
</source>
NOTE: You only need to run this command once.<br/>
+
NOTE: You only need to run this command once. The next the Duo boots, <tt>jack-netmanager</tt> will be loaded by default. Delete the <tt>/data/enable-netmanager</tt> file inside the Duo to remove this auto-start feature.
The next the Duo boots, jack-netmanager will be loaded by default.<br/>
 
Delete the '/data/enable-netmanager' file inside the Duo to remove this auto-start feature.
 
 
 
  
Now run jackd on your own computer (connected to the Duo via USB), like this:
+
Now run <tt>jackd</tt> on your own computer (connected to the Duo via USB), like this:
 
<source lang="bash">
 
<source lang="bash">
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
+
jackd -R -P 80 -d net -a 192.168.51.1 -C 2 -P 2 -i 1 -o 1 -l 4 -n mod-slave -s
 
</source>
 
</source>
Adjust the parameters as needed, but keep the client name as 'mod-slave'.
+
Adjust the parameters as needed, but keep <tt>mod-slave</tt> as the client name.
  
 
=== Parameters explained ===
 
=== Parameters explained ===
Line 30: Line 27:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
| -R
+
| <tt>-R</tt>
| Use realtime scheduling, enabled by default
+
| Use realtime scheduling, enabled by default.
 
|-
 
|-
| -P
+
| <tt>-P</tt>
 
| Set the realtime scheduling priority, in this case 80.
 
| Set the realtime scheduling priority, in this case 80.
 
|-
 
|-
| -d
+
| <tt>-d</tt>
 
| JACK backend, in this case the "net" driver.
 
| JACK backend, in this case the "net" driver.
 
|-
 
|-
| -a
+
| <tt>-a</tt>
 
| Multicast address, in this case the IP address of the MOD Duo.
 
| Multicast address, in this case the IP address of the MOD Duo.
 
|-
 
|-
| --opus
+
| <tt>-C</tt>
| Use Opus compression, optional as it is not needed, the USB connection should be able to handle raw data.
 
|-
 
| -C
 
 
| Number of audio input ports on the slave. This determines the number of audio output ports on the MOD Duo, marked as "Hardware Audio To Slave" ports in the web interface.
 
| Number of audio input ports on the slave. This determines the number of audio output ports on the MOD Duo, marked as "Hardware Audio To Slave" ports in the web interface.
 
|-
 
|-
| -P
+
| <tt>-P</tt>
 
| Number of audio output ports on the slave. This determines the number of audio input ports on the MOD Duo, marked as "Hardware Audio From Slave" ports in the web interface.
 
| Number of audio output ports on the slave. This determines the number of audio input ports on the MOD Duo, marked as "Hardware Audio From Slave" ports in the web interface.
 
|-
 
|-
| -i
+
| <tt>-i</tt>
 
| Number of MIDI input ports on the slave. This determines the number of MIDI output ports on the MOD Duo, marked as "Hardware Midi To Slave" ports in the web interface.
 
| Number of MIDI input ports on the slave. This determines the number of MIDI output ports on the MOD Duo, marked as "Hardware Midi To Slave" ports in the web interface.
 
|-
 
|-
| -o
+
| <tt>-o</tt>
 
| Number of MIDI output ports on the slave. This determines the number of MIDI input ports on the MOD Duo, marked as "Hardware Midi From Slave" ports in the web interface.
 
| Number of MIDI output ports on the slave. This determines the number of MIDI input ports on the MOD Duo, marked as "Hardware Midi From Slave" ports in the web interface.
 
|-
 
|-
| -l
+
| <tt>-l</tt>
 
| Number of cycles, determines the network latency.
 
| Number of cycles, determines the network latency.
 +
|-
 +
| <tt>-s</tt>
 +
| Setting this option makes the JACK slave memorize the ports that are connected to the JACK master. In case the master disappears and reappears the JACK slave will try to reconnect those ports automatically.
 
|}
 
|}
 +
 +
or if you prefer to use jackdbus:
 +
<source lang="bash">
 +
jack_control eps realtime true eps realtime-priority 80
 +
jack_control ds net dps multicast-ip 192.168.51.1 dps client-name mod-slave
 +
jack_control dps input-ports 2
 +
jack_control dps dps ouput-ports 2
 +
jack_control dps dps midi-in-ports 1
 +
jack_control dps dps midi-out-ports 1
 +
jack_control dps latency 4
 +
jack_control dps auto-save true
 +
jack_control start
 +
</source>
  
 
[[Category:netJACK]]
 
[[Category:netJACK]]
 
[[Category:Networking]]
 
[[Category:Networking]]

Revision as of 22:28, 9 November 2018

Using netJACK2

NOTE: This requires v1.4 or later.

First, connect the MOD Duo to your PC via usb cable. Make sure to open port 19000 on your firewall. If you use Linux with ufw, you can use:

sudo ufw allow 19000

Then, ssh into the Duo, and run:

touch /data/enable-netmanager
systemctl start jack-netmanager

NOTE: You only need to run this command once. The next the Duo boots, jack-netmanager will be loaded by default. Delete the /data/enable-netmanager file inside the Duo to remove this auto-start feature.

Now run jackd on your own computer (connected to the Duo via USB), like this:

jackd -R -P 80 -d net -a 192.168.51.1 -C 2 -P 2 -i 1 -o 1 -l 4 -n mod-slave -s

Adjust the parameters as needed, but keep mod-slave as the client name.

Parameters explained

-R Use realtime scheduling, enabled by default.
-P Set the realtime scheduling priority, in this case 80.
-d JACK backend, in this case the "net" driver.
-a Multicast address, in this case the IP address of the MOD Duo.
-C Number of audio input ports on the slave. This determines the number of audio output ports on the MOD Duo, marked as "Hardware Audio To Slave" ports in the web interface.
-P Number of audio output ports on the slave. This determines the number of audio input ports on the MOD Duo, marked as "Hardware Audio From Slave" ports in the web interface.
-i Number of MIDI input ports on the slave. This determines the number of MIDI output ports on the MOD Duo, marked as "Hardware Midi To Slave" ports in the web interface.
-o Number of MIDI output ports on the slave. This determines the number of MIDI input ports on the MOD Duo, marked as "Hardware Midi From Slave" ports in the web interface.
-l Number of cycles, determines the network latency.
-s Setting this option makes the JACK slave memorize the ports that are connected to the JACK master. In case the master disappears and reappears the JACK slave will try to reconnect those ports automatically.

or if you prefer to use jackdbus:

jack_control eps realtime true eps realtime-priority 80
jack_control ds net dps multicast-ip 192.168.51.1 dps client-name mod-slave
jack_control dps input-ports 2
jack_control dps dps ouput-ports 2
jack_control dps dps midi-in-ports 1
jack_control dps dps midi-out-ports 1
jack_control dps latency 4
jack_control dps auto-save true
jack_control start