Tag Archives: towf

Translation over Wi-Fi (ToWF)

(Translation over Wi-Fi)

Software Downloads


Network Layout

ToWF Network Layout
Figure 1.1 – Typical Network Layout for ToWF (click to enlarge)
Some notes regarding the network layout:
  • The connection between the Server and the Router MUST be with an Ethernet cable.  Same with the connection between the Router and the Access Point. (i.e. DON’T connect the Server to the Access Point wirelessly!  This causes major performance/interference issues.)
  • Currently the ToWF Server software allows up to 4 Microphones to be connected and used at the same time (1 for each language).
  • Connect the Microphone(s) to the Server in any way which allows it’s Operating System (OS X, Windows, etc) to see the Mic as an input device.  The main options in regards to connecting Microphone(s) to the Server are:
    • Mic In
    • Line In
    • USB
    • Bluetooth
    • Or a combination of all of the above (up to 4)
  • You’ll need a good Access Point  – Enterprise-level, probably.  A home router or home access point will typically only allow about 10-15 devices to connect, then various (usually weird) problems start to arise.  So invest in a  good access point to allow many to connect.  A good priced one that I have experience with and would recommend is: Ubiquiti UniFi AP-PRO (the documentation says it handles 200+ simultaneous connections, though I’ve only tested up to about 30 connections so far). At the time of writing, it costs around $200.
  • If you have wireless capabilities on your Router, turn it off.  Just use the Access Point for your wireless communication.  Any other wireless radios will just contribute to interference, which we want to keep to a minimum. (An exception to this rule would be if you’re using an all-in-one device (router & access point all in a single device), then of course, you’d want to leave the wireless enabled)

Software Usage

Server Application

ToWF Server
ToWF Server (click to enlarge)

The software comes as a “.jar” file (download above).

Depending on your computer’s Java setup, you can generally simply double-click on the .jar file & the application will run. However, if you’d like to view debug information as it’s running, it’s best to run the application from the command line:

java -jar ToWF_Server.jar

Once the application if running, select the Network Interface you’d like to transmit all the audio on. (ifconfig on Mac/Unix and ipconfig on Windows might help you figure out which one you want.)

Next select the Sample Rate.  Bigger number = better sound quality, but more network traffic.

Type in the name of the Language and choose an Input Source, for each language you want to transmit.

When you’re all ready, click Start, to start transmitting the audio over the network.

As Receivers connect, they will appear in the Listening Clients section. This is just for informational purposes only.


  • If something doesn’t work & you want to see more of what’s happening, you’ll have to run the app via the command line (see above), then check the terminal for error messages or warnings, which will hopefully lead you to the root cause.
  • If you change the state of your system (e.g. add a USB Microphone, enable a Network Adaptor, etc) while the application is running, you need to Restart the application (close it, then start it again).  It’s not smart enough (yet) to pick up the changes in real-time.
  • To know for sure whether the Server is sending out Audio packets or not, a very useful tool is Wireshark.  If the application is running and working properly, using Wireshark you’ll see a multitude of packets (each having a “ToWF” header) being sent out over the network. Wireshark can be installed on the Server or any other device on the local network.

Receiver App


Wait Stream Listen Screenshots
Receiver App – Waiting, Streaming, and Listening states (click to enlarge).

The 3 images above show the 3 main states the Receiver App can be in:

  • Waiting – Waiting for the Server Application to stream audio data
  • Streaming – The Server Application is streaming audio data. We can now choose which language we’d like to listen to, then click Start Listening when we’re ready.
  • Listening – We’re now receiving the audio data and playing it.

In the Listening state, you may drag the “Delay” slider back and forth. A smaller number means you’re audio delay will be closer to real-time, but because of that, your audio quality may suffer (because you’re buffer is smaller). The goal is to get the delay down as low as you can, while still receiving a good, clear audio signal. This will vary based on device and wireless interference.

  • If the Server is streaming, but the Receiver App still says “Waiting for server to stream”, double-check that you’re connected to the correct Wi-Fi network – this is always listed at the very top of the app.
  • In some cases, the Receiver App will say “Waiting for Server to stream” when in fact the Server IS streaming (and you’re on the correct Wi-Fi network). If this happens, kill the app and restart it (don’t just put the app in the background, but actually kill it).