Provides a basic set of devices which implement `cnrg.itx.datax.Source` and `cnrg.itx.datax.Destination`. The devices are meant to provide a basic coverage of input and output sources. We provide input devices to cover writing to the sound card (`SpeakerDestination` and `MicrophoneSource`), devices to write utilize the network (`NetworkSource` and `NetworkDestination`), and general purpose devices to work on Streams (`StreamSource` and `StreamDestination`).

Data transfer over the Internet is done by using the NetworkDestination and NetworkSource. Internet traffic can be unpredictable, packets can be dealayed, lost and reordered. To take care of all this, the network layer of datax provides two features:

1. Forward Error Correction: Redundant data is sent with each network packet. This combat's packet loss and reorders.
2. Real Time Protocol: This is used to convey to the remote destination information about the sample's origin time and allows it to correct any packet reorders. This also allows the destination to buffer samples appropriately to remove any jitter due to network delays.

There are two kinds of devices used in the datax package:

1. Sources: They provide data to the channels.
2. Destinations: They sink data from the channel.

Any device can be written for the data transfer layer as long as they implement the Source or the Destination interface.