Provided by: jack-tools_20131226-1build2_amd64 bug

NAME

       jack-osc - JACK Transport Publication Daemon

SYNOPSIS

       jack-osc [options]

OPTIONS

       -c : Set the drift correction interval in periods (default=64). -p : Set the port number
       (default=57130).

DESCRIPTION

       jack-osc publishes the transport state of the local JACK server as OSC packets over a UDP
       connection. jack-osc allows any OSC enabled application to act as a JACK transport client,
       receiving sample accurate pulse stream timing data, and monitoring and initiating
       transport state change.

       Clients request to receive timing and change notification packets by sending a "request
       notification" packet, /receive, to the jack-osc server. This packet has the form

           /receive category

       where category is a bit mask that indicates what categories of notification packets are
       requested. The bit locations are:

       Category Mask -------- ---- REQUEST_TICK 0x0000001 REQUEST_PULSE 0x0000002
       REQUEST_CORRECTION 0x0000004 REQUEST_TRANSPORT 0x0000008 REQUEST_ALL 0xFFFFFFF

       Clients request notification messages to be sent to an address that is not that of the
       packet that requests the notification by sending a "request notification at" packet,
       /receive_at. This packet has the form

           /receive_at category port-number host-name

       where category is as for /receive and where port-number and host-name give the address
       that notification should be sent to.

       Once a client is registered subsequent /receive and /receive_at messages edit the category
       value for that client. To delete the client from the register send a request with a
       category value of negative one.

       After requesting notification the client will receive all relevant timing packets sent by
       the server. All jack-osc timing packets are sent at the start of a JACK period as OSC
       message and have the same shape:

           tag ntp utc frm arg...

       where tag is the command name, and ntp, utc and frm are time stamps that indicate the same
       time point, the start of the JACK period when the packet was sent. ntp is an unsigned
       64bit integer NTP value. utc is a double precision real valued representation of the UTC
       time. frm is a signed 64bit integer frame counter the absolute value of which is not
       defined but which increments synchronously with the ntp and utc time stamps. arg... is the
       set of tag specific arguments.

       The timing packets sent by jack-osc are:

       /pulse ntp utc frm p-ntp p-utc p-frm pulse : Pulse Location. This packet indicates that
       the nearest frame to the integer pulse pulse occurs at the time given by the time stamps
       p-ntp, p-utc and p-frm. The pulse number is one based. This packet is sent at the start of
       the JACK period in which the integer pulse will occur. This packet is not sent if the
       transport is stopped. This packet is sent before the /tick packet for the same period.

       /tick ntp utc frm frame pulse : Period Tick. This packet is sent once per JACK period. The
       integer value frame is the transport location in frames, the double precision real value
       pulse is the transport location in pulses. The pulse value is read from an accumulator and
       is approximate only, the accumulator is corrected at each integer pulse location.

       /drift ntp utc frm ntp-dif utc-dif : Drift Correction. This packet is sent whenever the
       clock drift correction is run. The frequency of this is set by the -c option to the
       jack-osc server. The integer value ntp-dif is the NTP form of the corrected drift value
       and utc-dif the UTC form. Since JACK is a sample clock there is no frame drift value.

       The state change packets sent by jack-osc are:

       /transport ntp utc frm fps ppm ppc pt state : Transport state change. This packet is sent
       whenever the JACK transport changes. The double precision real value fps is the sample
       rate in frames per second. The double precision real value ppm is the tempo in pulses per
       minute. The double precision real value ppc is the measure length in pulses per cycle. The
       double precision real value pt is the pulse type. The integer value state is zero if the
       transport has stopped and one if it has started. See also the /status message described
       below.

       Clients can request the current frame and pulse values by sending a /current packet, which
       requires no argument. The replies with a /current.reply packet, which has the same form as
       a /tick packet. The precise interpretation of packets acquired in this manner is
       problematic.

       Clients request a status packet by sending a "request status" packet, /status, which
       requires no argument. The server replies immediately with a status reply packet,
       /status.reply. The status packet is an OSC message and is not timestamped. It has the
       shape:

           /status.reply fps ppm ppc pt state

       where the argument values are as described for the /transport message. It is intended that
       a client will request a single status packet before requesting notification for all
       subsequent state changes.

       Clients initiate a change in transport roll state by sending a "request transport
       operation" packet, /start or /stop to the jack-osc server. Neither requires an argument.

       Clients initiate a change in transport location by sending a "request locate operation"
       packet, /locate, to the jack-osc server. It has the shape:

           /locate location

       where the single precision real value location is the requested transport location in
       seconds.

       Clients can connect and disconnect ports by sending /connect and /disconnect messages to
       the jack-osc server. Both have the shape:

           /[dis]connect left right

       jack-osc implements only a subset of the OSC protocol. In particular it does not implement
       the patten matching rules and does not implement a scheduler for incoming messages.

       jack-osc drops all unrecognized incoming packets.

AUTHOR

       Rohan Drape http://rd.slavepianos.org/

SEE ALSO

       jackd(1), OSC(7) http://opensoundcontrol.org/

AUTHOR

       Rohan Drape <rd@slavepianos.org>
           Author.

                                            02/06/2016                                JACK-OSC(1)