JCAMP Data File Viewers

Macintosh Viewer last updated on: Monday, 21-Sep-2020 15:08:39 CDT; size: 10M bytes

Download the Macintosh Jcamp Viewer.

Windows viewer last updated on: Monday, 21-Sep-2020 15:08:51 CDT; size: 17M bytes

Download the Windows Jcamp Viewer (32 bit).

Windows viewer last updated on: Monday, 21-Sep-2020 15:09:02 CDT; size: 19M bytes

Download the Windows Jcamp Viewer (64 bit).

Linux viewer last updated on: Monday, 21-Sep-2020 15:08:28 CDT; size: 18M bytes

Download the Linux Jcamp Viewer.

This version of the viewer has the capability to directly download and process raw FID data files from the UWSP data server. Some very brief documentation (and dated) on the data processing capabilities is available here.

Here is a screen shot taken on an iMac 3/26/2020.

Click on a thumbnail on the left to switch spectra. Twenty NMR and twenty IR/MS spectra max.

JCAMP-DX spectral files are best displayed using the JCAMP viewer as the Chime plugin(Windows only) seems unable to display spectra with a large number of data points in an AFFN JCAMP data file.

All jcamp files on this site can be viewed as well as those on the NIST web site. In general, all compounds on this site will have infrared, 1H, 13C, and mass spectra. The viewer reads and saves in AFFN format only. It can read compressed JCAMP formats, but writes only AFFN format. See the official JCAMP specification site for details.

General Viewer Features:

All spectra can be expanded in both X and Y coordinates via commands or buttons on the screen. Click and drag will outline a region which can be expanded or displayed via an inset window. Expansion will automatically rescale the Y dimension to bring the largest peak to full scale. Annotations (simple text labels) can be added via the annotation button (toggles on and off). These annotations will be saved if the file is saved via file:save. Right click on a peak will bring up a contextual menu. One of the options is 'Mark peak' which will produce a label showing the X coordinate of the peak. Labeled peaks will also be saved if file:save is executed. Automatic peak picking results in identification of all all peaks above the threshold which can be adjusted via on screen controls. A peak table can also be displayed.

In general, anything displayed on screen can be printed or copied to the clipboard. If Quicktime is installed, the screen display can be saved in jpeg format suitable for direct display on web pages. All jpeg files on our web site were created using this feature of the viewer. Other picture formats may be available as well depending on your system configuration.

Infrared Spectra:

Infrared spectra in the database were recorded and converted using a Nicolet FT-IR spectrometer. The default display format is % transmittance versus wavenumber (cm-1), but absorbance is also available. This default can be changed via the preferences dialog and may be overridden by preferences within the JCAMP file itself.

Mass Spectra:

Mass spectra in the database were recorded on a Hewlett-Packard GC/MS and converted to peak table format using software delveloped locally. Normal expansion and labeling is available.

1H nmr spectra:

Proton nmr spectra can be displayed in both Hz or ppm assuming the spectrometer observe frequency is available in the file header. The default can be changed via the preferences dialog. In addition, automatic integration can be performed. Raw FID data is available for some compunds in both JCAMP ntuples and MacNMR format. The viewer can read and display the real or imaginary portion of the JCAMP FID. We currently use the Bruker JDX export feature of Topspin 3.6 (400 MHz) to make files available for courses and research at UWSP.

13C nmr spectra:

Carbon nmr spectra can be displayed in both Hz and ppm assuming the spectrometer observe frequency is available in the file header. The default can be changed via the preferences dialog. Raw FID data is available for some compunds in both JCAMP ntuples and MacNMR format. The viewer can read and display the real or imaginary portion of the JCAMP FID.We currently use the Bruker JDX export feature of Topspin 3.6 (100 MHz)to make files available for courses and research at UWSP.

