N.A.G. (Network Auralization for Gnutella)

for Mac OS X and Windows 2000/XP

by Jason Freeman

Release Notes (version 1.0):

Known issues:
* Even with recent optimizations, N.A.G. still requires quite a bit of CPU power. Do not try to do other tasks in the background while N.A.G. is running! If you have a slower computer and N.A.G. needs more CPU power than you have, you may begin to hear audio dropouts and clicks, there may be significant delays in GUI response, and in extreme cases N.A.G. may even crash. If this happens to you, reduce N.A.G.'s CPU requirements by lowering the number of simultaneous downloads, reducing the number of songs N.A.G. can play at once, and/or slowing down the update rate.
* From time to time, N.A.G. will pause audio playback for a few seconds while it does essential tasks related to memory allocation and "garbage collection."
* Under certain network configurations, N.A.G. may take a long time to establish an initial connection to the network and may lose network connections fairly quickly.

To report a bug:
Send me an e-mail at Please include the following information in your message:
-your operating system (e.g. Mac OS X 10.2.4)
-the amount of RAM you have (e.g. 512 MB)
-the processor speed of your system (e.g. 466 Mhz)
-the speed at which you connect to the Internet (e.g. 56k, dsl, T1)
-information about the bug, including any steps you took which may have caused the problem

Version History:

1.0rc2 (6/12/03):
* Fixed a bug which prevented finished downloads from being properly handled by Limewire (on Windows only).

1.0rc1 (6/10/03):
* Usability improvement: Search panel only allows you to enter a keyword search when N.A.G. is connected to the Gnutella network. Otherwise, shows message asking you to wait!
* Logarithmic volume controls on main volume fader and variable volume scaling.
* Usailibility improvement: "Play x songs at once" setting accounts for max simultaneous downloads and shows choices and updates accordingly.
* Fixed a bug which could cause repeated "File I/O" errors.
* Added tool tip help.
* Fixed a bug which could prevent N.A.G. from properly cleaning up upon shutdown on Mac OS X.
* N.A.G. now properly stores limewire-related settings and does so independently from those which an installed copy of Limewire uses.
* Several minor tweaks to fading / crossfading algorithms for smoother playback.
* Expanded documentation and sectional navigation in help window.
* On Mac OS X, N.A.G. now connects more quickly to the Gnutella network when you launch the program.
* Fixed several bugs which sometimes prevented aborted downloads from properly aborting. (Disabled approximate match swarm downloading in Limewire, which was contributing to the problem.)

0.8 (5/26/03):
* Completely reimplimented crossfading using Quicktime Tweens. This makes it much more efficient and reliable!
* Fixed a bug which could bring down the entire GUI thread when canceling searches or search results.
* New feature: Manual download control is now available by unchecking "automatically queue all search results for download" on the search tab. Then, NAG only tries to download the search results which you explicitly tell it to download by selecting them and clicking the "download selected result(s)" button.
* New feature: Turn incoming search requests into outgoing search keywords. When this option is selected, NAG will create new keyword searches when it is not downloading at full capacity by taking incoming search requests and turning them into new keyword searches.
* New feature: Completed downloads may now be deleted or moved to a user-specified folder.
* New feature: Looping can be set to loop all songs when waiting for new data or to loop just one song when no songs have downloaded new data.
* When checking artist names and song titles to filter duplicate search results, NAG now uses an approximate string matching algorithm which accounts for minor changes in spelling, punctuation, whitespace, etc.
* Fixed a bug which could cause NAG to display duplicate search results which had the same file size when it should not have displayed them.
* Additional filter option: filter duplicates if artist _or_ title match.
* Fixed variable rate calculations to enable variable rate even when update rate is very fast.
* Proactive periodic garbage collection.
* Fixed additional thread synchronization bugs and memory allocation bugs which could cause crashes.
* NAG now automatically filters out search results with small file sizes, eliminating most spam.
* NAG now shares files once they have completed downloading.
* New gnutella controls: max simultaneous uploads, listening port, number of connections to keep alive.
* Updated icon. (Previous icon had been almost entirely transparent, making it difficult to double-click from the Mac OS X Finder.)
* NAG now stores user settings in a preferences file so they are remembered the next time the program is launched.
* Fixed a bug which could occasionally cause NAG to cut off the first or last name of song Titles and Artists in the query and mix displays.
* New Feature: NAG can vary the volume of individual songs based on their throughout (as with playback speed).
* Improved error handling and reporting.
* Fixed several bugs which could cause NAG to continue to list downloads in the Mix tab even after they had been aborted.
* Gnutella stats now include number of directly-connected peers.
* NAG is now less likely to cause audio clicks and dropouts while reading portions of downloading songs from disk into memory.
* Fixed a bug which could delay updates to the "status" field on the search results table.

