default dest port 3000, source port is random
default mtu: 1400

1a. autoconfig: slave jack will wait for first packet and look at header (until -a0 is given)
1b. otherwise slave jack starts in freewheeling mode. will wait for packet to arrive. 
2. srcaddress of "first" packet will be used for sending data back (otherwise nothing is sent)
  after switching back to freerun mode (100 packets lost?), srcaddress will be deleted
  in the meantime only packets from srcaddress will be processed
0./3.  initialization (possibly after autoconfig) checks:
  packet cache size is limited by [(pcmin+midiin)*period-size*latency*4] <= 100MB, [pcmout+midiout] <= 1000 channels
  mtu must be >= 2*packet header
  samplerate > 0 

4 bitdepth modes: 0=float, 8=8bit, 16=16bit, 1000=celt.
  for 0 there is a flag, whether to htonl the float. others are always transmitted in network byte order
  jack2 does not handle 8/16 bits [but always assumes float, except for celt]   (deprecated?) 
- resampling possible  (will be downsampled at one side, and upsampled back at the other side; deprecated [celp gives better bandwidth saving])

resampling, bitdepth and the float_swap flag are not autoconfigured.
period is not autoconfigured

? send_silence is all 0s data  (only used in jack1?)

? deadline
? packet cache, reassembles fragments   (will also "eat" redundancy [=same packet is sent multiple times])

? transport syncs are latency compensated
? latency==0 is special?

---  packet format
1. packet header
2. audio data is appended according to bitdepth
3. midi data is then appended:  (midi event is dropped [->overflow message], if not enough space in packet left)
  // midi data is in "jack normalized" format: no running status, no realtime messages interrupting other events; must be time-ordered
  one event: (network byte order)
    uint32 payload_size;
    jack_nframes_t time; // from event
    uint32 size; // from event
    ... event data[size].  // (original byte order)
    // there might be more than one midi message inside of one event (e.g. for 14-bit controllers)
  terminating event:
    00 00 00 00 (payload_size=0)
    // NOTE: current netjack code sends uninitialized memory after that 

- fragmented packets (->mtu) will each contain a netjack header (with different fragment_nr)  
   [all except the first header will be removed in the packet cache during fragment reassembly]

--- packet header (14 uints = 56 byte):
  jack_nframes_t -> uint32  network byte order
     // General AutoConf Data   (i.e. autoconf override)
     jack_nframes_t capture_channels_audio;
     jack_nframes_t playback_channels_audio;
     jack_nframes_t capture_channels_midi;
     jack_nframes_t playback_channels_midi;  // in slave jack; netsource: capture-channel
     jack_nframes_t period_size;
     jack_nframes_t sample_rate;
     // Transport Sync  (contents will only be processed by slave jack when not disabled by cmdline; slave->master does not work?)
     jack_nframes_t sync_state;    JackTransportStarting,Stopped,Rolling,Looping
     jack_nframes_t transport_frame;
     jack_nframes_t transport_state;
     // Packet loss Detection, and latency reduction
     jack_nframes_t framecnt;
     jack_nframes_t latency;  (used in autoconf, but only as starting value[?])
     jack_nframes_t reply_port;  (will always be used from latest received packed [sending from slave]; only used if !=0: i.e. netsend has opened two udp ports [one for rx, one for tx]; [if ==0 the packets will be send back to where they came from])
     jack_nframes_t mtu;   (only used in autoconf)
     jack_nframes_t fragment_nr;

--- examples:
(2,2): 1400+1400+440=3240=3*56+3072  [one way]  (netjack says: rx bufsize: 3128 (56+3072), mtu: 1400, period rx/tx: 256/256) 

Starting jack_netsource:
  (0,0,0,0)  -> 56 byte data (rx bufsize: 56)
    18*0x00 01 00 00 00 00 ac 44 15*0x00 5c 00 00 00 05 6*0x00 05 78 4*0x00