Nifty features:

  1. Save as JPEG has been added to the file menu and works on both platforms if Quicktime 4 is installed. Another way to get files into a word processing document.
  2. Copy spectrum to the clipboard now works on Windows and Mac platforms.
  3. NMR spectra can be displayed in ppm or hz.
  4. An inset button has been implemented which displays the selection in a floating window while maintaining the full spectrum display in the main window. The inset is dynamically updated when a new region is selected in the main window. The inset window can be moved and resized. When the inset window is closed a copy of the inset window is displayed on the spectrum. Multiple insets can be displayed and edited. Insets are copied to the clipboard or printed as displayed.
  5. Buttons to display the integration trace, peak pick and peak list have been added. The preferences can be set to show some of these data upon file open.
  6. Chemical formulas and chemical structures can be pasted into the currently displayed spectrum. They will be saved in the data file (Macintosh only).
  7. The contents of the peak list, structure and inset windows will be copied to the clipboard or printed. High resolution printing on postscript printers has been implemented and functions well. It may fail on inkjet printers. Testing is in progress.
  8. Display of the ##Title line from the data file on the spectrum is now optional.
  9. A simplistic spectrum overlay capability has been implemented to overlay spectra of the same type. An overlay button will appear when two or more comparable spectra are opened. Only the first three will be overlaid.
  10. A Database item has been added to the file menu which allows direct access to the whole database from the viewer over the internet. This is hard coded into the application and points at http://pslc.uwsp.edu/ initially. A preference item is now available to allow pointing at a local web server. In addition to the above URL, the database is also available at http://pslc.ws/spectra. This may be modified at some point to allow direct access to the database stored on a local drive or CD. Search facilities may be added at a later time.
  11. A special JCAMP file format has been contructed to allow students to access problem sets via the viewer. Several features of the viewer are disabled when files of this type are loaded. Try this URL after installing and configuring the viewer.
  12. Multiple editable inset capability has been added. Insets will print to postscript printers.
  13. A new file menu item has been added which brings up a minimal web viewer to access the UWSP spectral data server.

Change log:

3/23/2020 Cleaned up the one comments in problem sets and sized the dataaccess window based on 
number of questions.

3/22/2020 Added ability to display a one short line comment in red to problem set window for each question.

3/20/2020 Still having problems with multiline Annotations being read and displayed properly from a jdx
file. I will try using app.cr to get line feeds properly encoded. I think line feeds are properly encoded 
in annotations now, but annotations are still somewhat problematical.

I have modified the show all spectra call so the window is maximized. The same is true of the plot
selected spectra.

3/19/2020 Putzing around with Annotations, but can not seem to use mouse location to see an annotation
on the spectrum.

3/17/2020 Changed the mouse assignments in plot and xlocmouse to local rather app.MouseCursor designations
which seems to reduce the flip/flop between the plus and arrow pointers. This may also fix the jerky behavior on
the 4K screens in 422. Rats that did not work.

3/16/2020 Changed some of the mousemove code in process and spectradisplay windows for better efficiency.
Experimenting with aggressive optimization build setting to see if I can get better performance with the 4K
display systems in cbb422.

3/15/2020 Changed xlocmouse label to multiline in an effor to get mouse_color and mouse_fontsize on windows.
Moved xlocmouse height and width calculations into mouse move so the label would not overwrite too many lines.

3/14/2020 Fixed error reading ir files saved in absorbance mode. Moved title display to bottom left of plot canvas.
Printing four spectra on one page seems to use fonts that are a bit too large and some annotations are way off
the page for nmr spectra. We are at 3.0.0(beta12)

3/11/2020 Fixed an error that occured when I converted NUMANNOTATIONS to annotationsnum globably. Annotations
in older files would be ignored. This required changing commands(24)="##.NUMANNOTATIONS="
 and the savefile routines in spectradisplay and process windows.

3/8/2020 It appears that I have Annotation positions just about right on both process and spectradisplay windows
and have increased to 3.0.0(beta11) which will be deployed to labs and the pslc web site.

3/7/2020 The only thing that is left is to get the Annotations routine working properly.

