[PlanetCCRMA] help getting netjack MIDI working? (looks like it's working, just doesn't send data)

Niels Mayer nielsmayer at gmail.com
Sun Mar 7 14:22:54 PST 2010

Inspired by http://trac.jackaudio.org/wiki/WalkThrough/User/NetJack , I set
out to hook up the better-playing MIDI keyboard (Yamaha SY77) connected to a
USB MIDI device on my son's computer. Likewise I hope to reciprocate by
letting my son send MIDI to the EIIIxp connected to my computer.

Unfortunately, neither audio nor MIDI seem to be sent over the net, even
though qjackctl shows a netjack application under Jack MIDI. I didn't see
any corresponding inputs and outputs under the ALSA MIDI panel of qjackctl
(perhaps that's the problem, should I be using
http://llg.cubic.org/tools/multimidicast/ instead of netjack??)

In either case, hooking up inputs and outputs to the netjack midi devices is
possible in qjackctl, it's just that no MIDI is actually sent. Testing audio
-- same problem -- I can hook it up but no audio is sent. My use for netjack
is strictly for doing remote MIDI to access other devices physically
attached to other computers, so I don't actually need audio; which is why
the examples below explicitly turn off audio I/O "-o 0 -i 0" ...

One thought is that I've only told "jack_netsource" about the number of midi
channels to use. However for all i know it's binding the midi-through or an
unused MIDI device on a USB audio device. How do you tell jack_netsource to
talk to specific MIDI ports, such as "hw:2,0,0  UM-2 MIDI 1" or "hw:2,0,1
 UM-2 MIDI 2" ...

Here's my notes on setting up netjack. Any suggestions on what I should be
doing in order to get Jack Midi to actually work?

(0). Start JACK on the master machine: run qjackctl on gnulem

(1) Launch jack_netsource on the master JACK to connect your slave:

gnulem-173-~> jack_netsource -H coggie -o 0 -i 0 -O 2 -I 2
Not Connected
Connected :-)
netjack: at frame 000257 -> total netxruns 1  (0%) queue time= 46439

Note: usage: jack_netsource [options]

  -h this help text
  -H <slave host> - Host name of the slave JACK
  -o <num channels> - Number of audio playback channels
  -i <num channels> - Number of audio capture channels
  -O <num channels> - Number of midi playback channels
  -I <num channels> - Number of midi capture channels
  -n <periods> - Network latency in JACK periods
  -p <port> - UDP port that the slave is listening on
  -r <reply port> - UDP port that we are listening on
  -B <bind port> - reply port, for use in NAT environments
  -b <bitdepth> - Set transport to use 16bit or 8bit
  -c <kbits> - Use CELT encoding with <kbits> kbits per channel
  -m <mtu> - Assume this mtu for the link
  -R <N> - Redundancy: send out packets N times.
  -e - skip host-to-network endianness conversion
  -N <jack name> - Reports a different name to jack
  -s <server name> - The name of the local jack server

(2) Start JACK with the net backend on the slave machine, use autoconf
(default) to get default params from master started above.
coggie-79-~> jackd -R -d net --autoconf 1
jackd 0.118.0
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

JACK compiled with System V SHM support.
loading driver ..
creating net driver ... net_pcm|48000|1024|3000|2|2|transport_sync:1
AutoConfig Override !!!
AutoConfig Override: Master JACK sample rate = 44100
AutoConfig Override: Master JACK period size is 512
AutoConfig Override: capture_channels_audio = 0
AutoConfig Override: capture_channels_midi = 2
AutoConfig Override: playback_channels_audio = 0
AutoConfig Override: playback_channels_midi = 2
MTU is set to 1400 bytes
netjack: period   : up: 512 / dn: 512
netjack: framerate: 44100
netjack: audio    : cap: 0 / pbk: 0)
netjack: midi     : cap: 2 / pbk: 2)
netjack: buffsize : rx: 4152)

Note: Parameters for driver 'net' (all parameters are optional):
-i, --audio-ins Number of capture channels (defaults to 2) (default: 2)
-o, --audio-outs Number of playback channels (defaults to 2) (default: 2)
-I, --midi-ins Number of midi capture channels (defaults to 1) (default: 1)
-O, --midi-outs Number of midi playback channels (defaults to 1) (default:
-r, --rate Sample rate (default: 48000)
-p, --period Frames per period (default: 1024)
-n, --num-periods Network latency setting in no. of periods (default: 5)
-l, --listen-port The socket port we are listening on for sync packets
(default: 3000)
-f, --factor Factor for sample rate reduction (deprecated) (default: 1)
-u, --upstream-factor Factor for sample rate reduction on the upstream
(deprecated) (default: 0)
-c, --celt sets celt encoding and kbits value one channel is encoded at
(default: 0)
-b, --bit-depth Sample bit-depth (0 for float, 8 for 8bit and 16 for 16bit)
(default: 0)
-t, --transport-sync Whether to slave the transport to the master transport
(default: 1)
-a, --autoconf Whether to use Autoconfig, or just start. (default: 1)
-R, --redundancy Send packets N times (default: 1)
-e, --native-endian Don't convert samples to network byte order. (default:
-J, --jitterval attempted jitterbuffer microseconds on master (default: 0)
-D, --always-deadline Always wait until deadline (default: 0)


PS: Interesting Guide: http://orford.org/assets/jack.php (Sound Engineers
Guide to Jackd)
PPS: what's the status of Jack2 in fedora and is it actually compatible w/
any of the sequencers and syths on planet-ccrma? Per
http://trac.jackaudio.org/wiki/WalkThrough/User/NetJack2  netjack is also
different. Does it work better or solve issues I'm having?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ccrma-mail.stanford.edu/pipermail/planetccrma/attachments/20100307/83e34e08/attachment.html 

More information about the PlanetCCRMA mailing list