Download Now!

UserManual


Total immersion in team events requires real time voice communication. By the time you've typed in "Drop!", the sniper could have half your team taken out! There are a lot of different programs out there that allow you to communicate over the Internet, but only a handful are designed to work in the background while your game is running, and Subspace has the features your team needs!

Subspace Communications is a tiny program (less than 330 kb!) with powerful features that operates in the background while you play games. At the push of a hotkey during your game play you'll be in instant communication with your team mates over your internet connection. Today's games require the utmost from your computer - so Subspace Communications is a "nice" program that consumes very little CPU and less than 2.5kbs bandwidth while you transmit or recieve messages.

Download from:
CNET

Subspace Features

  • Multiple Channels - Define up to 10 independent channels, any player can be assigned to any channel[s]. Not only does this allow you to send private messages to sub-teams, but it also conserves bandwidth by only sending packets where they need to go.
  • Saves Settings - Players can join and quit, but Subspace remembers their settings so they're always in the channels you expect.
  • No Overtalk - The fog of war is an important aspect to any game, and the chaos from everyone talking at once is a normal part of the expectations. But network latency takes the fog of war beyond normal expectations. Subspace eliminates this frustration. Players can record while another is talking, but Subspace only plays back one voice at a time. This prevents everyone from talking at once and no one being able to understand anything.
  • Volume Down - When recording, the output volume is automatically reduced to 10% and restored when completed. This prevents all of that annoying background noise while someone is transmitting.
  • Adjustable Voice - You can adjust the voice parameters to tune your transmissions to your voice and the capabilities of the systems.
  • Self-Healing - Bad connections are a fact of life, but your communications shouldn't go haywire because of it. When Subspace detects a faulty connection it tries to be self-healing and self connecting.
  • AutoConnect - Isn't it a pain to have to know your buddies IP address and ports when they change with each dial up? If the host is running on Windows 2000 or the XP operating system then Subspace will automatically connect your players without the fuss of passing around all the IP addresses and ports! What Subspace does is to monitor the incoming packets from your games. When it sees a new IP address it sends an invitation to the remote client to join the host. The beauty of this is that if the host machine ever crashes, when it's rebooted and restarted the clients will automatically reconnect (i.e., they won't have to get out of the game to reset their communications channels).
  • Buffering - Latency & Jitter are just facts of life. Subspace Communications has an adjustable buffer to make sure your communications are smooth.
  • It's Free - Some of the best things in life are free, and while it might not be the best thing in life; Subspace Communications is free (but any download legally binds you under the software license agreement). It's a pretty simple agreement, but please read it so you know things like don't operate the software on nuclear reactors and the like.
     

Now, if you got a free lunch, wouldn't you tip the waitress? Well, now through the magic of Paypal if you like the software you're getting you can leave a tip by clicking on the button below.


Rainbow's Edge
A Place of Fun, Fantasy, & Practical Magic

Miscellaneous Notes


Installation

To install Subspace just download the file and double click on the exe inside the zip file. It will automatically run you through a setup procedure.

Why doesn't my voice sound as good on their end?
First, be sure it sounds good on your end by testing a playback sample in the Adjust dialog. Many times the solution is as simple as the distance or angle the microphone is from your mouth.

If you sound fine in your Adjustment dialog, the difference can either be a poor network connection or perhaps they have a bad sound card?

Why can't my team connect to 10.0.0.2?
IP addresses that start with a "10." or "192." are private addresses and not routable across the internet. If your IP address starts with one of these; chances are you're behind a router that is using Network Address Translation (NAT). Not usually a problem, unless you're trying to Host a session. In which case you have two problems to solve. The first is to provide your router's public IP address to your team, and the second is to get your router to map the port your using to the IP address that the host PC is using. Usually it's much easier just to get someone else to host, but if you're ready to do this read on!

There are some freeware tools to get your IP address. But, keep in mind your IP address changes all the time, Everytime you re-establish a connection to your ISP provider there is a chance your IP address will change. So, getting it back to your team can be a battle in itself.

A much better way to is to provide your team mates a domain name. The domain name will be translated to your IP address automatically no matter how often it changes. Typically your ISP provider will give this to you for a small fee, or you can use one of the free services such as http://www.freedns.com/. But, if you really want to know your IP Address, Telnet into your router and ask it. In most instances there are a variety of ways to get it, for example "sh nat" will show the Private and Public IP address mappings. Check out the documentation from your router for details. Often routers will have built in help too (try a "?" or help at the prompt).

Now, to solve that other problem of mapping your router's IP address to your PC's IP address for a specific port. Routers typically have a service inside called NAT that maps your one public address to many private addresses on your local network. The way it does this is to keep track of the private address and translate the port is was using into a new port number. If you're initiating traffic it's a great solution as the system automatically handles everything. However, if you want to listen on a specific port so you can host a session, the Router doesn't know where to start. So, you have to tell it what to do.

By default, Subspace Communication hosts on port 3782 (but you can change it to whatever you like). Here's an example of the steps on a Cisco 678 router to map port 3782 to IP address 10.0.0.2 (this will cause all traffic to that port to go to that PC). White text is output from the router, fuchsia text is what you'd type in, and green text are comments.

Sticky Shift Keys

If you press the Shift key 5 times consecutively in Windows® 2000 or Windows® XP the following message will appear:

By pressing the SHIFT key five times you have turned on the Sticky Keys feature in Windows® 2000 [or Windows® XP]. With this feature, you can lock down the CTRL, ALT, or SHIFT keys. This is useful if you are unable to hold down more than one key at a time.

To prevent this happening in the future, click the Settings button on the window referenced above. When the accessibility options screen appears, click the "Settings" button in the "Sticky Keys" portion of the window. On the next window (labelled "Settings For Sticky Keys"), uncheck the box that says, "Use shortcut," then click on "Apply," and close the windows.


Other Questions or Ideas?

Send me an email at paul@rainbowsEdge.net or check the website at www.rainbowsEdge.net to see if there is an update.

Release Notes

Beta01 Initial Release
Beta02 Corrected Bug in reconnection algorithm.
Beta03 Not released, added ability to increase microphone volume
Beta04 Modified CODEC to GSM 6.10 for XP/98 compatibility. I'd prefer to allow the user to select their own, perhaps a future version?
Beta05 Added Silence Suppression and Noise Reduction. The noise reduction needs to find a sample quiet spot per second of your transmission to lock onto the phase (Pausing for a 1/10th of a second or so after hitting the transmit will do the job for sure). This is also the reason why there is a second of silence during startup as the program measures your background noise. Note that if the noise level is to too high you'll get a warning and it won't try to suppress any noise.
Beta06 Fixed a bug in the channel selection that prevented channels from being unselected. Also, based on user feedback, increased the speaker output volume while recording from 10% to 15%.
Beta07 Enhanced the Microphone for automatic gain adjustment in the adjustment screen. A bit tricky since the gain isn't applied until the next voice segment. The Adjustment dialog was also modified, the slider now controls a delta from the automatic gain rather than an absolute volume control as was added in Beta03.
Beta08 Fixed the "WaveOutClose error, added a CRC check to the data stream (lost bytes made trasmission sound like alien tranmissions), and fixed the channel assignment from Beta06 so the changes would persist. A note on the dynamic gain from Beta07 - microphones that use to sound terrible now sound great, but users with previously good microphones report that their sound quality has dropped; so in this version there is a checkbox to enable/disable it. Note that it uses the current sample to figure out the new gain settings, so you don't hear the changes until the next sample.
Beta09 Removed the second stage noise compression as it was clipping too much. Modified the record operation to pause playback (the playback information is lost if you have a half-duplex card); this way a sender doesn't loose anything. Finally, put in a modification that might fix the problem with the last sound byte being repeated during playback.
Beta10 Modified the second stage noise compression to not eliminate low volume noises that contains multiple frequencies. Also noticed that the sound bytes weren't necessarily really done recording/playing even though the MM_WOM_DONE/MM_WIM_DONE message had been recieved, so some logic was added to tidy up those problems. Finally, reset the micGain controller after adjusting the gain.
Beta11 Corrected an error if your private IP addresses are over 128 and added some tweaks to the silence suppression algorithm.
Beta12 Modified the recording and compression to improve the sound quality. If you have a previous version installed you might need to readjust the automatic gain setting.
Beta13 Microphone enhancements and a few small code optimizations.
Beta14 Finally broke down and bought an Audigy card. I didn't encounter the volume bug, so possibly that was fixed in a driver update. However I did get the "last bit" echo bug and was able to eliminate it.
Beta15 Corrected the bug in the key assignment for the channel selection.
Beta16 Beta 16 adjusts the playback so that it is paused if you begin recording. Previously the playback continued and you could miss what your team mates were saying. Also fixed is a bug in the streaming playback. Previously the entire message could be buffered before playback. If you notice that your playback is "jerky", edit the subspace.ini file to increase the number of seconds of the playbackCache size. Similarly if the playback is smooth and you want faster responses try decreasing the time.
Beta17 Beta 17 fixes a bug in the automatic reconnection and prevents the same user from appearing twice in the list.


Legal Stuff

All Software is Copyrighted by Paul Regenhardt, All rights reserved.
Paul Regenhardt ("The author") PROVIDES THE SOFTWARE "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED, IMPLIED OR OTHERWISE, INCLUDING AND WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF INFORMATION, OR ANY OTHER LOSS) , WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR INABILITY TO USE THIS SOFTWARE.