3/6/2020 As I implemented the improvements of 2/19 through 3/1 I manged to incorporate the errors that caused 
the rapid screen flicker described on 2/10. I am going to try copying components of the 3/1 build into the 2/10 build
stepwise to get a verion with all of the nice improvements without the screen flicker. 

I have moved the prefs window from 3/1 version and gotten the spectradisplay and process windows to properly use
the new preferences for the mouse cursor. 

I have discovered a read error for the older nmr files in my problem sets that is apparently fixed in 3/1. Ok. It is
fixed now. The screen flicker on windows is gone witn the spectradisplay, but is still there with process windows.
So I am going to compare spectradisply on the 2/23 version that fails with the current  version in this build to 
try to find the changes. Looking at the trace file when I compare spectradisplay to process windows the problem
appears to be related to a resize event. I finally found the problem in the readprocess routine at line 889 where
the routine decides how to size the windows. By making this routine identical to readfilespectradisplay the
screen flicker was removed.

Little gotchas: TextField textcolor fails on windows. I had to use a TextArea to see the color on both platforms.
I have added a space whenever the width of xlocmouse is changed to leave room for all characters.

3/1/2020 The annotation feature is being worked on. As of this date the annotatefield is set up to change height as
the number of lines of text increases. The annotatefield width is not being changed dynamically and the field will
wrap the text when it gets too long. When annotations additions are turned off, but still showing the mousecursor
is changed when the mouse moves over the string (this does not work correctly yet. Ultimately I want to be able to
click on an annotation and drag it to a new location with the text floating a the mouse cursor. Kind of like the current
floating x location of the mouse which is working quite well including fontsize and color changes.

2/27/2020 app.cr set chr(13) for mac by mistake. Changed to chr(10), line feed so the file save routines work properly.

2/22/2020 annotatefield textcolor set default textcolor for annotations. Significant modifications have been made to the
annotate routines for the process window(annotate menus also) to get the text properly stored and placed on the plot canvas. Fine tuning is
still required in order to set the y position of the text (x position looks good). I also added the abillity to change the size and
color of the text that follows the mouse around the spectrum. Most of this only works in the process (nmr) window.

Similar capabilities are coming for IR and Mas Spec displays.

2/20/2020 Fixed spectrum redraw when mouse is between vertical markers. I almost have the annotation feature working
properly. I just need to get the location and text into the correct array positions. I need to set the annotatefield textcolor
and size and clean up the annotation menu items.

2/19/2020 Several verbs have been deprecated (Textsize = fontsize; stringshape = textshape; mylog.append = mylog.addrow; 
.text = .value; ubound =lastrowindex. A file read error for files that contain only the real nmr spectrum from the 200 MHz 
system has been corrected. The mouse movement on the spectrum now displays the xposition in the spectrum.

1/13/2020 After a lot of experimentation I finally got the insetleft and insetright input fields to work on the inset window. I found
that converting from a textfield (single line) to textarea (multiple line) got things working. A few more experiments to format the
text in these fields to six digits plus a decimal point using format(val,"###.###") commands. Floating the mouse over the textarea
is the only reliable way to select all of the text. The return and tab keys will move from field to field in the inset window. 

1/5/2020 Fixed issue with thumbs out of sync with spectra open by resizing the newthumbs canvas in the drawthumbs method
of the process and spectradisplay windows. Added title display to readnewfile window.  Next I will try to show progress bar
during integration process since it is rather slow. 

11/3/2020 Finally got progressbars to work during decodeing of nmr files. I have not been successful getting floating labels to work on 
spectradisplay windows. At some point I should get a progressbar working for other slow processes like integration and FFT. It is
time to increase the version number.

1/1/2020 An error cropped up reading some Bruker nmr files that resulted from improper inspection of the number of points during
decoding which was repaired by carrying the nPoints varialbe into the decode routines. An attempt to get ProgressBars working
during decoding using threads did not go well. I also tried to use the more modern (httpsecuresocket is deprecated) URLConnection,
but it just doesn't work. So... I added a floating label to the nmr window. I will attempt to add this feature to the spectradisplay windows
also. A formating issue with the integrationlist and peaklist textareas was corrected.

6/12/2019 Changing the peak pick threshold may change the integral table if integration has been performed. This was addressed
by calling normalize_integral in the keydown event of the threshold field.

6/10/2019 Fixed spectradisplay window activate event so overlay works properly avoids race condition by commenting plotrefresh code. 
Changed auto peak picking code in spectradisplay window to select between 25 and 35 peaks at first request with appropriate threshold 
value displayed so user can modify it as desired. This probably will not work well for spectra with a sloping baseleing, but
you can't have everythin

6/8/2019 Fixed spectrum display lost upon first opening a file. Fixed race condition in spectradisplay - threshold control due to
thresh is recalculated. New property mythresh was used to store threshold value for process and spectrdisplay windows.
Fixed file save routine for process window to allow saving just the displayed real values for use on the pslc web site. Modified
auto peak pick for IR spectra so users could change the threshold and get more or fewer peaks picked. Will change the initial
auto peak pick so that 30 peaks are selected at first use to avoid way too many or too few peaks being labeled.

5/25/2019 Finally found the problem with the last spectrum loaded was not being plotted in the window resize event
where a self.refresh drew a blank window. Added a preference (app.print_peak_table) to add the peak table to
print outs and jpeg files. It turns out the mac version can create PDF and PNG files also.

5/3/2019 Fixed issues with closing spectradisplay windows becoming out sync with what windows was actually closed.
4/12/2019 After considerable experimentation I believe I have removed all of the race conditions that were causing
stack overflow conditions.

3/30/2019 I finally have problem sets working propperly so spectra display when they are opened by setting spectrum_redraw
true whenever the activate event is fired. A lot more paint events occur as a result, but a redraw does not require a complete
regeneration of the picture - just redraw the current picture in spectrum.

3/21/2019 There were a lot of problems with insets which I believe are fixed with this version for the process windows.
I had to reinstitute the insetspectrum changed variable to only plot it when necessary. They work pretty slick now.
I still need to get them working for spectradisplay windows and deal with the situations that may occur when both
a spectradisplay and process window are editing an inset.

3/19/2019 I tried compiling the mac and windows version to test windows functionality and found that the menus
do not appear at all. Apparently this was caused because I removed the default menubar when I first created the
project. So I created a new project (JCAMP menu) and populated the original menu with my new items and copied all
the windows and modules into JCAMP menu. The menus now work in windows 10 and I have changed the windows build
to use the MDI interface and optimized the initial window and all subsequent windows to maximize screen use. At some
point I will have to change from multiple windows (up to 40) to multiple modules that can contain all the spectral parameters
of a spectrum to be build in a main window, but for now I will stick with multiple windows. 

I have added another mouse cursor that shows 'click to expand' text to the cursor which only works on the mac because
windows cursors are limited to 16x16 pixels(I think). Dragging a textbox around for this purpose cause graphics under
the textbox to be erased and I didn't want to restore it programatically any more.

Working on makeinset which seems to close the makeinset window whenever I click on the active window and then replots
it. Lots of calculations required! So I need to check if reploting the inset window is required.
2/17/2019 Fixed crash when multiple files are loaded at one time. I had to remove window close on the winows with
HTTPSecureSockets were part of the session. I also implemented a search on all URLlinks of open files to prevent
a file being opened more than once. spectradisplay has trouble when trying to use tools on other panels. Something
is causing them to go back to the initial default. Opening all problem set files and then opening an NMR file causes
mythumbs scrolling to be really slow.

1/26/2019 Ran the analyze project feature of the compliler to identify unused variables and deprecated functions.
The deprecation of Nativepath from the FolderItem tools to NativePath just does not work as advertised. For
now I will stick with Nativepath until I figure out what I am doing wrong, if anything. I have added scrollwheel
support to the mythumbs window and it works very nicely. The open folder menu item has been tested and 
seems to work ok with four save files. The special cursor I added (mouseplus in app.readmouse method) only seems
to work in the process windows. No go in the spectradisplay windows for now. Added a separate peak listing in
process window for marked peaks in the proton spectrum.

1/13/2019 Added mythumbs window to the app to act a a selection sidebar so users could scroll through open
spectra and click on the the one they want to view in the main screen. Tools would change to support the type
of spectrum they select.

1/6/2019 Spectradisplay now works properly with makeinset and drawthumbs. Now I need to fix the progressbar for data downloads and the 
scrollbar for the thumbs canvas to support 20 spectra or more?
1/3/2019 Fixed the makeinset problem by seting to inset_spectrum_changed to always true. Probably ought to jsut remove that property

1/1/2019 Integration trace error upon delete was fixed when it was discovered that I forgot clear all of the variables properly.
It appears that some variables do not get passed correctly from the process window to the makeinset window. I suspect that similar
errors will occur for the spectradisplay window. Specifically makeinset.left and makeinst.inset variables do not pass properly. It
was fixed by creating i and i1 to pass these variables to makeinset (really strange?) in the process:insetpushbutton method.
At this point, I still do not know why the inset spectrum does not display when first opened.

12/28/2018 The vertical line marker now appears reliably in the integration routine for normalization and integration marking.

12/27/2018 Upgraded to xojo 2018 release 4 which required considerable changes in programing approach and allowed for
a more simplified user interface. The bug that some times included small integration ranges was removed. The bug that caused
the integration traces to go very negative when an integration range was removed was squashed. Larger thumbs are now displayed along
the left border in a growing canvas that will be scrollable (some day). As before, clicking on a thumb will cause it to be displayed in the
main screen.
11/13/2018 Increased integrateranges arrary to 500 to handle really noisy nmr spectra.
Readprocess has been modified to include filename in process windows title.
10/28/2018 Add fix to process/spectradisplay mouse down event so thumbnails work in the windows app.
Commented out the self.SetFocus in the plot.paint event so makeinset would retain focus to work properly.
Modified the readnewfile process/spectradisplay routines to use the display resolution set in the prefs.
Hide search and web buttons for problem set windows or if they closed.
Insets can be edited in windows app when first created, but it appears that edit inset fails after that.
1/1/2018 Added Copy File URL to edit menu so students can copy the URLs into their notebooks.
12/31/2017 Added normalize_integral to the end of the integral on off routine so the integral traces and table
would be bettered formated. Added a line count and average chemical shift to the integral table to
help with proton nmr analysis. Cleaned up the comma separated peak list line to show proton shifts a
little more clearly(Could probably add a coupling constant estimate to proton analysis).
Changed the default threshold for baseline analysis so some small signals in
carbon nmr would be identified. Changed the size of the integral window so all variables would be
11/19/2017 Adjusted top of integration sliders back to top of plot canvas.
10/10/2017 Added buttons to process and spectradisplay to select web or search windows. Changed
the peaklist table generators to show only peaks marked if peakpick is off.
10/9/2017 Fixed bug in process:savefile that resulted is saving real data only for nmr spectra. For the
moment, only ntuples format will be saved.
8/2/2017 Fixed bugs that display the wrong peak list when switching windows. Turned off Integrationlist
when spectradisplay(ID or MS) is front most window. Added thumbnail displays to the top of
all windows that are actually buttons to allow navigation between windows. Thumbnails are updated
with all window changes. Set default window size to maximum width and height for the system.
5-2-2017 Enabled inset button when range is selected with the mouse. Changed version to 2.8.2.
3-22-2017 I forgot to initialize integrals_font_size when it was declared which apparently
resulted in a 'zero' designation which resulted in very small print text unless it was initialized
via the preferences dialog. This was fixed and version number was increased to 2.8.1.
2-22-2017 A student discovered an app crash in the filesave routine. The default title from
the Bruker contains slashes (/) and this title is used for the default filename in the save
dialog which is not allowed in filenames for windows and a crash results. A ReplaceAll was
used to change all slashes to spaces to prevent the crash. Apparently the save dialog will
check for invalid characters in the filename a user types into the save dialog. Did a replaceall
in the savejpeg routine also.
2-20-2017 The windows version went into a continuous loop when peak pick was selected
because an automatic search for TMS and spectrum refresh occured. The spectrum refresh
was turned off and the apps were recompiled to correct the issue.
2-5-2017 It appears we have a problem accessing spectra from off campus in problem sets.
Apparantly a 301 error is being returned as a result of redirection. This error check was added
to the http requests.
1-23-2017 Fixed bug in spectrum printing caused by wrong textsize setting in process 
and spectradisplay.
1-13-2017 The bug that caused the main display to show the inset display when insets were being
edited with peak picks turned was fixed by turning off peak pick until the inset was deleted or
inset editing was stopped. Changed the overlay command to the more accurate stack command.
Fixed a bug in the stack/overlay command that caused a crash. The integrate button now initiates
an auto-integrate very similar to mNova in capabilities. Clicking the clear all integrals button now
keeps the system in integrate mode so hand integrating can be performed.
12-15-2016 Fixed a bug in the spectradisplay close routine that would cause a crash whenever
a spectradisplay windows was closed.
11-19-2016 Fixed a bug in the inset counting routine that would generate a negative
insetsnum count and cause a crash. Inserted the app.peaks_font_size into the
peakpick routine so spacing would be corrected when large fonts are selected.
A temporary fix in the process:plotinset routine  
that forces a replot of the process:plot canvas during inset generation. There is 
something wrong occuring when peakpicks are on during inset creation that
causes the inset display to be mirrored in process:plot.
7-20-2016 Fixed the wandering normalization peak problem and modified the read
routine so it would properly read and display saved integrations. Now at version 2.7.0.
7-18-2016 Changed version number to 2.6.9 and recompiled to include most recent
improvements for world wide access.
7-15-2016 Removed 200 MHz nmr log menu item. Removed auto-integrate button and 
modified integrate button code so that an auto-integration is performed on the first click.
The integral used for normalization is now marked with an N. The auto reset of amplitude 
when integration is turned on was fixed.
6-21-2016 Added an automactic reference setting routine to the process window 
(assume TMS at zero - auto_set_TMS_ref method) that is run before each peak pick. 
It assumes that TMS located somewhere between 0.1 and -0.1 ppm and then searches 
for the maximum peak in this range after which it sets this peak to zero.
6-20-2016 Modified all URL request code so both http and https requests are supported.
6-16-2016 An algorithm was added to the carbon-13 peak pick to differentiate 
CDCl3 solvent peaks. The peaks list window now generates a comma
separated string that conforms somewhat to standard ACS journal format. 
More deuterated solvents will be added as time allows. Changed integration display
so traces would be plotted above peaks and below peak picks.
6-10-2016 Improved peak and integration discrimination algorithms for proton nmr 
so the auto integration routine works better. Peaks outside integration regions are
marked with the grid color to differentiate them from peaks inside integrals. These 
peaks are omitted from the peak list window. The peaks list window now generates a comma
separated string that conforms somewhat to standard ACS journal format. The S/N 
is used to select the peak picking threshhold. Fixed spectrum offset calculation in 
the auto process button code.
6-4-2016 Copy marked peaks table with spectrum copy implemented. Overlay 
in process Window expansion,contraction and inset plotting fixed. Adjusted mark
peaks to select all peaks within 3% of max in range.
3-2-2016 Added spectrum reversal button to the process window.
2-17-2016 Fixed peak label printing to laser printers so the whole label prints 
properly. Made the vgrid and xgrid default color a bit darker so it shows
up better when printed.
01-13-2016 Extracted $$ D1  from Bruker header which the relaxation delay. 
Important for proton and carbon spectra where T1 is relatively
large for some spins. Increase to 5 x largest T1 if peak is barely visible in 
carbon or accurate proton integration is required.
12-20-2015 Fixed grid line drawing for process and spectradisplay windows. 
Added pref items to turn x and y grids off/on independently and allow
color selection. Grids are now on by default. Added pref item to control 
fontsize for integral text. Fixed convert to Hz on save then convert back to PPM so
proton integrals are properly retained. The mark peak and mark peaks 
ContextualMenu items have been restructured and cleaned up to work with
nmr and ir spectra.
10-2-2015 Fixed horizontal grid to be fixed at 10 divisions with no labels.
9-12-2015 Added horizontal grid as default when grid is turned on. Will 
be default at first use. Fixed J value button so it is enabled  more appropriately. 
Added a Mark Peaks ContextualMenu that will try to mark all peaks in the selected range
based on the current threshold setting. It seems to work fairly well for 
nmr data. Somewhat less effective for IR and MS.
1-7-2015 Fixed window size for 1280x960 pixels.  Added ability to change 
overlay x, y, intensity and color from the overlay table.
10-5-2014 Fixed problems with improper suffix/extention on windows platforms.
8-15-2014 Added the ability to change some font sizes.
6-30-2014 Fixed x,y export in process window when only real values are available.
6-7-2014 The readfile routine was modified to read picospin jcamp files (missing ##END= line).
5-6-2014 The sort bug in the j vlaue calc routine was fixed.  A delete button was 
added to makeinset window so it would be more obvious how to delete an inset.
4-19-2014 Found some serious errors in JDXDecompressor. The DIF/DUP method was 
failing to change the lineindex properly and the dup count routine was increasing 
the dup count one more than requested. There are still some calculation errors 
in the coupling constant calculation routine. It might be nice to try some multiplet analysis.
3-30-2014 Fixed dataaccess and specdata floating window visibility bugs during 
2-24-2014 Fixed integration error when there were zero integrals in 
intregral_calc_ranges. Fixed autoplot on first open in spectradisplay.
1-11-2014 Added mouse wheel preference selection. Default is mouse wheel support off.
Fixed annotate function in process and spectradisplay.
12-13-2013 Added d key detect in Search_jdxlist so we don't have to mouse over 
to the download button.
Fixed spectrum replot on window resize.
Fixed show integrations and marked peaks in file saved by viewer.
Fixed process file save so peaks, coupling constants and integrations would be 
written and read properly.
9-7-2013 Fixed bug in spectradisplay that caused contract button to be displayed, 
but disabled. Version 2.5.0
9-2-2013 Modiefied setref window so chemical shift EditFields can be stretched to 
show more figures. Modified peakmark routine so that peaklist Window appears 
to the right side of the spectrum window.  Annotate still does not function properly.  
Another day on that one. Increased to version 2.4.9.
8-31-2013 Changed the default widths of the columns in overlay listbox and 
turned on column resize for the overlay listbox.
8-25-2013 added trace feature to process and makinset windows which can be 
activated from the prefs windows. Edit sectradisplay to support new makinset
8-24-2013 Added utilities module - convert boolean to string. Changed process.save 
to save in hz mode using hz/point and ouput ##.SHIFT REFERENCE=. 
Also modified readprocess to give ##.SHIFT REFERENCE= preference in ppm reference 
of nmr spectra.  Numerous corrections to makinset and process windows
to support mouse enabled x and y expansion. Edit insets works correctly for nmr.
7-29-2013 Added proper conversion of offset in Bruker FID jcamp files.
7-25-2013 Converted java code from JSPECVIEW sourceforge project to decompress 
JCAMP data files in fixed, packed, squeezed, and dif/dup format as produced
by Bruker Topspin 3.0.  It is implemented for the process (nmr) windows only.

Page delivered on Tuesday, October 20, 2020, 10:01:13 A.M. local web server time.
Mail comments to Dr. Robert Badger