Command Line Arguments

From FreeBoB

Note that these are for the second pre-alpha release only.

-i   wakeup interval in packets. this is the amount of packets the ieee1394 HW
     has to receive before notifying the kernel driver. This should be smaller 
     than the table size.

-t   table size: this is the number of packets in the "sync-table".  
     This comes down to the number of packets the jackd backend has to receive 
     before preparing the next 'table'. The operation is basically as follows:
       (N=table size)

       1) if packets_received < N
           wait for packet receive
           put packet header into the sync-table buffer,
           put packet content into the data ringbuffer
           number_of_received_frames = number_of_received_frames + number_of_frames_in_this_packet
           goto 1
       2)  for each outgoing connection
         2.1) for each packet header in the sync-table buffer
                get data from data ringbuffer
                compose packet with data and packet header
                send packet
       3) if number_of_received_frames == period_size
           fire jack cycle
       4) goto 1

     So the table size could well be equal to period_size/nb_samples_per_packet.
     But nb_samples_per_packet can differ from packet to packet, so there is no 
     'fixed' solution to the size of this table. A large table means less overhead, 
     but extra latency because transmitted samples are delayed one table_size. A small 
     table however introduces a lot of extra checks and overhead that can introduce 
     underruns.

-p   period size: the number of frames buffered before a jackd execute cycle is initiated.

-s   Transmit prebuffer size: the number of packets that are buffered by the RAW1394 
     driver before starting to transmit packets. Note that IEEE1394 isochronous transmission 
     has a fixed packet rate, being 8000 packets/second. So basically you have to present 
     a packet to the RAW1394 driver every 1/8000 seconds or you miss a deadline.

-o   OSC url. This gives the path to the Freebob daemon application. see README

-f   XML topology description. This can replace the Freebob daemon if you know the bus
     configuration in advance.
      
-r,  --ringbuffer-size   Ringbuffer size (debug option) (default: 8192)

-b,  --buffer-size       The RAW1394 buffer size to use (in frames) (default: 300)

These parameters have a big influence on roundtrip latency, as described in some emails about latency.