# Where in the World is `sfront` Networking?

`sfront` networking, a feature that supports MIDI network musical performance, has been disabled in this distribution.

We disabled networking support because it requires the presence of a server which we no longer are able to host here at Berkeley.

## Building `sfront` with Networking Support

Because `sfront` served as the reference implementation for IETF RFC 4695 ("RTP MIDI"), implementors of RFC 4695 may wish to have an `sfront` version that includes networking support. To do so, follow the steps below:

[1] Edit `sfront/src/tree.h`, and search for the `NET_STATUS`. This search will lead to this part of the code:

    /* types of networking available */

    #define NO_NETWORKING  0
    #define HAS_NETWORKING 1
    #define NET_STATUS     NO_NETWORKING

Change `NET_STATUS` definition to have the value `HAS_NETWORKING` and save the file.

[2] Edit `sfront/src/lib/Makefile` and search for the word "Networking". This search will lead to these instructions: ``

    ##
    ##  Networking support is not enabled in this sfront distribution.
    ##  See the sfront/src/NETWORK.HTML file for full instructions on how
    ##  to enable networking support.  In this file, comment out the
    ##  blank NSYS definition below, and uncommment the NSYS definition
    ##  one the two lines that follow (be sure to uncomment both lines).
    ##

    NSYS =

    ##  NSYS = net_sfront net_include net_globals net_siplib \
    ##         net_rtplib net_rtcplib net_jsend net_jrecv net_crypto

Follow these instructions, and then save the Makefile.

[3] `cd sfront/src/` and type `pushd lib; make; popd`. This will make a version of `sfront` with networking support.

## Examples and Documentation

Networking examples still ship with the distribution, in the subdirectory `sfront/examples/RTIME/network`.

Documentation on sfront networking has been removed from the sfront reference manual. However, ...