0.6 (4/6/03):
* Fixed synchronization bug in "Now Playing" display which could bring down the entire GUI thread.
* Moved gnutella network stats to network panel so they can't be confused as tabulating search results. (Thanks, Marlon!)
* Respaced GUI elements in Network panel.
* Further improved problems handling a large number of queries received all at once.
* Optimized code to dramatically improve performance and reduce performance-related problems in many situations.
* Fixed a bug in "status" column of results table which could cause query results to erroneously show up as "queued" when in reality Limewire had returned a specific error message or other status information.
* Fixed a bug which occasionally prevented N.A.G. from properly displaying Artist, Title, and Bytes information about a download if no artist information was available.
* Fixed a bug which could cause N.A.G. to take an extremely long time (up to 10 seconds) to discover that new songs were being downloaded if the update rate was set to a very "subdued" amount.
* Fixed a number of problems related to computation of variable playback speed.
* Fixed a bug which could occasionally prevent a song from advancing to new data if loop mode was enabled.
* Fixed a bug which could cause play and stop icons in "Now Playing" table to display improperly after a complete or aborted download had been removed from the "Now Playing" list.
* Fixed a bug that would prevent N.A.G. from playing songs with "MP3" extensions (instead of "mp3").
* Put new restrictions on the fastest possible update rate, such that it now varies depending on how many simultaneous streams are playing. The more simultaneous songs playing, the faster the update rate may be. (This prevents single songs from playing for extremely short -- too short -- amounts of time, in which case they may sometimes never fade in too a loud enough level to be audible.)
* Smoother crossfade transitions from one song to the next. (Fades are now curves instead of linear.)
* Fewer and less severe audio clicks during crossfades.
* Using a different build of the Limewire core which is better optimized.
* N.A.G. can now automatically abort downloads which have been stalled for a period of time (see network tab). This ensures that all of the download slots don't get "used up" by inactive downloads and helps N.A.G. continue to download and auralize songs when left unattended for long periods of time.
* New options about how to identify and filter duplicate search results (see network tab).
* Fixed a bug which could sometimes prevent songs from looping more than one time.
* Fixed a bug which often caused counter displays to display the wrong time.
* Fixed a bug which could cause finished downloads to continue playing forever (and never be cleaned up) if looping was enabled, even if the download had been removed from the "now playing" list.
* Fixed a bug in Quicktime tasking thread which could cause occasional audio dropouts, especially when update rate was set to a slower value.
* Improved functionality over slower Internet connections.

0.5 (3/24/03):
* Fixed problem in which main window would not fit on screen if resolution was 1024x768 or smaller.
* Added "active downloads" display which shows info on all currently downloading songs. (This is a replacement for the inadequate "Now Playing" display.)
* Default initial focus now goes to keyword search text field.
* Attempts to intelligently display artist and title information instead of just dumping the filename.
* Results list should now properly update when the status of a result changes.
* Results are no longer constantly resorted by status (this made selection of results awkward).
* Multiple results may be selected at the same time.
* NAG properly moves completed downloads from the "Incomplete" folder to the "mp3" folder. (These folders are located within the NAG package on Mac OS X and within the NAG Program Folder on Windows.)
* Fixed (or at least dramatically improved) a problem which could bring the NAG GUI and audio threads virtually to a halt if a very large number of search results (>15) were received within a few seconds.
* Resolved a number of issues which could cause clicks to sound when a song began or ended playback. There are still some minor issues which cause clicks under certain conditions, or if the CPU is overloaded.
* Limited maximum and minimum possible playback speeds to avoid extremely fast or slow rates which could lead to other problems.
* Added preliminary documentation.

0.4.5 (3/13/03):
* Fixed problem which caused "About" dialog to take an extremely long time to appear.
* New icons and splash screen.
* Windows GUI set to system look and feel (not metal, as it was before).
* Error message displays if you try to search before N.A.G. connects to any gnutella hosts. (Before these searches were simply never sent.)
* Search panel now shows total results next to each active keyword search.
* New gnutella parameter to limit the maximum number of returned results from each unique host.
* If NAG can't find QT Java on windows, it displays a more informative error message and takes the user to the NAG website for auto-detection and install of QT6 and QTJ.
* Quick start now in the help pane.
* On Windows, now installs properly into "NAG" folder (instead of "MetaMix" folder).
* Fixed bug which could occasionally cause RuntimeException in limewire thread (and bring down the entire limewire thread).
* NAG.jar is no longer compressed (for faster program launch time).

0.4 (3/3/03):
* Initial private beta release.

About
Download || Audio Samples || Screenshots || Artist's Statement
Documentation || F.A.Q. || Release Notes || License
Back to turbulence.org || Back to jasonfreeman.net

“N.A.G. (Network Auralization for Gnutella)” is a 2003 commission of New Radio and Performing Arts, Inc., (dba Ether-Ore), for its Turbulence web site. It was made possible with funding from the National Endowment for the Arts.

Site and all contents copyright (c) 2003 by Jason Freeman