ListenUp Release Notes
For JavaSonics ListenUp
Return to ListenUp SDK
V1.54, build 281, August 11, 2005
This release contains numerous bug fixes and improvements related to changes of state while background threads are running. Examples include trying to upload a file while still recording, or calling loadRecording() before the previous load has completed.
- Stop recording automatically if sendRecordedMessage() is called from JavaScript while recording. Fixes [0030]
- Calling sendRecordedMessage() from JavaScript when teh recording is empty no longer throws an Exception. Fixes [0032]
- Abort previous loadRecording() if still running when loadRecording() is called a second time. Fixes [0031]
- Change default values for dynamic range compression to better handle noisy office environments. Previous settings were too strong so noise in office was amplified.
- Force stopAudio in case Applet is stopped while playing or recording.
- Abort loadRecording() if still running when Applet stopped.
- Optimize stop() method for Applets so switching web pages should be faster.
V1.53, build 271, July 15, 2005
- Provide workaround for bug in FootPedal library that caused an address exception if a page was reloaded while using the footpedal. [0024]
- Allow record button of Philips Speech Mike to be disabled by setting Applet parameter "enableSpeechMikeRecording" to "no".
- Do not abort the ListenUp application if loadRecording() fails for an IOException.
- Fix bug that caused a recording alert to appear if JavaScript called record() while playing. The request was ignored so now it does not display the alert. [0015]
- Abort audio downloading in background when erase() called. Fixes bug [0025].
- Use AWT1.1 compatible code so that waveform editor works with Microsoft JVM. Fixes bug introduced in V1.52. [0028]
- Fixed bug that caused ClassCastException when calling record() from JavaScript while downloading a large sound file. [0029]
V1.52, build 257, March 14, 2005
- Added playBetween(start,end) JavaScript method to play a specfied region.
- Compress while recording even if editable option is specified.
If the user does not edit the recording then the audio will already be compressed and ready for uploading.
- Add popup menu when you right click on a selected portion of the waveform.
Let's user Delete selected region if editable option is enabled.
- Dragging mouse off right edge of waveform display selects to end of recording.
- At customer's request, do not show error messages if Phillips SpeechMike
Installation is cancelled or fails.
V1.51, build 254, Feb 14, 2005
- Added support for HotKeys (eg. F7+ALT+SHIFT) that allow you to control ListenUp while using another application.
- Fixed problem with a invalid Speex frame rate causing the next run of ListenUp to fail. [0016]
- Hitting toEnd or toBegin buttons while playing now stops playback. [0018]
- Play button disabled when playing normally, ie. not fast forwarding or rewinding. [0019]
- Hitting toEnd or toBegin buttons clears selected region. [0020]
- Speex compression progress messages no longer show negative percentage when past 30 minute mark. [0023]
V1.50, build 251, Feb 06, 2005
- Added |< and >| buttons to go to beginning and end of recording in "transcription" mode.
- Correct array index exception in PeakCache that occured after recording for 17 minutes.
- Use default uploadFilename of "untitled.wav" or "untitled.spx" if none specified.
- Allow long compressions to be cancelled.
- Added "testSignal" parameter that rapidly fills a recording with sine waves to facilitate testing long record times.
V1.48, build 249, Jan 31, 2005, release candidate
- Added "fileCache" option so that long recordings can be cached on disk. Also store temporary buffers used to upload the audio on disk. This requires the use of a signed JAR file and SUN Java.
- Fixed bug related to the display of recordings longer than a few minutes.
- Added PeakCache class that optimizes the drawing of the waveform for long recordings.
V1.47, build 240, Jan 20, 2005, release candidate
This is a summary of changes since the last official release. It does not include bugs that were created and fixed as part of the intermediate beta releases.
- Add "showWaveform" parameter to use a waveform display instead of the scrollbar.
- Added "editable" support. Editor can insert new audio into middle of recording. Can select portion of waveform and replace.
- Added support for SSL and HTTPS. Works for Java 1.1 to latest version.
- Added support for authentication of uploaded audio data. Added "userName" and "password" parameters. See new section on SSL in documentation.
- Allow loadRecording() to work from JavaScript without having to set an initial sampleURL parameter.
- Added erase() method callable from JavaScript.
- Improved exception and error reporting. Allow user to generate stack trace to send to tech support.
- Refactored audio threads for improved stability.
- Added support for playing immediately after loadRecording(url,true) by passing flag.
- Add loadRecordingNoWait() method callable from JavaScript.
- The loadRecording(url) method now returns an integer to JavaScript. It returns zero if no error, -1 if the download timed out, and -2 if the download failed. More detailed error messages will appear in the Java console.
- Apply code obfuscation for increased security and reduced JAR size.
Added Transcription support which can be enabled using a special license.. Note that the use of ListenUp for Medical Transcription has been licensed on an exclusive basis to a customer. ListenUp may still be used for other non-medical transcription purposes. Transcription features include:
- Support for Infinity Footpedal and Philips Speech Mike.
- Special Fast Forward, Fast Rewind buttons.
- Added speed control so that voice can be slowed down or sped up while transcribing.
V1.46, build 239, beta
- Add loadRecordingNoWait() method callable from JavaScript.
- The loadRecording(url) method waits until enough data has been downloaded that playback can begin. This fixes bug [0008] that was only in a beta version.
- The loadRecording(url) method now returns an integer to JavaScript. It returns zero if no error, -1 if the download timed out, and -2 if the download failed. More detailed error messages will appear in the Java console.
- Fast Forward and Fast Rewind buttons now appear on recording Applets if "transcription" parameter is set.
- PositionScrollBar is no longer pegged right when recording. This fixes bug [0007] that was only in a beta version.
V1.45, build 234, beta
- Suppress error messages when footpedal cannot be started or is unplugged at customer's request. Note that device driver will still put up a small HIDWatch alert if footpedal is unplugged while being used. That cannot be suppressed.
- Added support for playing immediately after loadRecording(url,true) by passing flag.
- Added support for sampleURL in RecorderUploadApplet.
- Added isRecording() method to PlayerApplet for JavaScript that just returns false. [0009]
- Fixed bug relating to loadRecording() of a Speex file followed by erase(), record() and upload() from JavaScript.
- Fixed bug in PlayerApplet if no sampleURL specified, followed by loadRecording().
- Fixed bug that caused Record button to not be enabled after loadRecording of a Speex file. [0002]
- Fixed bug that caused only initial part of a long recording to be shown in WaveForm display after loadRecording(). [0005]
- Added wait after exec of SpeechMikeServer to prevent race condition the first time it is launched.
- Clear start/stop points when recording is erased or replaced by new recording.
- Fixed autoPlay for sampleURL in PlayerAPplet. [0006]
- Fixed compatibility issue with MS JVM and Java 1.4 for "OggXiphSpeex.jar". [0010]
V1.44, build 223, beta
- Automatically download and install native libraries for footpedal and Philips Speech Mike for ListenUpTranscriber.jar.
- Improved exception and error reporting. Allow user to generate stack trace to send to tech support.
- Prevent ListenUp Java from calling JavaScript during page refresh. This could crash FireFox browser.
- Fixed bug that caused SecurityException if calling loadRecording() then record() from JavaScript.
- Prevent access exception in footpedal library if footpedal not plugged in.
- Fix intermittent NullPointerException in waveform drawing.
V1.42, build 211, beta
- Added support for Philips Speech Mic using native 'C' server application "transcription/SpeechMikeServer.exe".
- Allow editing of pre-recorded messages.
- Moved erase() functionality to audio thread to prevent race between stopping and erasing.
- Allow erase() from PlayerApplet.
- Do not display ugly error message if footpedal not plugged in.
- Plugin installer uses a target of "_self" when openng the browser window. This gets around the trouble caused by popup blockers.
V1.41, build 209, beta
Fixed some bugs introduced in V1.40
- Read "transcription" permission properly from license file.
- Thumb draggable again in speed control slider
- erase() method now calls stopAudio() which updates buttons
- Moved key controls to numeric keypad to prevent interference from footpedal's 'f' and 'w' keys.
V1.40, build 208, beta
- Added "editable" support. Editor can insert new audio into middle of recording. Can select portion of waveform and replace.
- Support for Philips Speech Mike. (KeyListener misbehaving in browser.)
- Reduce memory usage when compressing audio files for uploading.
- Moved transcription support to new package. Enabled by setting "transcription" parameter to "yes".
V1.34, build 206, beta
- Added "trusted" keyword support to license.
- Allow loadRecording() to work from JavaScript without having to set an initial sampleURL parameter.
V1.33, build 200, beta
- Added support for SSL and HTTPS. Works for Java 1.1 to latest version.
- Added support for authentication of uploaded audio data. Added "userName" and "password" parameters. See new section on SSL in documentation.
- Added slider that controls playback speed for transcription mode.
- Use separate doc pages for basic player and recorder Applet instructions.
V1.32, build 193, beta
- Fix NullPointer in GUI start code for RecorderUploadApplet
- Trap NoSuchMethodErrors and report to user.
- Fix potential divide by zero in DynamicGainControl
V1.31, build 192, beta
- Add "showWaveform" parameter to use a waveform display instead of the scrollbar.
- The following features require a special "Transcription" license.
- Added support for Infinity Footpedal
- Add transcription controls for fast-forward, slow-forward, rewind.
V1.30, build 191
- Allow Pause while recording.
- Support for loadRecording() call from JavaScript. This lets JavaScript play a file using ListenUp. Requires LiveConnect, which is available on Windows. See "http://www.javasonics.com/demos/forum/forum_play_scripted.php" for an example.
- Support for "ulaw" compression format. This is a 2:1 compression format commonly used by telephone equipment.
- Fixed bug that could cause previously recorded material to be included with uploaded Speex compressed audio. Other compression formats not affected.
- Improved silence trimmer so that it will now turn off after two seconds if the audio input is below the threshold.
- Improved browser navigation in SDK.
- Align text fields created using fieldName_#
- Added "minFieldLabelWidth" parameter to set width of column for aligning text fields.
- Improved documentation.
V1.22, build 177, 4/15/04
- Fixed bug introduced in V1.19 that caused a NoSuchMethodException when
loading, and prevented record() from working when called from JavaScript.
The bug only affected operation with Microsoft Java 1.1.
V1.20, build 173, 4/5/04
- Support "showLogo" parameter if "nologo" string is in license.
V1.19, build 170, 3/26/04
- Allow JavaScript to tell ListenUp to start a recording when using Sun Java plugin. ListenUp used to generate a SecurityException.
- Display small window with recording animation to warn user when recording is triggered by JavaScript.
- If Sun Java certificate refused, then display an exception when an attempt to record audio fails.
V1.14, build 158, 1/18/04
- Use HTTP_POST_VARS in PHP scripts so that they will work even if register_globals is off. A description of register_globals can be found here in the PHP manual. A detailed explanation of security issues related to can be found here.
- Upload recording in a background thread instead of the AWT thread. This wil prevent an apparent hang of the GUI when uploading large files over a voice modem.
- Fix bug that caused NullPointerException if page refreshed when Applet was in an IFrame. IE calls start() again without calling init() first. Bug was due to removing null Label in start() method.
- Added Applet parameter "debugLevel" that allows web designer to turn on diagnostic messages. Value="0" for terse, "1" for informative, "2" for verbose.
- Added timestamps to diagnostic messages printed to the Java console.
- Send diagnostic messages in a background thread to make the Applet more responsive when using "diagnosticURL".
V1.11, build 153, 11/24/03
-
Added support for "u8" format which will produce an unsigned 8 bit WAV file.
This is a common format for PC based telephone devices such as the Dialogic card.
-
Fixed a bug in the dynamic range compressor that used decay times incorrectly.
This was causing some unpleasant wavering in volume when the compressor was turned on.
V1.10, build 151, 11/18/03
-
Listenup no longer waits for message to be completely downloaded before allowing playback.
If the download rate is more than 2X faster than the playback rate, and we have buffered several
seconds worth of audio data, then playback can begin. This allows you to start playing very
long messages within a few seconds even over a voice modem.
-
Improved error message shown when license file is missing.
-
HTTP server response codes are now checked and reported if not in the 200-299 range.
-
Improved Exception handling so more possible Exceptions are reported to diagnosticURL.
-
Fixed bug that caused user message to play even if Applet
stop()ped while playing welcome message.
V1.02, build 146, 10/30/03
- IMPORTANT - Changed name of jar files from "JavaSonicRecorderUploader.jar" to
"JavaSonicsListenUp.jar" and from "JavaSonicRecorderUploaderUnsigned.jar" to "JavaSonicsListenUpUnsigned.jar".
Please make appropriate substitutions in your HTML files.
-
Playing of sampleURL continues automatically after welcomeURL is played.
-
Added "readyScript" parameter to PlayerApplet to tell JavaScript when Applet is ready. This
is used to prevent JavaScript from calling the Applet too early.
-
Handle mixed case domains, eg. "JavaSonics.com" in License Manager. Was failing to validate license in Netscape.
V1.01, build 144, 10/20/03
-
Fixed permission check in LicenseManager to allow special priveleges.