
starting from 20 august 1998

20-08-'98: when stopping the contour routine (other matNMR windows still open) 'Qaswaarden' was
	cleared and therefore no longer global. When restarting the contour routine the parameter
	was not made global again. Then this parameter is not updated when using the zoom function
	which in turn makes the fast-link to the mesh function fail: the axis values are not
	taken through then.

20-08-'98: the axes in the contour plot weren't passed through properly when going to the mesh
	routine. Combined with this the spectrum itself wasn't passed through correctly.

20-08-'98: Some things related to peak picking:
	- the peak list wasn't cleared when making a new absolute contour plot.
	- saving a peak list into a data structure when the variable is not yet a structure was
		not implemented yet.
	- restoring a peak list did not work for absolute contours
	- saving text labels did not work properly

20-08-'98: the programming structure of the contour routines was improved slightly.

20-08-'98: if an apodization function has been chosen for a 2D matrix it is not possible to do FT
	before 'apodize' has been performed. Also setsize has been blocked in this way.

20-08-'98: removing a color bar from a mesh plot did not work properly.

20-08-'98: saving a peak list as an ASCII did not print the text labels.

21-08-'98: starting nmr when cont or mesher was already running gave problems because matNMRinitvars.m
	was started again, thereby reinitializing variables

21-08-'98: the frequency axis for a gamma>0 nucleus was not done properly for 1D spectra. The plot was not
	updated after the axis had been calculated.

21-08-'98: changing the marker in the matNMR main window did not work very well as the default size was set
	too small.

21-08-'98: larger line widths and marker size made possible in the cont, mesher and stack3D routines.

21-08-'98: line widths and marker sizes can be entered in the line properties menu too.

21-08-'98: deleting a single line from a peak list did not clear the entry in the peak list.

24-08-'98: the fast-link from the contour to the mesh routine sometimes gave errors when the
	increment in the axis was too small. The num2str then did not give enough precision.
	In stead now a temporary axis is created which is used by the mesh routine.

24-08-'98: 2D integration from the contour window is now possible. The spectrum is saved in a
	user defined variable in the workspace. If the variable already is a structure the
	history is appended with the integration information.

24-08-'98: symmetrization was not written in the processing history.

24-08-'98: the function of the "zero phases" button was changed: now it sets the phase values back
	to zero and restores the spectrum for these values.

25-08-'98: An extra option was added such that users can define whether they want a "are you sure"
	before quitting each matNMR window.

25-08-'98: changing an axis in the contour menu did not change the Peak list thereby not putting
	the text labels in a new position.

25-08-'98: whenever an axis is saved in a structure (with a peak list) it will be drawn the next
	time the spectrum is reloaded

25-08-'98: restorepeaklist.m gave an error NOTICE whenever a spectrum was loaded of the shape "r+r"
	where r is a structure!

25-08-'98: using a user-defined axis did not work with the peak list yet ...

26-08-'98: all matNMR variables start with a capital Q now !

27-08-'98: the last 10 names of 2D spectra that have been loaded are in memory, like for 1D spectra.

27-08-'98: when loading a binary FID the name that is given to the variable is put in the list of
	last 10 spectra. That way they can more easily be loaded without having to type in the
	whole name.

28-08-'98: A refresh button was added to the Legend window for the following reason :
	Whenever the Legend-menu is started it determines all handles in the current plot and it
	saves this in the userdata of the figure. When lines are added or deleted this list is
	no longer complete and this can give error NOTICEs. So whevener you want to make a
	legend for the altered plot, press "refresh" and the legend windoiw is updated properly

28-08-'98: Some errors had occured because of making all variables start with a capital Q

28-08-'98: redefining the axis ruler of a 1D plot interfered with the legend in that figure.

28-08-'98: setting the text properties did not respond immediately because the changes were performed
	in the wrong axis. Only redrawing the figure made the changes apparent.

28-08-'98: the phasing buttons are now enabled when doing a baseline correction because else the
	backup variable which is used to restore the spectrum is not updated.

28-08-'98: loadfid gave an error whenever a structure was loaded with the form :
		var(x1:x2, y1:y2)
	and (x1:x2, y1:y2) did not fall in the size of the hypercomplex part.

28-08-'98: the same problem as occured with contzoom (see 20-08-'98) also occured in the 1D menu.
	also there the userdata in the zlabel of the current axis is cleared after the new axis
	is plotted under the plot.

31-08-'98: a "get position" was added to the mesh routine (the same as for the contour routine!).

01-09-'98: when an axis in the contour or mesh routine is selected it is highlighted. However when
	printing the plot this highlight was not removed and showed up in the plot.

02-09-'98: when entering a user-defined spectral frequency in the "Axis Rulers" menu's the edit
	button did not appear over the original popup button, making the menu's useless.

08-09-'98: reading the axis from a spectrum structure was not implemented yet for the mesh routine
	and the main routine.

22-09-'98: simpelplot.m was altered slightly as the resetting of the X-limits was taken out. If this
	is needed now then use resetXaxis.m after simpelplot!

22-09-'98: defstates.m was not updated yet to use the variable Qtempvec1 for the TD2 domain. Therefore
	errors occured when reloading a row when coming from TD1.

24-09-'98: updating the text properties in a contour or mesh window did not work for windows with
	multiple axes (subplots)

24-09-'98: a multiplier was added to the relative contours. When the multiplier is 1 the contours
	scale is linear, when it is bigger then 1 the scale follows an exponential. By playing around
	with this multiplier one can emphasize either the lower (take > 1) or the upper contours (take < 1)

25-09-'98: when printing a contour or mesh plot the "select axis" property was switched off (to prevent it from
	being printed!)	but not switched on again ...

25-09-'98: when changing the screen settings for the contour, mesher and stack3D windows the window is
	closed and redrawn. Until now however some button handles were not given through
	to the MATLAB workspace which gives errors when matNMR tries to acces handles that are
	connected to buttons.

25-09-'98: A menu item was added to the options menubar for restoring all defaults as they were saved in the
	matnmroptions.mat file.

26-09-'98: it is now possible to have 5x5 and 6x6 subplots in the contour and mesher windows

28-09-'98: until now after stopping the main routine or contour, mesher or stack3D routine all
	globals were cleared. This was not a good idea and has been changed.

28-09-'98: regelintegrate.m did not check whether the variable name (that is given by the user) really
	exists. If it doesn't now a new variable is made.

28-09-'98: the Qtempvec1/2 axes were not reset when changing the size of a 2D spectrum

29-09-'98: a pcolor plot can now be made from the 3D mesh window. Furthermore the uimenus have checkboxes
	now that denote the state of the zoom and/or rotate3d functions.

29-09-'98: the color mapping can be chnaged for contour and mesh plots now from the "manipulations" menu.

30-09-'98: color bars were not updated immediately when changing the colormap. Now they are.

06-10-'98: When processing phase modulated spectra one needs to do a complex FT in TD 1 of QFT1. QFT2 is not
	used in principal. However the phasing routines are based on Hypercomplex processing so for selecting
	columns QFT2 is always used. And so in four2d.m after the FT of QFT1, QFT2 is set to sqrt(-1)*QFT1.
	This seems to be all that is needed to implement phase modulated processing in matNMR (Phew!).

06-10-'98: The machine format is important when reading binary FID's. Sofar always the native format was
	used but from now Bruker and Chemagnetics data are big-endian and WinNMR little-endian format.
	Should there be a need I can always add a menu item with various machine formats however.

06-10-'98: Arno wanted to be able to save a spectrum directly to disk. This can now be done from the
	menubars

06-10-'98: The windows devices in the printing menu were placed in a silly position such that it was
	not very obvious were to find them. Now they are under the other devices. Much better ...

12-10-'98: A refresh button was added to the T1 and peak fitting routines with which one can upload the
	current FID or spectrum into the routines.


13-10-'98: An extraction routine now exists for the contour routine and the main window.


====================================================================================================
Bug fixes / Improvements for matNMR 2.0 for MATLAB v5.2 and above:
starting from 13 october 1998

13-10-'98: whole echo processing should now be possible.

13-10-'98: the dwell calculated in the shearing routine and shifting gaussian apodization was
	based on TPPI experiments. Now this has been corrected.

15-10-'98: when making an axis in a 2D contour or 3D mesh plot it was difficult to see where the
	full crosshair was positioned when selecting the reference point. Now the crsshair2d
	routine is used to show the current position when moving the cursor.

16-10-'98: in the peakfit window when selecting a radio button, the one that was previously
	selected did not turn off.

16-10-'98: saving spectra to disk did not allow to give multiple variables and a separate file
	name

27-10-'98: the getdiag.m made the diagonal a real function, now it also has the imaginary part.

29-10-'98: when giving a variable name for an integration value (in 2D integration) then the
	correct value is taken but it is not plotted properly in the processing history.

29-10-'98: when extracting part of a contour plot, the axes were not saved in the structure
	whenever the user had made axes in ppm/hz.

29-10-'98: axes that were saved in a structure were not plotted when asking for a absolute
	contours.

30-10-'98: whenever a spectrum is saved (either to the workspace or to disk) it will be put in
	the list of 10 last used names

30-10-'98: dual display did not filter the given name properly. Therefore spectra in structures
	were not recongnized at all.

06-11-'98: when doing 1D baseline correction the red lines connected with the defined peaks weren't
	removed afterwards and when working with relative y-scale, the baseline was not also
	scaled in the same fashion.

06-11-'98: A shearing factor option was added to the shifting gaussian apodization function for echo's
	as the echo in a MQMAS will be shifted with the same factor.

06-11-'98: The static part in the shifting gaussian apodization functions was removed as this was
	complete nonsens anyway

06-11-'98: For doing a "copyfig" command it is needed to stop the rotate3d or zoom-function.
	Else MATLAB would give errors.

06-11-'98: A "CopyFig" command was added to the menubar of the stack3D window.

06-11-'98: Sofar the view was not preserved when doing a CopyFig command.

12-11-'98: The definition of the shearing factor was inverse to what it should be. So it is
	actually defined as the point where the echo comes in the 2D FID. So
	t2=ShFac*t1

12-11-'98: the fourier mode taken when switching dimensions was always the default fourier mode
	as saved in the options. Now when you change it, the next time you'll see the change
	without having to change it each time.

13-11-'98: before now the frequency axes for gamma>0 nuclei did not work properly. Now the plotting
	of a spectrum is independent of how the vector is stored in matNMR. So the axis for the
	plot determines how the spectrum will be plotted. Works both for 1D and 2D !!

13-11-'98: stats2d.m: the last chosen type for the axis was not remembered and so each time the buttons
	were set to ppm and gamma>0.

13-11-'98: the plotting routines have been slightly improved in the sense that the apodization is
	implemented more naturally.

16-11-'98: now the stack3D routine automatically takes the current axes in both dimensions when
	making a plot. Before the second dimension was always taken in points ...

17-11-'98: Defining peaks during baseline correction on a spectrum with an axis other than points
	does not yield proper results because of the new plotting (see 13-11-'98).

20-11-'98: Some of the variables in the contour routine were reinitialized each time the routine
	got started. This was not very good and now these variables are globals again. They also
	aren't deleted anymore when stopping the contour routine.

20-11-'98: The axes offsets and increments are now global variables. This menas they don't have
	to be calculated each time over.

24-11-'98: There was a difference between the formats of 1D and 2D structures. This could give
	errors whenevr the user would save a 2D structure in a 1D structure. Now they always have
	the same elements, but for a 1D they are empty variables.

24-11-'98: A 1D TPPI was added to be able to process old Bruker	qseq data.

27-11-'98: Several small errors connected to changing the plotting routine (13-11-'98) have been
	repaired now.

27-11-'98: Qlinedata.m works more consistent now. Before not all lines were plotted with new settings
	when doing a dualdisp. And also asaanpas.m did not take into account the settings for
	the linewidth and Markersize.

01-12-'98: In the axis rulers menu for the contours, the input window for a user-defined spectrometer
	frequency was positioned over the input window for the name of the vector.

01-12-'98: The definition of the shearing factor was still not good. The echo in t2 is found at
	shearingfactor*t1 and this shearing factor should also be used for the shearing routine.

01-12-'98: When cancelling an apodization the button still remained at its last chosen type of
	apodization function.

01-12-'98: A warning NOTICE is printed to the screen when the user want to do a shearing transformation
	from a dimension other than TD1 (Qdimensie = 2) to alert the user that the default FT mode in TD1
	will be assumed.

03-12-'98: The FID-status variable denoting whether the plot is an FID or a spectrum (difference in plot-
	direction) did not handle the descending axes very well	(connected to frequency axes changes of
	13-11-'98)

03-12-'98: When changing the axis tuler in a 1D plot with multiple spectra, a distinction has been made
	between whether the plot direction has been changed because of the new axis. If so, the plot will
	be reset and all multiple spectra will be lost.

03-12-'98: The dual display did not function for descending axis yet (connected to the frequency axis
	implementation of 13-11-'98)

03-12-'98: The restorepeaklist.m gave an error NOTICE when the user tried to display a structure with
	certain coordinates. So the string "StructName(s:t, x:v)" was not rechecked such that only the
	variable name "StructName" remained. This gave an error.

05-12-'98: The help function has been slightly improved (but really only slightly!)

07-12-'98: A time axis was added to the 1D menu

07-12-'98: The simpel_restrict.m which is used in the prefitting of T1-fits did not use its own
	restriction file and this can give erros

11-12-'98: After extracting a part of a contour plot now the spectrum can be redrawn automatically afterwards.

11-12-'98: Both the contour and mesh routine now keep track of the processing history of the spectrum currently
	shown in that window.

15-12-'98: Some axis properties can be changed from the matNMR main window now, like xlim and xscale
	(and the corresponding y and z properties)

19-12-'98: A Start was made to create a super title function in the contour and mesh window. First
	the askedittext.m was improved such that also font properties can be changed. Then the
	peak picking routne was tested to see whether this works with the new routine.

19-12-'98: Super title now works

04-01-'99: 2D linear prediction in TD1 did not work properly for backward prediction. The vectors
	were not transposed which creates a matrxi problem.

05-01-'99: The ContZoom.m (adapted MATLAB zoom routine for the contour routine) did not work
	properly with the SuperTitleAxis. This was because of a very silly way to activate
	the current axis by the zoom.m.

06-01-'99: When extracting an area from a contour plot it is possible to choose to redraw the
	extracted spectrum, but it was not checked whether the current contour plot is a
	plot with relative or absolute contours. Not it is ...

07-01-'99: When extracting an area from a contour plot it is possible to choose to redraw the
	extracted spectrum, but the original title and axis labels were not preserved.

08-01-'99: The size of the help/History window has been enlarged by 50% (WOW!)

14-01-'99: when saving a peak list in a structure it was possible to make the QFT1 variable
	into a stucture, making matNMR to create errors.

27-01-'99: when selecting an axis in points for a 1D spectrum from the menubar, the Qstatuspar
	was set to the value for time and not for points, which would give the wrong initial
	setting when starting the stats1d.m function.

01-02-'99: in all windows there is now a menubar option "Plot Manipulations". This item takes
	care of all plot manipulations, like axis properties, titles, boxes etc, etc.

09-02-'99: When pressing the reset figure button the title was not preserved in the resulting
	plot which is annoying.

10-02-'99: Some more subplots have been added to the list (3x4 and 4x3) and the RestoreSubplots.m
	was updated (some older subplot types were not yet incorporated).

10-02-'99: QuiInputFig was not a global variable and this could give error NOTICEs when trying to
	start up a matNMR routine.

10-02-'99: the setfourmode routine was changed such that it now sets the Fourier mode to what
	it is for the current dimension. Previously it reacted negatively (Qdimensie=1 so the
	value has to become the value of Qdimensie=2).

17-02-'99: detsovern.m did not function properly anymore with the current version of matNMR and
	has been improved.

18-02-'99: sofar the colorbar function was not upgraded to function with subplots.

20-02-'99: the zoom routines in cont.m and mesher.m did not work properly with the subplots as
	only the current axis was set to 'view([0 90])' and not all.

22-02-'99: Before plotting a mesh of contour plot the proper window is first made the current
	figure.

02-03-'99: It is now possible to give search specifications when doing peak picking. That way
	certain peaks can be excluded by the algorithm without the user having to play tricks
	or be very careful when selecting the area.

02-03-'99: The shearing transformation routine was still not correct as the following concept
	was still not clear: for whole echo acquisition, complex (T1) and States processing
	shearing transformation in the time domain is possible. However for TPPI data this can
	only be done in the frequency domain as no complex data exists in T1. Therefore in
	the main window a distinction has been made between shearing in time and in frequency
	domain.

02-03-'99: The matprint.m has to check whether a figure window contains patches because they
	will be printed using the colormap, even on black- and white printers. Sofar the "-P"
	option was not included in this check but from now it is. It is much more likely that
	a user will print the figure on a b/w printer. For color plots the user first has to
	make a regular postscript first and then send the file to the printer manually.

03-03-'99: The type of dual display last used is now remembered by matNMR (WOW!)

03-03-'99: The shearing transformation still wasn't clear and the entry of 02-03-'99 is
	bullshit!

04-03-'99: An anti-diagonal has been added to the list of various views in the 2D mode.

04-03-'99: The History was not passed on to the cont and mesher routines when giving 'QFT1'
	as the variable name. Also when using 'Qcontspec' in the mesher routine the History
	will be passed on now.

08-03-'99: The changing of the axis types and limits can now be done for all subplots at once
	in the contour and mesher windows.

09-03-'99: The integration value is now remembered for the "set integral" routine in cont.m

12-03-'99: The axis in the matNMR main window now has tag = '1' to conform to the Subplots.
	Eventually maybe also subplots will be introduced to the main window.

12-03-'99: When going into the peak fitting routine with a spectrum on a frequency axis the
	spectrum wasn't taken properly. The routine to indentify from where to where to take
	the spectrum did not respond well to

18-03-'99: When doing a phase correction in TD1, then the values are not zerod on the screen
	because when the user wants to change them a little this will not give a new line in
	the history. However when doing a baseline correction or anything else on the FID/
	spectrum the repair function must be called to zero the values. All 1D functions have
	been checked for this now.

18-03-'99: A "reload last binary FID" function was added to the file menu in the main window.
	This functions skips the searching for the file (uigetfile) and opens the matNMR
	input window for the details.

22-03-'99: When doing a "reload last binary FID" the new name wasn't stored.

24-03-'99: Finally the reprocessing from the history has been implemented, together with
	limited macro capabilities.


====================================================================================================
Bug fixes / Improvements for matNMR 2.1 for MATLAB v5.2 and above:
starting from 24 march 1999

24-03-'99: The font size that is used by Quiinput.m was static. Therefore when the user
	defines its own ui fontsizes in the "screen settings" menu they were not changed
	accordingly. Now these sizes are set to be the defaultUIfontsize + some value.

24-03-'99: The shearing in frequency domain is now done using interpolation.

26-03-'99: The setting of tick positions and labels is now possible from the plotmanipulations
	menu

26-03-'99: A routine for setting the integral of a 2D spectrum has been added to the matNMR main
	window menu bar. This was necessary because the same option already existed in the
	contour window and also this action needs to be added to the HistoryMacro and so also
	a regular option in the main window was needed.

28-03-'99: the transpose function had been forgotten for the reprocessing from the history.

31-03-'99: Some more axis properties have been added to the "plot manipulations" menu

01-04-'99: In the stats1d and stats2d menus it was always possible to set the spectrometer
	frequency using a popup button. This however is quite unusefull as this was specific
	for the spectrometers we had in Nijmegen. Now always an edit button is used.

06-04-'99: Apodizing TD1 from a macro did not work properly because the size of the FID was
	not taken properly.

06-04-'99: The same holds for putting on a user-defined axis.

06-04-'99: The sum projection routines now take the current axis in the concerning dimension
	in stead of an axis in points.

06-04-'99: The LinearAxis routine still wasn't foolproof....

07-04-'99: Apodizing a 1D spectrum from the history did not work because the apodization was
	not made effective after it was calculated in RunMacro.m

03-05-'99: MatNMR did not start up when using version 5.3. This was because this version
	number was not taken into account in the matNMRinitvars.m script.

12-05-'99: The checkinputcont.m and checkinputmesh.m have been improved such that it is
	now possible to enter coordinates with the name QFT1 in both the contour and
	mesher windows. Now when the name 'QFT1(200:340, 120:650)' is given, also the
	axes are taken accordingly.

19-05-'99: Yet again a bug in the shearing routines ... will it ever end ?
	This time the shearing in the frequency domain did not work properly as the dimensions
	were mixed up in the code, creating chaos for unequal matrix sizes. Furthermore the
	calculation of the shearing factor was not calculated correct (old way).

20-05-'99: When pushing the "define peaks" button, while doing baseline correction, previous
	peak definitions were not removed from the screen. As this is not so nice, this has
	been changed.

12-06-'99: The contour and mesh routines did not check whether a user-supplied axis was of the
	correct length which easily gave errors. Now only a warning NOTICE is given stating the
	problem and taking an axis in points instead.

12-06-'99: A new colormap has been added. This is based on QPosNeg but starts with white and then
	goes to magenta and the rest of the QPosNeg colormap.

12-06-'99: A reset figure was not applied after doing a 1D baseline correction which can cause
	some problems because the plot on the screen isn't actually what the spectrum is.

13-06-'99: When doing an extract2d matNMR did not check whether the current row or column was
	still a possible value. Now it does. Furthermore now the range has to be given in the
	units of the current axes rulers (like in the contour routine).

13-06-'99: The "various views" options did not always take the correct FIDstatus.

18-08-'99: When loading a new 1D or 2D spectrum/FID the QHistory is reset and all new information
	is written in it. However an error could occur because the maaknew.m and loadfid.m
	files did not check the QHistory variable properly. It was only checked for being ''
	and not for being empty (isempty(QHistory)).

24-06-'99: A "clear History" was added to the main window because when you load a variable that
	already has a History connected to it, all consequent manipulations will be appended to
	it and this is not always wanted.

01-07-'99: The check that was implemented on 12-06-'99 for the length of the user-supplied
	axes in a contour or mesh-window was not done for absolute contours. This has been
	corrected.

01-07-'99: When trying to edit text labels belonging to picked peaks (in the contour plot) when
	having plot a spectrum that already contained labels in its structure, then as error
	occurred. This was because the buttondownfunction of the text label was not correct as
	it did not use the new function askedittext.m but tried to do it itself.

01-07-'99: It was possible to make the supertitle the current axis and put a plot into this,
	which of course is not what the subplots are meant for ...

08-07-'99: It was possible to do a baseline correction followed by selecting another axis or figure
	window and then to accept the baseline correction. Then the replotting of the spectrum
	was sometimes done in the wrong window.

08-07-'99: When saving the peak list in a structure variable then it checks whether the curren
	variable name is 'QFT1', i.e. the default name coming from the main window. When this
	name is not 'QFT1' then it automatically saves the peak list in the current variable.
	However, the routine in both cases is the same and therefore needs the 'QbuttonList'
	variable to be 1 (i.e. the OK-button) else when the QbuttonList<>1 then it will
	cancel the saving of the peak list.

08-07-'99: When resizing a 2D variable to a size smaller than the previous one from a row or
	column number that doesn't exist after the resizing, an error occured because matNMR
	did not correct the row and column numbers.

12-07-'99: A long known bug was that the adjustment of the QPosNeg colormap, especially designed
	for plotting contour plots with both negative and positive parts, did not always put the
	color green at 0, even though the code wanted it to do this. Turns out that the color
	scaling axis (caxis) is not set properly by MATLAB to exactly the minimum and maximum
	of the contour levels. Now it is and so it works.

12-07-'99: Instead of wondering how to handle the negative contours I have implemented the
	following: now the user can choose between only positive, only negative, positive and
	negative, relative to the respective positive and negative maxima or positive and
	negative relative to the positive maximum. Let the user himself use what he likes best.
	I don't care.

13-07-'99: The stack3D window now also has a SubPlot structure (axis number is a tag) such that
	the plot manipualtions always work.

13-07-'99: Some more items of the plot manipulations menu have been converted to the GUI-driven
	type.

14-07-'99: A bug has crept in the regelmesh2.m as this was partly copied from the regelcont.m.
	What happened was that when seeing that the user-given axes were not of correct length
	it set the Qcontvec1 and Qcontvec2 instead of the Qmeshvec1 and Qmeshvec2.

15-07-'99: The handle for the axis of the super title has been made invisible because it turned
	out that the rotate3d function was able to access it. And that was not allowed.

20-07-'99: All top-level callbacks from all menubars have been changed to submenu callbacks
	because MATLAB admits there is a bug on several platforms with this.

20-07-'99: A super-title has been added to the mesher routine (why wasn't this done at the
	same time as for the contour routine ???)

20-07-'99: A function has been added to the mesh and contour routine to plot a series of spectra
	into a set of subplots. The input matrix must be a 3D matrix where the first dimension
	defines the number of spectra to be plotted.

20-07-'99: The input filter for Varian filters has been corrected as the previous version was
	based on a completely wrong notion of the format. Now it should work properly for all
	combinations of formats possible in VNMR.

22-07-'99: A small bug in askhold.m concerning the call to the ishold-function caused an error.

26-07-'99: The direct callbacks in the CopyFig.m were not taken out yet.

26-07-'99: The separation sign used for separating directories on a MAC is ':'; this was never
	clear to me and so it was never used in matNMR.

11-08-'99: Stopping the raster routine did not work anymore because of a wrong tag that was given
	to the figure instead of to the axis

12-08-'99: The subplots for a 5x5 arrangement were numbered incorrectly.

13-08-'99: When changing the font properties from the "plot manipulations" menu colorbars were
	not included.

13-08-'99: A second colormap for plotting positive and negative contours has been added. This one
	only contains the colors blue (for positive intensities), white (for 0) and red (for negative
	intensities). It is calculated in the same way and at the same time as the first one.

16-08-'99: The delete function for a colorbar contains the original axis to which it belongs. This
	was not updated when doing a copyfig command which lead to deletion of the colorbar when
	closing the CopyFig window. Now in the CopyFig.m the deletefcn are removed.

16-08-'99: The display of the integration value when integrating a contour plot was not always
	correct: the string was not evaluated (although it was for the history) and so the
	string was plotted instead of the value.

25-08-'99: When the screen size was not big enough the windows were not created properly as
	they are all defined in pixels. A correction routine has been used: not nice, but it
	works.

25-08-'99: Also the input window could not handle the fact that the screen is not big enough.
	A similar correction routine solves this.

25-08-'99: An error in the copymat script prevented bug fixes to be noticeable

25-08-'99: Also the peakfit and T1fit windows were not adapted for windows smaller than 800 by
	600. This has not been changed! The minimum screen size is 800x600 pixels. Only the
	positioning of the window is handled better and it is resizeable now.

25-08-'99: Also the raster plot window is now resizeable.

27-08-'99: a 1D DC offset correction has been added and the 2D version has been improved

27-08-'99: A new baseline correction function has been added: cosine series. This can fit the
	distortion of the first points better than a polynomial can without having to cut the
	edges of the spectrum (only then a polynomial can fit the baseline properly usually)

04-09-'99: The four more important windows (main, contour, mesh, stack3D) have got a closerequest
	set to the respective stopping routine. This prevents all kinds of mess when a user
	accidentally tries to close a figure.

06-09-'99: The closerequest was not deleted for the copyfig window, which caused problems when
	closing it.

06-09-'99: when phasing a 1D spectrum then the axis was not checked (CheckAxis.m) so when a
	frequency scale was used it could happen that the spectrum flipped left-right during
	phasing. It was however only an optical problem as the true spectrum was not affected
	by it.

06-09-'99: The extract1D function did not allow extraction in the unit of the current axis yet
	(although in all other extraction routines this was already done ... strange)

07-09-'99: When putting on a user-defined axis in the stats2d menu the vectors for TD1 and TD2
	were taken incorrectly (TD1 for TD2 and vice versa).

20-09-'99: Lines can now be moved in the y-direction manually by clicking the mouse pointer on
	them and selecting a destination.

27-09-'99: The rotation property for text objects has been added to the askedittext.m.

15-10-'99: The general options window did not open in the center of the screen which sometimes
	can be ackward when working with MS Windows.

25-10-'99: When trying to read in a set of 2D variables as a sum of them, the checkinput2d.m
	routine tried to check whether all of them are hypercomplex variables (implies the
	matNMR datastructure). If not an error was given. Now instead the variables are read
	but the hypercomplex parts are set to 0 and a warning NOTICE is given.

02-11-'99: The variables in the mathelpprint.m did not start with a "Q", causing them not to be
	deleted when stopping matNMR.

02-11-'99: A distinction has been made between the userdefaxis in the contour and mesh windows.

02-11-'99: The contmesh.m routine was not able to handle axes going from positive to negative
	properly for the determination of the coordinates into the axes vectors.
	Also the stack1d.m and the dispstack3d.m had the same error and have been corrected.

05-11-'99: In the peak fitting routines in the call to the Qeditnum.m routine, the style of the
	button was set to text which means the value cannot be edited from hand but only by
	using the buttons. This was very unpractical.

10-11-'99: The default settings for matNMR are different from the default MATLAB settings and
	some people seemed to have trouble with this. Therefore after quitting matNMR the
	default settings are restored to what they were before starting matNMR.

16-11-'99: A bug has crept into the code because of the change of 02-11-'99: changing the axes
	rulers in contour/mesh windows did not work properly anymore.

26-11-'99: When making a contour plot using line specs the plot is not made up of patches but of
	line objects. The scale2d routine, used for chaning the axes rulers of a plot, did not
	check for line objects, making them not scaled correctly.

29-11-'99: When trying to make a series of contour/mesh plots the name of the variable was only
	remembered after all plots have been made. This is annoying when an error is made in the
	input.

02-12-'99: A start is made with converting all contour/mesh/stack3d windows into 1 unit with
	panels to select what type of plot needs to be made. Until it is finished it should not
	interfere with current running.

02-12-'99: The nextplot parameter for axes was not set to 'replacechildren'. That was the reason
	it was necessary to set the buttondownfcn after each plot action.

13-12-'99: Two typing errors were removed from the input windows of askextract2d.m and asksavedisk2d.m

14-12-'99: A very simple 1D integration routine has been added to the main window.

17-12-'99: Very selfishly I have made sure that when using filled contours (contourf), the shading
	is set automatically to "flat", making the contour lines removed.

03-01-'00: The crosshair2d routine also used the userdata property of the figure. This conflicted
	with the other routines in matNMR (connected to the changes on 02-12-'99) and has been solved
	by letting crosshair2d use the structure in the userdata variable.

03-01-'00: Further work on the integration of all units into 1...



====================================================================================================
Bug fixes / Improvements for matNMR 2.5 for MATLAB v5.3 and above:
starting from 13-01-2000

12-01-'00: Most routines have been checked again to their functionality and seem to work in the
	'new' program. Several bugs have been found and taken out in the process of converting
	everything to the single unit program.

17-01-'00: The colorbar was not updated correctly into the figure's userdata variable.

17-01-'00: The restoring of the matlab settings after quitting matNMR, as defined by the user, was not
	done for the nmr2d.m routine.

17-01-'00: An old problem may have been solved: it was possible to click on a button that generates an
	input window (QuiInput.m) and while clicking moving the mouse out of the screen. This would lead
	to buttons of the input window being placed in the window the mouse moved to. Now in the QuiInput.m
	the parents of all uicontrols are given directly, making it impossible to them being put into the
	wrong window.

18-01-'00: An error in the checkinputcont.m caused that it was not possible to read in a structure which has
	its axes defined in it and plot it directly. (a second try would do the trick)

20-01-'00: When loading an FID that was saved into a matNMR structure then the HistoryMacro was not emptied
	if the user doesn't want to reprocess from this history. Therefore the macro got longer and longer
	without being able to function properly when actually reprocessing from it.

20-01-'00: When trying to print from the 2D/3D Viewer Window menubar an error occurred because the old function
	"printcont.m" was being called. This however is now called print2D3D.m.

21-01-'00: For the plotting of a series of spectra a 3D must be supplied. Now a squeeze is performed so that if
	one or more dimensions are of length 1 then these are removed.
	BTW, all routines now do a squeeze on the given spectrum just to be sure.

21-01-'00: The color axis (caxis) was not set in a mesh plot (like it done in the contour plots: see entry of 12-07-'99).

23-01-'00: A squeeze is also done for 2D and 1D spectra now when loading them.

24-01-'00: The fontsize and rotation angle for the super title are asked for immediately in the input window now.

24-01-'00: The askedittext.m only checked for the fontsizes in its own list. Other numbers were not recognized and
	a wrong value would be taken. Unless the user noted this immediately this (usually much larger) value would
	have to be corrected afterwards again.

24-01-'00: The matprint routine now checks the filename before printing because when an error occurs the figure window
	is usually unusable afterwards (something the print routine does with it)

31-01-'00: A long time matNMR bug under Windows has been solved: the reason the splash window did
	not work properly is that under Windows the main window (that is created but not visible)
	is not the current figure. This means all buttons are created in the splash window and
	the main window ends up empty....

	Qtextlen.m has been fixed as this was written for use with 'points' as a unit only. Now it
	works also with normalized units

	The axis labels/title windows are now made in normalized units as this did not work under
	Window NT either.

	As the handle of the 2D Viewer Panel window is no longer visible, the callback for the
	raster resolution had to be changed (used a gco and this is not updated if the figure
	handle is not visible).

	The call to CorrectWindow.m (used for cases when the figure windows that are defined in points
	are too big for the current screen, can be corrected) has been changed such that the figure
	handle is defined explicitely, instead of using a gcf call.

	The matNMR help window (and History window) is now made in normalized units and uses the
	UI fontsize as defined in the options menu.

	The Axis ruler windows are now also normalized.

	The peak fit routine and the T1 fitting routine are now also normalized and use the same
	font properties as defined in the options menu.

	The font size of the crsshair2d.m is now also correlated to the user-defined ui fontsize
	QUIFontSize.

02-02-'00: The whole echo for 1D was set to "real FT" instead of "complex FT"

03-02-'00: The title option was added to the Plotmanipulations menu in the menubar of the main
	window.

07-02-'00: The QHyperComplex flag was not set when changing the FT mode in the main window.

09-02-'00: The Qaswaarden was not reset when selecting a new axis in the 2D Viewer (SelectAxis.m).

10-02-'00: When the zoom was on in the 2D Viewer and a new plot was generated, the new plotting limits
	were not taken by the zoom, making it possible to zoom out to the old plotting limits.
	Now the 'userdata' of the 'zlabel' property of the axis is updated by default to the new
	plotting limits (as this is used by the zoom routine).

10-02-'00: The axis handle of the colorbar was not written back in the userdata of the figure
	window when making a new plot in the 2D/3D Viewer.
	Furthermore the contcbar.m routine did not update the userdata of the figure when deleting
	a color bar.

11-02-'00: The QuiInput.m window was made resizeable (buttons didn't scale sofar). However the
	text labels do not scale accrodingly yet.

11-02-'00: The windows for changing the title and axis labels are also resizeable now.

11-02-'00: Some more values for linewidths have been added to the plot manipulations menus.

17-02-'00: Sofar the shearing transformation was done vertically. Now for the Frequency Domain
	shearing, one can also choose a horizontal shearing.

18-02-'00: copyfignmr2d.m tried to acces an old non-existent menubar entry for the zoom function.

18-02-'00: dispmesh.m and dispstack3d.m tried to shut off the zoom function but did not check
	whether it was turned on at all. The ContZoom routine always complains if the view is
	not [0 90] even when you want to turn off the zoom function.

21-02-'00: A bug has crept in T1fit.m: while trying to set the 'xdir' property of the graph it
	crashed because no argument was given.

22-02-'00: The printing from the T1 window has been changed. Formerly the printing included the
	uicontrols so the parameters were visible. Now a text object is created before printing.

23-02-'00: Some more changes to the outward appearance of the T1 fitting routine have been made.
	The most important one is probably that the title above the plot is now editable and
	moveable. Furthermore some small cosmetic changes to the printing were done.

08-03-'00: When selecting a figure window the SelectFigure.m did not set the "selected" property
	so it wasn't clear which axis was the current one.

09-03-'00: The suggested solution made on 18-02-'00 did not work properly: if the ContZoom.m is
	always switched off (regardless of whether the zoom was switched on or not) then also
	the rotate3D would be switched off. Now dispmesh.m and dispstack3d.m check whether the
	zoom is turned on or not.

16-03-'00: The peakfit routine crashed when using the noise level function. In this function the
	"hold off" was used and therefore the 'nextplot' property of the axis was set to
	'replace' and not to 'replacechildren'. This consequently made the plot function delete
	the axis tag.

	The viewslice button now shows the number of the slice which is being fit, also during the
	fit.

18-04-'00: The default search profile for getting binary FID's from disk was '*'. This doesn't
	work under Windows and would result in '*.m'. Now for Windows the default search profile
	is set to '*.*'.

18-04-'00: The standard matlab figure menubar was added to the copyfigure window because Arno
	wanted it. Furthermore the buttondownfcn of the figure window was set to 'SelectFigure'
	(the default for the nmr2d window) and this was also wrong. Not it is reset to '' again.

18-04-'00: The size of the display frame for the 2D crosshair (get position in the 2D/3D menu)
	was quite small already but on Windows it is very small indeed (also because the font
	scaling is different from UNIX). This meant the values would not be readable. Now the
	frame and fontsizes are enlarged and better readable. Only for subplot configurations
	of more than 3x3 the bottom left spectrum will be partially covered by the bigger frame.

18-04-'00: An error has been found in the checkinput1d.m: the QExecutingMacro variable was not
	implemented as in the checkinput2d.m. Therefore the reprocessing of 1D spectra was
	totally impossible. (which goes to show that nobody uses this function ever ...)

18-04-'00: A phase factor has been added to the cos^2 apodizing function. Now it's possible to
	shift the maximum of the apodization function and therefore do something similar to
	a gaussian/exponential apodization.

19-04-'00: Many of the uicontrols in the Qlinedata.m, Qscreenops.m, Qoptions.m and Qtextdata.m
	were not parented making errors possible.

26-04-'00: When doing a convertBrukerstates or convertVarianstates then the current 2D matrix
	is transformed into the Chemagnetics type of states FID and then one has to start the
	states processing by selecting the appropriate menu in the 2D menubar. The QFT2 matrix
	is however not changed and when the user pushes the FT button (so not starting the
	states processing properly!) then an errorNOTICE occurred. Now the QFT2 matrix is made
	equal in size to QFT1.

08-05-'00: The dispraster2D.m did not check whether a color bar is present before starting to
	plot a new spectrum. This gave multiple color bars.

17-05-'00: Now an axis can be supplied when doing a dual display. This means the new trace no
	longer needs to be of the same size as the first trace. Furthermore the axis may be
	chosen at will.

18-05-'00: Two buttons have been added to the 2D menu in the main window that allow a fast
	switching between rows and columns by entering the number of the row or column.

22-05-'00: Weird bug: somehow the Bernstein polynomial baseline correction did not work
	anymore because the value connected to it was 4 instead of 2 ?!?!?

06-06-'00: When reloading a new 2D spectrum the buttons added on 18-05-'00 did not reset.

06-06-'00: for determining the caxis (color mapping axis) in a mesh plot the dispmesh.m
	routine used a min(min(Qcontspec)). This however doesn't work for complex matrices
	and therefore it must say min(min(real(Qcontspec))) (or imag or abs)

22-06-'00: An input filter for the SIMPSON ASCII file format has been added to the file menu
	in the main window.

23-06-'00: The input filter for SIMPSON has been changed to the format as described in the
	SIMPSON paper (JMR, may 2000). The original format was probably from an older version.
	The input filter returns a matNMR structure with the spectrum and its spectral widths and
	frequencies.

	To implement this properly a script GenerateMatNMRStructure.m was created that produces
	a generic matNMR structure. This way the definition is stable across all code. So in all
	routines that produce a structure first the generic structure must be created!

23-06-'00: The values for the spectrometer frequency were not updated when changing dimension
	in a 2D.

28-06-'00: I have decided not to implement the filter for the SIMPSON binary format. This format
	basically does a UUDECODE/UUENCODE type of datatransformation and this is rather a pain
	to program. Furthermore it is absolutely unnecessary for matNMR as the SIMSPON ASCII
	format works perfectly fine.

28-06-'00: The transponeer.m, for transposing matrices, did not properly reset the row and
	column numbers. This would give an error if the current row/column number fell outside
	the span of the new dimension size.

03-07-'00: In the current version the 'nextplot' axis property has been set to 'replacechildren'
	because else some important parameters had to be reset after each plot command. (see
	changes 02-12-'99 and 16-03-'00) The problem however now is that in the main routine this
	setting was not done consistently. When starting nmr.m it was set to 'replace' and after
	for example a dual display it would be set to 'replacechildren'. And with this last setting
	the rescaling of the y-axis, which is usually done automaticly by 'plot', does not work
	properly. The 'nextplot' property is now always set to 'replacechildren' and the rescaling
	has been altered.

03-07-'00: The Qspcrel.m script basically scales the current 1D spectrum to its proper values in
	the sense that the user can specify whether he wants relative or absolute scaling. The
	relative scaling only worked for real spectra (not that anybody ever uses this but still).

20-07-'00: An accelerator button has been added for executing a macro from the main window (CTRL-e)

20-07-'00: The input filter for reading Bruker processed data files (2rr etc) has been implemented
	after all.

21-07-'00: The maximum number of input parameters for Qeditnum.m has been set to 25. This means that
	three more pairs of button properties can be passed on to the routine.

21-07-'00: The buttons in peakfit.m have been parented.
	   The peakfit routine can now handle 24 peaks instead of only 4.

24-07-'00: The stack1d.m function now puts tick labels on the X-axis acoording to the axis in the
	other dimension. Furthermore it is no longer possible to start this function from a 1D
	plot. Previously this would leed to an error.

26-07-'00: When using the relative y-scale in the main window no spectrum would be shown when
	the intensity was all zero. This was because the routine only looked at the maximum
	of the spectrum. But if the maximum is zero then the rescaling gave NaN and therefore
	no spectrum. Now the minimum of the spectrum is first set to 0 and then the maximum
	is scaled to 1 if the maximum is not zero.

13-08-'00: By request I have removed the detrend.m from the distribution because it belongs to
	the Matlab distribution (trouble?!?!?) and wasn't used anymore anyway.

05-09-'00: When selecting a figure belonging to the 2D/3D Viewer now also the window with
	panel buttons is pulled up. This way one always sees the panel.

05-09-'00: When giving a CTRL-C (break) while MATLAB is calculating a plot in the 2D/3D Viewer
	and a color bar is present (which is deleted before plotting the new plot and then
	added again), the axis would be unusable because matNMR still thinks there is a color
	bar. A temporary variable has been added and the corresponding status variables are
	changed in the figure's userdata after the color bar has been deleted to prevent this
	problem.

05-09-'00: It is now possible to do a 2D baseline correction on a selected part of the matrix.
	In the input window for the baseline correction there are edit buttons for specifying
	the starting and ending row/column.

05-09-'00: In connection with the selective baseline correction, the "Sum TD2" and "Sum TD1"
	are now also selective.	(see previous entry)

06-09-'00: The 2D->1D functions (diagonal, anti-diagonal, sum TD1, sum TD2, skyline) are now
	also put into the history macro. This means they can be used for reprocessing.

06-09-'00: When adding an axis to a spectrum from the main window the action was always entered
	into the history macro (meaning it was available for reprocessing) but no NOTICE would
	be written into the history (text) except when a user-defined axis was given. This
	has been changed.

06-09-'00: Adding the processing history to an FID did not produce a proper matNMR variable structure
	as regelconnecttoFID.m did not use GenerateMatNMRStructure.m

06-09-'00: When adding an axis to the spectrum from the main window the spectral width and spectral
	frequency were not saved. As this is probably the most reasonable place in the code to
	insert this feature, these two variables are now always added to the processing history.

06-09-'00: Since some time matNMR has been put under the GNU public license. In my enthusiasm I
	have put the GPL license on all m-files, even the ones that already had copyrights from
	other people, or more importantly The Mathworks. As I don't want to get into any silly
	legal troubles all m-files with copyrights do not get the GPL license any more. This
	should keep people happy, I hope also the people from MATLAB (as in principle I guess it's
	allowed to distribute their code freely, although I don't know for sure...)

06-09-'00: At some places I have used a str2num instead of an eval to evaluate a string input.
	This can of course give problems when a variable name is entered ...
	getsweep*.m, regelstats*.m, regelsweepwidth.m have been modified.

06-09-'00: The indicator for the color bar in the 2D/3D viewer was not actively switched when adding
	a color bar.

06-09-'00: The copyright NOTICE in the mathelpdir was still that of matNMR 2.0. It has been updated.

06-09-'00: When reprocessing from the history the variable that contained the peak list for doing
	baseline correction, QBaslcorPeakList, was not cleared. This could lead to errors when more
	than one baseline correction was done consecutively.

06-09-'00: The defaults for saving variables have been changed such that now the history and the axis
	will be added to the variable unless unselected.

07-09-'00: The threshold for deciding whether an axis is linear or not, in LinearAxis.m, was previously
	set to 1e-8. This can give wrong results and has therefore been replaced by 1e-7.
08-09-'00: This whole construction used in LinearAxis is rather silly as I have been using the sum
	over all elements of the second derivative vector. For more elements this is bound to give
	trouble obviously. Now an 'any' is used to check whether single elements are bigger than the
	threshold 1e-9.

08-09-'00: The date and time of processing are now added to the processing history.

08-09-'00: Sofar it was possible to do a baseline correction (both 1D and 2D) multiple times before
	accepting it. The undo function however only remembers the original spectrum. As this doesn't
	make too much sense I have blocked this.

08-09-'00: The change in the 2D baseline correction of 05-09-'00 for doing selected areas wasn't
	complete yet. I had forgotten to make the distinction between a full baseline correction
	and a selected part in the text for the processing history.

11-09-'00: Stepwise reprocessing of macros has been implemented	now. A window is opened and in this
	window the next five steps are shown. For every current step the user has to decide whether
	to perform it or not. In this fashion one steps through the processing macro. By not imple-
	menting this function directly into RunMacro.m it is possible to perform steps and, in between
	two steps of the macro, do other manipulations. This therefore gives much more flexibility.

11-09-'00: The change in the regelconnecttoFID.m of 06-09-'00 still wasn't completely correct.

11-09-'00: The shearing direction (vertical or horizontal) was not yet added to the processing history.

11-09-'00: I've found the matlab m-file colstyle.m. This checks the linespec arguments for the
	contour routine. This is a useful routine to check whether a color specification has
	been given by the user. If so, the colormap and color mapping need not be changed.

12-09-'00: The user-defined function in the RunMacro.m was not correct: it did not clear the
	string before appending the new function. That would give strange results when reprocessing.
	The same held for the stepwise reprocessing.

15-09-'00: As matNMR is also being used by Arno for doing data acquisition he requested me to make a
	start with creating an acquisition interface. For now he only wanted a button to transfer their
	data vector QacqFID into matNMR directly. MatNMR determines whether it is a 1D or a 2D FID and
	reacts correspondingly.

15-09-'00: Arno requested an improvement of the "shifting gaussian" and "shifting gaussian (echo)"
	apodization functions: it would be easy to be able to specify the point in the first slice
	of the 2D FID that corresponds to the echo maximum. Now this is always assumed to be T2=1;
	(basically because now a "swap whole echo" MUST be done before apodizing echo FID's...)
	This also means one has to specify this maximum from now on and for the "shifting gaussian"
	one also has to specify the direction of the shift. These changes made for this do not affect
	the reprocessing of older processing histories. To keep the "shifting gaussian (echo)"
	compatible with the previous versions the echo maximum must be set to 0 after having done a
	"swap whole echo". This is indicated in the input window.

15-09-'00: In doing the previous changes a bug was found in the AnalyseMacro.m for the apodization
	of 2D FID's. The Execution macro was not read out properly.

26-09-'00: A function has been added in both the 1D and 2D menus for removing the Bruker digital
	filter. This facilitates apodizing later. This function can be useful if one wants to be
	sure of the exact linebroadening that is used.

29-09-'00: When extracting a part of a 1D or 2D spectrum/FID from the main window the extraction
	would go wrong whenever a non-linear axis was supplied in any of the dimensions. Now the
	user is notified that a certain axis is not linear and that the extarction ranges must
	be given in points and not in the axis units.

01-10-'00: The previous change to the extraction routines (29-09-'00) has been changed
	again. As it is not so difficult to find the point on the axis vector that is closest
	to the specified range for extraction, this has been implemented now. That means that
	one doesn't have to specify the range in points but just in the unit of the axis!

03-10-'00: A start has been made with adding more comments to the code (requested by Julian).
	today: plotcont.m dispmesh.m, dispraster2D.m, dispstack3D.m.

03-10-'00: Incidentally a bug was found in the stack3dreverse.m. This script determines the
	setting of the xdir and ydir properties of an axis in a stack plot, depending on
	whether the axis is ascending or descending. This has not been changed to use the
	figure windows userdata values for the corresponding axis
		QTEMP1 = get(gcf, 'userdata');
		QTEMP2 = QTEMP1.PlotParams(QContAxisNR).AxisProps

03-10-'00: A new feature has been added to the 2D/3D Viewer: "cut spectrum". This allows to cut
	the current spectrum into slices such that only blocks of the specified ranges are
	plotted. To do this a problem of MATLAB had to be circumvented: when plotting a non-
	linear axis linearly (i.e. every point in the axis vector is plotted equidistant from
	the next point and not according to their x-value) one has to plot a spectrum in points
	(instead of a PPM or Hz scale for example) and then change the tickmarks manually.
	This however means that for example the peak-picking routine will not work anymore.
	To solve this any non-linear axis vector is written in the figure window's userdata.
	The increment is then also set to 0 which is a flag for a non-linear axis. That way all
	routines that require this (crsshaird2D, Extract2D, regelextract, GetPeaks) can also
	function properly.
	Furthermore the axes are always written into the userdata (under the names
	.AnalyserAxisTD2 and .AnalyserAxisTD1). These variables are used now by the foremen-
	tioned routines to be able to handle the cut spectra: i.e. spectra which are plotted
	in points, with tick labels in the units defined by the user and WITH specially
	made axes in these last units for the analysis.
	This works fine except maybe near a cutting line (i.e. a point where
	a jump in the coordinates) but the user just has to take these limits properly.

03-10-'00: When a non-linear axis is used in the 2D/3D Viewer then the whole
	axis vector will be saved in the userdata of the figure window. So now the "get Position"
	and "Peak Picking" routines know what to do with non-linear axes!

03-10-'00: The crsshair2d.m has been changed such that it now also works for non-linear axes

03-10-'00: The Extract2D.m has been changed such that it now also works for non-linear axes.
	Furthermore this routine did not use the figure window's userdata yet to look for the
	axis properties.

03-10-'00: The SelectFigure.m (used for finding the current 2D/3D Viewer window) was improved:
	the current-axis-handle QContAxisHandle was not set (even though the axis number WAS
	determined) and this could lead to not properly selecting the current axis. The value
	for QContAxisHandle would then be [] and this can be dangerous.

03-10-'00: The peak picking routine has been checked again for functionality. Some small changes
	were made as new variables exist now in the figure window's userdata that can be used.
	e.g. the name of the spectrum that was plotted.

04-10-'00: Tick labels and positions are now always set to 'auto' modes in the 2D/3D Viewer to
	be sure old settings don't disrupt the figure.

04-10-'00: The crsshair2d (Get Position in the 2D/3D Viewer) routine has been changed slightly.
	previously the coordinates were shown as real numbers. The coorsponding value in the
	matrix however was always taken from the rounded coordinate values. Now that we are
	using the "AnalysisAxisTD2" (and TD1) this has been changed such that one always sees
	the real coordinate value that corresponds to the value in the matrix.

04-10-'00: The zoom was not disabled properly by the peakpick.m (recent changes haven't been
	done to this routine obviously).

04-10-'00: Sofar the peak list variable QPeakList, used in the 2D/3D Viewer, was set to [0 0 0 0 0]
	when initialized. In a structure however this first line was never saved. Therefore
	this construction has been changed. There is no reason to use this first line.

05-10-'00: The loadfid.m and maaknew.m have (finally) been given decent names: makenew2D.m and
	makenew1D.m

05-10-'00: A bug has crept in the regelplotseries*.m because a temporary variable QTEMP3 was used
	inthere which was overwritten by other routines.

06-10-'00: The default axis layer setting was set to "top". This makes the axis always on top of the
	children.

06-10-'00: The 2D/3D Viewer window was accidentally given a windowbuttondownfunction. This made
	things slower than necessary.

06-10-'00: The main reason for matNMR being so slow in the 2D/3D Viewer is that there are too many
	calls to render the screen. This is very slow and has to be prevented. To improve this:
	-the scripts Arrowhead.m and watch.m do NOT perform a drawnow anymore.
	-the plotting routines from the 2D/3D Viewer (plotcont, dispmesh, dispstack3D, dispraster2D)
	 do not actively select the current matNMR window anymore. This also avoids unnecessary
	 rendering.
	 It was also found that the 'axes' command does not induce rendering whereas the 'figure'
	 does so (in this situation). This has been used now (must be used because the colorbar
	 command does not function unless the current axis is the one you want to put the colorbar in.

06-10-'00: A bug was found for the raster 2D plotting routine: when doing more than one of these after
	another the axis would contain all these plots superimposed. This was because the low-level
	"surface" routine doesn't care about the axis property 'nextplot'.

06-10-'00: from now on the axis variables can be specified directly in the input window for both
	1D and 2D FID's/Spectra from the main window. Sofar it was only possible to specify an axis
	using the entry in the menubar (Plot manipulations-ruler X-axis). The names of the axis
	vectors are remembered, just like the names of the spectra (was already implemented)

06-10-'00: The font list that sofar was defined based on my UNIX workstation have been put in a variable.
	Now the user can define a personal font list from the options menu in the main window.

09-10-'00: When adding a legend the main figure window would be removed from sight. That was because
	the older matlab versions did not put the window back in its original position. Now this
	works better and so the window will be visible all the time now.

10-10-'00: The "display modes" in the menubar has been changed to "2D/3D Viewer" because now only
	the "1D stack plot" was in this menu besides the "2D/3D Viewer". The "1D stack plot"
	can now be found under "various views.

10-10-'00: The input window for a time axis in the main window did not include the possibility of
	saving the axis vector into the workspace.

11-10-'00: From now on the matNMR HTML pages, including the manual, are included with the code.
	This makes it easier for people to read the manual pages as the pictures that are shown
	in the manual are quite big.

11-10-'00: Funny enough the input window for a 3D stack plot said it was for plotting a raster
	plot. This has been changed.

16-10-'00: Defining peaks can now also be stopped by pressing the right (or middle) mouse button.
	Previously only clicking outside the axis would achieve this.

25-10-'00: A non-functional menu-entry was found in the plotmanipulations menu of the 2D/3D Viewer
	called "3D mesh". This comes from the time that the contour and mesh routines were still
	separate routines. It has been removed.

25-10-'00: The cut spectrum routine did not use absolute contour levels when it was supposed to
	as it wasn't programmed to do so. Now it does.

26-10-'00: in the askedittext.m the font list QFontList was not declared as global. This would lead
	to an error when trying to edit the super title (and probably also other text objects).

27-10-'00: The analyser axes were only written into the figure window's userdata from the
	contour routine and not from the mesh, stack3D and raster routines. Furthermore also the
	scale2d.m did not do this, making the peak picking, get position, extract2D, etc
	routines give error NOTICEs or wrong results.

30-10-'00: Some bugs have krept up connected to the change in the QPeakList variable. Now this
	variable is empty when there are no peaks, whereas previously it had a dummy line in it.
	The scale2d.m, GetPeaks.m, matNMR2DButtons.m, regelabscont.m and the matNMRinitvars.m were
	not completely compatible with that yet.

30-10-'00: The crsshair2d.m now uses the analyser axes for showing the real coordinate of the
	crosshair mouse pointer. However it did not check whether this coordinate really exists
	and this would give an error NOTICE when going outside of the axis with the crosshair.
	Now it checks it and if the crosshair is outside the axis, the value NaN will be shown.

30-10-'00: the regelcaxis.m did not update the colorbars in the 2D/3D viewer window after changing
	the color mapping.

30-10-'00: when plotting in the 2D/3D Viewer the colorbar was not updated if the colormapping
	mode was set to auto previously. As it doesn't seem very likely to me that anyone will
	ever want to have the colormapping mode fixed, this property is reset by default when
	doing a new plot.

31-10-'00: an error was found in regel2d.m: it did not use the variables belonging to the 2D names
	but to the 1D (QLastVariableNames1D etc)

31-10-'00: A bug was found in dispmesh.m: it wrote the entire axis vector into the userdata when
	the axis was linear instead to do this when it was non-linear.

31-10-'00: the dispraster2D.m did not distinguish yet between linear and non-linear axis vectors.
	That would mean that the vectors would always be assumed to be linear.

31-10-'00: the dispraster3D.m also did not distinguish yet between linear and non-linear axis vectors.
	That would mean that the vectors would always be assumed to be linear. Furthermore for
	the direction of TD1 the analyserAxes were not implmented yet (only along Td2).

31-10-'00: previously whenever plotting the spectrum from a certain structure which contained axis
	vectors would put the 'QTempAxis1Cont' and 'QTempAxis2Cont' variable names in the input
	window for the next plot. This was annoying and has been taken out. These variables are
	used only for detecting whether a structure has axis vectors or for the defineplotlimits.m.
	In both cases it is good that the names do not show each time the user wants to plot a
	new spectrum again.

02-11-'00: The stack1D function was added to the RunMacro.m. This means that now it is put in the
	processing history like all other 2D-1D functions (SumTD2 etc)

02-11-'00: The askedittext.m used variables that did not start with a Q making them not deleted
	after stopping matNMR.

03-11-'00: Putting on a colorbar was only possible for each axis separately. Now it can be done
	from the menubar (Plotmanipulations menu) using the colorbar entry. Instead of adding a
	colorbar for the current axis directly as was done before, it now uses an input window
	in the same style as used for all other axis settings.

03-11-'00: An error occured when using a column vector for the axis vector with dual plot. Now the
	axis vector is also made into a row first.

03-11-'00: A bug was found connected to the recent changes to the peak lists (started 04-10-'00):
	an old variable name was used in checkinput2d.m

03-11-'00: the askfont.m still used gca to identify the current axis. As this is a very vulnerable
	construction this has been changed.

03-11-'00: regelcaxis.m did not update the colorbars when changing the color mapping for all axes
	simultaneously.

07-11-'00: MatNMR produced an error NOTICE whenever a descending axis vector was used that was a
	column vector. The conversion into a row vector was not done and this would create problems.
	Now this is enforced in both checkinput1d.m and checkinput2d.m!
	Furthermore the detaxisprops.m script that determines whether an axis is ascending or
	descending, checked this by substracting the first from the second element. If there
	was no difference between the two then it would assume an ascending axis. As this need
	not be true in general, now it substracts the first element from the last element.

07-11-'00: The piekfit?d.m scripts, which act as the interface between matNMR and the peakfit.m
	routine, use the current axis limits to reduce the spectral width before going into
	the peak fitting routine. This reduces the time it takes to fit a spectrum. They did however
	not function properly when using non-linear axes vectors.

07-11-'00: A bug was found in regelplotseriescontrel.m which controls plotting relative contours of
	a 3D matrix. Some time ago I changed the QTEMP3 variable name into QTEMP3_1 because QTEMP3
	was also used by the contour plotting routine. In the regelplotseriescontrel.m though it was
	only partially exchanged causing errors when trying to use this function.

07-11-'00: An unnecessary rendering step was taken out of dispcont.m: figure(Qcntrs).

09-11-'00: the change of 07-11-'00 in the detaxisprops.m produced an error in makenew2D.m. This was
	because there the Qdim1d variable was not set to Qdim1 but to 5000000. Previously this could
	not hurt but after the forementioned change it could because the axis vector is usually
	smaller than this 50000000.
	This also affects some other scripts that call detaxisprops.m:
	viewrow, viewcolumn, transponeer, stack1d, scale1d, RunMacro, regelsize2d, regelprojTD2,
	regelprojTD1, regelconvertvarian, regelconvertBruker, four2d, extract2d, defstates.

10-11-'00: The detaxisprops.m has been changed back as the change was completely useless anyway.

10-11-'00: A funny little bug was found in clearvalues.m, a script that is used in the initialization
	for the baseline correction menus. For the 1D case the original spectrum (so before
	the baseline correction) is plotted on top of the (baseline corrected) spectrum. The
	problem was that the axis vector was not defined properly and in case that it was still
	a number (which it is by default just after starting matNMR) then a spectrum of 1 point
	would be drawn Qdim1d times! Obviously this made it all quite slow....

10-11-'00: A known bug was fixed: the Bernstein polynomial baseline correction did not function
	properly (anymore). That was because the first row of the regression matrix was not
	correct.

14-11-'00: When specifying a variable with the absolute contour levels an error would be produced
	by given the numbers directly as '4.5 6.2 7.8'. This was because no square brackets would
	be put around the input. Now brackets are always put around the expression because this
	can never be wrong.

16-11-'00: Regel1d.m did not select the axis variable name that belonged to the correct variable
	name.

16-11-'00: When doing a dual with a variable that is shown in the list on the screen, asknamedual.m
	did not show the axis variable name belonging to the variable. It showed the last axis
	that was used for dual plotting. This does not make sense and so now it shows the
	original variable name if it exists and else it will show nothing.

16-11-'00: When doing a dual plot with an axis vector name specified then the name would not be
	put into the list properly by putinlist1d.m. To solve this the Qnewinlist variable has
	been made a structure in all scripts that it was used in:
	dualdisp, putinlist?d, regelBrukerSpectraread, regelnaam, regelsave?d, regelsavedisk?d

16-11-'00: The FIDstatus.m switches between FID and Spectrum status of a line. In case of multiple
	lines in the plot it will check whether the axis vectors are all the same. If not it will
	reset the plot using asaanpas.m. The checking of the axis vectors did not function properly.

16-11-'00: Every 1D spectrum has a buttondownfcn function that allows moving a line manually to a
	different z-intensity (MoveLine.m). This function does not switch off the zoom state while
	working and then it doesn't function properly. Now, the routine MoveLine.m will not do
	its function whenever the zoom function is activated.

17-11-'00: crsshair.m, the "get position" function in the main window, did not create UIcontrols
	that were parented. That made a part of the function invisible to the user on systems
	that need clicking with the mouse to activate a window (MS Windows, CDE on UNIX)



================================================================================================

11-12-'00:
We now have MATLAB 6.0 here and so I will upgrade matNMR 2.6 to this new version. Should there
be changes that makes matNMR incompatible with older MATLAB versions then I will increase the
matNMR version number.

================================================================================================

11-12-'00: In the matNMR2DButtons.m there was still a line for making the units of all UIcontrols
	normalized. There are however no more UIcontrols in the window at the moment. This gave
	an error in MATLAB 6.0.

13-12-'00: The about and copyright NOTICEs from the help-menu did not work anymore. Somehow
	I have deleted them. Now they work again.

13-12-'00: matNMRinitvars.m now also recognizes version 6.0 as no big changes seem to be necessary
	sofar.

15-12-'00: the setphase1d.m and setphase2d.m routines have been	revised: one of the Fourier
	theorems is that a time shift of 1 dwell point is exactly 360 degrees first order
	phase correction. This did not work perfectly in matNMR until now.
	By default now the Qfase1start is set to floor(Qdim1d/2). This is because whenever
	reversing a time-shift using 1st order phase correction, that should be the number
	assuming that you do a fliplr too else it should be floor(Qdim1d/2)+1.
	Affected routines: setphase?d, regelBrukerdig, matNMR1DButtons, transponeer, makenew?D,
			matNMRinitvars, regelsize?d

15-12-'00: A warning NOTICE is issued now whenever a fftshift is performed on a spectrum of odd
	length as peak positions will change when multiple fftshift's are done.

19-12-'00: defpeaks.m now plots a wider vertical range for the shaded area when defining a peak
	in the baseline correction routines.

19-12-'00: the scaling limits were somehow not set correctly for a stack 3D plot with TD2 along
	the x-axis in dispstack3D.m. The values for the TD2-axis and TD1-axis were interchanged.

16-01-'01: A typo was found in stack1d.m: a comma was missing causing an error.

17-01-'01: A small bug was found in regelQfidread.m: the text belonging to a certain data format was
	defined before the actual format was determined from the input window! This gave the wrong
	text in the matlab window. This only concerns the text, when reading the proper format
	was used.

01-02-'01: the y-scale in the T1-fitting routine has been set to logarithmic by default. This
	should give a much better view of the exponential curve.

01-02-'01: to make sure that the plot in the T1-fitting routine can also be made such that the
	y-scale is linear, the "plot manipulations" menu has been added to the menubar. This
	has subsequently also been done for the peak-fitting routine.

09-02-'01: A function "get integral" was added to the 2D/3D Viewer. It uses the same routine
	as "set integral", i.e. Integrate2D.m.

16-02-'01: A bug was made in making the change in the phase correction routine from 15-12-'00:
	in simplifying the code the resulting imaginary spectrum in TD2 after a phase correction
	in TD1 was scaled by 180/pi.

02-03-'01: In the setunits.m and CorrectWindow.m the Uicontrols are set to different units.
	In older versions of MATLAB it was necessary to do a drawnow after changing every
	UIcontrol. In version 6.0 this causes misplacement of the window and has therefore
	been removed. NB: in version 5.3 it did not cause the same effect but it also did
	not need the drawnow after changing each button.

02-03-'01: An input filter for MacNMR data from TecMag machines has been implemented. MacNMR files
	must be transfered to a PC or another machine using the fetch program in the MacBinary
	mode.

07-03-'01: A bug was found in doebasl2dcor.m: the QSelectedArea variable was not defined
	properly which gave an error when reprocessing from history. A check to ensure that
	the given area is valid is now also built in. Also the input can be given in 'k'
	(* 1024)

19-03-'01: the stopnmr2d.m did not close the matprint window.

20-03-'01: An option has been added to the matprint routine: enforce WYSIWYG. This will do
	everything to ensure a behaviour that comes as close as possible to WYSIWYG as we
	probably can get (MATLAB isn't great in this sense). Currently the routine does not
	convert line styles as these are not plotted in such detail anyway. The biggest
	problem now is the fact that when the absolute size of the window is too big for the
	paper then it must be rescaled. This procedure does not work as well as it should.
	MATLAB scales the fonts in a weird way even though their units are set to normalized.
	Furthermore the tiff device does something strange with the tick labels when printing
	a scaled window. It is therefore much better for the user to rescale the window
	himself/herself, adjust the plot to liking and then print it. A warning NOTICE is
	issued when resizing is necessary.

20-03-'01: The paper type and default paper orientation can be specified in the general options
	menu. The matprint routine will use these values and all windows will be created using
	the settings for the paper type. The setting for the paper orientation though is NOT
	used by the windows by default!! The matprint setting will then overrule the current
	window setting.

20-03-'01: An option has been built into the T1 and peak fitting routines. Now the name of
	the output variable (which by default are QDiffFitResults and QFitResults respectively)
	can be specified. The results are still written into the default names but also into
	the new variable. Minor point: the user must specify a global variable by the same
	name from the command line to be able to access the variable. A NOTICE is issued to
	make this clear.

26-03-'01: SelectAxis.m did not switch off the selected-property of all axes but only of the
	current one. And as MATLAB can make mistakes, sometimes there will be two axes selected
	(optically at least).


=============
!web release!
=============

27-03-'01: regelmesh.m took the absolute value of the specified azimuth and elevation angles
	which is rather silly as they can become negative.

27-03-'01: the z-axis button in the matNMR 2D/3D Panel button window upto now was uncorrelated
	to the actual setting of an axis. From now on matNMR keeps track of its setting, just
	like with colorbars. Affected routines: matNMRinitvars.m, SubPlots.m, SelectAxis.m,
	regelzaxis.m, dispmesh.m, SelectFigure.m.
	So now it works more like a tool and the button should actually be moved to that
	part of the panel window. But there is no space ....

30-03-'01: The setting of the color mapping produced an error for matrices where the minimum and
	maximum are equal in dispmesh.m, plotcont.m and regelcaxis.m. Now this is checked for.
	Regelcaxis.m will give an warning NOTICE now and reopen the input window.

02-04-'01: A few new combinations of subplots have been added to the 2D/3D Viewer

02-04-'01: When specifying new tick labels in the 2D/3D Viewer (regeltick.m) no sort was done
	on the input values. As it is useful to do a sort (easier input and less error NOTICEs)
	this has been added.

16-04-'01: An option was added to the history menu in the main window: now the history macro
	can also be saved to a variable in the workspace directly.

16-04-01: The display functions that are put into the history are removed again if they are
	followed by other processing steps. It doesn't make sense to keep 6 <sum TD2>'s if
	they aren't used for plotting.

23-04-'01: a small bug in regeltitle.m made the changing of the title of all axes not work.

23-04-'01: a small bug in regel2d.m took the wrong axes variables. This would produce an
	error if the last entry from the popup button was selected.

29-04-'01: the ticklabelmode was not set to 'auto' when making a new plot in the main
	window. This could lead to funny looking axes even when loading a new FID/spectrum
	or switching processing dimension.

06-06-'01: Some subplots added and I've put separator lines between the various subplot
	configurations. Looks easier to use, at least to me.

12-06-'01: The file formats for MacNMR and NTNMR as obtained by TecMag have been implemented.
	The previous input filter for MacNMR assumed an additional header put onto the fid
	by using the MacBinaryII format. This has been taken away as it doesn't make sense.

24-07-'01: A default colormap for the 2D3D Viewer may be specified in the general options menu.

26-07-'01: Another very nice and colorful colormap has been added to the 2D/3D Viewer:
	QPosNegMap3. This colormap is the same as the QPaperMap except that it starts from
	the color black. Like all other PosNeg colormaps this map is changed when plotting
	relative contours with absolute positive and negative maxima, i.e. all negative
	intensities become black. This gives a huge contrast to the magenta of small positive
	intensities.

27-07-'01: A tricky little feature has been added: a colorbar that is not an image but a
	filled contour! The advantage is that one can print this as a mif file and import
	it into programs like Framemaker. The function is accessible from the plot manipulations
	menu under the normal color bar function.

27-07-'01: the 2x4 subplots did not have its tags properly defined

27-07-'01: RestoreSubplots was no longer up to date. Remember to change this if changes are
	made to subplot configurations!!!

27-07-'01: contcbar.m did not work properly when deleting the color bar of all axes.

30-07-'01: an entry has been added to the plot manipulations menu of the 2D/3D Viewer: "plotting
	functions". From here all available plotting routine can be accessed, including those
	that are not in the 2D/3D Panel Window by default (e.g. bar plot and polar plot).

30-07-'01: a polar plotting function has been added to the 2D/3D Viewer. This routine performs a
	stereographic projection to plot a 1/4 sphere properly. One may choose whether to make
	a surface plot from it or a contour plot. And whether an axis must be drawn or not.

30-07-'01: matNMR now keeps track of what PosNeg colormap has been used last. This will then be
	used again when plotting a spectrum with both positive and negative contours!

30-07-'01: It is now possible to specify different numbers of contour levels for plots with both
	positive and negative contours. To do this instead of a number a vector	of 2 elements must
	be given in the input window.

02-08-'01: The matprint.m routine did not support the resolution option for the ghostscript,
	jpeg and tiff devices.

02-08-'01: The routines regelzaxis.m, regelyaxis.m and stack3dreverse.m executed a "figure(Qcntrs)"
	which led to additional rendering steps.

03-08-'01: Setting of the axis rulers did not work properly for surface plots. The fast method of
	replacing the xdata and ydata vectors of all axis children was only executed on patches
	and lines. Now also surfaces and images have been added.

03-08-'01: In the RunMacro.m routine 'convertBrukerqseq' was called instead of 'convertBrukerqseq1d'.

03-08-'01: An undo function has finally been implemented. Users may specify in the general
	options menu how many undo steps they want. The risk of problems due to excessive memory
	usage are for the users themselves. The undo function will store the spectrum, the axes,
	the processing history and the spectral width (so basically everything that may be stored
	in a matNMR structure).
	The function can be accessed from the menubar ("Goodies menu") or by pressing CTRL-Z
	in the main window or by pushing the Undo-button.

03-08-'01: Connected with the undo function: the FIDstatus variable are now stored aswell in the
	matNMR structure. Upon loading a structure with a 1D or 2D spectrum the FIDstatuses as
	stored in the structure overwrite (!) what the user has pushed in the input window
	(FID, Spectrum or Spectrum/FID) Affected routines: regelsave?d.m, regelsavedisk?d.m,
	checkinput?d.m.

03-08-'01: the setdefaults.m was not changed when implementing the saving of the paper setting
	in the general options menu (changed on 20-03-'01). This made that the saved setting was
	not used.

06-08-'01: A new colormap has been added for the 2D/3D Viewer: PowerMap.

07-08-'01: An unused option has been removed from the general options menu. This used to allow
	the selection of having either relative or absolute contours by default. As we have both
	anyway this has been removed.

08-08-'01: The default value for the blocking factor (for loading Bruker spectra) is set to 0
	now. This codes for no blocking factor, i.e. the full size is taken.

08-08-'01: For the next web release the files menu must be better explained in the manual. Especially
	what the blocking factor is.

09-08-'01: The input format for specifying axis limits has been changed. Instead of having a
	colon in between the minimum and maximum now there is an empty space. Makes more sense.



=============
!web release! : version 2.7
=============

13-08-'01: more output is given now to the history for the DCcorr?D.m routines.

14-08-'01: the askcaxis.m did not give enough digits when showing the current values for the
	clim parameters. This was because the number was given to QuiInput which then converts
	it to a string. Now a num2str(x, 10) is used.

15-08-'01: It is now possible to do States-TPPI	processing of 2D spectra. Many routines which used
	to check for States processing only, now also check for States-TPPI.

15-08-'01: Solvent deconvolution as has been proposed by Marion, Ikura and Bax has been implemented.
	This works in 1D and 2D and allows either a gaussian, a sine-bell or a rectangular window
	function. The window spread (width = 2*Spread+1) must be given as input and also the jump
	size for the extrapolation of the first a last few points of an FID.

15-08-'01: two unnecessary 'drawnow' statements have been taken out the regelfont.m routine.

15-08-'01: For the polar plot one may now choose whether one wants no axis, only lines or both
	lines and axis labels.

17-08-'01: To maintain the general use of matprint (independent of matNMR) the two variables
	QPaperOrientation and QPaperSize, whos values are read from the matNMR default options
	settings, are substituted in case that they are empty.

17-08-'01: Two bugs in the undo function: inproper updating of the slice/row of the undone spectrum
	(i.e. incorrect display). Wrong variable QUnDo still present instead of QUnDo2D.

21-08-'01: matNMR now recognizes MATLAB 6.1.

21-08-'01: A delimiter was missing in scale2d.m which produced an error (probable cause: change
	of 03-08-'01)

13-09-'01: the MATLAB zoom function uses the userdata property of the zlabel axis property to
	store the axis limits in case it is asked to scale the plot back to its initial limits.
	MatNMR did not update these values which caused strange plotting limits when rescaling.
	Now it updates these values for every new spectrum in the main window (1D or 2D) and
	when executing a "reset figure" (i.e. whenever asaanpas.m is called). The 2D/3D
	Viewer already did this.

28-09-'01: the SIMPSONread.m routine was adapted to fix a shortcoming of SIMPSON: when an ASCII
	output is generated in SIMPSON it forgets to state that the format is indeed ASCII,
	as is done correspondingly if the format is binary. That yielded the NOTICE that
	the format was binary even though it really was ASCII.

11-10-'01: Two new display modes have been added to the main window: 'both' and 'power' which
	produce real/imaginary simultaneously and a power spectrum respectively. Many routines
	are involved. The zoom buttons are not included in this implementation. This means that
	a 'zoom X' will work on the entire vector [real(Qspc) imag(Qpsc)], instead of working
	on [real(Qspc)] and recombing the real and imaginary parts later.

16-10-'01: A bug was found in regelzero2d.m: instead of QRecordingMacro it said RecordingMacro
	which obviously produced an error NOTICE. Furthermore no default input string was
	given for askzero2d.m which made it very unclear in what format the input should be
	given. Now a statement is given to show how to give the proper input.

16-10-'01: From now on all binary FID's that are read into MATLAB will be global variables.

16-10-'01: A function has been added to the file menu which can add a series of variables with
	common names and save it as a new variable. As many NMR experiments are saved in blocks
	with names like 'exp_1', 'exp_2', 'exp_3' this function asks for the common
	string of the name, i.e. 'exp_' and the range, i.e. 1:3.
	The name of the variable is written in the list of 10 last-loaded spectra for
	convenience.
	Files involved: addvariables.m, askaddvariables.m and regeladdvariables.m

18-10-'01: A bug was found in dualdisp.m: I used a complex conjugate transpose instead of a
	transpose to make sure the vector was a row. As I was not aware of this difference
	(<variable.'> must be used instead of <variable'>) all code was checked for similar
	instances. Indeed the routines transponeer.m, checkinput1d.m, regelsolventsuppression2d.m
	regellp1d.m proved also to be wrong.

26-10-'01: Setphase2d.m used the Qdim1d variable to determine the number of points for the
	phasing vector. This would give an error when processing from a macro as the display
	is not updated then and therefore neither the Qdim1d variable.

29-10-'01: readBrukerProcessedData.m did not specify a big endian byte swap and an int32 format
	but relied on the machine default byte swapping and the int format. This works on UNIX
	but fails on a PC as the default values in MATLAB are different then!

31-10-'01: scale2d.m uses a check to determine all graphics objects that need a change of the
	axis variable. This produced an error if there are more than one types of objects
	present in the plot due to the fact that the result is always a column. The result was
	concatenated as a vector though.

31-10-'01: scale2d.m produced an error when supplying a user-defined axis that is not a variable
	in the workspace but something that gives a vector when the string is evaluated
	(e.g. 2:20).

31-10-'01: The warning NOTICE issued by crsshair2d.m whenever the intensity cannot be determined
	has been taken out due to its high annoyance factor. Now it will just show a NaN.



=============
!web release! : version 2.7
=============

06-11-'01: A series of binary FID's can now be read into matNMR using a single function. One must
	specify a range and a common name part for both the file and the variable names. The routine
	then goes through the ranges. The sequence $#$ is used to denote the place of the
	numerical range in the names. Every occurance of $#$ will be replaced by the number.
	Not using the $#$ sequence will result in funny results but not in error!

06-11-'01: The adding of a series of variables has been changed such that now the $#$ sequence,
	as used in the reading of a series of binary FID's, is also used here. Again strrep
	is used to replace all occurances of the $#$ sequence by a number.

07-11-'01: A bug was found in askBrukerlaad.m: the fidlaad.m routine (for binary FID's) was called
	if the file name did not exist, instead of the Brukerlaad.m routine.

07-11-'01: Also for MATLAB files, Bruker spectra and SIMPSON ASCII files has the loading of a
	series of files been implemented in the main window.

16-11-'01: The contcmap.m and regelcaxis.m routines used the standard MATLAB colorbar.m routine
	to update the colorbar. This would produce a new colorbar however when the current
	colorbar was made MIF-printable (see change 27-07-'01) because the colorbar.m routine
	no longer recognizes such a colorbar. Now a colorbar is first deleted and then a new
	one is made.

05-12-'01: A bug was found in the Qfidread.m routine for the Varian format. The SizeTD2 was
	set to np/2 instead of np.

12-12-'01: An additional check is now made to ensure that if a 2D matrix is read even though a
	1D FID/Spectrum is expected that it will be read as a true 2D.

18-12-'01: extract2d.m had a bug concerning the saving of the action into the history and
	history macro. Instead of saving the original range (i.e. in the unit of the current
	axes!) the coordinates into the axis vectors were saved. This created an erroneous
	reprocessed spectrum.

15-01-'02: a function has been added to simplify calling an axis in a 2D/3D viewer window,
	manually (i.e. from outside matNMR). The function GetAxis asks for the axis number
	and then selects the proper axis. This function should be followed by a SelectAxis
	command though!!

16-01-'02: a bug was found in the regelsavedisk?d.m routines: a check is being made to see whether
	multiple variables have been entered instead of 1. The check was bad and has been replaced
	by something that does work.

29-01-'02: The change made on 13-09-'01 made sure that the limits for the zoom routine are reset
	every time the asaanpas.m routine is called. Now this is also done in the resetXaxis.m
	routine, because else the zoom routine can do strange things again when switching between
	display modes.

29-01'02: An additional bug was found when changing display modes: the xticklabels remained the
	same, instead of adapting to the new range. This was because the xticklabelmode is set
	to manual as soon as the "both" mode is selected. This is now switched back to manual
	in the resetXaxis.m routine.




=============
!web release! : february 1 2002, version 2.7
=============

14-02-'02: The -epsi option for the print command is no longer supported starting from Matlab 5.3.
	This has been renamed to -tiff now, the current flag for this option.

07-03-'02: A bug was found in a check for the coordinates of a matrix in the routine
	checkinputcont.m. The check did not take into account more complex structures. Now the
	check seems better, although there may still be cases where it will fail.

07-03-'02: The use of a cosine series for baseline correction is now the default setting.

12-03-'02: A bug was found in Subplots.m for the 5x1 subplots (wrong position).

12-03-'02: The RestoreSubplots also had wrong sizes for the n x 1 sized subplots.

19-04-'02: A bug was found in QuiInput.m: when a new input window was too large for the screen
	it was supposed to be rescaled. This did not work for uicontrols because the unit was
	changed to normalized. This has been removed and now it seems to work.

13-05-'02: The FID wasn't scaled by 0.5 in four2d.m in case of a States-TPPI processing.

02-10-'02: The matnmroptions.mat was changed for better compatibility with other platforms than
	UNIX.

02-10-'02: MatNMR can now recognize version 6.5 of Matlab.






=============
!web release! : october 2 2002, version 2.7
=============

14-10-'02: the problem that matNMR couldn't handle spaces inside path names has been solved.
	Instead of using the eval command, now the functional form of the load and save
	commands is being used. Affected routines: regelsavedisk*.m, matNMRinitvars.m,
	saveoptions.mat, matlaad.m, regelmatlaadSeries.m.

14-10-'02: Starting form Matlab 6.5 it is no longer possible to use a construction of the
	form (variable == []). Instead one must use isempty. There were still some left-over
	lines in the code which caused some problems. Affected routines: regelcont.m, regelbar.m,
	dualdisp.

23-10-'02: Matlab 6.5 no longer supports automatic roundoff for indexes into variables. This
	means that some routines may produce errors. Affected routines found sofar: crsshaird2d.m,







=============
!web release! : november 12 2002, version 2.7
=============

02-02-'03: A bug was found in dualdisp.m:
	An eval command of syntax "variable1 = eval(variable2)" was performed with variable2
	being an empty string. This gives an error NOTICE even in older versions of Matlab.
	The syntax has been changed. This may happen also at other points in the
	code.
18-03-'03: All eval statements of the construction "variable1 = eval(variable2)" are now secured
	against empty strings, IF AND ONLY IF a string had to be supplied to the eval. Whereever a
	number had to be supplied (and thus would be normally be put preemptively in the input
	box or in the code) an error NOTICE will still come if an empty or wrong string is
	supplied. Affected routines:
	regelabscont (in matNMRinitvars the variable QContourLast has been
		given a proper default value now),
	disppolarplot (in matNMRinitvars the variable QPolarPlotContourLevels has been
		given a proper default value now),

        a check is now done in the regelnaam and dualdisp routines to make sure that a FID/Spectrum
	is really defined (no empty string). This nicely avoids an error NOTICE and reopens the
	input window.

	similarly in regelaxis?d.m, regelexecutemacro such a check is done but here the routine aborts.


18-03-'03: a text which states the order of the baseline correction and a closerequestfcn
	have been added to the 1D and 2D baseline correction routines. This makes the function
	of the order input button more clear. Also the closing of the window is now safe as
	it always stops via stopbasl?d.m. Affected routines: stopbasl?d, basl?dmenu

18-03-'03: bugs related to the one described on 02-02-'03 have been thoroughly
	looked for since Matlab 6.5 has a more stringent syntax then previous versions.
	The constructions (variable == []) and (variable == zeros(0,0)] are always replaced by
	"isempty(variable)". Furthermore eval calls to empty strings are prevented by first doing
	a deblank of the string. Affected routines: regelcont, regelabscont, regelbar, regelstack3D,
	regelmesh, regelraster2D,

18-03-'03: both the peakfit and T1 fitting routines had a call to the window generating
	function with the syntax "dummy = pk_init;" even though pk_init does not produce
	any output. In Matlab 6.5 this produces an error NOTICE and the needless variables
	have been removed now.
	Other routines that have been changed as well: QColorMaps, QShading, RestoreSubPlots

19-03-'03: all matNMR figure windows (except CopyFig and mathelp windows) now have proper closerequestfcn's
	defined to increase stability. Closing a window manually should not interfere anymore with
	matNMR.
	Affected routines: peakfit, T1fit, stats?d, Qtextdata, Qscreenops, Qoptions,
	Qlinedata, QuiInput, matprint, matNMRintro, clabels, klabels (and previsouly on 18-03-'03
	basl?dmenu).

19-03-'03: since all windows now have closerequestfcn's	defined windows must be closed using the
	delete function. Therefore all "close(WindowID)" syntaxes have been changed.
	Affected routines:
	clabels, doecontje.m, doeopties.m, klabels, matprint, Qdefault, QezLegend, stoppeakfit,
	stopT1fit, stats?d, whataxis?d

19-03-'03: some gcf and gca calls have been changed into calls using their proper matNMR variables. This
	increases stability. (see also 31-01-'00)
	Affected routines: rotcont

19-03-'03: the undo function can now be recorded into a macro.

19-03-'03: The Bruker Aspect format has been added to the list of known file formats.

20-03-'03: it is no longer possible to have both the 1D and 2D baseline correction menus open at
	the same time. As these can destructively interfere it is safer to close one of them when
	the other is opened.

20-03-'03: it is no longer possible to open the 2D baseline correction menu during 1D processing
	as this causes problems.

20-03-'03: an output statement is now given when making a time axis from the main window.

20-03-'03: a bug was produced by the crsshair2d routine whenever it was called to while being in
	an empty subplot. Since the axis variables Q1 and Q2 would not be defined. Now a check is
	done to see is they are empty or not.

20-03-'03: a brilliant new feature in the matNMRinitvars.m: all variable names are now sorted by
	name, which makes it actually possible to find them in the list!!

20-03-'03: unfortunately there seem to be two different header sizes going around for the Bruker
	Aspect format: 256 and 512 words. Now I determine the header size by looking at the total
	file size and the value for SI (the total number of complex points). Hopefully the
	few parameters that we extract are the same in all formats.

20-03-'03: it is now possible to connect the axes to a spectrum from within the 2D/3D viewer
	window. If the variable name is not good then the user is asked to give a new name instead.

21-03-'03: the uicontrols in the input windows now have tags so they can be switched on or off,
	depending on whether that is necessary. This will be used first by the askfidlaad*.m
	routines.
        Furthermore a callback can now be encoded into the name string for popup, check and
	edit buttons in QuiInput. The extra code '&CA' must be appended to the normal name
	string for it to work. This is again used by the askfidlaad*.m routines.

21-03-'03: when reading a binary FID now the input controls for the domain sizes are dimmed
	automatically if the chosen file format does not require them to be given. This makes
	life a bit easier.

21-03-'03: an error NOTICE appeared when trying to do a State-TPPI processing on a 1D spectrum.
	An indicator for complex FT has been added to the QTEMP variable in historyFT.

21-03-'03: the undo function did not reset the phase buttons to 0 even though the values were
	set to 0. This caused strange effects.
	MORE IMPORTANTLY: the phase was not conserved by the undo function. This has now been
	changed.
	Also now the phase is not put into the undo for each individual increment but only for
	the total amount. This makes much more sense.

24-03-'03: Bruker qseq processing was now added to the various FT's. This was done because there
	really isn't any reason for first doing the tedious convertBrukerqseq step and then
	a TPPI transform. The old option has been left in the code though as this allows
	changing the size of the spectrum etc.
	There was even a bug in the convertBrukerqseq1d.m routine which caused it to not work
	properly.
	The situation of which transform does what needs to be explained properly again in the
	manual!!

24-03-'03: An error NOTICE appears when the width and/or amplitude of a peak is 0 in the peak
	fitting window. Now the value is always set to a non-zero value before fitting. Affected
	routine: peakfit.

25-03-'03: in the change of 14-10-'02 a bug has crept into saveoptions: the syntax for saving
	all the options variables is incorrect. It is not really necessary to use the functional
	forms of load and save, if there are spaces in the path names. The eval command also
	works fine as long as you put the file name between "'". The chages in regelsavedisk?d
	have also been changed back to the eval command, this time WITH the "'", in order to allow
	saving of multiple variables.

25-03-'03: a button has been added in the font options menu that allows importing all system fonts
	as given by the matlab command listfonts. Previously my fixed list was defined which the
	user had to update manually himself.

25-03-'03: a bug was found in Qfontops: saving of all fonts failed because saveoptions was called.
	And as the call was from within a function saveoptions operated in the function's
	workspace and thus didn't know most of the variables. Now all variables that are saved
	in saveoptions are first declared global again.

25-03-'03: a safety was built into Qfontops to prevent the user from entering an empty string. Now
	the old string is put back again.

25-03-'03: a deblank was done in QuiInput_2 after reading our the value of check and popup buttons.
	The deblank produces [] for any number and so this could potentially create problems.
	The deblank has been removed.

25-03-'03: I noticed that the VNMR filter currently only supports 1D spectra properly. I have changed
	this so that it also works for 2D.

26-03-'03: an option has been added to the main window to allow the creation of a gradient axis.

26-03-'03: the partial derivatives used for the amplitude in the T1 fit were not entirely correct as
	it lacked the constant part. In practice this is not noticeable at all.

26-03-'03: a basic routine for fitting isotropic diffusion curves has been added to the main window.
	It really is practically the same as the T1 fitting routine except that the functional, and
	therefore also the partial derivatives, is different.

26-03-'03: an option to perform a second-order phase correction was added to the phase menu in the
	main window. With this feature the effects of strong cut-off by the audio filters may be
	countered. The feature must be called by switching on the check button within the phase
	menu area.

27-03-'03: in an attempt to slowly improve the code all statements of syntax "var(length(var)"
	have been changed into "var(end)".

27-03-'03: an error message would appear when trying to "last * binary FID" when the previous name
	did not point to a real file, in which case the file size could not be determined. I think
	this only happened after first loading a series of binary FID's and then doing either
	of the two "last * binary FID" again. Because then the name would have the "$#$" code
	in the name. Now for askfidlaad.m the "$#$" is replaced by the first element of the
	previous series. For askfidlaadSeries.m the $#$ is temporarily replaced by the first element
	of the previous series in order to read out the size of the file.
	In both cases the size is checked to be not empty in order to avoid an error message.

27-03-'03: in all cases where matNMR uses the uigetfile routine the search path has been changed
	into [pwd '/' QSearchProfile] since on my machine it started to always go back to the
	root directory. And that was quite annoying.

27-03-'03: the previously implemented input filter for JEOL can now be fully trusted and is
	actually called the JEOL Generic format.

27-03-'03: direct reading of standard parameter files is now supported when reading binary FID's.
	There are a number of conditions and assumptions necessary for something like that to work
	and these are explained in the manual. This is supported for all Bruker formats, the
	chemagnetics format, the VNMR format and the JEOL Generic format.







=============
!web release! : march 28 2003, version 3.0
=============

31-03-'03: strangely enough there was a bug in apodize1d.m: the Qemacht vector was not cleared
	before making a new vector for cos^2, block + exponential and block + cos^2. This has now
	been changed.

07-04-'03: in the output for the history for a 1D baseline correction the term "1D" was not
	mentioned, which is confusing when you're processing a 2D and suddenly switch over to
	a 1D mode.

07-04-'03: the change of 21-03-'03 in the undo (such that single 1D phase increments are not stored
	separately, but collectively) did not apply to 2D processing. This has been changed now to
	avoid needless equal entries in the undo matrix.

10-04-'03: the getsweep*.m routines have been protected against empty input buttons. If the
	buttons are empty when then routines are called (button callback) then the current
	value will simply be put back again.

14-04-'03: a bug was found in checkinput1d.m: at the point where it is checked whether the new
	variable is really a 1D spectrum, and not 2D, a flag QTEMP7 is used. But this was not
	set to 0 when the variable is simply a 1D spectrum and this caused a second flag QTEMP8
	not to be set, and this caused that the axis in a structure would not be used.

14-04-'03: as checkinput1d.m checks whether the new variable is not a 2D, checkinput2d should
	check whether the variable is not a 1D. Before this was not done.

14-04-'03: the paperposition of the main window has been reduced to [0.1 0.1 0.8 0.8], like all
	other windows.

14-04-'03: an important improvement in the WYSIWYG printing of matNMR was achieved by temporarily
	centering the axes in the figure window before printing. This greatly improves workability
	I think.

16-04-'03: the reference point for 1st order phase correction is set by default to the center
	of the spectrum upon loading the FID/spectrum. This wasn't done correctly in makenew2D
	since it took Qdim1d/2, which was defined after the setting of Qfase1start. Now Qdim1d
	is set before.

16-04-'03: the separation between 1D and 2D processing modes was not implemented nicely. So far
	the flag for the dimension Qdimensie would be set to 0 whenever a 1D processing function
	would be called. That meant that even if the call was by mistake the flag would be
	changed. Now an additional variable QSwitchTo1D is used to indicate that a switch must
	be made. The switch is only made however after the user has pushed OK in the input
	window.

	In connection with this it is now no longer possible to execute a 2D processing function
	on a 1D FID/spectrum. A notice is given for all processing functions.

16-04-'03: made a small change in asaanpas.m: before doing the 'axis auto' to let MATLAB choose
	the new axis limits automatically, I delete the userdata of the zlabel property of the axis.
	This hidden variable is used by the zoom function and I suspect also by other functions.
	Clearing this produces a more stable behaviour.

16-04-'03: the putinlist?d routines have been improved by not only taking the variable name as
	a criterium to be put in the last of 10 last-used variables, but also the axis
	variables.

16-04-'03: the axis in a structure was not used in the dual display function. This has been
	changed in checkinputdual to be compatible with checkinput1d. Now by default the axis
	is taken from the structure IF only one structure in one variable is supplied, AND
	the user hasn't given his own axis in the input window.

16-04-'03: the equal integral setting for dual display has been corrected: previously only the
	sum of the real part of Qspc2 was compared to the real part of the dual plot vector.
	As this is only correct for vectors of equal length and with equal increments in the
	axis vectors, this was improved by taking the increments and lengths of the axis vectors
	into account.

16-04-'03: three characters have been added to the list of characters that checkinput.m needs
	to look for in a user input. These are "[", "]", and ";". Somehow they weren't present
	before and that made it impossible to load a spectrum of syntax
	[s1; s2; s3] with all three variables being matNMR structures.

12-05-'03: I have finally gotten sick of the extremely old feature that underscores in the
	name of a variable would not be printed correctly in the title of a plot. A simple
	strrep is done now on all title statements, IF the variable name is printed. Affected
	routines: makenew1D, makenew2D, regelgetcolumn, regelgetslice, regelprojTD*, regelskyline,
	viewcolumn, viewrow, getdiag. getantidiag, plotcont, dispmesh, dispbar, disppolarplot,
	dispstack3D.

12-05-'03: there were a number of bugs in regelcaxis, which is used to change the caxis values
	for one or all axes in the 2D/3D viewer. It selected all axes, including colorbar axes
	and when these colorbar axes were updated (deleted and made new) the handle was obviously
	lost and an error message appeared. Also, it did not update all colorbars properly AND
	it did not update the list of handles to the colorbars, Qcontcolorbar. What a mess....

12-05-'03: there was a bug in contcmap: the wrong colorbar handle would be deleted.

12-05-'03: a change was made in asaanpas: the x, y and z scale parameters of the axis are
	set to linear. This will do undo any setting to logarithmic madeby the user. If this is
	not done then at no time will a new spectrum be linear, unless by using the function
	in the plot manipulations menu. And that is not correct. The function in that menu are
	ALL secondary to the default setting, which is linear for NMR spectra.

14-05-'03: an option has been added to the ruler x-axis menus so that an axis can also be given
	in kHz.

02-06-'03: the 1D baseline correction did not take into account the possibiltiy that the
	spectrum has a negative axis increment. And so the resulting plot, where the
	original spectrum, the fitted baseline and the resulting spectrum are shown, did
	not make sense because the fitted baseline would be reversed.
	This has been corrected now.

04-06-'03: The left and right routines did not take negative axis increments into account.

04-06-'03: the scale1d and scale2d did not save the new axes into the designated variables
	because of the addition of kHz to the range of different axes. This has been corrected
	now.
04-06-'03: also some other scripts were not completely correct in this respect since they did
	not use the proper value for Qstatuspar.

13-06-'03: a bug was found in the checkinput1d and checkinputdual routines in connection with
	the change made on 14-04-'03: the check to see if the variable is 1D or 2D was not done
	on the correct oart of the string Qspct2. In fact one should simply use QTEMP2 instead
	since that contains the correct variable. This also avoids messy indexing into Qspct2.

18-07-'03: changed the scaling threshold for wysiwyg printing in matprint to 80% of the
	paper size, instead of 90%. This should improve the functioning a little bit.

22-07-'03: sometimes the input window would not disappear automatically (occured when not closing
	it by hand while selecting an other function which opens a new input window). This
	probably started with the change on 19-03-'03 when I deleted the statement where it
	checks for open input windows before creating a new one.

01-08-'03: A bug was found in connection with Matlab 6.5: in ManualBasl there was no space
	in the following string between the quote and the variable BaslFunc.
	  OrgLineData.Text = ['"' BaslFunc '"  --> (A=' num2str(A) ', B=' num2str(B) ....];
	Apparently this is no longer allowed, whereas it was allowed before.
	I did a quick check and this seems to be the only typo of this sort.







=============
!web release! : august 1 2003, version 3.0.28
=============


11-08-'03: when loading a new spectrum of name "1.345 * fidvar", where fidvar was a matNMR
	structure, an error message would appear. The checkinput* routines correctly
	identified only one structure and variable, temporarily saved in QTEMP2, which was
	read out later on. The problem lied in the fact that QTEMP2 was changed by the
	presence of the number, even though it was assumed in the code that whenever there
	is one variable, which is also a matNMR structure, this variable would not change.
	Now a new temporary variable QTEMP6 is used in all checkinput* routines to prevent
	this error from occuring.

21-08-'03: an additional piece of output is now given when doing a dual display: the name
	of the added variable is shown in the message window.

08-09-'03: in a few m-files a clear was performed on all QTEMP* variables which was not a
	smart thing to do. These statements have been removed.

09-09-'03: the MoveLine function has been changed slightly: now it only moves a line
	when the left mouse button is clicked upon it. Else it will show the name of the
	variable that produced the line. This is particularly nice when there are multiple
	lines in the plot (dual display).

09-09-'03: Also, the response of MoveLine when the "get position" routine is running has been
	switched off now. Zoom already used to be handled in the same way.

24-09-'03: there existed two m-files called Extract2D and extract2d. These are different
	in any sensible operating system but as usual Windows causes problems. The
	extract1d.m and extract2d.m have been renamed to regelextract1d.m and
	regelextract2d.m, in line with the general naming of m-files.

24-09-'03: some small changes were made to the manual, help and copymat files.

25-09-'03: the reading of Bruker parameter files was not working: QReadParameterFiles
	first of all tried to access the acqu and acqu2 files, instead of the acqus
	and acqu2s files. Also, the parameter matching did not work because only
	the variables were matched, but without the "=" character. And then one could
	find more than one hit, which crashed the routine. Now the "=" is matched
	as well, just like for the Chemagnetics format.

25-09-'03: the essentially deprecated helper routines that used to contain the matNMR
	manual are still used to display the processing history and "about matNMR"
	texts. The "home" button still refered to the old manual pages and has been
	changed to go to the "about" text instead.

25-09-'03: there was an inconsistency in the diffusion fitting routine. Since the gyromagnetic
	ratio was inputted as gamma/2/pi that value should be multiplied by 2Pi in the
	Diffpk_voigt and Diffpk_qvtdf routines. This has now been done.

25-09-'03: Two more inconveniences have been removed from the diffusion fitting:
	whenever one of the parameters is extremely far off (e.g. D) then the fitting
	routine would crash because a variable "ss" would not be created. Now ss is
	set to 0 before the start of the fit. This has also been changed in the T1
	fitting routine T1leasqr.m.
	Secondly, the axis is now plotted as gradient^2 instead of gradient. This
	makes people doing diffusion fitting happy as it gives a straight line for
	a single diffusion coefficient.

25-09-'03: A popup button was put in the input window for dual display for the selection
	of the scaling of the new line in the plot. Why haven't I done this before?

01-10-'03: I have finally deleted the seemingly useless option of multiplying the first
	point of the FID by 0.5. As this must always be done to avoid a baseline offset,
	the option was taken away from the general options menu.

01-10-'03: by default the 1D, phase and 2D menus were not shown at startup. Now this can
	be selected in the general options menu.

01-10-'03: when doing a dual display with equal integral or equal maximum now the scaling
	factor will be shown in the console window.

02-10-'03: when loading a new 1D or 2D spectrum the names would be put in the list of 10
	last-loaded spectra, IF the name was new. For known names no action was taken. Now
	known names are also put first in the list to prevent them from being kicked out
	of the list, even though the name was used recently. (putinlist1d and putinlist2d)

06-10-'03: when adding a new axis to a 1D plot, the routine scale1d checked whether there
	are more than one spectra in the plot. If so, it checked whether they all have the
	same axis. If not then the routine should do a asaanpas instead of directly changing
	the xdata property of the individual lines. The latter check did not function
	properly when the axes had different lengths.

08-10-'03: a ConcatenateMatrix routine is added to the 1D and 2D processing menus
	and is also incorporated into the processing history. (The routine ConcatenateMatrix.m
	can also be called directly when loading 1D or 2D datasets). This allows the
	concatenation of 2D matrices along either direction, which is very useful for
	spin-counting experiments and playing with matrices for testing purposes.

08-10-'03: when connecting a history macro to a 2D FID the resulting matNMR structure is
	set to imply spectrum and not FID. This is now changed to FID's.

08-10-'03: adding a series of variables did not work for structures (known bug) and required
	all variables to be global. Now all variables are set to global by the routine
	itself and it also works for matNMR structures.

09-10-'03: A new plotting function was added to the main window: 1D bar plot. This is located
	in the "plot manipulations" menu and is consequently NOT a standard plot. Pressing
	"reset figure" will bring back the original line plot. The current axis is taken into
	the bar plot and the colour and width of the bars may be specified by the user.

13-10-'03: the initial routine to read in the standard spectrometer files (27-03-'03) was not
	able to read Chemagnetics files which contained arrays of 1D experiments. This has been
	implemented now.

13-10-'03: two routines had wrong names: extract1d and extract2d should have been called
	regelextract1d and regelextract2d. (should have been corrected on 24-09-'03!?!?)
	This has now been corrected.

13-10-'03: when changing the row/column number in a 2D the label on the x-axis would change
	to state what row or column was current. This has been taken away so now the unit
	of the axis is always shown.
	This has also been taken away in transponeer, RunMacro, regelextract2d, regelsize2d,
	regelconcatenate

13-10-'03: Instead of using the x-label to show what row/column is current, there is now an
	indicator button on the right hand side of the window which shows
	whether the current mode is 1D or 2D, and which dimension of the 2D is current.
	This nicely supplements whether the current curve is a FID or a spectrum. Both have
	been given a bright green colour with yellow text, in bold, to show them off much more
	than the previously-used grey did.

13-10-'03: there was a small bug in stack1d: the calculation of the width of the current
	zoom limits in real points, as approximately defined by the zoom limits, used
	a "ceil" funtion. This could sometimes give problems as it produced the wrong number
	of points. Now this is a "round".

13-10-'03: There was a small bug in transponeer: the FIDstatus was not swapped along with
	the FID/spectrum. I think that should be done for consistency.

13-10-'03: as many people who use matNMR are very confused by the axes in points, I have
	implemented a setup where it is possible to select what the default axis if for
	plotting spectra. This is done from the general options menu. There is also a default
	setting in the "plot manipulations / ruler x-axis" menu to override any previous axis
	definitions. This is overlooked by flag variables, corresponding to 1D, TD2 and TD1.
	Instead of having to go to the general options menu every time one wants to change
	the default axis setting, there is is also a menu item "change default". This changes
	the default setting for the current dimension but does not save the setting in the
	matnmroptions.

	IMPORTANT: The option has been added because now the reading of standard parameter
	files is implemented and I assume that many people will like that. Since I refuse
	to go into all sorts of crazy bends to make sure the axes are also correct (i.e.
	SWH and spectrometer frequencies must be correct!!), the user is responsible for
	supplying the correct information!

	Affected routines: matNMRinitvars, Qoptions, doeopties, saveoptions, makenew1d,
	checkinput1d, makenew2d, checkinput2d, GetDefaultAxis, regelsetdefaultaxis,
	scale1d, matNMR1DButtons, FIDstatus, regelsave1d, regelsavedisk1d,
	regelsave2d, regelsavedisk2d, viewrow, viewcolumn, regelgetslice, regelgetcolumn,
	getdiag, getantidiag, stack1d, regelskyline, askextract?d, regelextract?d,
	transponeer, regelsweepwidth, regelspectrometerfrequency.

13-10-'03: now also a button is present in the main window to enter the spectrometer
	frequency. Changing this value leads to an update of a default axis.
	NOTE: changing the value of the spectral width also leads to an update of a
	default axis.

14-10-'03: given that the default axis will now often be something else than in points
	there is a conceptual problem with the "get position" routine which provides the
	x and y values for the current plot, and the x-value is in the unit of the axis
	vector! Now a third value is plotted simultaneously, which shows the number of
	the point that is looked at. This index may be wrong in some cases where multiple
	lines are in a single plot, while some of them would require a different 'xdir'
	setting. Then the index should be (length(line)+1-index). This occurence of this
	problem should be extremely low though.
	Additional problems occur when showing both the real and imaginary parts
	simultaneously in the plot. This will create faulty indexing and is much more likely
	to occur.
	Affected routines: crsshair, stopcrsshair

27-10-'03: the muisinput routine has now also been adapted such that it handles arbitrary
	axis units properly. Previously it assumed points to produce the proper reference
	for the 1st order phase correction. Now the interp1 interpolation routine is used
	to extract the proper value in points.
	affected routines: muisinput

27-10-'03: crsshair.m used the obsolete routine table1 to index the position of the cursor
	in the "get position" routine. Now this has been replaced by the interp1 and interp1q
	routines.
	affected routines: crsshair

27-10-'03: after a manipulation that changes the domain or the size of the FID/spectrum the
	axis must always be set to the default axis. This wasn't done and has been fixed now
	for Fourier transform, changing of the sizes, linear prediction, STATES processing,
	conversion of various spectrometer formats to matNMR.
	Exception: the extract routine takes the current axis, default or user-defined, and
	cuts the relevant part out of it. Also, the spectral width is changed.

27-10-'03: the putinlist?.m routines interefered with the regelQfidread*.m routines through
	the common use of the temporary variable QTEMP2. The putinlist*.m routines now
	use QTEMP12 instead.
	affected routines: putinlist*

27-10-'03: when reading the standard parameter file for Chemagnetics an error mesage would
	be given whenever the parameter dw2 was not found for a true 2D experiment. This
	would cancel the reading of the FID. Now only a warning message is given and the
	spectral width is set to 1 Hz.
	affected routines: regelQfidread*

27-10-'03: the "get position" routine (crsshair.m) was adapted to the default axis setup
	but did not take FID's properly into account yet. For FID's this would lead to an
	incorrect index number. This now also works for descending axes (negative time
	increment)
	affected routines: crsshair

28-10-'03: for the time domain there now is a choice for a default axis as well, being
	either time or points.
	affected routines: GetDefaultAxes

28-10-'03: The handling of the display option "both" (real and imaginary displayed
	simultaneously) was not handled properly in the new default axis setup. Now it has
	been checked to work with all types of axes (ascending and descending) for both the
	time domain and the frequency domain. Switching of the axes, and direct updating
	of the plot on screen, is also working properly.
	affected routines: regelRI, regeldisplaymode

28-10-'03: the "reload last" function would produce an error if the name variable was empty.
	Now a check is done to prevent that from happening.
	affected routines: reload

28-10-'03: The "get position" routine has been disabled for the "both" display mode as it
	is too complicated to work with.
	affected routines: pos1d

28-10-'03: scale1d did not handle the display mode "both" properly: as this is such a special
	display mode we always should do a "reset figure" and this wasn't done.
	affected routines: scale1d

28-10-'03: dual display of lines with axes of different increment sign (i.e. ascending/
	descending) cannot be handled properly by the "get position" routine. Even the
	plotting may not be very useful but it is allowed. A warning message is now issued
	whenever this situation occurs to notify the user.
	affected routines: dualdisp

28-10-'03: the relative y-scale feature (should this be made obsolete?) did not work properly
	for the "imaginary" and "both" display modes. For the imaginary display mode a real
	number was substracted from line instead of an imaginary number.
	affected routines: Qspcrel

28-10-'03: a few "single slice" features have been added to the 2D processing menu (and in the
	2D panel on screen). These can be used to operate on single slices of a 2D. Currently
	these include "shift data points" and "set phase", but could potentially be expanded.
	affected routines: setphase2d, regelleftshift, matNMR1DButtons, matNMRinitvars

28-10-'03: an item has been added to the goodies menubar: "reset after error". This
	tries to reset certain key variables and recreates the axes so that an error doesn't
	force a shutdown of the program. As in my Linux version of Matlab the graphics are
	not that stable this may be useful for repairing any buggy rendering that Matlab
	sometimes produces.
	affected routines: matNMR1DButtons, ResetAfterError

28-10-'03: the script views.m was renamed to regelviews.m to fit in with the general naming of
	scripts.
	affected routines: regelviews

28-10-'03: The phase values have been taken out of the undo matrix for 2D spectra because of
	the confusion arising from them: if they are left in then an undo of a previous
	phase setting should result in the unphased 2D, while showing the current slice with
	the stored phase values. This is confusing because that way it seems that nothing
	was restored since the slice before and after the undo are the same. Only after switching
	rows/columns or changing the phase values in the respective UI controls, this difference
	may be detected. This is just very confusing for the user and so the values are simply
	no longer stored. An undo will restore the 2D as it was before the phase setting and
	the change is obvious because the slice looks different (if the phase change was large
	enough to be detectable by eye).
	affected routines: regelUNDO, doUnDo

29-10-'03: A startup message has been created which is shown at startup only. This points the
	user to new features and hopes to alert people to update their version more regularly.
	affected routines: StartupMessage, nmr

29-10-'03: the execution of a user command (which is put in the processing history) did not
	use the undo function. This has been added.
	affected routines: regelusercommand

29-10-'03: a bug was found in the "define peaks" part of the baseline correction routine:
	a red grid would be plotted over the designated area, which would be related to the
	current view settings for the y-axis: Qymin and QtotaalY. In some cases the routine
	would fail because of rounding errors. Now a check is done to ensure this doesn't
	happen.
	affected routines: defpeaks

29-10-'03: a routine has been added to the plot manipulations menu in the main figure window
	to indicate spinning sidebands in the current plot. The user is asked to supply the
	spinning speed, the spectral width (is usually already known) and line attributes for
	the marker lines. After that a peak must be assigned and the marker lines will be
	put in the current plot.
	affected routines: askshowsidebands, regelshowsidebands, matNMR1DButtons, matNMRinitvars

29-10-'03: the default unit for the spectral width has been changed from Hz to kHz.
	affected routines: regelshowsidebands, matNMR1DButtons, scale?d, matNMRinitvars,
	GetDefaultAxis, askshearing?D, stats?d, QReadParameterFiles, apodize1d

17-11-'03: the change of 01-10-'03, in which the option to multiply the first point of the FID by
	0.5 was deleted from the general options menu, has been partly reversed. Since this multiplication
	is only wanted when the FID is apodized to zero, and not when doing an FT of an undamped
	cosine, a check button was added to the main window to allow setting this on the fly.
	The default setting is on, but if the user wants to do an FT of an oscillation (e.g. when
	doing spin counting) this can be switched off at will.
	affected routines: matNMR1DButtons

17-11-'03: if the user loads a single 2D matrix into matNMR then the checkinput2d routine will see
	if the axis vectors are saved in the matNMR structure, if there is one. Until now the
	routine only checked them simultaneously but this would give problems because sometimes
	only one of the axes is saved (default axes are not stored in a structure) and the other
	left empty. Then an error message would be given saying that the axes were not of correct
	length. Now the check is split in two, to cover the axis vectors indepedently.
	This is connected to the new feature of the default axis as well because previously it
	wasn't really possible to save only one axis.
	affected routines: checkinput2d

17-11-'03: the viewrow and viewcolumn routines did not set the spectral width and spectrometer frequencie
	before doing an "asaanpas", which could lead to an incorrect default axis.
	affected routines: viewcolumn, viewrow

17-11-'03: the reading of Chemagnetics FID's using the parameter files sometimes failed whenever the
	acq file contained one or more arrays but the experiment wasn't an array. This was because
	matNMR did not take the use_array variable into account, which is written in the acq_2 file.
	affected routines: QReadParameterFiles

17-11-'03: the replacement of the "_" character in the title by "\_", whenever the title is the name of
	the current variable (see also change of 12-05-'03), wasn't done properly by the regelgetcolumn and
	regelgetslice routines.
	affected routines: regelgetcolumn, regelgetslice

17-11-'03: the doebasl2dcor and stopbasl2d routines did not do a "CheckAxis" before plotting the
	current slice, after performing a 2D baseline correction (or undoing it or cancelling it).
	This would sometimes lead to spectra which weren't plotted correctly (flipped left-right).
	affected routines: doebasl2dcor, stopbasl2d

18-11-'03: the width of the windows that are used to add titles and axes labels to plots have been
	made larger by default.
	affected routines: clabels, klabels

18-11-'03: the layout of the window for the creation of legends has been changed to accomodate for more
	space for the text for each line in the plot.
	affected routines: Qezlegend

02-12-'03: Whenever a stack1d was made with many elements in the stack then the axis would be
	illegible because of the crowding of the text. Now, the number of ticks is limited
	to approximately 25.
	affected routines: stack1d

09-12-'03: the SIMPSONread did not use kHz as default unit for the spectral width.
	affected routines: SIMPSONread

22-12-'03: apodizing a spectrum produced an error because the plotapodizer routine had a bug in
	the line which defines the plot for descending axes.
	affected routines: plotapodizer

22-12-'03: when apdozing a 2D spectrum with a descending axis then the simpelplot routine did not
	do a CheckAxis to determine whether the line and axis need to be flipped to produce the
	proper plot. This has been corrected.
	The same problem was present in the regellb routine, when selecting "none" for the
	apodization function. This would not return the situation to what it was before
	apodization, which it should do however. Also here the CheckAxis has been inserted
	after the Qspcrel statement.
	affected routines: simpelplot, regellb

22-12-'03: the SIMPSON import filter did not set the FID/spectrum flag properly in the output
	matNMR structure. In fact it did not even look at what the type of data was. This has
	been corrected. By default an FID is assumed if the variable TYPE is not set in the
	SIMPSON data file.
	affected routines: SIMPSONread

15-01-'04: after performing a phase correction on a 2D the scale was automatically changed by
	the asaanpas routine. Now this has been replaced by simpelplot which only adjusts the
	x scale and not the y scale.
	affected routines: setphase2d

16-01-'04: the stack 1D routine was changed to incorporate an empty space between the slices
	in the 1D stack plot.
	affected routines: stack1d

16-01-'04: There was a small bug in stack1d: it used the variable QRincr1 to see what the
	increment in the current axis vector is, instead of QRincr. That meant that doing
	a stack plot starting from TD1 did not work properly in many cases.
	affected routines: stack1d

16-01-'04: Now the stack1d routine tries to avoid crowding of the tick labels by limiting the
	number of decimals to 2. This is only done when there are decimals.
	affected routines: stack1d

16-01-'04: the QuiInput routine (creates most input windows in matNMR) has been extended by a
	function that allows to make the current input window the full width of the screen
	size. This is useful when the original window was too small and certain uicontrols
	cannot be fully read because of this limited window size.

	The same functionality has been added to the axis/title routines klabels and
	clabels and the legend routine for the main window.
	affected routines: QuiInput, klabels, clabels, Qezlegend

16-01-'04: The show sidebands function has been moved to the "plotting functions" submenu
	in the "plot manipulations" menu.
	affected routines: matNMR1DButtons








=============
!web release! : january 16 2004, version 3.1
=============

20-01-'04: Added the possibiltiy of changing the axis labels individually to the "plot
	manipulations" menu in the main window. This is additional to the normal menu.
	affected routines: matNMR1DButtons

20-01-'04: changed the "stop matnmr" button in the main window into "close window". Also,
	the option has been changed in the menubar, while an option "stop matnmr" has been
	added to the menubar. This way the main window can be closed without the 2D/3D
	viewer windows being affected. If no 2D/3D viewer window is open then "close window"
	and "stop matnmr" do the same thing.
	affected routines: matNMR1DButtons, stopnmr, stopmatnmr, matNMR2DButtons

20-01-'04: the default axis setup did not yet include the definition of the sign of the
	gyromagnetic ratio. As this is important for the direction of a frequency axis
	this has been added.
	When switching the dimension in a 2D the gamma variable was not updated as this
	was never needed before.
	affected routines: matNMR1DButtons, GenerateMatNMRStructure, regelsave*, matNMRinitvars,
	whatgamma1d, whatgamma1d_2, GetDefaultAxis, regelgetcolumn, regelgetslice, viewrow,
	viewcolumn, checkinput1d, checkinput2d, makenew1D, makenew2D, regelUNDO, doUnDo

20-01-'04: the concatenate routine did not preserve the QFIDstatus variable when concatenating
	a 1D into a 2D matrix. Also it did not do a 1D -> 2D concatenation when starting from
	a 2D and selecting the "concatenate matrix" from the "1D processing" menu.
	affected routines: regelconcatenate

20-01-'04: the getslice and getcolumn routines have been renamed to askgetslice and askgetcolumn
	to comply with general naming of routines.
	affected routines: matNMR1DButtons, getslice, getcolumn

20-01-'04: the makenew2D routine did not set the flag for whether or not to use the default
	axis for the current slice and so the value for TD2 was not used, and even overwritten
	by the subsequent call to asaanpas.
	affected routines: makenew2D






=============
!web re-release! : january 16 2004, version 3.1 as the previous changes were important to the default axis setup.
=============

20-01-'04: The SIMPSONread did not scale the spectral width in TD1 to kHz
	affected routines: SIMPSONread

20-01-'04: The SIMPSON ASCII reading routines did not properly add the new name to the
	list of known names.
	affected routines: regelsimpsonasciilaad*

20-01-'04: until now the spectral width in TD1 was not adjusted to half it's original value
	after TPPI and Bruker qseq Fourier Transforms. Now it is. Note that this assumes
	that the user provides the true spectral width for an FID, i.e. 1/dwell
	--> add notice to manual!
	affected routines: four1d, four2d

20-01-'04: there was a typo in the regelUNDO routine which prevented the spectral width in TD2
	to be recorded correctly. Instead it showed the spectral width in TD1 twice.
	affected routines: regelUNDO

21-01-'04: when starting matNMR using nmr followed by opening the 2D/3D viewer, followed
	by closing the main window and restarting it, the main window would not appear
	back correctly. This was because the figure window sizes were not set back to
	values in units of pixels. This is normally done in matNMRinitivars during startup
	but is circumvented when starting the main window after the 2D/3D viewer.
	This problem arose because now both windows can be opened independently, which wasn't
	possible before (see change 20-01-'04, stopnmr issue)
	affected routines: nmr

21-01-'04: A button was added to the 2D/3D panel window to allow opening the main window.
	affected routines: matNMR2DPanelButtons

22-01-'04: executing the stack1d while reprocessing from a macro did not work properly because
	the dimension was set to 0 before saving the history, the x-limits weren't stored in
	the macro (only when recording the macro), the x and y limits weren't set properly in
	the RunMacro routine.
	affected routines: stack1d, RunMacro

22-01-'04: in the change of 20-01-'04 where the gamma was made included into the default axes setup
	the makenew?d routines were changed such that the value was always reset before the
	checkinput?d routines. This is annoying as it means that the value does not stay constant
	between loading FID's, unlike the spectral width and spectrometer frequency (unless they are
	specified for the new FID/Spectrum obviously)
	affected routines: makenew?d

26-01-'04: a simple line plotting option has been added to the "plot manipulations" - "plotting
	functions" menu in the 2D/3D viewer.
	affected routines: matNMR2DButtons, asknameline, regelline, displine, regelplotseriesline

26-01-'04: whenever changing the tick labels from the "plot manipulations" menu, using the
	regelticklabel routine, the input could not be a variable with the tick labels in them.
	Now, first it is checked whether the input is a variable in the workspace and if so then
	the variable is evaluated. If not then the input is taken literally, as before.
	affected routines: regelticklabel

30-01-'04: the matprint routine did not allow for opengl rendering yet. This has been added to the
	popup button in the matprint window.
	affected routines: matprint

03-02-'04: whenever plotting a relative contour plot with all contour levels set to 0, an error
	message would appear to prevent the contour routine from crashing. This has now been
	replaced by a warning message stating that no spectrum will be drawn. Furthermore, the
	axis will be cleared.
	affected routines: calccontlevels, dispcont

03-02-'04: the descriptions in the input window for changing the positions of the axis locations
	in a plot were incorrect.
	affected routines: askaxislocations

04-02-'04: the "get position" routine in the main window would produce an error whenever scanning
	a flat line. This was due to the interpolation routine.
	affected routines: crsshair

05-02-'04: a feature was added to the plot manipulations menu in the main window and the 2D/3D
	viewer window: now it is possible to change the axis position for the current axis.
	This can be useful when resizing the window and finding out that some text has not been
	scaled appropriately with it and now sticks out of the axis (happens with legends for
	example). Now the position can be changed directly. Changes to the axis position are
	NOT reversed by the "reset figure" button in the main window. Currently, only the
	"reset after error" does that. Should this be changed?
	affected routines: matNMR?DButtons, askaxisposition, regelaxisposition

10-02-'04: there was an bug in the regelzero2d routine concerning the history macro: the ranges
	of rows/columns weren't fed correctly into the AddToMacro routine because of incorrect
	indexing into empty vectors. This has been corrected.
	affected routines: regelzero2d, AddToMacro

18-02-'04: the crsshair routine did not like it if the FID/spectrum contained NaN values (see
	also change of 04-02-'04). This has been changed.
	Affected routines: crsshair

18-02-'04: when switching from display mode "both" to another mode then sometimes the spectrum
	would be reversed. This was due to the fact that the CheckAxis routine was not performed
	before the simpelplot. See also change of 22-12-'03.
	As a precaution all other places where simpelplot is used have been check to see if the
	CheckAxis is run properly.
	Affected routines: regelRI, shiftFFT2d, setphase2d, detsovern, apodize?d

18-02-'04: The default shading for 2D raster plots has been changed to "flat". That way the
	plot cannot become invisible due to raster lines, when choosing a high density.
	Affected routines: dispraster2D

18-02-'04: The 2D raster plot did not use the variable QcontspecPlot for plotting but Qcontspec,
	meaning that sometimes the spectrum would not be in the right position (flipped l/r and/or
	u/d, compared to all the other plotting routines in the 2D/3D Viewer).
	The same was found to be true for the polar plotting routine.
	Affected routines: dispraster2D, disppolarplot

18-02-'04: The handles for the colorbars were not stored in the userdata of the figure by the
	regelcaxis routine, causing errors when trying to access the handles later on.
	Affected routines: regelcaxis

20-02-'04: The routines that handle the setting of title and axis labels interfered with each
	other. Now, the necessary object handles are stored in the userdata of the figure
	window. These are read every time so no interference can occur.
	Some unnecessary lines have been taken away from the two routines.
	Affected routines: clabels, klabels

20-02-'04: the routine that handles the changing of the axis rulers (stats2d) sometimes did not
	show the options for the types of axes available. This was because it uses the same
	variable as that used by the main window and since new options have been added there,
	this could give problems. Now it is possible to have time axes in the 2D/3D viewer as
	well. Furthermore, the routine for the 2D/3D viewer no longer uses the same variable
	as the main window does so in future the same error cannot appear again.
	Affected routines: whataxis2d, scale2d, regeltimeaxis2d, matNMRinitvars, stats2d,
	regelaxis2d, prescale2d

20-02-'04: When reading in a new 2D spectrum the default axes in both dimensions would not be
	defined until changing the dimension. For TD2 this was no problem as it would be defined
	by asaanpas anyway, but for TD1 this meant the default axis would not be defined yet.
	Now the checkinput2d routine defines the default axes, if necessary.
	Affected routines: checkinput2d

01-03-'04: The zero frequency for the default frequency axes was not correct. It was shifted by
	one grid point.
	Affected routines: GetDefaultAxis

01-03-'04: The spectrum was not plotted correctly after doing an undo during baseline correction.
	The CheckAxis routine was run before the Qspcrel routine in stopbasl2d.
	Affected routines: stopbasl2d

01-03-'04: A strange error message was obtained when I tried to read a series of binary FID's and
	in one of the directories the data file was missing. Now, an error message is produced
	that tells the user which file cannot be found.
	Affected routines: QReadParameterFiles

01-03-'04: When changing the axis ruler on a spectrum the zoom function is switched off whenever
	a mouse input is required. Annoyingly it wouldn't be switched back on afterwards, which
	has now been changed.
	Affected routines: scale1d, prescale1d, matNMRinitvars, regelppm1d, regelhz1d

03-03-'04: The spectral width in TD1 wasn't set properly by the undo function; it used the value
	for TD2 instead of TD1.
	Affected routines: doUnDo

03-03-'04: Before getting the default axis in a dimension, the QFIDstatus variable wasn't set by
	the checkinput2d routine. This caused that in some cases the axis in TD1 was in the
	default unit for the frequency domain. In most circumstances this wouldn't be noticed
	as upon going to TD1 (e.g. by selecting a column) the proper axis would be loaded.
	A routine like regelextract2d, did however show the problem in such cases.
	Affected routines: checkinput2d

03-03-'04: The extraction of part of the spectrum did not work properly when executing a macro,
	because the default axes weren't properly defined at the point where the extraction
	routine was started. Normally this is taken care of by the asaanpas routine during
	processing, but since that is not executed during macro's this problem could arise.
	Now, the default axes for both dimensions are determined before executing the extraction,
	if the flag variables are set accordingly.
	Affected routines: RunMacro

04-03-'04: An old annoyance has been taken away: the matprint routine used to discard all user-added
	text when it updated the command string (which happens when any button is touched).
	Now the routine determines what part is user-added and appends it to the updated command
	line. This is only done, however, when nothing has been changed to the part of the command
	line that is done by matprint. If changes have been made, all user-added text is
	discarded as before.
	Affected routines: matprint

05-03-'04: The execution of macro's has become incorrect with the coming of the default axes. This
	is because the dimension-specific parameters like spectral width, gamma, frequency, etc, were
	not stored at each step. Previously that didn't really matter because any axis that is
	not in points needed to be defined manually, upon which the values would be properly set.
	Now that is no longer true and therefore these parameters are stored in the processing
	macro after each action.
	The way I have implemented it does cause some unnecessary overhead during the execution
	of macro's but it does however ensure that at all times the default axes are properly
	defined.
	Affected routines: RunMacro, AnalyseMacro, SetDimensionSpecificParameters, historyFT,
	regelsize2d, regelleftshift, regelswapecho, shiftFFT2d, flipspec, historyapodize,
	regelzero2d, convertBrukerqseq2d, regelconvertBruker, regelconvertVarian, defstates,
	regelconcatenate, setphase2d, symmetrize2d, regelshearingTD, stopbasl2d, regelsetintegral2d,
	regelshearingFD, regellp2d, transponeer, regelBrukerdig, DCcorr2d, regelsolventsuppression2d,
	regelextract2d, shiftFFT1d, regelsize1d, stopbasl1d, scale1d, convertBrukerqseq1d,
	DCcorr1d, regelsolventsuppression1d, setphase1d, regellp1d, regelextract1d

05-03-'04: The AddMacro deleted entries with indexes higher than 200 because that is needed by
	some functions. By doing that it also took away user-defined commands from a macro, which
	is not good. This has been corrected.
	Affected routines: AddToMacro

08-03-'04: when reprocessing a macro and executing an FT, the Qfftstatus variable wasn't updated
	in its UIcontrol in the main window.
	Affected routines: RunMacro

08-03-'04: Manual baseline fitting (in 1D mode) was not added to the macro when recording a macro.
	(although it was added to the history macro).
	Affected routines: stopbasl1d

08-03-'04: the flag for being busy with phase correction was not cleared when performing an
	undo action, causing problems when trying to process the data further.
	Affected routines: doUnDo






=============
!web release! : march 9 2004, version 3.1.37
=============

10-03-'04: The current row and column numbers have been added to the dimension-specific data that
	are now stored in the (history) macro's (see change 05-03-'04). This means that the
	view after reprocessing should be the same as it was after the first time.
	Affected routines: SetDimensionSpecificParameters, transponeer, symmetrize2d, stopbasl2d,
	shiftFFT2d, setphase2d, regelzero2d, regelswapecho, regelsolventsuppression2d, regelsize2d,
	regelshearingTD, regelshearingFD, regelsetintegral2d, regellp2d, regelleftshift,
	regelextract2d, regelconvertBruker, regelconvertVarian, regelconcatenate, regelBrukerdig,
	historyFT, historyapodize, flipspec, defstates, DCcorr2d, convertBrukerqseq2d

10-03-'04: With the new dimension-specific information added to macro's the stepwise reprocessing
	of a baseline correction has become faulty. This was due to the construction used for
	defining the peaks in the spectrum (which are subsequently not fitted into the baseline).
	Affected routines: AnalyseMacro, RunMacroStepwise

10-03-'04: The dual display was sometimes incorrect in that it showed the additional spectrum
	flipped from left to right. This was because the spectrum was not always ensured to be
	a row.
	Affected routines: checkinputdual

11-03-'04: The scale1d routine did not distinguish between the various dimensions when adding the
	dimension-specific data to macros.
	Affected routines: scale1d

15-03-'04: A bug was found under Macintosh that relates to the directory separator character.
	So far matNMR assumed ":" for Macintosh but MATLAB 6.5 uses "/". I found that the
	standard MATLAB m-file "filesep" produces the correct separator character. This existed
	already in MATLAB 5.2 so I assume that the use of this function should not interfere
	with users running matNMR on older MATLAB versions.
	Affected routines: regelBrukerSpectraread*, regelmatlaadSeries, regelQfidread*,
	regelsimpsonasciilaad*

17-03-'04: The flag variables for the default axis have been added to the Undo matrix.
	Affected routines: doUnDo, regelUNDO, GenerateMatNMRStructure

17-03-'04: The peak picking routines have been rechecked for functionality and bugs were
	found that relate to new features.
	-Replotting the peak list in a contour plot had become faulty due to a change which
	interfered with the restorepeaklist routine (used the same temporary variables).
	-Also, the indexing in the restorepeaklist routines was incorrect. It used to work in
	older version of MATLAB (although probably produced a warning even then), but in
	version 6.5 it produces an error.
	-The default fontsize of the text labels was 8 which is very small on PC's. Now the
	default font size of the axis is used.
	-The peak picking didn't always work properly with axes that were not in points. This
	was because the coordinates weren't sorted by the GetPeaks routine.
	-The peak list wasn't always cleared when loading a new spectrum.
	-The scale2d routine called the plotcont routine when changing the axis rulers,
	which in turn called the restorepeaklist routine. This intefered with the proper
	restoring of the peak list in case the spectrum was loaded from a matNMR structure.
	Now a flag is set in scale2d, which determines whether the restorepeaklist
	routine is executed from the plotcont routine.
	-Asking for a new name to save the spectrum + peak list in the workspace was only
	done when the variable name is 'QFT1', but not for other strings that do not exist
	(e.g. "rand(30)"). Now this has been changed.
	Affected routines: scale2d, restorepeaklist2, restorepeaklist3, GetPeaks, dispmesh,
	displine, dispbar, disppolarplot, dispraster2D, dispstack3D, asksaveliststructure

17-03-'04: To resolve a known issue with the scale2d routine, the type of plot of each axis
	is now stored in the userdata of each 2D/3D viewer figure. The issue relates to the
	fact that when changing the axis rulers the scale2d routine implicitly assumed a
	contour plot. And so when replotting the spectrum the plot type might change. Now,
	the plot type is stored and the scale2d routine handles the situation accordingly.

	Also, from now on changing of the axis rulers is not allowed for polar plot, bar
	plots and line plots as they are all highly specific plots (checked by stats2d).

	Affected routines: scale2d, Subplots, plotcont, dispmesh, dispstack3D, dispraster2D,
	disppolarplot, dispbar, displine, stats2d.

26-03-'04: The "reset figure" routine did not change the view to [0 90]. If the view had
	somehow be reset by some external action then there was no way of returning to the
	proper display.
	Affected routines: asaanpas

29-03-'04: Made some minor improvements to the legend routine in the main window:
	-The font units are now normalized so that when rescaling the window the fonts change
	with the window and the axis of the legend doesnn't need separate scaling.
	-The example line in the legend now has three points which makes it much easier to see
	the symbol that is connected to a certain line.
	-Previously, when closing the legend window the legend axes was the current axes, making
	it necessary to first click on the main axes (with the FID/spectrum) if one wanted to
	make changes from the "plot manipulations" menu. Now this has been solved.
	-The positions of the sample lines and the text have been altered slightly for esthetic
	purposes.
	Affected routines: Qezlegend, Qlegend

29-03-'04: A transpose was performed incorrectly by the dual display routine, causing the imaginary
	part to be inverted, instead of the column converted to a row. (i.e. used "'" instead of ".'")
	Affected routines: checkinputdual

29-03-'04: Saving into the workspace of time and gradient axes did not work properly.
	Affected routines: scale1d

02-04-'04: The States-TPPI Fourier transform in TD1 was screwed up. In effect no FT was done at all.
	Affected routines: four2d

02-04-'04: Made a small change to the manual concerning how to process States-TPPI data in matNMR.
	It was unclear that this follows exactly the same actiona as normal States processing.
	Affected routines: Processing.html






=============
!web release! : april 2 2004, version 3.1.51
=============

26-04-'04: The "Get Integral" function in the 2D/3D viewer did not give the proper integral for
	certain axes. Since the extracted coordinates weren't sorted the integral would then
	be zero. Now a sort is performed.
	Affected routines: Integrate2D

26-04-'04: When changing the nr of the slice to view in the peak fitting routine, i.e. when fitting
	an array of 1D spectra, the spectrum sometimes flipped from left to right for certain
	axes. This has been corrected.

	Also, this functionality was never intended to show the changes in parameters when changing
	the view number. Now this has been added. If the data has been fitted then the parameters
	will be changed and the corresponding fit will be shown.

	When changing the slice number or doing a "refresh" the previous lines in the plot would
	not be removed, causing massive overlap. Now this has been fixed.

	Affected routines: peakfit

30-04-'04: When doing a dual plot using a spectrum, stored in a matNMR structure, then there could
	arise a problem if the spectrum was saved while working with a default axis. Since the
	dualdisp routine did not recreate default axes it would try and apply the current axis
	vector to the new variable, which often fails. Now, the routine recreates the default
	axis, if that is the current mode, and will only apply the current axis vector if the
	variable was NOT stored in a structure or if the current spectrum is not in default
	axis mode.
	Affected routines: checkinputdual, GetDefaultAxisDual

04-05-'04: A few routines had used the function 'strfind'. This is very similar to the function
	'findstr', which was used so far in matNMR, and can usually be interchanged. The only
	problem is that it is a function that was introduced after Matlab 5.3 and so this
	created compatibility problems. Now the 'strfind' has been replaced by 'findstr'.
	Affected routines: askfidlaad*, QReadParameterFiles

04-05-'04: The 1D FT setting for "whole echo" used a real FT instead of a complex FT.
	Affected routines: four1d

04-05-'04: From now on the multiplication by 0.5 is never done before an FT, if the setting for
	FT is "whole echo".
	Affected routines: four1d, four2d

04-05-'04: There was massive interference between the MoveAxis and the zoom routines in the
	2D/3D viewer window. Whenever one tried to move the SuperTitle whilst the zoom was turned
	on, this would lead to strange results. Now this has been diminished (not completely
	solved!) by first switching off the zoom when trying to move the SuperTitle. When the
	user keeps the mouse button pressed then at first the rubberbox from the zoom will
	appear but as soon as the button is released, the zoom is switched off the and the
	MoveAxis takes over.
	Affected routines: Subplots, whereamicont, contzoomOFF

04-05-'04: So far the dual display routine did not set the "userdata" property of the "zlabel"
	in the current axis, after changing the view to accomodate the additional plot. That
	meant that the zoom would return to an ackward view when double-clicking. Now the
	proper width is always maintained.
	Affected routines: dualdisp

07-05-'04: The line tag wasn't correct after switching from 2D to 1D mode. It would use the
	previous line tag for 1D mode. Now a new routine is called, called SwitchTo1D, which
	is used by all other 1D processing routines and which sets the proper variables.
	Affected routines: SwitchTo1D, convertBrukerqseq1d, regelBrukerdig, regelleftshift,
	regelswapecho, DCcorr1d, regelsolventsuppression1d, regelsize1d, four1d, shiftFFT1d,
	flipspec, regelconcatenate, regelextract1d, basl1dmenu, regellp1d,

07-05-'04: From now on the routines that allow saving variables into the workspace or to disk
	will use the line tags to provide the name of the variable in the workspace. Previously
	the last-used variable name (QspctC) was used for that. This way one doesn't get the
	confusion of seeing the last variable name for a 2D, when you're trying to save
	a totally unrelated 1D.
	Affected routines: asksave?d, asksavedisk?d.

07-05-'04: The display mode "both" has been altered. Previously the real and imaginary parts were
	glued together. Now they are separate lines. This has the advantage that there is no
	connecting line between the two buffers.

	Also, now asaanpas is not only used when selecting mode "both" but also when DEselecting
	this mode.

	Affected routines: regeldisplaymode.

07-05-'04: The warning message given whenever the axis increment of a dual display vector is
	opposite that of the current spectrum (see change 28-10-'03) has been changed. Previously
	it said that the plot could be incorrect. This was not true. Now it only mentions the
	fact that the "get position" routine will not function correctly.
	Affected routines: CheckAxisDual.

07-05-'04: While apodizing, both the simpelplot and asaanpas routines executed the restorelb
	routine, which adds the apodization to the current spectrum variable Qspct2. This
	was not correct as this would lead to multiple apodizations if e.g. the "reset figure"
	button would be pressed several times. This meant however that the apodization was no
	longer executed properly, when selecting it from the UI control. Thus the restorelb
	was added to the apodization routine, which makes more sense all in all.
	Affected routines: simpelplot, asaanpas, RestoreMacro, apodize1d.

11-05-'04: The error messages in the QReadParameterFiles routine were misleading, which made it
	seem if matNMR was looking for parameter files in the wrong directory.
	Affected routines: QReadParameterFiles

11-05-'04: There is a MATLAB bug around which causes figure windows to be opened with very small
	heights so you don't see anything. It was shown to happen using Matlab 5.3 on Windows XP
	and possibly there are more offending systems. A workaround seems to be to specifically
	set the position and units after the line where the window was created, even though the
	position and units were defined in exactly the same way upon figure creation. To be
	sure all routines which open figure windows with defined sizes, regardless of whether
	they worked before or not, have been fitted with this workaround.
	Affected routines: Qoptions, matprint, basl?dmenu, Qlinedata, QezLegend, Qscreenops,
	matnmrhelp, pk_init, Diffpk_init, ?labels, stats?d, Qtextdata, Qfontops,
	matNMR2DPanelButtons, matNMR2DButtons, RunMacroStepwise, nmr

12-05-'04: A new function has been added to the main window: vertical stack. Although this
	function is not finished yet, and hasn't been added to the manual yet, it seems useful.
	It asks for a range in the other dimension of a 2D and then plots all the 1D's in the
	same axis, but each with their own vertical offset. This allows easy comparison of slices.

	A notice is given when this routine is called to mention that it is still being
	developed.

	Affected routines: matNMR1DButtons, matNMRinitvars, askstack1dvertical, stack1dvertical,
	regelviews






=============
!web release! : may 13 2004, version 3.1.67
=============

14-05-'04: The routine used for reading standard parameter files did not use a system-specific file
	separator but by default used "/". This caused problems on certain platforms running older
	versions of Matlab. Now filesep is used instead, in line with the changes made on 15-03-'04.
	Affected routines: QReadParameterFiles

	A proper search was done to scan for more occurences and these were changed as well
	Affected routines: Brukerlaad*, T1pk_init, pk_init, Diffpk_init, simpsonasciilaad*,
	regelsavedisk*, matNMR?dButtons, matlaad*, fidlaad*

17-05-'04: The change in zero frequency for the default frequency axis made on 01-03-'04 was reverted
	as it turned out to be incorrect. Now the Fourier transform of a cosine will produce two lines
	with equal frequency but of opposite sign.
	Affected routines: GetDefaultAxis, GetDefaultAxisDual

20-05-'04: After concatenating a 1D into a 2D, there would sometimes be an error message when resizing the
	matrix. This was because the regelconcatenate did not create the hypercomplex matrix QFT2 and so
	the regelsize2d tried to access the non-existent, or incorrectly-sized, QFT2.
	As it turned out, also for 2D's the QFT2 matrix wasn't updated. Now this is concatenated in the
	same direction as QFT1.
	Affected routines: regelconcatenate

20-05-'04: The GetDefaultAxisDual routine would produce an error for PPM scales because it tried to use the
	standard axis variable Qtempvec1d, instead of the proper variable Qdualaxis.
	Affected routines: GetDefaultAxisDual

20-05-'04: The FT in TD1 was checked to see whether the zero frequency of the default axis would be correct.
	This was not the case as the spectra were not flipped L/R, whereas they are in TD2. To correct this
	the real, complex, states and states-TPPI FT have been changed such that they do flip the spectrum
	after the FT.
	The FT's for TPPI have not been altered.
	Affected routines: four2d

21-05-'04: The "get position" routine crashed whenever there were more than 9 lines in the current plot in
	the main window. This was due to crummy programming. Maybe I should look over such pieces of external
	code once and update them.
	Affected routines: crsshair

23-05-'04: The display mode "both" crashed when loading a very short FID in points, if the tick marks covered
	each data point. Then the asaanpas routine would create twice the same entry in the vector with the
	tick marks and this would cause an error.
	In part this error was due to the fact that the range calculated by asaanpas was incorrect and thus
	caused the error message. But, also the width in the x direction QtotaalX was not calculated properly
	by DetermineNewAxisLimits. The change of 07-05-'04 was not checked properly.
	Affected routines: asaanpas, DetermineNewAxisLimits

01-06-'04: There were two copies of the GPL text file present in the source directory, one called gpl.txt and
	the other one calle GPL.txt. As usual whiny Windows doesn't like that and so I have deleted the GPL.txt
	file.
	Affected routines: GPL.txt

01-06-'04: After a complaint I have added a short notice in the manual on how to install matNMR on UNIX for a
	single user only. Previously it only described how to do it globally, which required superuser status.
	Affected routines: Installation.html

02-06-'04: The checkinputcont routine ran a check on the length of the axes for TD2 and TD1 in a matNMR structure
	if only one variable was given in the input window. It did this simultaneously however, discarding both
	axes if one was of incorrect length (i.e. of a different size than the corresponding dimension in the
	spectrum). Now it does it separately so that it will take one axis even if the other one is incorrect
	or not present.
	Affected routines: checkinputcont

02-06-'04: The default UI font size has been set to 7 for Windows and MAC. This shouldn't be used since users
	are supposed to set up matNMR once by going through the options menus, but anyway this should be better.
	Affected routines: matNMRinitvars

02-06-'04: The x-axis limits for the 1D bar plot were changed in the maind window. Before the limits were the
	same as for a normal plot, but that meant that the first and last bar were only shown half. Now 1 axis
	increment is taken before the first bar and one after the last one to ensure all bars to be seen in full.
	Affected routines: regelmake1dbar

02-06-'04: An incorrect transpose (complex conjugate transpose "'") was used by the getcurrentspectrum routine.
	Affected routines: getcurrentspectrum

02-06-'04: A flag is now set for different types of plots in the main window. That way it is clear whether the
	current plot is normal (default), horizontal stack plot, vertical stack plot etc.
	This flag is being used by the dual display routine so that it can do fancy dual plots as well.
	Affected routines: matNMRinitvars, asaanpas, simpelplot, stack1d, stack1dvertical, regelRI

02-06-'04: Some more improvements have been made to the vertical stack routine:
	-standard variables for the input windows so the previous values are remembered.
	-repeated calling of the vertical stack routine caused incorrect vertical scaling. Now a "reset figure" is
	done before the vertical stack is calculated to ensure proper resetting of the plot to the default plot type.
	-feature now also works for TD1.
	-it is automatically allowed to change the display mode, i.e. it is possible to select real, imaginary,
	absolute and power spectrum for the vertical stack plot.
	-the 1D stack plot has been renamed into horizontal stack plot.
	Affected routines: matNMRinitvars, askstack1dvertical, stack1dvertical, matNMR1DButtons

02-06-'04: The dual display routine has been changed such that it now recognizes the plot type and distinguishes
	between the various types in its actions. It is now allowed to do a dual display of a vertical stack plot.
	The routine uses the last settings used for the vertical stack plot. It also requires the matrix to be
	exactly the same size.
	NOTE: dual display of a horizontal stack plot has not been implemented yet. A notice is given in the command
	window.
	Affected routines: checkinputdual, dualdisp, asknamedual

02-06-'04: So far in the diffusion fitting routine one needed to enter the values for gamma, gradient spacing and
	gradient duration by hand, after pushing the "def pars" button in the window. Now the gradient spacing and
	gradient duration can also be read in from the parameter file "acqus", under certain conditions. If the data
	have been recorded using XWinNMR 3.0 or higher, using the standard diff script for setting up diffusion
	experiments, then this may be used.

	A note has been made in the manual about this and about the units that are expected for the gradient axis.
	This is in T/m (SI units) and since many people still use G/cm this must be made clear.

	Affected routines: MainWindow.html, regeldefparsDiff, Difffit

02-06-'04: The change made to readBrukerProcessedData on 29-10-2001 was not correct. It turns out that for various
	systems on which Bruker XWinNMR works, different byte orderings are possible, depending on which platform
	the spectra were processed. Before, the change was made from "native" byte ordering to "big endian" because
	data acquired and processed on SGI, and then transfered to a PC to work with matNMR, required "big endian".
	But now, different users have found problems. Therefore the byte ordering has been made optional in the
	corresponding input window.
	Affected routines: matNMRinitvars, askBrukerlaad*, regelBrukerSpectraread*, readBrukerProcessedData, MainWindow.html






=============
!web release! : june 2 2004, version 3.1.85
=============

03-06-'04: The files menu has been restructured such that all import filters are now in a submenu "Import".
	Additionally, a menu item "Export" has been added. Currently this only contains an export filter to
	SIMPSON ASCII format but may be extended in future.
	Affected routines: matNMR1DButtons, matNMRinitvars, asksavetoSimpsonASCII, regelsavetoSimpsonASCII

03-06-'04: Some of the default settings that matNMR changes before starting (settings routine) were not restored
	upon stopping matNMR. One of that was the warning state. This has been changed now.
	Affected routines: matNMRinitvars, settings

03-06-'04: A number of improvements have been made to the vertical stack plot:
	-It had not been connected to the processing history yet.
	-The x-scale was not conserved and so the entire width of the spectrum would always be taken instead of the
	current zoom limits.
	-the axis direction was not correct in some cases.
	-the warning message that this routine is still under development has been taken away.
	Affected routines: stack1dvertical, RunMacro, AnalyseMacro, askstack1dvertical

03-06-'04: Running a macro with a horizontal stack plot did not work correctly. Now the plot is
	always updated in stack1d even when running a macro.
	Also, the RunMacro routine shouldn't do an update of the plot whevenever the stack plot
	was the last command in the macro. This may hold true for other routines as well.
	Affected routines: stack1d, RunMacro

04-06-'04: A bug was found in the routines that generate axes in Hz, kHz and PPM, which resulted in frequencies
	being slightly off their correct values (1 data point).
	Affected routines: scale?d, GetDefaultAxis, GetDefaultAxisDual

04-06-'04: When changing row or column number in a 2D, the plot type would not be taken into account. This could
	lead to problems when changing the row/column number just after a stack plot has been made. The plot type
	should be reset to default then and the plot should be reset.
	Affected routines: viewrow, viewcolumn, regelgetslice, regelgetcolumn

04-06-'04: In an attempt to make the pull-down menus in the main matNMR windows shorter, they have been reorganized
	into a number of submenus. The manual should be changed for this as well!
	Affected routines: matNMR1DButtons, matNMR2DButtons

04-06-'04: The range specification for zeroing a part of a 2D was not stored well in the history
	macro. Previously only the start and end were stored. Now also the increment is stored.
	Additionally a warning message is issued if the range is non-linear, because then it will
	not be stored in the macro.
	Affected routines: regelzero2d, RunMacro, AnalyseMacro

04-06-'04: A routine was added that allows integrating a range in the current slice of the current 2D
	spectrum, but then do the same integration for the other slices in the opposite dimension. This
	is an extention of the integrate function for 1D spectra.
	Affected routines: matNMRinitvars, askintegrate2d, regelintegrate2d

04-06-'04: A serious bug was found in the phase setting routine: for hypercomplex matrices in TD1 the phase
	correction was in the wrong direction.
	The problem was resolved by having the proper transpose. As so often there was a conjugate transpose
	instead. This problem has arisen because of the change of 02-06-'04 in the getcurrentspectrum routine.
	A typical case of two bugs cancelling each other!
	Affected routines: setphase2d






=============
!emmergency web release! : june 4 2004, version 3.1.95
=============

05-06-'04: In an attempt to find more of the wretched incorrect conjugate transposes, I have done a search and
	found that symmetrize2d also used it (although there it's not crucial since only the real part is taken).
	Affected routines: symmetrize2d

08-06-'04: The readBrukerProcessedData routine used more memory than necessary. It used to first read in the data
	completely, before reordering it. Now it only reads in fragments the size of the blocking factor in TD2.
	Affected routines: readBrukerProcessedData

08-06-'04: A button was added to the 2D panel in the main window that allows direct access to the full matrix
	processing functions, similar to the one for single-slice actions.
	Affected routines: matNMR1DButtons, regelfullmatrix, stopmenu2d, v2dmenu, regelstandardprocessing, v1dmenu,
	stopmenu1d

09-06-'04: When trying to extract part of a 2D it was possible to obtain an error message because if the coordinates
	were larger than 10000 then the num2str would make an exponential out of it. Now the precision has been set
	to 10 digits, which solves the problem.
	Affected routines: regelextract2d

09-06-'04: An option was added to the goodies menu, which allows to change the matNMR distribution you want work with.
	This is only useful for people who have multiple distributions running, which is usually only for testing
	purposes. This will change the path variable, stop matNMR and restart it. No safety options have been built
	in to make sure users don't accidentally lose all their work.
	Affected routines: matNMR1DButtons, selectdistribution.

17-06-'04: A bug was found in the routine that creates an axis in points in the main window. It would
	not ask for a variable name for the axis to be stored in, but would still save the axis if
	a variable name was previously defined (e.g. by creating an axis in PPM). Now the variable
	QUserDefAxis is always cleared so it is never possible to save an axis in points into the
	workspace.
	Affected routines: regelpointsaxis1d

21-06-'04: The routines that deal with adding a series of variables have been extended such that it is now possible
	to tell the routines whether the spectral parameters of the first variable in the range must be retained
	for the new variable. This saves reentering the SWH and SF and stuff.
	Affected routines: matNMRinitvars, askaddvariabes, regeladdvariables, addvariables

21-06-'04: Matlab version 7.0 is now recognized by matNMR.
	Affected routines: matNMRinitvars

28-06-'04: There was a bug in the reprocessing from history when going from a 2D to a 1D mode.
	This would not always preserve the correct slice from the 2D. Now before going to the 1D
	mode the dimension specific information is stored once more in the macro and an update
	of the current slice of the 2D is forced.
	Affected routines: SwitchTo1D, RunMacro, AnalyseMacro

28-06-'04: The reprocessing from history of a "sum TD2" did not work because the routine for
	"sum TD1" was called instead.
	Affected routines: RunMacro

28-06-'04: The routine that deals with adding variables now shows the last variable name in the
	input window if the routine hasn't been used before. This is useful when one has just
	imported a series of spectra.
	Affected routines: askaddvariables

28-06-'04: Two annoying features were removed from the peak fitting routine:
	-when doing a refresh to upload the current 1D or 2D spectrum from the main window, the
	current slice would not be preserved in case of a 2D.
	-when doing a refresh to upload the current 1D or 2D spectrum from the main window, the
	routine would determine what the current mode is (1D or 2D) and then upload the 1D or
	2D spectrum completely. Often however one likes to fit only one slice from a 2D. Starting
	the routine from the 1D menu in the main window will take only the current slice. But
	doing a refresh then loads the entire 2D. Only by going into the 1D menu again of the
	main window would it be possible to get only the current slice. Now the refresh button
	is a popup button so one may choose between "refresh 1D" or "refresh 2D".
	Affected routines: peakfit, pk_init

28-06-'04: It is no longer allowed to do a flip L/R or an extract 2D while apodizing or phasing
	a 2D FID.
	Affected routines: askextract2d, flipspec

29-06-'04: A few more routines were cleared from the tiny bug described on 17-11-'03: the
	replacement of the "_" character in the title by "\_", whenever the title is the name of
	the current variable (see also change of 12-05-'03)
	Affected routines: stack1d, stack1dvertical, regelgetcolumn, regelgetslice

30-06-'04: The "bar 2D" routine has been changed slightly to become more similar to the one in
	the main window. Now, instead of asking for a linespec, it asks for a width and a colour.
	Affected routines: asknamebar, regelbar, dispbar

30-06-'04: The "add variables" routine always added the new name to the list of 10 last-accessed
	2D variables, regardless of the size of the new variable. Now a check is done to ensure
	proper placement.
	Affected routine: regeladdvariables

30-06-'04: The "bar 2D" routine did not set the y scale properly in the 2D/3D viewer window as
	this was commented out when the routine was written. Now it does.
	Affected routines: dispbar

30-06-'04: The "1D bar" plot routine in the main window did not allow bar plots of any other
	display mode than real. Now all modes work except "both".
	Affected routines: regelmake1dbar

30-06-'04: A new plot type was added to the main window: errorbar plot. This is accessed from
	the plot manipulations menu and is consequently NOT a standard plot (see also the entry
	made on 09-10-'03 for bar plots). The input required for the errorbars is evaluated
	such that variable names may be given, even if they are matNMR structures.
	Affected routines: matNMR1DButtons, matNMRinitvars, askmake1derrorbar, regelmake1derrorbar

30-06-'04: More plot types can now be used in combination with dual display. These include the
	horizontal stack plot, 1D bar plot, error bar plot. All of them (except the vertical
	stack plot) allow the same scaling options as for the default plot type.
	Affected routines: matNMRinitvars, stack1d, dualdisp, checkinputdual, asknamedual

30-06-'04: The "1D bar" and "errorbar" routines in the main window did not reset the variable
	that denotes how many spectra are in the current plot, which in turn would give an
	incorrect line color when doing a dual display.
	Affected routines: regelmake1dbar, regelmake1derrorbar

30-06-'04: The title was not preserved by the "reset after error" routine.
	Affected routines: ResetAfterError

30-06-'04: An annoying bug in the WYSIWYG printing has probably been solved:
	sometimes after printing the axis in the main window was slightly distorted in the sense
	that it no longer shows the title and axis label.
	Note 13-05-'04: the problems seems to be that after resizing the window the axis labels
	and titles, which usually have units "data" (i.e. same as units of the vector that is
	shown in the plot), aren't updated properly to account for changes in the axis limits.
	It's as if there is a hidden flag or property which keeps track of whether this is
	done automatically or manually, but we can't see it. And so when you rescale a figure
	the axis labels and title just move along with the limits that you set. Highly
	annoying .... Deleting the object and then calling e.g. "xlabel('string')" will correct
	the problem.

        It seems that the changing of the "units" property of all text objects was not only
	unncessary but also damaging as this created the problem.
	Affected routines: matprint

30-06-'04: The routine that stops the recording of macros did not check whether a macro was
	being recorded in the first place.
	Affected routines: askstoprecordingmacro

30-06-'04: A 7x7 grid of sub plots has been added to the 2D/3D viewer
	Affected routines: matNMR2DButtons, Subplots

01-07-'04: The default axis in kHz for gamma>0 for a dual plot was not correct as it still used
	the incorrect division as described by the entry on 01-03-'04.
	Affected routines: GetDefaultAxisDual

01-07-'04: When switching from a 2D to a 1D mode, some parameters are taken over. One is the name
	of the variable that produced the current line. When running a macro the routine that deals
	with this change was not called which meant that the name was not taken properly,
	which is a minor nuisance.
	Affected routines: SetDimensionSpecificParameters

01-07-'04: Reprocessing from history of a user-defined command was scrappy. It did not go back
	to the corresponding routine (regelusercommand) but executed the command directly in
	RunMacro. This caused problems because then the history would not be written again for
	that action. Now it is done as for all other routines, i.e. the regelusercommand routine
	is called.
	Affected routines: RunMacro

01-07-'04: The extraction of a range in the current 1D was not stored properly in the history
	macro. Instead of saving the range in the units of the current axis it was saved in
	points, which caused errors for any other axis than points.
	Affected routines: regelextract1d

02-07-'04: The add variables routine can now normalize the new matrix by dividing by the total
	number of added FID's/spectra.
	Affected routines: addvariables, askaddvariables, regeladdvariables, matNMRinitvars

02-07-'04: The standard routine for making errorbar plots has been imported into the matNMR code
	to allow some small changes. Now the line between the errorbars is not drawn in 1 part
	but in three. The first two parts of the line cover the part that is positive, the third
	part does the rest. The positive parts are useful if one wants to make a logarithmic scale,
	because that type of plot won't show negative intensities.
	Affected routines: regelmake1derrorbar, errorbarMatNMR, copymat

02-07-'04: Two new functions have been added to the main window which allow manipulation of a
	series of variables with common name. These are a function that normalizes the series
	to equal maximum or equal integral, and one that allows concatenation of the series into
	a new matrix.
	All three series functions have been added to a new submenu in the "files menu" called
	"series trickery".
	Affected routines: matNMRinitvars, matNMR1DButtons, asknormalizevariables, regelnormalizevariables,
	askconcatenatevariables, regelconcatenatevariables

02-07-'04: When reprocessing from history the size of the spectra as stored in the macro was
	a limitation of that macro to spectra of exactly the same size. Now the size is stored
	only, in case of a 2D, if there was a change in that particular dimension. For 1D's the
	action is only performed (and hence stored in the history) if the size is different
	from the current size.
	Affected routines: regelsize1d, regelsize2d, RunMacro, AnalyseMacro

03-07-'04: I have started to add support for 3D variables in the main window. It is not intended
	to allow 3D processing but to allow efficient processing of series of 2D datasets.
	Especially ones that all require the same processing and so a single macro can be used.
	This comes in handy for processing simulations etc.
	A new window will be openened whenever a 3D is detected by the regelnaam routine and in
	this window one must specify the input variable name and an output variable. In order
	to limit memory usage the 3D will not be stored separately by matNMR but instead it will
	use the names of input and output variables to work with. In this window the user may
	specify which 2D needs to be shown in the main window, whether the current spectrum needs
	to be stored now (depending on the processing mode this will produce either a 2D or a 3D
	output matrix!), and a macro can be started for all 2D's in the series. Furthermore a
	button with the last 10 3D datasets will be there which can be used to load a new 3D
	dataset.
	-the "concatenate series of variables" now has a third option "along 3rd dimension".
	This is not supported in the "concatenate" options in the 1D and 2D processing menus!
	-the makenew?d routines automatically jump to makenew3d if needed, which will open the
	window.
	-the current 1D or 2D is stored in the 3D upon changing of the 3D index, for which there
	is an edit window and increment/decrement buttons.
	-the checkinput2d routine needed to be updated for a check in which it compares the
	sizes of the spectrum and the hypercomplex part in a matNMR structure. Now it first
	checks the number of dimensions for each matrix.
	-a check is done to ensure that only processed data are stored in the output matrix.
	If the size of the processed data is not the same as the size of the output matrix
	then storage is refused!

	Affected routines: askconcatenate, askconcatenatevariables,
	regelconcatenatevariables, checkinput?d, regelnaam, askname, putinlist3d, matNMRinitvars,
	matNMR1DButtons, makenew3d, regel3d, matNMR3DButtons, regeloutput3d, askexecutemacro3d,
	regelexecutemacro3d, view2d, checkinput2d

03-07-'04: The full version number of matNMR is now shown, so e.g. "3.1.95" instead of "3.1".
	Affected routines: matNMRinitvars

03-07-'04: The highly annoying feature that closing the main window would be
	exceedingly slow has been partially solved: a "clf reset" was done in the routines
	that close the main window and this deletes each object separately, which would be
	a problem when working across a network.
	The closing of the window is now fast but somehow X, ssh and Matlab still need about
	half the time, and this is still quite long unfortunately.
	Affected routines: stopnmr, stopmatnmr

05-07-'04: Until now the parameters last used for saving a variable were not re-used. This was
	deliberate but still I have decided to change that.
	Affected routines: matNMRinitvars, asksave?d, asksavedisk?d, regelsave?d, regelsavedisk?d

05-07-'04: The input for the errorbar vector may now contain names of matNMR structures. This is
	replaced by the appropriate ".Spectrum".
	Affected routines: regelmake1derrorbar, checkinputerrorbar, dualdisp, checkinputdual

05-07-'04: The routine that deals with changing the tick positions in the "plot manipulations"
	menu now also allows setting the tickmodes back to auto. This means Matlab will set the
	tick positions as it deems fit.
	Affected routines: asktick, regeltick

05-07-'04: When starting matNMR the window would not be quite finished yet as it would resize
	itself. Now the window stays invisible until everything is ready and a "drawnow" has
	been executed.
	Affected routines: nmr, matNMR2DButtons

05-07-'04: Doing a dual display using a vector of length 1 gave an error message due to
	the determination of the non-existent axis increment.
	Affected routines: CheckAxisDual

05-07-'04: Doing a dual display of an errorbar plot using a vector of length 1 did not give
	a proper errorbar because the standard routine uses the x-range of the data to
	determine the width of the bars. Now the current value for the xlim property is used
	in that case.
	Affected routines: errorbarMatNMR

05-07-'04: The errorbar routine was overly sensitive to the marker and line types not being
	deblanked by the routine handling the line properties from the options menu. Now the
	variables are deblanked.
	Affected routines: Qlinedata

07-07-'04: The horizontal stack plot has been changed to conform to the way the vertical stack
	plot was implemented. Since they are both special plots, the processing isn't changed and
	pressing "reset figure" will delete them. So far this was not the case for the horizontal
	stack plot. The routine has also been renamed from "stack1d" to "stack1dhorizontal".
	Affected routines: stack1dhorizontal, regelviews, matNMR1DButtons, RunMacro

07-07-'04: The CheckVariableName routine, used for checking whether a string makes a good
	variable name in the workspace, produced an error whenever the string evaluated to
	a matrix. It could deal with vectors but not matrices.
	Affected routines: CheckVariableName

12-07-'04: An age-old annoyance has been solved: when working with multiple 2D/3D viewer windows
	it could be a hassle to switch windows because it was required to click inside a particular
	window to force matNMR to switch. And clicking on axes which are being used by rotate3d
	to allow 3D rotation, do not allow clicking in an axis. Now the window is switched also
	when accessing any function in the menubar. This also means that closing 2D/3D viewer
	windows from the menubar is no longer dangerous!
	Affected routines: UpdateFigure, SelectFigure, findcurrentfigure, matNMR2DButtons

13-07-'04: When making a plot of a 3D matrix in the 2D/3D viewer, matNMR automatically tries to
	plot it as a series of 2D's in the available subplots. So far the title of these plots
	would show the temporary name as produced to the plotting routine, which would be
	unintelligble for the user and always needed replacing by the user. Now the title of
	each subplots is just the index number and a super title is created which shows the
	name of the 3D variable as entered in the input window by the user.
	Affected routines: regelplotseries*

14-07-'04: A feature was added to the routine that allows editing of text objects in the 2D/3D
	viewer: now the text object may be centered relative to the axis it belongs to.
	Affected routines: askedittext, regeledittext

15-07-'04: From now on a box is drawn around the axis of any surface plot in the 2D/3D viewer
	IF the elevation and azimuth are set to 0 and 90 in the input window, respectively.
	This saves switching on the box for printing (is what I usually do).
	Affected routines: dispmesh

15-07-'04: From now on a box is drawn around the axis of any plot in the main window.
	This saves switching on the box before printing (is what I usually do).
	Affected routines: asaanpas, stack1dhorizontal, stack1dvertical, regelgetcolumn,
	regelgetslice, regelmake1derrorbar

15-07-'04: When entering a negative value for the order of 2D baseline correction an error
	message would appear because matNMR would try and correct the value and try to write
	the result in the incorrect object.
	Simultaneously the correction has been changed from 0 to the absolute value of the
	entered value,
	Affected routines: doebasl?dcor

15-07-'04: Entering a non-linear axis in the main window could sometimes give an error message
	because the routine that checks the zero point and increment of the axis (detaxisprops)
	didn't check whether the axis is linear or not. Now for non-linear axes only the sign
	of the increment is determined to make sure the plotting direction is correct.
	Affected routines: detaxisprops

15-07-'04: A bug was found in the routine that changes the color axis in the 2D/3D viewer
	window: an error would appear if a color bar was present in the current axis because
	an incorrect variable was used.
	Affected routines: regelcaxis

15-07-'04: The default behaviour of the MATLAB pseudo-color routine has been improved: by default
	the last row and column of a matrix are not shown by the pcolor routine. Now the matrix and
	the axis vectors are first expanded by 1 point is each dimension to avoid that. Furthermore
	the tick labels are now set in the middle of each coloured square, whereas be default they
	would be written at the beginning and end of each block.
	Affected routines: dispmesh

22-07-'04: The routines that allow adding a series of variables did not check whether all spectra
	in the series truly exist and aren't empty. Now an error message is produced if either
	occurs.
	Affected routines: regeladdvariables, addvariables

23-07-'04: The number of decimals for the spectral width would be truncated by Matlab when writing the
	value to the UIcontrol in the main window. Now in all instances the value is first converted
	to a string with 10 decimals and this is written in the UIcontrol.
	Affected routines: matNMR1DButtons, regelsweepwidth, apodize1d, asaanpas, doUnDo,
	getsweep1d, regelgetcolumn, regelgetslice, scale1d, SetDimensionSpecificParameters,
	viewcolumn, viewrow

23-07-'04: The spectral width would not be stored properly in the history macro after a 2D FT in case
	of a TPPI and Bruker qseq transforms because the spectral witdh would be halved before writing
	the history.
	Affected routines: four1d, four2d

23-07-'04: The zero frequency after a TPPI transform was not at 0, but instead shifted by 1 point.
	The correction comes at the cost of flipping the extracted part of the spectrum.
	This could and probably should have been fixed at the same time as the fix made on 20-05-'04.
	A similar change was made for the Bruker qseq (Redfield) transform.
	Affected routines: four1d, four2d

23-07-'04: After a Fourier transform matNMR always reverts to the default axis. As this wasn't
	calculated within the FT routines, which relied upon asaanpas to do that, this could
	give problems when reprocessing from history. Now the default axis is set there as well.
	Affected routines: four1d, four2d

25-07-'04: added a safety to prevent users entering a negative number of frequencies to use in
	the lpsvd algorithm
	Affected routines: regellp1d, regellp2d

25-07-'04: Have made a start with implementing the possibility of using the matNMR processing
	routines in user-written scripts directly. This will allow easy processing in scripts
	without the GUI being accessed. Various restrictions will be present but that shouldn't
	be an issue. All scripts will be functions and should not call any regular m-files,
	but only other functions. All the functions have proper syntax descriptions. They all start
	with "matNMR" followed by a descriptive name.
	Restrictions so far: fftshift shift, zero2D and baseline correction are not implemented
	Affected routines: matNMRLeftShift1D, matNMRSwapEcho1D, matNMRExtract1D, matNMRSetSize1D, matNMRFT1D, matNMRFlipSpec1D,
	matNMRLP1D, matNMRapodize1D, matNMRAxisProps, matNMRinitvars, matNMRdefineglobals,
	matNMRRunMacro, matNMRSetPhase1D, matNMRConvertBrukerqseq1D, matNMRDCcorr1D,
	matNMRRemoveBrukerDigitalFilter1D, matNMRSolventSuppression1D, matNMRConcatenate1D,
	matNMRSetSize2D, matNMRFT2D, matNMRLeftShift2D, matNMRSwapEcho2D, matNMRFlip2D, matNMRApodize2D,
	matNMRConvertBrukerqseq2D, matNMRReadBinaryFID, matNMRReadSIMPSONASCII, matNMRReadBrukerSpectra,
	matNMRConvertStates2D, matNMRSetPhase2D, matNMRExtract2D, matNMRSymmetrize2D,
	matNMRLP2D, matNMRTranspose, matNMRDCcorr2D, matNMRRemoveBrukerDigitalFilter2D,
	matNMRSolventSuppression2D, matNMRConcatenate2D, matNMRShearingTransformationFD

26-07-'04: After a swap echo, the fourier mode is now set to "whole-echo" by default. This is
	useful because normally one would want to change the size of the FID after the swap echo
	and this should be done from the center for a whole-echo FID. And it used to be tedious
	to do that.
	Affected routines: regelswapecho

26-07-'04: Changing the size of an FID whilst being in fourier mode "whole-echo" will now result
	in an FID which has zeros added from the center instead of from the right hand side.
	This is only useful for whole-echo FID's and is done automatically ONLY when being in
	this Fourier mode. For 2D's ONLY TD2 will be appended from the center, whilst TD1 is
	appended from the right-hand side!
	Affected routines: regelsize1d, regelsize2d

26-07-'04: To make sure the Fourier mode for TD2 and TD1 is maintained properly during macro
	execution, the "resetfourmode" script is run whenever the Fourier mode is read from the
	history macro. This wasn't done yet in all cases.
	Affected routines: RunMacro

26-07-'04: Added an option that allows reading in a spectral reference from disk. As most
	spectrometer software stores the spectral reference somewhere as an absolute frequency
	coupled to a certain value in PPM, we may use this feature to enhance the default axis
	scheme. By reading in these values the center of the default axis will not be zero but
	have the appropriate value. When loading a new matrix these values are cleared. When
	saving such a variable the reference values will be stored in the structure.
	Note that a reference in PPM will be calculated in Hz, and vice versa, so the user
	may switch between the two scales.
	Affected routines: matNMRinitvars, GetDefaultAxis, regelsave?d, regelsavedisk?d, makenew1d,
	makenew2d, ClearDefaultAxis, resetdefaultaxis, SwitchTo1D, askimportreference,
	regelimportreference, QReadReferenceParameterFiles, GenerateMatNMRStructure,
	checkinput1d, checkinput2d, checkinputdual, GetDefaultAxisDual

26-07-'04: Some new problems have arisen because of the fact that Matlab 7.0 is stricter than
	previous versions with the use of the break/return commands.
	In many cases the break command should be replaced by return in the matNMR code.
	Affected routines: QReadParameterFiles, asklp2d, checkinput1d, checkinput2d, checkinputdual,
	convertBrukerqseq1d, convertBrukerqseq2d, dualdisp, makenew3D, matprint, peakfit,
	QReadReferenceParameterFiles, Qspcrel, regelaxis1d, regelaxis2d, regelBrukerdig,
	regelcaxis, regelConnectAxisToSpectrum, regelexecutemacro3d, regelexecutemacro,
	regelleftshift, regellp1d, regellp2d, regelmake1derrorbar, regelnaam, regelQfidread, regelRI,
	scale2d

	An incorrectly-placed "END" statement caused problems in the peakfit routine
	Affected routine: peakfit

27-07-'04: Some issues involving the use of 3D matrices:
	-the title would not be printed correctly when loading a 1D or 2D from the 3D menu as it
	would be written into the 3D window instead of the main window.
	Affected routines: makenew1D, makenew2D

27-07-'04: As now all incorrect break statements have been replaced by return statements (26-07-'04),
	this affected the execution of a number of routines. Now a flag is introduced which denotes
	whether or not certain parts of code must be executed.
	Affected routines: matNMRdefineglobals, matNMRinitvars, regelnaam, checkinput2d, maknew1D,
	makenew2D

27-07-'04: The test that determines whether the coordinates to an input variable operate on TD1
	or TD2 (relevant because of the corresponding spectral parameters!) during a dual plot
	did not work properly as it used an incorrect variable.
	Affected routines: checkinputdual

27-07-'04: A "reload last" button was added to the 3D window to make it easier to reload the last
	3D.
	Affected routines: makenew3D, matNMRinitvars, matNMRdefineglobals, reload3d,
	matNMR3DButtons

27-07-'04: The 2D/3D viewer did not handle 3D matrices within a structure properly as it didn't
	check for matNMR structures yet. This not only included detection of the size of the 3D
	matrix (would be 1 previously) but also the usage of the proper axis rulers.
	Affected routines: regelplotseries*

29-07-'04: A number of grids of subplots have been added to the 2D/3D viewer: 8x8, 9x9, 10x10,
	11x11, 12x12, 13x13 and 19x19. The SubPlots routine has also been changed by creating
	for loops instead of having statements for each axis.
	Affected routines: matNMR2DButtons, Subplots, RestoreSubplots

29-07-'04: The default height of the supertitle has been changed as it was usually too low and
	had to be moved before printing.
	Affected routines: regelsupertitle

29-07-'04: Until now changing the color axis could sometimes be impossible in the 2D/3D window
	whenever subplots were involved, AND only the minimum or maximum needed to be set equal
	for all plots. Now instead of two options, the user may choose from three options which
	are "only current plot", "all plots", "all plots but only if a value has changed
	comparing to the original axis in which the routine was started".
	A similar change was made to the routines dealing with changing the axis labels.
	Other could follow soon.
	Affected routines: askcaxis, regelcaxis, askaxislabels, regelaxislabels

29-07-'04: When working with many subplots it can be very annoying to have to remove the axis
	labels, titels and tick labels after plotting. This can even be extremely time consuming
	in certain cases as the x server may get really slow. Now all plotting routines in the
	2D/3D viewer call a script that allows such things to be done by default depending on
	the number of subplots in the window. A crude measure but it should be sufficient.
	Currently all tick and axis labels are removed when there are more than 25 subplots,
	and all titles when there are more than 35 subplots.
	Affected routines: correctforsubplots, dispmesh, plotcont, dispstack3D, dispraster2D,
	displine, disppolarplot, dispbar, regelplotseries*

29-07-'04: The plotting of a 3D matrix within a structure, while indexing into the matrix
	(e.g. Spectrum(1:5, :, :), where Spectrum is a matNMR structure) caused problems
	because the routines that deal with such series tried to redo things themselves,
	instead of using the work of the checkinputcont routine.

	Furthermore, due to the fact that all the regelplotseries* routines followed exactly
	the same processing actions, apart from the ones determined by the plot type, they
	have been combined into one routine. Now a flag Q2D3DPlotType is set before going
	into the new regelplotseries routine, which determines what to do exactly. The flag
	uses the same coding as was already used for storing in the userdata of the axis.

	Also, the checkinputcont routine tries to interpret any user-given input and makes
	sure that indexing into a matrix doesn't screw up the usage of axes in a structure etc.
	This had to be improved to allow for 3D matrices to be examined correctly.

	Affected routines: checkinputcont, regelplotseries, disppolarplot, plotcont, dispbar
	displine, dispmesh, dispraster2D, dispstack3D, regelpolarplot, regelbar, regelline,
	regelmesh, regelstack3D, regelabscont, regelcont, regelraster2D
	Removed routines: regelplotseries*

29-07-'04: So far idexing into a matrix within a structure was not possible in the main window
	without losing the axes. Now the indexing should work.
	Affected routines: checkinput2d, checkinput1d, checkinputdual

29-07-'04: A timing statement is now given after processing a macro.
	Affected routines: regelexecutemacro, regelexecutemacro3d

29-07-'04: Even though an undo action would be written into the processing history, no undo
	entry would ever be made when running a macro as this was actively blocked.
	As it has very little effect on the processing time of a macro, undo entries are
	now always made.
	Furthermore it turned out that the current construction in the routine that deals
	with changing the axis ruler in the main window (scale1d), would not create entries
	for several axes. This has been fixed now.
	Affected routines: apodize?d, convertBrukerqseq?d, DCcorr?d, defstates, flipspec,
	four?d, regelaxis1d, regelBrukerdig, regelconcatenate, regelconvertBruker,
	regelconvertVarian, regelextract?d, regelleftshift, regellp?d, regelsetintegral2d,
	regelshearingFD, regelshearingTD, regelsize?d, regelsolventsuppression?d,
	regelswapecho, regelusercommand, regelzero2d, scale1d, setphase?d, shiftFFT?d,
	symmetrize2d, transponeer, regelgradientaxis1d, regeltimeaxis1d, regelpointsaxis1d

29-07-'04: Some routines always updated the screen, even when processing a macro.
	This has been corrected.
	Affected routines: scale1d, DCcorr2d

29-07-'04: The updating of the UIcontrols in the main window has now been made into a single
	routine. Previously every routine did what it themselves.
	Affected routines: updatebuttons, asaanpas, makenew1D, makenew2D, regelsize?d,
	transponeer, viewcolumn, viewrow, regelgetcolumn, regelgetslice, doUnDo, scale1d,
	SetDimensionSpecificParameters, regelextract?d, four?d, regelspectrometerfrequency,

29-07-'04: When changing the display mode the zoom limits for the x-axis would be reset. As
	it is sometimes useful to keep the zoom limits in order to compare e.g. the real and
	imaginary buffers, this reset has been removed.
	Affected routines: regelRI

30-07-'04: It is now possible to read the acqus file from disk in order to determine the
	proper number of points to remove the Bruker digital filter. This uses an empirical
	protocol to determine the correct value, which was found on the internet,
	Affected routines: askBrukerdig, regelBrukerdig, DetermineBrukerDigitalFilter

30-07-'04: After concatenating a series of variables, the new variable name wasn't put in the
	list of last-used variables.
	Affected routines: regelconcatenatevariables

04-08-'04: The vertical positioning of text in a legend box would often be bad if there were sub-
	and superscripts in the string. Now the positioning is done taken into account whether
	there are sub and superscripts.
	Affected routines: Qlegend

04-08-'04: When reading in Chemagnetics binary FIDs then it was assumed that sf1 is the correct
	frequency. This can obviously be wrong as one should really look at at what hardware
	channel is connected to software channel "ch1".
	Affected routines: QReadParameterFiles

04-08-'04: The routine that reads in the standard parameter files when reading binary FIDs,
	did not always work correctly in case of Chemagnetics files: when doing multiple
	arrays in a single experiment spinsight forges the al2 parameter into the acq file
	even if there was no al2 parameter in the acquisition window. It does this to
	prevent users being able to process the nD data. Now matNMR first looks to see if
	there are arrays and only then, if there are no arrays, checks for al2.
	Affected routines: QReadParameterFiles

09-08-'04: The FIDstatus flag was set in four2d before the history macro was defined,
	resulting in an incorrect flag when doing an undo.
	Affected routines: four2d

11-08-'04: Until now the input window for the "swap whole echo" function always gave the
	middle of the current dimension as the initial position for the echo. Now it is
	what the user previously entered as there really isn't any reason not to do that.
	Affected routines: matNMRdefineglobals, matNMRinitvars, askswapecho, regelswapecho

16-08-'04: The signal-to-noise determination in the 1D processing menu in the main window
	did not work for anything but an axis in points.
	Affected routines: detsovern

18-08-'04: The flag for the default axis was not written correctly into the processing history
	after extracting a part of a 1D or 2D, as the flags were reset before the history was
	written.
	Furthermore, the flag for the default axis is no longer switched if the range of
	extraction covered the entire spectrum in a certain dimension.
	Affected routines: regelextract1d, regelextract2d

19-08-'04: The routine that deals with setting the tick lengths was not yet converted to
	working with subplots.
	Affected routines: askticklength, regelticklength

20-08-'04: The limitation that either only one or all subplots could be acted upon has been
	lifted by allowing selection of multiple subplots simultaneously. A left-click on an
	axis will select only that axis (unselects all other axes), whilst a right-click will
	toggle the selection flag for an axis but leaves other axes as they are.
	Affected routines: SelectAxis, regelaxis, regelaxiscolors, regeldirs, askaxislabels,
	regelaxislabels, regelaxislocation, regelaxisposition, regeltitle, regelbox, regelfont,
	regelgrid, regelhold, regellims, regelscales, regelshading, regeltickdir, regelticklabel,
	regeltick, askcaxis, regelcaxis, contcbar, Marker, Markersize, Linestyle, Linewidth,
	regelticklength

20-08-'04: An additional option was added to all "plot manipulations" menus: clear axis.
	Affected routines: matNMR1DButtons, matNMR2DButtons, askclearaxis, regelclearaxis,
	pk_init, Diffpk_init, T1pk_init

23-08-'04: Plotting actions can now be recorded and stored in macros. From all windows such
	plotting macros can be recorded. In the main window an input window will appear asking
	the user what actions should be recorded, distinguishing between processing and plotting
	actions.

	It is required that the window in which a plotting macro is run has exactly the same
	subplot configuration as the original window, otherwise the execution is refused IF multiple
	axes were selected during the recording of the macro.

	If a macro is started from anything but the main window then NO processing actions may
	be contained inside the macro. If so then a notice is issued and nothing is done.

	During stepwise reprocessing the plotting action are shown separately so they can also be
	executed stepwise.

	From all windows stepwise processing is allowed.

	For some actions the current window must be the 2D/3D viewer window to be executed when
	running a plotting macro. If this is not the case then the action is simply skipped.

	NOTE: as it is now possible to record macros in multiple windows a possible conflict
	situation arises in that macros can and will become corrupted if various actions are
	executed in different windows while recording the macro. No protection has been made
	against this as I think it is up to the user to take care of this.

	For this all windows now have a userdata entry similar to the 2D/3D viewer window in
	which the code for the subplots is written. Also, all axes in all windows have a code
	written to the userdata to denote its index. Previously the tag was used for this for
	the 2D/3D viewer window. The handles that were previously stored in the userdata for
	the peak fitting, T1 and diffusion fitting routines have been moved to a subcategory
	"Handles".

	Affected routines: matNMRdefineglobals, matNMRinitvars, matNMR1DButtons,
	askstartrecordingmacro, regelstartrecordingmacro, askstoprecordingmacro, AnalyseMacro,
	regelstoprecordingmacro, RunMacro, nmr, CreateMainAxes, pk_init, Diffpk_init, T1pk_init,
	pk_udata, T1pk_udata, Diffpk_udata,
	regelplotseries, RestoreSubplots, scale1d, stack1dhorizontal, stack1dvertical,
	regelmake1derrorbar, plotcont, dispstack3D, dispraster2D, disppolarplot, dispmesh,
	displine, dispbar, matNMRRunMacro,
	regelaxis, regelclearaxis, regelaxiscolors, regeldirs, regelaxislabels,
	regelaxislocation, regelaxisposition, regeltitle, regelbox, regelfont, regelgrid,
	regelhold, Linestyle, Linewidth, Marker, Markersize, regellims, regelscales,
	regelshading, regeltickdir, regelticklabel, regelticklengths, regeltick,
	regelcaxis, contcbar, contcmap

25-08-'04: When reading a series of binary FID's or any other type, the range would not be captured
	in square brackets by the handling routines which made it necessary for the user to write
	the brackets in the input window. Now this has been solved.
	Affected routines: regelQfidreadSeries, regelsimpsonasciilaadSeries, regelmatlaadSeries,
	regelBrukerSpectrareadSeries, regeladdvariables

25-08-'04: The automatic setting of tick positions through the plot manipulations failed for the
	z-axis due to an incorrect axis property being accessed (ztick instead of ztickmode)
	Affected routines: regeltick

25-08-'04: The axis limits given in the input window for settings the limits (through the plot
	manipulations menu) weren't sorted. Now they are.
	Affected routines: regellims

31-08-'04: The "_" character was not allowed in variable names by the CheckVariableName routine,
	which was not correct.
	Affected routines: CheckVariableName

02-09-'04: The standard Matlab foptions has been taken into the matNMR code to ensure that the
	fitting routines will work in newer versions of Matlab (starting from Matlab 7 foptions
	is no longer supported and is replaced by new routines).
	Affected routines: foptions, matNMRsimplex, Diffleasqr, T1leasqr, copymat

02-09-'04: When starting the peakfit routine and trying to load a 2D, the routine did not
	show the current slice, but always the first of the matrix. The refresh button did do
	it and so now when starting up the routine it will show the current slice.
	Affected routines: peakfit

02-09-'04: Reading of standard parameter files is now possible for reading Bruker processed
	spectra. This avoids having to look up sizes and blocking factors.
	Affected routines: askBrukerlaad, askBrukerlaadSeries, regelBrukerSpectraread,
	regelBrukerSpectrareadSeries, regelinputbuttonsBrukerlaad, regelinputbuttonsBrukerlaadSeries

06-09-'04: In the AddToMacro routine there was still a command to take away display-related
	commands. This has been removed as it interfered with the new macro setup.
	Affected routines: AddToMacro

06-09-'04: The length of macro's has been changed from 10 to 12. To avoid future complications
	when doing this again, a global variable has been defined which is used by all routines
	that cut longer commands in pieces.
	Affected routines: matNMRdefineglobals, matNMRinitvars, AddToMacro, AnalyseMacro,
	regelusercommand, stopbasl?d, (+ many plot-manipulations routines)

06-09-'04: To make sure that older (smaller) macro's can still be executed a new routine converts
	old macros to the new size.
	Affected routines: CorrectMacro, regelexecutemacro, regelexecute3d, checkinput1d, checkinput2d

07-09-'04: The peak fitting, T1 fitting and Diffusion fitting routines did not return to a default
	plotting setting after a plot manipulations action was executed. This therefore caused
	permanent changes to the appearance of the axis, which is not correct. Now each routine
	always reverts back to the default settings when replotting a line.
	Affected routines: pk_init, peakfit, T1pk_init, T1fit, Diffpk_init, Difffit

07-09-'04: The item "about matNMR" was taken away from the help item in the menubar. Now only the
	copyright message is left of the original old manual files.
	Affected routines: matNMR?DButtons, pk_init, T1pk_init, Diffpk_init

07-09-'04: The standard Matlab command (at least in Version 6.5) cell2mat has been added to the
	matNMR distribution as it wasn't shipped with older versions of Matlab. And as it is used
	now by several functions I've just included it into matNMR.
	Affected routines: cell2mat, copymat

09-09-'04: A bug in the setphase1d routine caused macro's not to be executed properly in 1D mode.
	Affected routines: setphase1d

09-09-'04: The dispbar and displine routines in the 2D/3D viewer produced error messages when decreasing
	axes were used as they didn't use the CheckAxisCont routine yet.
	Affected routines: dispbar, displine

09-09-'04: A protection has been built into the checkinputdual routine to prevent errors when reading in
	structures from previous versions, which may not have the same entries in the matNMR structure.

	Also, the routine did not acces any user-specified coordinates after recreating the default axis.
	Affected routines: checkinputdual

09-09-'04: The checkinput* routines recreated an error message whenever a variable was loaded, with a
	default axis AND with coordinate indexing.
	Affected routines: checkinput1d, checkinput2d, checkinputcont, checkinputdual

09-09-'04: The 2D/3D viewer did not yet reproduce default axes when loading a variable. Now it does.
	Affected routines: checkinputcont

09-09-'04: Importing of a spectral reference for Bruker data was implemented.
	Affected routines: QReadReferenceParameterFiles

09-09-'04: Axis colours are now set to white by default when resetting a plot.
	Affected routines: asaanpas, pk_init, peakfit, T1pk_init, T1fit, Diffpk_init, Difffit

10-09-'04: The fourier mode was not stored in the history macro and this could cause problems whenever
	setting the size after a whole-echo FT had been done before. Now, the fourier mode is stored in
	the dimension-specific data.
	Affected routines: SetDimensionSpecificParameters, convertBrukerqseq1d, convertBrukerqseq2d,
	DCcorr1d, DCcorr2d, defstates, flipspec, historyapodize, historyFT, regelBrukerdig,
	regelconcatenate, regelconvertBruker, regelconvertVarian, regelextract1d, regelextract2d,
	regelleftshift, regellp1d, regellp2d, regelsetintegral2d, regelshearingFD, regelshearingTD,
	regelsize1d, regelsize2d, regelsolventsuppression1d, regelsolventsuppression2d, regelswapecho,
	regelusercommand, regelzero2d, scale1d, setphase1d, setphase2d, shiftFFT1d, shiftFFT2d,
	stopbasl1d, stopbasl2d, SwitchTo1D, symmetrize2d, transponeer,

10-09-'04: An additional option has been added to the UI control for colour maps in the 2D/3D viewer.
	Now the current colour map may be inverted.
	Affected routines: matNMRinitvars, QColorMaps, matNMR2DPanelButtons

12-09-'04: The command "axis on" is issued after replotting any spectrum in matNMR to avoid it being off
	after the user has switched it off from the plot manipulations menu.
	Affected routines: asaanpas, plotcont, dispmesh, displine, disppolarplot, dispstack3D, dispraster2D
	peakfit, Difffit, T1fit

13-09-'04: The importing of external spectral references was not correct. As it turns out both XWinNMR and
	Spinsight neglect the sign of the gyromagnetic ratio and always use gamma < 0. This mean that it
	is important for the user to have set both the spectral frequencies of the current spectrum AND
	the sign of the gyromagnetic ratios, before importing the external references. Else, the scale in
	Hz is incorrect, whilst the PPM scale is not always affected.
	Affected routines: QReadReferenceParameterFiles

13-09-'04: To avoid having to make the minimum requirement for matNMR Matlab 6.5 (instead of 5.3 currently)
	an alternative for the uigetdir routine has been created. If the uigetdir routine doesn't exist
	then the uigetfile routine is used instead: the user must then select any file in the directory
	in order for it to be selected. So in the future the "uigetdirBackup" routine must always be called
	instead of "uigetdir".

	Also, the starting path for the uigetdir routine has been changed into "pwd". Previously it also
	had the QSearchprofile variable attached to it, which didn't work under Windows.

	Affected routines: askimportreference, selectdistribution, uigetdirBackup

17-09-'04: The setting of axis labels and titles is now also written to a plotting macro.
	Affected routines: CreateMainAxes, klabels, clabels

17-09-'04: UIcontextmenus have now been defined that allow quick access to all processing actions by clicking
	the right mouse button in the main window or on any uicontrol. A menu will pop up with a similar
	structure as the corresponding items in the menubar. When zoom is switched off the context menu is
	also available for the axis. If zoom is on this option is disabled to make sure that it doesn't
	interfere with zoomin.
	Affected routines: matNMR1DButtons, zoom1d

18-09-'04: UIcontextmenus have also been added to the 2D/3D viewer. Those are only connected to the figure
	window and can therefore not be called over axes and other objects. This is done on purpose
	because of the rerendering matlab generally does when flipping through the menus. By forcing
	the user to start in an empty space, preferably on the right hand edge of the window where the
	menus don't overlap with objects, this should be relatively fast.
	Affected routines: matNMR2DButtons

18-09-'04: To all input windows in the 2D/3D viewer a line was added to allow for a plotting macro to be
	executed immediately after the plot is made. This can save a lot of time.
	Affected routines: matNMRdefineglobals, matNMRinitvars, asknamemesh, asknamecontabs,
	asknameccontrel, asknameraster2D, asknamestack3D, asknamepolarplot, asknameline, asknamebar,
	regelmesh, regelabscont, regelcont, regelstack3D, regelraster2D, regelpolarplot,
	regelline, regelbar, dispmesh, dispcont, dispabscont, dispstack3D, dispraster2D, disppolarplot,
	displine, dispbar, regelplotseries

18-09-'04: Various axis parameters weren't reset by the display routines for the 2D/3D viewer, which meant
	that they persisted even though they were made from the plot manipulations menu.
	Affected routines: dispmesh, dispcont, dispabscont, dispstack3D, dispraster2D, disppolarplot,
	displine, dispbar

21-09-'04: When loading a new macro in the stepwise processing window, the window to which all actions are
	directed would become incorrect. This never mattered before when only processing macros were available
	but with plotting macros this does matter.
	Affected routines: RunMacroStepwise

21-09-'04: The rotate3d function did not always work properly for multi-plot 2D/3D viewer windows as the super-title
	axis would sometimes be selected instead of the real axes. The Rotate3D routine has been adapted such that it can
	never select the super-title axis.
	Affected routines: Rotate3D

21-09-'04: Incorrect transposes (conjugate transpose) were found in the linear prediction routines. These could cause
	massive distortions in the predicted spectrum in some instances. WHY HASN'T ANYBODY REPORTED THIS PROBLEM
	TO ME BEFORE?????
	Affected routines: regellp1d, regellp2d

22-09-'04: When switching between different 2D's in a 3D matrix the FID status would not be reset so all spectra would
	be plotted like spectra.
	Affected routines: view2d

22-09-'04: The shearing in time domain did not use the new convention for the spectral width in TD1, which is 1/dwell
	(see change 20-01-'04).
	Affected routines: regelshearingTD

22-09-'04: After some complaint of me being terribly oldfashioned, I have changed most instances of "sweepwidth" into
	"spectral width". Variable names have not been changed.

22-09-'04: An error message would appear when trying to integrate a spectrum whilst working in display mode "both".
	Now a notice is given to state that integartion is not allowed in this display mode.
	Affected routines: integrate1d, askintegrate2d

22-09-'04: An error message would appear when starting the peak fitting routine when working in display mode "both".
	Now a notice is given to say that zoom limits are not taken into account for display mode "both".
	Affected routines: piekfit1d

22-09-'04: The buttons added to the main window on 08-06-'04 to allow easy access to all processing functions have
	been deleted in favour of the new context menus.

22-09-'04: The buttons "get row" and "get column" have been deleted from the main window in favour of the directly-
	accesible edit buttons. Instead text labels have been added above the edit buttons.






=============
!web release! : september 22 2004, version 3.2.0
=============

23-09-'04: The rotate3d function still doesn't always work properly (see also 21-09-'04): now the
	axis with the blue box that visualizes the rotation angles was selected by the routine.
	The routine has been altered to not allow this to happen.
	Affected routines: Rotate3D

23-09-'04: An unnecessary END was written in the Diffsimplex and T1simplex routines, which crashed
	matNMR under Matlab 7.0. A check was done to see if other routines have the same problem.
	Affected routines: T1simplex, Diffsimplex, simplex_restrict_matNMR

23-09-'04: A test run has been done using "warning on" to ensure that no warning messages appear
	in Matlab 6.5. Warning messages that appeared have been solved.
	Affected routines: Qeditnum, pk_init

24-09-'04: A minor change was made to the view2d routine. Previously when the user requested a
	certain 2D from a 3D that was out of bounds, it would only correct the UIcontrol, but
	not reread the FID. Now it does reread it.
	Affected routines: view2d

24-09-'04: A bug has arisen by the introduction of the context menu in the 2D/3D viewer: when using
	the context menu (right-click), followed by e.g. plotting of a 3D (series), the SelectAxis
	routine would be called but would do the incorrect action because the last mouse click
	was done using that same right mouse button. This would result in all axis being selected
	except the one from which the plotting was started. Also, that latter axis would be the only
	one with a plot in it. Now the regelplotseries routine resets the selectiontype parameter
	of the figure in order for SelectAxis to think the left mouse button was pressed.
	Affected routines: regelplotseries

24-09-'04: For some reason reading 3D matrices within a structure did not work (anymore?). The
	checkinputcont routine needed updating for that.
	A typo was also found in the part where it works on the axis for TD1.
	Affected routines: checkinputcont

24-09-'04: Reprocessing plotting actions which use the "apply changed values only" approach does not
	work properly as the RunMacro routine currently doesn't know which values it needs to change
	and which it shouldn't.
	Affected routines: RunMacro, regelcaxis

27-09-'04: Two bugs were found in the reading of Bruker processed data:
	-reading of 1Ds didn't work because "proc2s" was checked for and this doesn't exist for 1D spectra.
	-reading of 2D spectra didn't work because the blocking factor for TD1 would be deleted because
	of incorrect use of temporary variables.
	Affected routines: ReadParameterFile, DetermineBrukerSpectraRead, regelBrukerSpectraread

27-09-'04: A bug in a safety check (see 22-07-'04) in the addvariables routine caused an error. THIS
	SHOULD HAVE BEEN TESTED PROPERLY!!!!
	Affected routines: addvariables

27-09-'04: A colon was missing after a statement, which caused output of an axis variable.
	Affected routine: GetDefaultAxisDual

27-09-'04: When reading Bruker processed data into matNMR the spectral frequencies and widths would not be
	read, even when standard parameter files were used to determine the blocking factor and byte swap.
	Now the same primitive scheme as is used for binary FIDs is used also here.
	Affected routines: DetermineBrukerSpectraRead, regelBrukerSpectraread, regelBrukerSpectrareadSeries

28-09-'04: An option was added so that the current axis vector in the main window may be stored in the workspace.
	Affected routines: matNMRdefineglobals, matNMRinitvars, matNMR1DButtons, asksaveaxis, regelsaveaxis

28-09-'04: When reading Bruker processed data into matNMR regularly the indirect dimension would be reversed,
	because matNMR neglected the parameter "REVERSE" from the proc2s file. Now it is included and this
	shouldn't be a problem anymore.
	Also, the FID status is set whenever the indirect dimension hasn't been FT'd yet.
	Furthermore, because the byte ordering as read from the procs file wasn't converted to the values
	used by matNMR in the input windows and the final import routine, the UIcontrol in the input window
	would be disabled the next time it was used.
	Affected routines: DetermineBrukerSpectraRead, regelBrukerSpectraread, regelBrukerSpectrareadSeries

29-09-'04: The text labels introduced in the 2D menu in the main window (see 22-09-'04) were not included in the
	menu that makes them invisible when needed.
	Affected routines: matNMR1DButtons, v2dmenu, stopmenu2d

29-09-'04: The callback functions for UIcontrols in input windows (see 21-03-'03) weren't executed when creating
	the input window. This caused that buttons would be visible even though based on the relevant UIcontrol
	callback functions they shouldn't be. Now all callbacks are executed once immediately after creating all
	UIcontrols.
	Affected routines: QuiInput

29-09-'04: The values for the current row and/or column would be reprinted by the regelgetcolumn and regelgetslice
	routines by using a str2num. For large numbers this would lead to abbreviations using an exponential, but
	now the resolution for the num2str conversion is set to 10 digits.

	Also, it is now possible to type "end" in these buttons to quickly go to the last row or column, instead of
	having to guess or move forward manually.

	Affected routines: regelgetcolumn, regelgetslice, updatebuttons

29-09-'04: A few more routine have been added to the "import external reference" functionality. Now the external
	reference may be stored in the workspace for later use, when importing it. Furthermore, the resulting
	variable may be edited, or the external reference may be defined manually. A submenu has been created in the
	menubar and the context menu to accomodate all functions.
	Affected routines: matNMRdefineglobals, matNMRinitvars, askeditreference, askimportreference, askdefinereference,
	QReadReferenceParameterFiles, regelimportreference, regeleditreference, regeldefinereference.

30-09-'04: An incorrect sign caused problems with the external reference axis in case of gamma>0 and axis reference in kHz.
	Affected routines: regeldefinereference, QReadReferenceParameterFiles

30-09-'04: The tag for the axis in the main window was not preserved by the "reset figure" routine (asaanpas).
	Furthermore, some other routines did not reinstate the context menu yet. All these routines now use the
	switchzoomoff and switchzoomon routines.
	Affected routines: asaanpas, switchzoomoff, switchzoomon, defpeaks, muisinput, prescale1d, regelhz1d,
	regelppm1d, scale1d,

01-10-'04: An additional input parameter has been added to the input for reading Bruker processed data to allow
	the distinction between FIDs and spectra in the indirect dimension (FIDs need a reverse).
	Affected routines: matNMRdefineglobals, matNMRinitvars, askBrukerlaad, askBrukerlaadSeries,
	regelinputbuttonsBrukerlaad, regelinputbuttonsBrukerlaadSeries

01-10-'04: A typo was found in the regelconcatenatevariables routine, which caused an incorrectly-named variable
	and a crappy result when concatenating in the third dimension.
	Affected routines: regelconcatenatevariables

01-10-'04: When plotting a 3D in the 2D/3D viewer the names for the axis vectors would always be replaced with the
	internal variable names.
	Affected routines: matNMRdefineglobals, matNMRinitvars, regelplotseries, regelmesh, regelcont, regelabscont
	regelline, regelbar, regelstack3D

01-10-'04: Previously the colour map would not be retained when making a new 2D/3D viewer window from the panel
	window. Now it is.
	Affected routines: makenew2D3D

12-10-'04: A bug was found in the export-to-SIMPSON routine: spectra would not be stored properly because
	of the type would be set to "Spectrum" instead of "SPE".
	Affected routines: regelsavetoSimpsonASCII

12-10-'04: The export-to-SIMPSON routine did not add an extension to the file even though SIMPSON uses .spe for spectra
	and .fid for FIDs. This is useful for recognizing what type of matrix it is. Now the user-defined name is checked
	for the extension and if no appropriate extension is present, it is added.
	Affected routines: regelsavetoSimpsonASCII, matNMRinitvars

12-10-'04: The simplex pre-fit in the T1 and diffusion fitting routines has been altered to not allow negative values
	for the T1 and diffusion constants. This avoids divergent behaviour in many cases. Naturally, screwing with
	the simplex routine doesn't improve its efficiency and its behaviour around constraint limits but it should
	be fine in the context of these routines. We only use simplex to provide a reasonable estimate for the gradient
	routine.
	Affected routines: simplex_restrict_matNMR, T1pk_gtcon, Diffpk_gtcon

13-10-'04: Some confusion has arisen about a separate variable for 1D mode to denote the fourier mode. The routines
	updatebuttons and resetfourmode used that, but no other routine did and this caused some minor problems.
	For now the 1D mode uses the same variable as TD2, as it was before.
	Affected routines: updatebuttons, resetfourmode

13-10-'04: When a user-defined axis is created during macro processing, the resulting string to generate the axis is
	shown in the "save in workspace" edit button of the routine that allows the user to create axes. As this
	string is generally not a proper variable name this must be deleted by the user before continuing. Now the
	string is checked using the CheckVariableName routine and if the string is not a proper variable name then
	it will be emptied.
	Affected routines: stats1d, askgradientaxis1d, asktimeaxis1d, stats2d, whataxis2d

13-10-'04: A new optional check button has been implemented in the QuiInput routine. The button is positioned next to
	the normal buttons. The variable connected to this button is the same as that of the edit button but then with
	an "a" appended to it: QuiInput1 -> QuiInput1a. This variable will be 0 if the check button is switched off,
	or 1 when it is switched on. The functionality can be called by adding "&CB" to the start of the string,
	followed by either 0 or 1 to set the initial state. Depending on the value the corresponding button is
	enabled or disabled.
	This button will be used for all plot manipulatios routines to denote whether the entry must be applied or
	not.
	Affected routines: QuiInput, QuiInput_2, QuiInput_4, matNMRdefineglobals, matNMRinitvars

13-10-'04: The macro length has been increased to 15.
	This induced an error in the regelusercommand routine when reprocessing an old macro because the extra zeros
	lead to char(0) characters in the command string. Now all char(0) characters are removed by the RunMacro routine.
	Affected routines: matNMRinitvars, RunMacro

13-10-'04: Have started converting all plot manipulations routines to use the new feature of the additional check
	button in the input window to denote whether an entry must be applied or not.

	Found a bug in the regelcaxis routine: it didn't store the macro information when choosing automatic
	setting of the color axis.

	Found a bug in the regelticklengths routine: because of a typo it always applied the changes to all axes.

	Found a new bug induced by these changes in RestoreSubplots: all axes were selected, instead of only axes
	with the buttondownfunction "SelectAxis". Previously this wasn't a problem.

	Affected routines: RunMacro, askcaxis, regelcaxis, askaxislabels, regelaxislabels, askaxis, regelaxis,
	askclearaxis, regelclearaxis, askaxiscolors, regelaxiscolors, askdirs, regeldirs, askaxislocation,
	regelaxislocation, regelaxisposition, asktitle, regeltitle, askbox, regelbox, askfont, regelfont, askgrid,
	regelgrid, askhold, regelhold, asklims, regellims, askscales, regelscales, askshading, regelshading,
	asktickdir, regeltickdir, askticklabel, regelticklabel, askticklengths, regelticklengths, asktick,
	regeltick, RestoreSubplots, askcbar, contcbar

14-10-'04: The ydir property wasn't reset by many plotting routines leaving the possibility of strange plots not
	being updated properly.
	Affected routines: asaanpas, plotcont, dispmesh, displine, disppolarplot, dispstack3D, dispraster2D
	peakfit, Difffit, T1fit

14-10-'04: The routine that makes error bar plots in the main window did not reset all axis properties as asaanpas
	does.
	Affected routines: regelmake1derrorbar

14-10-'04: The routine that makes 1D bar plots in the main window did not reset all axis properties as asaanpas
	does.
	Furthermore, it did not use the same plot direction as asaanpas does, which meant the spectrum flipped from
	left to right in some cases when using this function.
	Affected routines: regelmake1dbar

18-10-'04: The archaic apodization functions "block+cos^2" and "block+exp" have been removed from the main window
	apodization functions UIcontrol. Instead the Hamming window function has been added. Provisions have been
	made in the code for the Hanning function but since the lineshape is similar (but worse) than the Hamming
	window, this isn't shown.
	The changes have also been made to the off-line processing routines, although the block functions haven't
	been deleted there.
	Affected routines: regellb, repairapodizebutton, matNMR1DButtons, historyapodize, apodize1d, RunMacro,
	AnalyzeMacro, matNMRApodize1D, matNMRApodize2D

19-10-'04: A callback has been created for the buttons that say "Row :" and "Column :" in the main window. Now they
	will induce a switch of the dimension when they are pushed.
	Affected routines: matNMR1DButtons

19-10-'04: When reloading a matrix that in the mean time has been changed from 1D to 2D or vice versa, a notice
	would be printed but the status variable would not be changed. This meant that the same notice would be
	repeated if the reload button would be pressed again.
	Affected routines: checkinput1d, checkinput2d

19-10-'04: Reloading a spectrum would go wrong whenever an input window had been openened between loading the
	variable and pushing the "reload last" button. This was because the QuiInputx strings were not set
	properly by the reload routine. Furthermore the axis variables weren't re-used.
	Affected routines: reload, makenew1D, makenew2D, transponeer (redundant setting of Qlast removed)

20-10-'04: There was a bug in the FD shearing when reprocessing	from a macro: one of the input variable was made
	a string whereas it should be an integer.
	Affected routines: RunMacro

22-10-'04: The radiobuttons in the peakfitting window that are intended to be used by the user to start the definition
	of a certain parameter using the cursor, had incorrect callbacks so that this function wasn't functional.
	Affected routines: pk_init

26-10-'04: The matprint routine still had unparented UIcontrols which allowed them, in some circumstances, to end up
	in incorrect figure windows.
	Furthermore, in Matlab 7.0.1 the printing did not work properly. It seemed to have problems knowing which
	handle to print. Now the figure handle is included in the print command.
	Affected routines: matprint

26-10-'04: A quick check across the code to spot unparented UIcontrols reveiled several of such routines. These have
	been fixed.
	Affected routines: clabels, klabels, QezLegend

27-10-'04: The horizontal stack plot routine did not take the FIDstatus into account so FIDs would be plotted reversed.
	Affected routines: stack1dhorizontal

27-10-'04: The printing routine would hide the window from view for repositioning even when the WYSIWYG was not used.
	This was unnecessary and now only when WYSIWYG is used this is done.
	Affected routines: matprint






=============
!web release! : october 27 2004, version 3.2.44
=============

27-10-'04: Sometimes the "reload last" would fail and load a wrong variable. This was because the makenew?d routines
	use the Qnewinlist variable (used for determining whether to add the variable and axis names to the list of
	last-used variables) to store the name of the last variable. As the dualdisp routine also sets the Qnewinlist
	variable, the subsequent usage of the "reload last" routine would reset the name of the last variable.
	Very confusing, but easily solved: now the reload routine sets the Qnewinlist variable equal to Qlast before
	proceeding.
	Affected routines: reload

29-10-'04: When reprocessing a macro the apodization of a 1D FID was not stored in the history macro variable
	QHistoryMacro.
	Affected routines: apodize1d

29-10-'04: Until now the display mode was not taken into account when making horizontal or vertical stack plots. Now
	at least the horizontal stack plot routine does this.
	Affected routines: stack1dhorizontal

01-11-'04: The dual display of a horizontal stack plot did not work properly because the axis vector
	wasn't set appropriately.
	Affected routines: dualdisp

09-11-'04: When reprocessing a macro and changing the size of a 2D, the code -99 denotes that the size in that dimension
	shouldn't be changed. During stepwise reprocessing the original size at the start of the processing would be
	shown, which was usually not correct and hence confusing. Now it says "unaltered".
	Affected routines: AnalyseMacro

14-11-'04: A typo in the routine that handles pcolor plots caused an error message whenever the matrix dimensions
	would be of unequal lengths.
	Affected routines: dispmesh

18-11-'04: An error would occur when trying to change the phase when the plot type was not the default type. Now a
	reset figure is done first.
	Affected routines: setphase1d

18-11-'04: An error would occur when trying to use the "get position" function in the main window when the plot type
	was bar plot. Now a statement is given that the combination isn't allowed.
	Affected routines: pos1d

03-12-'04: The button in the 2D Panel window for toggling the colorbar status for the current axis did not work
	properly anymore now that the user has multiple options for selecting which subplots to act upon.
	Affected routines: matNMR2DPanelButtons

07-12-'04: The zoom function would automatically be switched off in the 2D/3D viewer for surface plots and stack 3D
	plots. This was because in 3D mode the zoom function will produce an error message. Now an additional check
	is made to ensure the zoom is only switched off if the user has requested an azimuth and elevation other
	than [0 90].
	Affected routines: dispmesh, dispstack3D

07-12-'04: Now the colour map is retained when creating a new subplot configuration in the 2D/3D viewer window.
	Affected routines: matNMR2DButtons, makenew2D3DSubplot

09-12-'04: There were a number of problems with the 2D bar plot in the 2D/3D viewer window:
	-the CheckAxisCont routine crashed as it expected the Qcontvec2 variable to be longer than 1 element
	(also crashes for line plot)
	-the axis width wasn't very nice.
	-The plotting of a series didn't work anymore because the value for the colour of the bars was converted
	to a string by the regelplotseries routine, causing a crash.
	Affected routines: CheckAxisCont, dispbar, regelplotseries

15-12-'04: A typo in the macro routines caused it not to recognize Hamming apodization properly.
	Affected routines: AnalyzeMacro, RunMacro

15-12-'04: The goodie "select distribution" could crash matNMR when the user tried to cancel the action (in
	the uigetdir routine)
	Affected routines: selectdistribution

15-12-'04: A new plotting function has been added to the 2D/3D viewer: 3D bar plot. This makes 3D bars from all
	entries of a matrix with the height and colour both determined by the value of the matrix at that entry.
	(alternatively one could call this a 3D version of pcolor)
	Affected routines: asknamepcolor3d, regelpcolor3d, disppcolor3d, pcolor3d, regelplotseries, matNMR2DButtons

17-12-'04: The axis labels routines did not correct the strings (titles and axis labels) for the underscore character
	and so the next string would be subscripted.
	Affected routines: clabels, klabels

17-12-'04: The figure handle wasn't automatically updated every time when pulling forward the print menu window.
	Affected routines: matprint

06-01-'05: The name for the new Bruker software (TopSpin) was added to some of the routines:
	affected routines: askBrukerlaad*, askfidlaad*, askimportreference, matNMRReadBinaryFID, regelQfidread*

06-01-'05: Copyright messages changed to include 2005 and new version (3.3).
	Affected routines: matNMRinitvars, Copyright, Copyright.hlp, content.html

07-01-'05: Have implemented the possibility of allowing changeable color schemes to be defined.
	Affected routines: matNMRdefineglobals, matNMRinitvars, setdefaults, matNMR1DButtons, matNMR2DButtons,
	matNMR2DPanelButtons, matNMR3DButtons, pk_init, Diffpk_init, T1pk_init, nmr, CreateMainAxes, asaanpas,
	peakfit, T1fit, Difffit, matprint, CopyFig, Qlegend, clabels, klabels, stats1d, stats2d, basl1dmenu, basl2dmenu,
	QuiInput, matnmrhelp, RunMacroStepwise, StartupMessage, dualdisp, plotcont, dispbar, displine, dispmesh,
	disppcolor3d,  disppolarplot,  dispraster2D,  dispstack3D, Subplots, regelsupertitle, QezLegend, Qeditnum,
	crsshair2d, crsshair, leasqr, T1leasqr, Diffleasqr, regeldisplaymode, doebasl1dcor, doebasl2dcor, Qoptions,
	Qscreenops, Qfontops, Qlinedata, Qtextdata, saveoptions, checkforcolourscheme, regelcolourschemesave, stopnmr,
	stopmatnmr, CorrectWindow






=============
!web release! : january 7 2005, version 3.3.0
=============

11-01-'05: Added a third pre-defined colour scheme (by Bernd Fritzinger) and connected the default line colour to
	the stack 3D and line routines in the 2D/3D viewer. For the line plot the default is only used if no
	linespec is given in the input window.
	Affected routines: matNMRdefineglobals, matNMRinitvars, Qsetcolorscheme, dispstack3D, displine

11-01-'05: The output for the 2D integration routine was changed such that the resulting variable now contains not
	just the integral for each point, but also the axis in that dimension and the position of the maximum signal
	in units of its original axis.
	Affected routines: regelintegrate2d

12-01-'05: Added a new type of integration for 2D spectra to the main window: integration around maximum. This routine
	searches in each slice in the 2D for the maximum signal in a user-specified range and integrates with a
	user-specified range around that maximum. This allows integration of peaks with variable positions and
	possibly overlapping other peaks.
	Affected routines: matNMR1DButtons, askintegratewidth2d, regelintegratewidth2d

12-01-'05: Have implemented inverse FT in the main window, which is accessible through the additional features menu
	in the menubar. Not all modes have meaningful inverse FTs so a notice is given when it is not possible.
	Affected routines: matNMRdefineglobals, matNMRinitvars, matNMR1DButtons, four1d, historyFT, RunMacro, four2d

19-01-'05: removed the changes to clabels and klabels made on 17-12-'04, in which the printing of
	underscores in strings would be interpreted as real text. This however made it impossible to
	create subscripts in strings.
	Affected routines: clabels, klabels

19-01-'05: Added a button to the matprint window which allows hiding the window instead of closing it. This avoids
	having to retype all settings, which is what happens when closing the window.
	Affected routines: matprint

19-01-'05: made minor change to the formatting of the signal intensity in the "get position" routine in the 2D/3D
	viewer.
	Affected routines: crsshair2d

19-01-'05: Added the possibility of changing the colour scheme from the 2D/3D viewer.
	Affected routines: matNMR2DButtons

25-01-'05: Added the possibility of changing the axis view from the plot manipulations menu.
	Affected routines: matNMR1DButtons, matNMR2DButtons, pk_init, T1pk_init, Diffpk_init, AnalyseMacro, RunMacro,
	askaxisview, regelaxisview

25-01-'05: When changing the colour scheme without saving it the colour of the title would be wrong since the
	defaulttextcolor parameter would not be set.
	Affected routines: Qsetcolorscheme

25-01-'05: Chosing "vertical stack plot" from either the context menu or the menubar in the main window did not open
	the input window as the callback was to the final routine and not to the routine that opens the input window.
	Affected routines: matNMR1DButtons

26-01-'05: Added the possibility of automatically loading the imaginary and hypercomplex parts when loading a Bruker
	processed spectrum from disk.

	Furthermore, the loading a series of Bruker spectra did not properly read the standard parameters files for
	each part of the series. For manual input this was fine but for standard parameter files the routine must
	read the particular parameter files for the current iteration.
	Affected routines: askBrukerlaad, askBrukerlaadSeries, regelinputbuttonsBrukerlaad, regelinputbuttonsBrukerlaadSeries,
	regelBrukerSpectraread, regelBrukerSpectrareadSeries, matNMRinitvars, matNMRdefineglobals

15-02-'05: Because some variables weren't declared global in the saveoptions routine the saving of
	the default settings could produce an error message.
	Affected routines: saveoptions

24-02-'05: Added the possibility of using cylinders instead of square bars for the bar 3D plot in the 2D/3D viewer.
	This is chosen in the input window and determines the lighting and shading of the objects.
        Affected routines: matNMRdefineglobals, matNMRinitvars, asknamepcolor3d, regelpcolor3d, regelplotseries,
        disppcolor3d, pcolor3d

28-02-'05: There was a bug in the routine that changes the axis position, the history macro wasn't appended to
	properly.
        Affected routines: regelaxisposition, RunMacro

07-03-'05: Sometimes creating a new 2D/3D viewer window whilst the rotate3D function was on creates problems because
	matNMR wouldn't find the correct handle it seemed. Also, when closing a window this could happen. Now the
        routines run UpdateFigure once to make sure the variables are read from the figure userdata.
        Affected routines: makenew2D3D, closenmr2d

07-03-'05: When starting STATES processing a check is made in the defstates routine to see whether the FT mode is already
	set to either STATES or STATES-TPPI. If not then the button would be changed to STATES, but the corresponding
        variables would not be set properly! This meant that later during the processing the button would revert back
        to its original setting, which is confusing for the user.
        Affected routines: defstates

09-03-'05: a longstanding nuisance has been solved: whenever the rotate3d function was on in the 2D/3D viewer window,
	the axis on which would be operated would not be made the current axis. This in turn meant that with the
        rotate3d functionality on, it would be impossible to change the axis in a multi-plot window. Now the
        SelectAxis routine is run if the axis which is clicked in, is not the current one.
        Affected routines: Rotate3D

15-03-'05: There was a bug in the execution of baseline corrections during the processing of history macros: a variable
	was used in two for loops causing an error when processing stepwise.
        Affected routines: RunMacro

22-03-'05: Executing an UNDO action went wrong when only 1 undo step was stored.
	Affected routines: doUnDo

22-03-'05: A change was made to the routine that creates a new 2D/3D window, in order for it to also add a colour bar
	whenever only 1 subplot is in the current figure window.
        Affected routines: makenew2D3D

22-03-'05: The clabels and klabels routines had not yet been updated to use to features added on 13-10-'04 (the additional
	check button in the input window.
        Affected routines: clabels, klabels

02-05-'05: The standard deviation is now also displayed whenever the "get integral" function is used in the 2D/3D viewer.
	Affected routines: Integrate2D

02-05-'05: Since crossovers from 1D to 2D functions are no longer allowed the baseline correction of 2D spectra could be
	cumbersome whenever many lines were in the spectrum, as they could be out of view. Previously one could create the
        projection onto the 2D and define the peaks on that projection. Now an additional check button in the baseline
        correction window allows the addition of the projection during peak definition.
        Affected routines: basl2dmenu, defpeaks, matNMRdefineglobals

02-05-'05: Sum projection are now (again) allowed even when the current mode is 1D, providing the 2D matrix isn't empty.
	Affected routines: askprojTD1, askprojTD2






=============
!web release! : may 2 2005, version 3.3.25
=============

17-05-'05: To reduce the typical Matlab problem of not being able to find new functions I have inserted a try-catch
	construction at the beginning of nmr and nmr2d. This allows to catch error messages during initialization of
        matNMR, which is where these problems usually show up first. When an error occurs the path caches are first
        rehashed and then the initialization is tried again. If it fails again then an error message is displayed and
        matNMR stops.
        Similar rehashes have been added to the ResetAfterError routine.
        Affected routines: nmr, nmr2d, ResetAfterError

20-05-'05: The change made to the baseline correction (02-05-'05) had a small typo causing an error message whenever
	the matrix would not be square.
        Affected routines: defpeaks

22-05-'05: When opening an input window from the 2D pabel buttons windows the main 2D/3D viewer window would be
	pulled in front of the input window on some operating systems (e.g. Windows). Now a drawnow is done after
        the figure command used to make the main 2D/3D viewer window the current figure.
        Affected routines: asknamecont*, asknamemesh, asknameraster2d, asknamestack3d, asknameline

22-05-'05: Under Windows the input window was not removed immediately after pressing OK and therefore a drawnow
	was executed after the close command in QuiInput_2.
        Affected routines: QuiInput_2

23-05-'05: In order for the position of the 2D panel button window to be correct, the combined statement changing
	both the position and the visibility have been separated. Now the window is first made visible and then the
        position is changed. Fucking Matlab crap!
        Affected routines: matNMR2DPanelButtons

23-05-'05: Reading of Chemagnetics spectra has now been implemented. As the format changes from int32 to float32,
	between FIDs and spectra, a separate menu item in the files menu has been created similar to the existing
        item for reading Bruker processed data.
        Affected routines: matNMR1DButtons, askCMXlaad, CMXlaadSeries, regelCMXSpectraread,
        regelinputbuttonsCMXlaadSeries, askCMXlaadSeries, DetermineCMXSpectraRead, regelCMXSpectrareadSeries,
	CMXlaad, readCMXProcessedData, regelinputbuttonsCMXlaad

23-05-'05: When reading a series of Bruker processed data the common part of the path name would not be kept
	correctly and so the $#$ characters needed to be reinserted when loading another series.
        Affected routines: regelBrukerSpectrareadSeries, askBrukerlaadSeries

25-05-'05: The matnmroptions file was always stored in the default format, which would be v7 for Matlab 7 and newer.
	This is annoying when working with version 6.5 AND version 7 and higher simultaneously. Therefore I have
        added an option in saveoptions to always store in version 6 format.
        Affected routines: saveoptions

26-05-'05: A minor bug in the "text options" routine sometimes caused incorrect display of the font name at the
	start of the routine. This was because the length of the font list was explicitly set to 12, which is
        rubbish from when matNMR was first written.
        Affected routines: Qtextdata

30-05-'05: A fourth pre-defined colour scheme has been added which is sort of blueish. Actually it's a minor
	variation of the boring grey scheme.
        Affected routines: matNMRdefineglobals, matNMRinitvars, Qsetcolorscheme

10-06-'05: An option has been added to the 2D/3D viewer window to allow readjusting of the posneg colourmaps
	based on the spectrum in the current axis. Previously these limits were only adjusted when making a contour
        plot with positive and negative contours. Now this can be done independently from the colourbar
        button in the 2D panel window. To keep of the maximum and minimum of all spectra in each window two new
        entries in the userdata.PlotParams have been created.
        Affected routines: Subplots, matNMRinitvars, QColorMaps, plotcont, dispmesh, dispbar, displine, dispcolor3d,
        dispstack3D, dispraster2D, AdjustPosNeg, calccontlevels, doeopties

10-06-'05: A bug was found in the disppolarplot routine: plotting contours did not work because the routine did not
	invoke the CheckAxisCont routine to adjust the direction of the spectrum and define the variable
        QcontspecPlot. Plotting mesh plots only worked because it used the Qcontspec variable.
        Affected routines: disppolarplot

10-06-'05: When using the "get position" routine in the 2D/3D viewer, now also the index of the axis is given in both
	x and y direction.
        Affected routines: crsshair2d

10-06-'05: To reduce the length of the colourmap menu in the 2D panel window, a number of standard Matlab colourmaps
	have been removed as I have never used those before.
        Affected routines: matNMRinitvars

13-06-'05: The plotting of the projection during 2D baseline correction was finetuned to match the current axis
	limits and to take into account	the starting and ending row/column.
        Furthermore the defpeaks routine did not distinguish between 1D and 2D mode yet, thus causing an error
        when trying 1D baseline correction. Therefore two separate routines have been made, defpeaks1d and defpeaks2d.
        Affected routines: defpeaks1d, defpeak2d, stopbasl2d

13-06-'05: The PosNeg colour map has been enlarged by a factor 3 to obtain a better colour resolution.
	Affected routines: ColorMaps.mat, AdjustPosNeg






=============
!web release! : june 17 2005, version 3.3.41
=============

20-06-'05: Until now the version was written explicitly in the matNMRinitvars routine and natually I would always
	forget to update it before a release. Now the release script writes the version into the matNMRVersion
        file, which is now loaded by the matNMRinitvars routine so the version will always be correct.
        Affected routines: copymat, matNMRinitvars, matNMRVersion

21-06-'05: The matlaad routine cleared some variables, which could then lead to an error when trying the "reload
	last binary FID".
        Affected routines: matlaad

23-06-'05: The reading of standard Bruker parameter files was incorrect as it accessed the acqus and acqu2s files,
	which is not correct. Now the acqu and acqu2 files are accessed.
        Affected routines: QReadParameterFiles

23-06-'05: When creating a contour plot with one contour the level would be NaN, thus causing an error. Now the
	routine is protected from that by plotting a contour halfway between the upper and lower level.
	Affected routines: calccontlevels

23-06-'05: When importing FID/spectra from the files menu the variable was imported into the workspace, after which
	the user needed to load it into matNMR. From now on the variable may be loaded directly into matNMR by
        selecting the appropriate check button in the input window. This does not apply to the importing of
        a series of variables was imported.
        Affected routines: askfidlaad, regelQfidread, askBrukerlaad, regelBrukerSpectraread, askCMXlaad,
        regelCMXSpectraread, asksimpsonasciilaad, regelsimpsonasciilaad, matNMRinitvars, matNMRdefineglobals

23-06-'05: The colour map in any new 2D/3D viewer window was totally screwed up on my laptop because the renderer
	mode was painters by default. Because of that I have changed the default renderer to zbuffer under Windows.
        Furthermore after each plot the change to painters was blocked under Windows.
        MATLAB BUG!!!
        Affected routines: matNMR2DButtons, plotcont, displine, dispbar, dispraster2D, dispstack3D, disppolarplot

23-06-'05: The terms "save to workspace" were changed to "Add to workspace". Also, the save to disk commands
	were also added to the files menu.
        Affected routines: matNMR1DButtons

27-06-'05: When plotting positive and negative contours the number of contours can be given as an array of length 2
	when using different numbers of contours for positive and genative intensities. Now the routine that calculates
        the contour levels is protected against such an input when plotting only positive or negative contours.
        Affected routines: calccontlevels

27-06-'05: The color axis when plotting both positive and negative contours would be set to the maximum of the
	contour levels. Now this has been changed to always be to the maximum and minimum of the spectrum.
        Affected routines: plotcont

27-06-'05: To avoid confusion in the Windows version with the similarity in file names of Rotate3D and rotate3d,
	I have changed the Rotate3D scipt to Rotate3DmatNMR.
        Affected routines: Subplots, zoomcont, SelectAxis, Rotate3DmatNMR, peakpick, contzoomOFF, CopyFig,
        copyfignmr2d, disableZoomandRot, copymat, rotcont, extract

29-06-'05: By request an import filter has been added for the SMIS data format. Currently no spectral parameters are
	read, apart from the time domain sizes.
	Affected routines: askfidlaad, regelinputbuttonsfidlaad, regelQfidread, Qfidread

06-07-'05: The marker type would not always be shown correctly for certain types in the legend window because of
	crappy coding (findstr used instead of strcmp, causing ambiguity).
        Affected routines: QezLegend

18-07-'05: A bug was found when reading standard parameter files from Chemagnetics, which used arrays: an fixed
	spectral frequency sf1 would be used for TD1, instead of the sf that was used for channel 1.
        Affected routines: QReadParameterFiles

18-07-'05: A bug was found in the matNMRReadBinaryFID routine: a variable was defined within an if statement, which
	allowed the possibility of it not being defined, thus causing an error.
        Affected routines: matNMRReadBinaryFID

18-07-'05: A bug was found for the NTNMR filter: only half the FID was read.
	Affected routines: Qfidread

18-07-'05: A bug was found for the MacNMR filter: The length of the file wasn't read correctly.
	Affected routines: Qfidread

19-07-'05: Similar to the changes made on 22-05-'05 now all routines askstop* execute a drawnow before the
	QuiInput routine is called, in order to avoid the new window to be behind the old windows under
        Windows.
        Affected routines: askstop*, askclosenmr2d

19-07-'05: A bug was found in the matNMRSolventSuppression1D routine: an incorrect variable (Qpsc2) was called
	instead of MatrixIn.
        Affected routines: matNMRSolventSuppression1D

19-07-'05: A number of incorrect break statements were found in some of the offline processing routines.
	Affected routines: matNMRApodize1D, matNMRApodize2D, matNMRExtract1D, matNMRExtract2D, matNMRFT1D, matNMRFT2D,
        matNMRLP1D, matNMRLP2D

20-07-'05: The incorrect display of the tick label when using the horizontal stack plot has been solved.
	Affected routines: stack1dhorizontal

20-07-'05: The contourf routine in Matlab 7.0 turns out to be buggy. The Mathworks site shows at
	http://www.mathworks.com/support/solutions/data/1-SS98J.html?solution=1-SS98J
        that the legend is wrong. I have found that when the shading is set to 'flat' then the printing is
        incorrect because it reverts back to 'faceted'. I have implemented their workaround of using the
        'v6' version.
        Affected routines: plotcont

21-07-'05: When extracting a part of a spectrum with axes in points, the history macro would not be created
	correctly. Now the history entry is made before resizing the spectrum.
        Affected routines: regelextract1d, regelextract2d

26-07-'05: Linear prediction did not work properly for 2D matrices in the indirect dimension, whenever the
	Hypercomplex flag was 0 (i.e. real data). Now the distinction is properly made.
        Affected routines: regellp2d

28-07-'05: The definition of an external reference was not stored in the history.
	Furthermore, the regeldefinereference routine did not execute its checks properly.
	Affected routines: regeldefinereference, RunMacro, AnalyseMacro, regelimportreference

28-07-'05: When printing repeatedly to a UNIX printer, the matprint routine may crash because it didn't remove the
	space it put between the "-P" and the printer name.
        Affected routines: matprint

29-07-'05: A double end in the whataxis1d routine caused a crash
	Affected routines: whataxis1d

29-07-'05: A number of changes have been made to use the external reference features more efficiently. Up to now
	it was cumbersome to make a reference to one spectrum in matNMR, and then apply that reference to another
        spectrum. That was because only the axis vector could be stored and not the reference values as used by the
        external reference feature. Now, when making an axis vector in PPM/Hz or kHz, the reference values can be
        stored as an external reference, thus allowing them to be used for other spectra.
        Affected routines: stats1d, scale1d, askeditreference, regeleditreference, askdefinereference,
        regeldefinereference

	The "edit external reference" was renamed to "apply external reference".
	Affected routines: matNMR1DButtons

	When using the default axis, the menu item "use default axis" shows a check flag, when not using it
	the check flag is removed.
        Affected routines: matNMRdefineglobals, matNMR1DButtons, regelsetdefaultaxis, GetDefaultAxis, asaanpas

        It is now possible to perform a "reset default axis". This will clear the reference values for the
        default axis (center of spectrum is 0). Previously this was automatically done when applying the "use
        default axis" feature.
        Affected routines: resetdefaultaxis, regelsetdefaultaxis

	When saving variables, now the reference values for the default axis are also stored when the default
	axis is currently switched off. That way, when switching it back on, the proper axis will be shown again,
        without the need to import an external reference again. The routines used for loading variables also
        have been changed to accomodate this feature.
        Affected routines: regelsave?d, regelsavedisk?d, checkinput1d, checkinput2d

        When creating a ppm/Hz/kHz axis from the "ruler X-axis" menu, now the reference values for the default
        axis are also created and will therefore be stored with the spectrum. This allowd the user to switch
        to the default axis, without losing the chemical shift reference.
        NOTE: the reason we don't always use the default axis now is that the user doesn't have to specify all
        the spectral parameters correctly when making an axis in this menu!
        Affected routines: scale1d

        A variable has been defined, which contains the external reference within matNMR. These are stored in the matNMR
        structure, i.e. when saving in either the workspace or on disk. From now on matNMR structure may therefore
        also be used as input for the "Apply external reference" feature.
        Affected routines: matNMRdefineglobals, matNMRinitvars, regelsave?d, regelsavedisk?d, GenerateMatNMRStructure,
        checkinput?d, scale1d, SwitchTo1D, regeleditreference

        When connecting the history macro to the FID, the external reference data are stored as well, thus allowing
        to recall the external reference from that variable as well.
        Affected routines: regelconnectoFID

30-07-'05: The matprint routine now uses wysiwyg by default and has a renderer setting 'auto' added to it, which will
	determine the rendering mode from the window that needs printing.
        Affected routines: matprint

        The matprint routine no longer ran when matNMR wasn't started because the QColorScheme variable would not
        be known. Now the classic colorscheme is defined in case matNMR hasn't been started yet.
        Affected routines: matprint

30-07-'05: The reading of CMX arrays has been extended such that it shows the parameter names and their values for
	arrays. Output is written to the console window.
        Affected routines: QReadParameterFiles

02-08-'05: A tool to facilitate phasing of 2D spectra has been implemented. The "2D tool" provides two more slices
	in the window by which to judge the phase settings.
	Affected routines: matNMRdefineglobals, matNMR1DButtons, fasemenu, stopfasemenu, enablephasebuttons, CheckNumeric,
        setphase1d, Switch2Daid, makenew1D, makenew2D, pickslices2Daid, update2Daid

02-08-'05: The positioning of the window for the colour scheme settings was not good. Now the top is aligned with the top
	of the screen, whereas before the bottom was aligned with the bottom of the screen.
	Affected routines: Qsetcolorscheme

03-08-'05: An additional safety measure has been implemented to ensure that all caches are properly updated. From now on
	for each new release a new file is chosen, which is then checked at startup to see if it exists in the Matlab
        cache. If not then the rehash commands are executed.
        Affected routines: nmr, CheckForSpecificFile

03-08-'05: Put in an effort to make all webpages, including the manual, compliant with w3c standards for HTML 4.
	Affected routines: all .html files

04-08-'05: Extended the diffusion fitting to include bipolar gradients, which require an additional pi-pulse and
	hence an extra fixed parameter to define before the fit. This parameter is set to 0 when not needed.
        Affected routines: matNMRdefineglobals, matNMRinitvars, Difffit, Diffpk_init, Diffpk_qvt, Diffpk_qvtdf,
        Diffpk_voigt, regeldefparsDiff

04-08-'05: Found a simply way to speed up 2D phase correction: previously slice-wise multiplication was performed
	in both dimensions. A small test showed however that full-matrix multiplication is faster in TD2. For TD1
        the speed wasn't improved by doing that, but the old algorithm was very inefficient because it recalculated
        the same thing 4 times. So now that is as fast as the phase correction in TD2.
        The only problem is that Matlab 6.5.1 and Matlab 7.0.4 behave differently: Matlab 7 is faster in full-matrix
        multiplications, whereas Matlab 6.5 likes column-wise multiplications best. Therefore the routine adopts its
        action based on the version of Matlab.
        The matNMRSetPhase2D routine just operates on columns only
        Affected routines: setphase2d, matNMRSetPhase2D

05-08-'05: When selecting another matNMR distribution (goodies menu) then the current directory was used as a
	starting point to look for a new directory, instead of the current matNMR directory.
        Affected routines: selectdistribution

14-08-'05: The last-used function and order for baseline correction weren't rememebered properly.
	Affected routines: matNMRdefineglobals, matNMRinitvars, basl2dmenu, doebasl2dcor, basl1dmenu, automanu,
        doebasl1dcor

15-08-'05: Made a small change to the legend routine such that when the Refresh button is pushed, the strings that are
	currently in the edit buttons will be preserved, even if a different number of lines is present in the main window,
        compared to when the legend was made.
        Affected routines: QezLegend

15-08-'05: A typo in the routine to automatically remove the Bruker digital filter produced an error for certain
	spectra which used DECIM=8, as the typo confused 7 with 8.
        Affected routines: DetermineBrukerDigitalFilter

15-08-'05: The plotting routines in the 2D/3D viewer now distinguiah their actions between axes where the hold flag
	is on and ones where it is off. When the hold is on, the axis parameters are no longer written to the userdata
        of the figure window, because matNMR assumes that the first spectrum is the main one. Therefore, care must be
        taken when using the "get position" function in such situations!
        Also, when the hold is on contour plots are put on top of all other spectra. This is done by putting the zdata
        property of the patch to the maximum of all axis children.
        Affected routines: plotcont, dispmesh, dispstack3D, dispraster2D, dispbar, displine, disppcolor3d,
        disppolarplot

01-09-'05: The syntax for the uigetfile routine has changed in Matlab 7. Also, matNMR used to call the routine in a
	UNIX-specific fashion, which for example caused an error on Macintosh. Now the position of the window is no
        longer specified and it should work on all platforms.
        Affected routines: Brukerlaad, BrukerlaadSeries, CMXlaad, CMXlaadSeries, fidlaad, fidlaadSeries,
        matlaad, matlaadSeries, regelBrukerdig, simpsonasciilaad, simpsonasciilaadSeries







=============
!web release! : september 2 2005, version 3.4.0
=============

02-09-'05: Found a remaining few bugs in the external referencing routines:
	-the "define external reference" routine crashed because a check on QTEMP6 wasn't performed correctly. Now
        its length is checked as well.
        Affected routines: askdefinereference

        -When defining an external reference the result wasn't stored in a structure as it was implemented in
        the "ruler X-axis" routine (scale1d).
        Affected routines: regeldefinereference

        -A variable lacked a "Q" in front of it in one of the routine, causing it to be left behind after closing
        matNMR
        Affected routines: checkinput1d

        -When reprocessing from history the precision of the frequency and value weren't set high enough and therefore
        the axes would be incorrect. Now the precision of the num2str routine is set to 10 digits.
        Affected routines: RunMacro

        -When defining an external reference, or applying one as it is the same routine in the end, the axis vectors
        weren't explicitly defined. This could cause problems e.g. when executing a macro where the reference was
        changed for a 2D spectrum. As the axis vectors would only be defined explcitly when going into a particular
        dimension, the user would think the axes were fine, but in fact they were not. Saving the spectrum or looking
        at it in the 2D/3D viewer mode would show the problem.
        Now the axis vectors are explicitly defined after the reference is changed.
        Affected routines: regeldefinereference

08-09-'05: The stack 3D routine always plotted a box around the axis because it checked the wrong viewing-angle
	parameters.
        Affected routines: dispstack3D

09-09-'05: The standard deviation of the noise level would not be set correctly in the peak fitting routine, for
	frequency axes of gamma>0 because the indices of the noise boundary would not be sorted. This caused a
        NaN and hence all sorts of problems.
        Affected routines: peakfit

        Also, the noise level would not be reset when refreshing the screen.
        Affected routines: peakfit

21-09-'05: The default variable name was matNMR, which meant one had to delete it first before a new name could
	be written in the input window. Now, no name is shown when starting matNMR.
        Affected routines: matNMRinitvars

21-09-'05: The default axis would not be correct after projecting on TD1 or TD2.
        Affected routines: regelprojTD1, regelprojTD2

22-09-'05: The crosshair routine in the 2D/3D viewer has been improved: now the original spectrum of a particular
	axis is recreated when changing axis/figure and then the crosshair routine will give the correct intensities
        when going over the spectrum.
        Affected routines: SelectAxis, UpdateFigure

22-09-'05: When switching windows in the 2D/3D viewer one would sometimes get an error if the windows had colour
	bars in them. This was because changes in the colour bars weren't stored in the figure userdata, only in the
        current variables. Changing windows would show this problem because the handles to the colour bars would
        not be correct.
        Affected routines: contcmap

        To allow this feature to work for a 3D matrix the temporary variable Qtempspec2 is no longer deleted after
        the regelplotseries routine is finished. This obviously assumes that no new series has been plotted after
        the user tries to get the intensity of a spectrum of the previous series!
        Affected routines: regelplotseries

26-09-'05: The figure buttondown function was replaced by the peak picking routine, but not restored after
	finishing.
        Affected routines: GetPeaks

26-09-'05: matNMR would fail to initialize whenever a variable called "i" would be present in the workspace
	because the matNMRinitvars routine tried to access "i" as the complex i. As this is very unsafe now
        the matNMRinitvars routine uses sqrt(-1) instead.
        Affected routines: matNMRinitvars

26-09-'05: A possibility was built into matNMR to allow normalization of the Chi^2 that is calculated during
	T1 and diffusion fitting. Previously this was only done in the peak fitting routine.
        The normalization constant (e.g. standard deviation of the noise) must be entered by hand in an edit
        button.
        Affected routines: T1fit, T1pk_init, T1pk_udata, T1pk_inivl, Difffit, Diffpk_init, Diffpk_udata, Diffpk_inivl

26-09-'05: Matlab 7.1 is now recognized by matNMR.
	Affected routines: matNMRinitvars

26-09-'05: A novel feature has been built into the 2D/3D viewer: recently Cadars, Lesage & Emsley published a
	paper on the use of so-called conditonal probability matrices (CPMs) to look at the type of disorder
        that is apparant from the shape of crosspeaks in high-resolution experiments. This means nothing more
        than renormalizing the crosspeak but can be a useful visual aid I think.
        Affected routines: matNMRdefineglobals, matNMRinitvars, matNMR2DButtons, askcreateCPMs, regelcreateCPMs,
        CreateCPMs, CheckAxisCPM

27-09-'05: When clicking on a supertitle that is not in the current window, e.g. in order to edit its text
	then the buttondownfunction wouldn't work properly. To prevent that now a SelectFigure is executed
        before editing or moving the axis.
        Affected routines: Subplots

28-09-'05: When stopping the 2D/3D viewer without stopping the main window, then the counter that keeps track of
	how many 2D/3D viewer windows are open (or were open), was not reset. This could give very high numbers,
        which was not very useful. Now, for cosmetic purposes the counter is reset.
        Affected routines: stopnmr2d

28-09-'05: Two entries to the userdata, that are created by all plotting routines in the 2D/3D viewer, were not
	initialized by the Subplots routine. This was a cause of error if a user plotted his/her own spectrum
        and then tried to e.g. use the "get position" routine.
        Affected routines: Subplots

28-09-'05: The "get position" routine in the 2D/3D viewer did not show the axis coordinates properly if no
	spectrum name was known to the routine, even if the axes were known. Now this has been corrected and
        the axis coordinates are shown correctly.
        Affected routines: crsshair2d

28-09-'05: A check is now performed on all input matrices to see whether they are acceptable to matNMR. For
	example, the "i" and "j" are no longer acceptable as input as they will interfere with Matlab
        functions.
        Affected routines: checkinput







=============
!web release! : october 4 2005, version 3.4.17
=============

04-10-'05: The baseline correction routine have always been rather instable when using high orders of polynomials.
	This turned out to be because of the simplicity of the algorithm. Now a more stable algorithm has been found,
        which is based on the Matlab polyfit.m routine, which uses a QR decomposition of the polynomial matrix first
        before doing the left matrix divide. Somehow this works better.
        Affected routines: doebasl1dcor, doebasl2dcor

05-10-'05: The plot direction in the peak fitting routine was not always correct throughout the routine, causing the
	spectrum to flip a few times in some cases.
        Affected routines: peakfit

05-10-'05: By default the GenerateMatNMRStructure routine generated a structure with both dimensions defined as
	spectra. That would cause a problem when concatenating a series of 1D FIDs/spectra since then the
        second dimension (TD1) would be a spectrum, which is generally not correct. Now by default both
        dimensions are FIDs.
        Affected routines: GenerateMatNMRStructure

05-10-'05: Cancelling the removal of the Bruker digital filter did not work properly in one particular instance,
	causing an error message.
        Affected routines: regelBrukerdig

12-10-'05: By default now the PaperMap colormap is selected when creating CPMs. Before the colormap of the originating
	window was used, which is not always good.
        Affected routines: CreateCPMs

12-10-'05: A typo in the routine for horizontal stack plots caused an error when working in TD1.
	Affected routines: stack1dhorizontal

        The horizontal stack plot was not correctly defined for some types of axes.
        Affected routines: stack1dhorizontal

13-10-'05: Executing a dual display when the current view is a horizontal stack plot caused the name of the variable
	to be added to the list of 10 last-used variables, regardless whether the variable was already in the
        list.
        Affected routines: dualdisp

        Executing a dual display when the current view is a horizontal stack plot showed inverted spectra depending
        on whether the axis variable was ascending or descending.
        Affected routines: dualdisp

14-10-'05: To avoid errors in the CreateCPMs routine due to numerical instabilities, a check is now performed and
	the plotting of the CPMs is refused if problems are encountered.
        Affected routines: CreateCPMs

26-10-'05: When loading series of FIDs/spectra one had to fill in too many things:

	Now the RangeOut is set the same as RangeIn, as soon as RangeIn is defined. This still allows the user to
        change RangeOut but is not required.
        Affected routines: regelinputbuttonsfidlaadSeries2, askfidlaadSeries, askBrukerlaadSeries, askCMXlaadSeries,
        asksimpsonasciilaadSeries

        Furthermore a reasonable guess for the common part in the workspace is now made as soon as the filename is
        defined and a single $#$ code is found.
        Affected routines: regelinputbuttonsfidlaadSeries3, askfidlaadSeries, askBrukerlaadSeries, askCMXlaadSeries,
        asksimpsonasciilaadSeries

29-10-'05: Found yet another complex conjugate (') instead of a pure transpose (.') in some old code.
	Affected routines: Qview0, muisinput, getdiag, getantidiag

01-11-'05: Added support for printing in PNG format to the matprint routine.
	Affected routines: matprint

05-11-'05: An error message appeared when trying to get a horizontal display when the current display was already a
	horizontal display. Now the routine no longer allows this request when the current display is not the default
        plot (QPlotType = 1);
	Affected routines: stack1dhorizontal

05-11-'05: Set the horizontal alignment to left for some of the edit buttons in the main window.
	Affected routines: matNMR1DButtons

08-11-'05: When Matlab 7 was introduced matNMR did not store its options file in a backward compatible fashion.
	Therefore it is possible that users are trying to run Matlab 6, whilst loading a Matlab 7-style options
        file, which causes an error message and incoherent behaviour in matNMR. Now, a try-catch loop has been
        built around the load command to prevent this error. If an error occurs then the options file that is
        supplied with the code by default is used.
        Affected routines: matNMRinitvars

08-11-'05: An additional stabilization was required in the routine for conditional probability matrices as often
	it would report a numerical instability.
	Affected routines: CreateCPMs

08-11-'05: Found another incorrect usage of complex conjugate (') instead of (.'). To keep everything else constant
	several routines had to be corrected as they corrected the initial error.
	Affected routines: Qfidread, four1d, four2d, matNMRFT1D, matNMRFT2D, setphase1d, setphase2d, matNMRSetPhase1D
        matNMRSetPhase2D, docurrentphase, update2Daid

09-11-'05: When flipping a spectrum left/right then fliplr routine was used. This had one drawback for complex data,
	i.e. that the direction of phase correction is reversed compared to the normal direction. In principle one
        should take the complex conjugate in time domain so this problem doesn't occur. Therefore, now a 'conj' is
        executed after the 'fliplr'.
        Affected routines: flipspec, matNMRFlip1D, matNMRFlip2D

09-11-'05: The CPMs needed some more refinement: now the contour limits and the multiplier can be set manually so that
	the CPM plots may be optimized for e.g. printing in black and white (as colour is very important for the low
        S/N peaks such optimizations are typically very delicate)
        Affected routines: matNMRdefineglobals, matNMRinitvars, askcreateCPMs, regelcreateCPMs, CreateCPMS

10-11-'05: The zero frequency calculated for the Default Axis was not correct but shifted by 1 point.
	Affected routines: GetDefaultAxis, GetDefaultAxisDual

10-11-'05: Removed 'all' instances of non-integer indices into vectors and matrices of form "Qdim1/2", "Qdim2/2" and
	"Qdim1d/2" as Matlab 7 crashes when this happens. In most instances even number were assumed, which makes sense
        as the FT should be a power of 2 for optimum speed.
        Affected routines: regelshearingFD, matNMRShearingTransformationFD, regelshearingTD, matNMRShearingTransformationTD,
        defstates, scale1d, apodize1d, matNMRApodize1D, matNMRApodize2D, Qfidread, regelQfidread, regelQfidreadSeries,
        matNMRReadBinaryFID, readCMXProcessedData, matNMRConvertStates2D

10-11-'05: The offline processing routines for 2D did not always execute "return" whenever a check resulted in an error
	message.
        Affected routines: matNMR*2D

        Also, now a beep is executed whenever an error occurs.
        Affected routines: matNMR*1D, matNMR*2D, matNMRShearingTransformationFD, matNMRShearingTransformationTD

10-11-'05: Changed the routine for linear prediction in 2D mode such that now areas of peaks may be assigned which should be
	predicted. This can save lots of time because noisy areas are no longer fitted.
        Affected routines: matNMRdefineglobals, matNMRinitvars, defpeaksLP, regellp2d, RunMacro, AnalyseMacro

10-11-'05: Added sine FT to the four modes button. This does the normal FT, using the mode
	specified in the UIcontrol, but then does a 90 degree phase shift and inverts the first half of the spectrum.
        Affected routines: Qoptions, matNMR1DButtons, four1d, four2d, historyFT, RunMacro, AnalyseMacro

10-11-'05: A long-standing bug in the shearing in time domain has been fixed. The frequency-dependent phase shift was
	performed in the incorrect dimensions, recombining the complex parts instead of the hypercomplex parts,
        which lead to vast spectral distortions.
        Affected routines: regelshearingTD, matNMRShearingTransformationTD

10-11-'05: A typo was removed from the matNMRSetPhase2D routine.
	Affected routines: matNMRSetPhase2D

        Furthermore, the phase correction in 2D mode did not allow for hypercomplex matrices in the offline processing
        routine.
        Affected routine: matNMRSetPhase2D

12-11-'05: The reference values for the default axis weren't stored in the undo matrices yet so that could potentially
	cause incorrect axes.
        Affected routines: regelUNDO, doUnDo

15-11-'05: The axis direction wasn't always correct in the stack3D routine.
	Affected routines: dispstack3d, stack3dreverse

15-11-'05: Removed the transpose button from the main window because it tends to confuse people as they think it is
	needed to change the dimension.
        Affected routines: matNMR1DButtons, stopmenu2d, v2dmenu

15-11-'05: Until now the default axis was switched off when executing an extract 1D or 2D. This was not really
	necessary and has been changed now.
        This change required many changes because for external referencing the carrier was always assumed to be
        in the center of the spectrum (floor(Qdim1d/2)+1). But after an extract this is usually no longer true. Therefore
        an additional variable had to be introduced in order to keep track of the index of the carrier.
        Affected routines: GenerateMatNMRStructure, matNMRdefineglobals, matNMRinitvars, GetDefeaultAxis,
        checkinput1d, four1d, ClearDefaultAxis, resetdefaultaxis, regelextract1d, regelUNDO, doUnDo, SwitchTo1D,
        regelextract2d, four2d, checkinput2d, regelsave1d, regelsave2d, regelsavedisk1d, regelsavedisk2d, scale1d,
        regelgetcolumn, regelgetslice, viewrow, viewcolumn, GetDefaultAxisDual, checkinputdual, checkinputcont

16-11-'05: Previously the routine that defines an external reference would apply the same values to both dimensions
	of the 2D spectrum whenever only 1 set of values were entered. This would make it difficult to reference
        heteronuclear experiments for example where the frequency is different in both dimensions and one would
        like to apply two separate reference experiments for the two dimensions. Now a single set of values
        will apply only to the current dimension.
        Affected routines: regeldefinereference

17-11-'05: The routine for doing dual display of horizontal stack plots did not stop after producing an error message
	because the error message was produced in a subroutine. Now it is made in the main routine.
        Affected routines: checkinputdual, dualdisp

21-11-'05: The name of a 2D FID/spectrum would not remembered properly when switching between 1D and 2D modes. This
	meant the title above the plot would not be correct. Now a separate variable is used to store the name of the
        last (i.e. current) 2D matrix. Similarly a variable for 3D matrices has been renamed/introduced.
        Affected routines: matNMRdefineglobals, matNMRinitvars, regelgetcolumn, regelgetslice, viewrow, viewcolumn,
        stack1dhorizontal, stack1dcertical, regelprojTD1, regelprojTD2, getdiag, getantidiag, regelskyline, askname,
        reload3d, makenew3D, regel2d, regel3d

23-11-'05: Sometimes, e.g. after a horizontal stack plot,  pressing the "+row" button would yield an error because the
	removecurrentline couldn't find a proper line and then the simpelplot routine would crash. Now a check is done
        to ensure that a full "reset figure" is done in such cases.
        Affected routines: simpelplot

23-11-'05: Have extended the handling of 3D matrices to allow access to the processed spectra in the output variable.
	Until now only the input variable could be accessed which was rather limiting.
        Affected routines: matNMR3DButtons, view2d, makenew, regelexecutemacro3d

23-11-'05: An exeptional situation was encountered which resulted in an error: when indexing into a 3D or higher-dimensional
	matrix to obtain a 2D matrix and loading this into matNMR, the routine that checks the input would crash. As this
        type of input highly unlikely to be used by many people I have made a check to spot this and avoid the error but
        haven't implemented support.
        Affected routines: checkinput2d

23-11-'05: When concatenating a series of 2D spectra into a 3D matrix, sometimes an error would occur because the putinlist3d
	routine would try to write into a button in the 3D window, regardless of whether the window would exist or not.
        Now a check is done.
        Affected routines: putinlist3d

23-11-'05: When executing a macro on a 3D matrix the default axis could be missed because after the last processing step in the
	macro the default axis wasn't generated. Now it is.
        Affected routines: regelexecutemacro3d

23-11-'05: When saving a processing macro in the main window, the last change of dimension would not be stored as this would
	only be done before the next processing action. Now the dimension-dependent parameters are stored once more to ensure
        that the view after the executing of the macro is the same as when the user stored the macro.
        Affected routines: regelsaveasmacro, regelstoprecordingmacro

24-11-'05: Added a button "Load 3D" to the 2D menu in the main window. That way one can have access to the 10 last-used 3D
	matrices as well.
        Affected routines: matNMR1DButtons, v2dmenu, stopmenu2d, regel3d

24-11-'05: When using the same variable for output as for input for 3D manipulation, the input variable would be erased. Now
	a check is done to ensure that this doesn't happen and a warning message is printed. This also covers the situation
        that the output variable is equal to any other variable in the workspace.
        Affected routines: regeloutput3d

24-11-'05: Expressions with commas "," in them were not interpreted correctly since the comma wasn't taken as a special
	character by the checkinput routine. That would cause variables not to be recognized properly because of the comma
        added to the variable name.
        Affected routines: checkinput

24-11-'05: A loaded variable could produce the total removal of the axis from the main window by Matlab whenever the span in
	the Y direction was not zero but still exceedingly small (1e-313). Matlab obviously doesn't like that. Now the routine that
        determines the axis limits uses the machine precision instead of 0 to judge whether the limits are very small. This
        is clearly a Matlab issue since in the x-direction they don't allow an axis span of less then 1e-16 but for the y-axis
        they don't have such restrictions.
        Affected routines: DetermineNewAxisLimits

30-11-'05: A UIcontrol used for the 2D phasing aid was not declared global, which caused a problem when reprocessing a macro
	with the matNMRRunMacro routine.
        Affected routines: matNMRdefineglobals







=============
!web release! : november 30 2005, version 3.5.0
=============

30-11-'05: Changed the simpelplot routine to execute a "reset figure" if the current plot type is not the default
	type. This would for example be needed when changing row/column in a 2D whilst being in a horizontal stack
        plot.
        Affected routines: simpelplot

03-12-'05: Reading binary FIDs of data formats which do not require input of the time domain sizes no longer worked
	because of an undocumented change in the routines that read binary FIDs.
        Affected routines: Qfidread, regelQfidread, regelQfidreadSeries

04-12-'05: The VNMR import filter yielded spectra that were flipped L/R in all tests that I did. Therefore I have
	added a complex conjugate to the FID after importing it to ensure the proper direction.
        Affected routines: Qfidread

05-12-'05: Implemented reading of external references in VNMR format.
	Affected routines: QReadReferenceParameterFiles

07-12-'05: Added the option of showing the full probability when creating CPMs. This shows the correlation of
	disorder even easier than the CPMs but is (naturally) much more sensitive to numerical artefacts (induced
        by noise).
        Affected routines: matNMRdefineglobals, matNMRinitvars, askcreateCPMs, regelcreateCPMs, CreateCPMs, CheckAxisCPMs

12-12-'05: Storing the plotting action of changing the title and axis labels in the main window did not work and produced
	an error message. This was because the figure window would be closed before the macro information was read and
        stored. Strangely enough this was correct in the routine for the 2D/3D viewer!
        Affected routines: klabels

14-12-'05: Got sick and tired of the classic colour scheme and have made minor adaptations and have made this the
	default colour scheme.
        Affected routines: matNMRdefineglobals, matNMRinitvars, Qsetcolorscheme

11-01-'06: The dual display at equal maximum did not differentiate all possible display modes (real/imag/abs etc). Now
	it does for the default plotting type.
        Affected routines: dualdisp

13-01-'06: The vertical stack plot didn't set its axis limits properly when entering a displacement value of 0 or
	negative values.
        Affected routines: stack1dvertical

16-01-'06: When executing linear prediction using many points from the FID to predict with, the routine could yield
	NaN phases and zero amplitudes. Now the output of both linear prediction algorithms is protected from NaN
        output so that subsequent manipulations aren't distorted.
        Affected routines: lpsvd, itcmp

        As linear prediction with more than 256 points to predict from becomes slow, a warning message is given to
        alert the user to reduce the number of points to predict with. Furthermore in the input window for 2D LP
        it now says "(>128 = slow!)" to indicate to the user beforehand that the number should not be too big.
        Affected routines: regellp1d, regellp2d, asklp2d

19-01-'06: When performing a shearing transformation in frequency domain the hypercomplex parts were not set to 0
	thus allowing strange phase corrections to be possible, which resulted in spectral artefacts. Instead of
        performing spline interpolation on the imaginary parts too (time consuming), I've chosen to zero all
        imaginary parts and display a notice to the user.
        Affected routines: regelshearingFD

19-01-'06: When loading a 1D or 2D spectrum without spectral information (including axis vectors) then the default
	axis would be created using the current values. This would give a strange axis vector just after having
        started matNMR. Now the reference values are zeroed when loading such spectra.
        Affected routines: checkinput1d, checkinput2d

19-01-'06: Extraction of a spectra in the main window did not work with an increment. This has now been added.
	Affected routines: regelextract1d, regelextract2d, RunMacro

19-01-'06: Extraction of part of a spectrum in the 2D/3D viewer didn't work anymore because somehow there was
	interference between the Extract2D routine and the SelectAxis routine. This was one of these strange
        problems with Matlab where it is sometimes unclear why the graphics and event buffers aren't cleared
        before a new routine is started. Because there was no logical reason why the SelectAxis routine should
        be called at that stage. To solve this problem the buttondown functions of the figure and axis are
        restored only after the user has gone through the input window with the extraction information.
        Affected routines: Extract2D, regelextract

20-01-'06: The Subplots routine still set the renderer to painters for Windows. This has been changed temporarily
	to zbuffer in all other routines because Matlab screws up the colorbar in that mode (see change 23-06-'05)
        Affected routines: Subplots

20-01-'06: Similar to the previous change, the matprint routine has been changed such that now, when the user
	asks for automatic detection of the rendering mode for printing (i.e. matprint decides based on the
        figure window's rendering mode), zbuffer is changed to painters under Windows, when there are no
        surface objects in the figure.
        Affected routines: matprint







=============
!web release! : january 23 2006, version 3.5.17
=============

23-01-'06: A small button has been added to the 2D/3D viewer window to make that window the current window. This
	solves problems with selecting the window.
        Affected routines: matNMR2DButtons

23-01-'06: The linear prediction algorithm could sometimes yield a result with an extremely small amplitude and
	negative dampening, which would then yield a meaningless result. Now such results are filtered out.
        Affected routines: lpsvd, itcmp

26-01-'06: Have tried to implement the CMXW format (old chemagnetics format) for a user. Format seems similar to the
	spinsight format except for different file names and different parameter files.
        Affected routines: askfidlaad, askfidlaadSeries, regelQfidread, regelQfidreadSeries, QReadParameterFiles,
        Qfidread, regelinputbuttonsfidlaad, regelinputbuttonsfidlaadSeries, matNMRReadBinaryFID

01-02-'06: It was possible to switch windows in the 2D/3D viewer and crash matNMR because it would not find a correct
	axis handle.
        Affected routines: UpdateFigure

01-02-'06: Fixed a bug in an external routine called uiMultiText, which claimed to write multiple text lines into an axis
	but instead only printed 1. Now it prints multiple lines, if a char(10) is placed somewhere in the s
        Affected routines: uiMultiText

01-02-'06: Every once in a while there would be a problem with the 2D/3D viewer window when it tried to delete a
	colorbar, which should be in the window (and often was still visible on the screen), but somehow was already
        gone. This seems to be a Matlab bug, possibly related to switching windows when the graphics buffer is still
        being emptied. Now a try-catch construction has been used whenever the colorbar is deleted. Should an error
        occur then a message is issued that the window appears corrupted and needs to be closed.
        Affected routines: regelcaxis, plotcont, dispstack3D, dispraster2D, disppolarplot, disppcolor3d, dispmesh,
        displine, dispbar, contcmap, contcbar

        APPENDED 17-02-'06: found the real reason for this problem: this error occured when changing the colormap
        in an axis that had a colorbar. Because the userdata of the figure wasn't correctly stored afterwards by
        the contcmap routine, the abovementioned routines would see the problem. Now the contcmap routine has been
        corrected. The try-catch construction for deleting the colorbar has been left in the routines because of
        enhanced stability that way.
        Affected routines: contcmap

07-02-'06: The change of 19-01-'06, in which an increment was allowed when performing an extraction of a 1D or 2D
	spectrum in the main window, did not produce the right macro code. This resulted in pronlems when reprocessing
        the macro.
        Affected routines: regelextract1d, regelextract2d

08-02-'06: The information concerning the default axis wasn't stored when executing the offline routine
	matNMRRunMacro. Now it is, similar as is done in regelsave?d.
        Affected routines: matNMRRunMacro

11-02-'06: A user complained about an error in Matlab 7.1 Student edition, that could relate to the fact that a variable
	QColorScheme was named similarly to a script called Qcolorscheme. Now the script has been renamed Qsetcolorscheme.
        Affected routines: Qcolorscheme (now Qsetcolorscheme), matNMR1DButtons, matNMR2DButtons

02-03-'06: The colorbar routine has changed considerably in Matlab 7 and now it not only looks different (and doesn't
	scale properly for multi-plot windows!!) but also uses a function_handle array as a buttondownfunction. This is
        annoying because that makes it hard for me to define my own buttondownfunction. Therefore I have generated a
        script that allows me to call for a version 6-style colorbar when working in Matlab 7.
        Affected routines: colorbarmatNMR, contcbar, contcmap, dispbar, displine, dispmesh, disppcolor3d, dispraster2D,
        disppolarplot, dispstack3D, plotcont, regelcaxis

02-03-'06: Have made colorbar axes selectable so the axis properties can be changed similarly to normal axes.
	Affected routines: SelectAxis, colorbarmatNMR

03-03-'06: Have found two problems relating to the backwards compatibility of matNMR: the rehash functions have only
	been introduced in Matlab 6.0, whilst the backgroundcolor property for text objects was added in Matlab 6.5.
        Since the colour scheme is a good feature and hard to change, and since there may well be more of such problems,
        I have decided to change the backwards compatibility of matNMR on the website as follows: Version 3.2.44 has
        been classified to require Matlab 6.0 and higher, whilst starting from matNMR 3.3.0 Matlab 6.5 is needed.
        Affected routines: download.html







=============
!web release! : march 6 2006, version 3.5.29
=============

07-03-'06: MatNMR failed to work on all platforms because of an ancient routine that checks the platform. Now the
	routine has been adopted to fit the output given by Matlab 6.5 and 7.
        Affected routines: DeterminePlatform

09-03-'06: When running a macro on a 2D variable user-defined axes would sometimes disappear because in the final
	step the view would be refreshed and since the vector for the current 1D plot hadn't been updated yet,
        the default axis would appear.
        Affected routines: Runmacro

10-03-'06: A bug has crept in the 1D linear prediction routine using the ITCMP method: the amplitude of the predicted
	points was not correct due to a rescaling of the spectrum.
        Affected routines: regellp1d

10-03-'06: The linear prediction routines were stabilized a bit more against errors caused by unnecessary scaling
	factors in the amplitude of the time-domain signal. Now the signal is first normalized to 1 and then fitted
        and rescaled to its original intensity.
        Affected routines: itcmp, lpsvd

10-03-'06: Asking for a new 2D/3D viewer window from the menubar did not yield the same as doing that from the 2D
	panel window. As the latter took the settings of the current window, now asking for a new window from the
        menubar also does that.
        Affected routines: matNMR2DButtons

10-03-'06: Have changed the implementation of the PosNeg colormaps. Before one would had to adjust the levels to
	the current spectrum every time one plotted a spectrum. Now the colormap name is stored in the figure
        userdata and is used to determine whether or not to readjust the PosNeg maps.
        Affected routines: matNMRdefineglobals, matNMRinitvars, Subplots, makenew2D3D, contcmap, UpdateFigure,
        QColorMaps, dispbar, dispmesh, disppcolor3d, disppolarplot, dispraster2D, dispstack3D, plotcont

11-03-'06: The change of 05-10-'05 in the GenerateMatNMRStructure routine has caused a bug in the reading of
	Bruker/CMX and Varian spectra since the TD2 dimension was now set to FID instead of spectrum. Now the
        FID status is always set explicitly.
        Affected routines: regelBrukerSpectraread, regelBrukerSpectrareadSeries, regelCMXSpectraread,
        regelCMXSpectrareadSeries

11-03-'06: When reading spectra from disk the index of the carrier frequency was not set. This has become necessary
	since the changes to the default axis of 29-07-'05.
        Affected routines: SIMPSONread, regelBrukerSpectraread, regelBrukerSpectrareadSeries, regelCMXSpectraread,
        regelCMXSpectrareadSeries

14-03-'06: The linear prediction routines now provide a warning message whenever the svd doesn't converge properly.
	Affected routines: lpsvd, icmp

14-03-'06: The linear prediction routines now first check to see whether the norm of the vector is significant,
	otherwise no (cpu expensive) predicition is done.
	Affected routines: regellp1d, regellp2d

14-03-'06: As had been noticed on 24-11-'05, Matlab doesn't like matrices with values much smaller than the machine
	precision. Now I also noticed that the zoom function doesn't work properly in such cases. Therefore, all
        matrices are checked for their norm upon loading and a warning message is issued whenever the matrix is
        exceedingly small.
        Affected routines: checkinput1d, checkinput2d, checkinputcont, checkinputdual

22-03-'06: Matlab 7.2 is now recognized.
	Affected routines: matNMRinitvars

28-03-'06: Have changed the effect of the "zoom y" and "expand y" buttons in the main window as zooming using these
	buttons was often difficult because the lower limit and the span were changed simultaneously. Now the lower
        limit is changed much less than before so that when the baseline is close to the bottom of the axis, then
        it appears to stay in place.
        Affected routines: expansiey, zoomy

31-03-'06: The automatic recalculation of the PosNeg colormap limits worked fine except that an additional rendering
	step was observed, i.e. first the old colormap was shown and then the recalculated. The reason for this slowness
        was the command "figure(Qcntrs)" in the colormap routine, which forces a rendering step. Now this command is
        only issued if the current window is NOT equal to Qcntrs.
        Affected routines: contcmap, zoomcont, whataxis2d, rotcont, Qshading, print2D3D, prescale2d, findcurrentfigure,
        defineplotlimits, contzoomOFF, clabels, asknamecontabs, asknamecontrel, asknamemesh, asknamepeaklist,
        asknameraster2D, asknamestack3D, asknamepcolor3d, asknamepolarplot, asknamebar, asknameline

31-03-'06: The change of 20-01-'06 to the matprint routine has created a bug on Windows platforms as sometimes the
	variable used to store the renderer mode for printing (Pcomm1) would not be defined.
        Affected routines: matprint

31-03-'06: Matlab 7 creates an objkect called a hggroup when drawing a contour plot, instead of the set of patches
	as it did in previous versions. This caused a problem when wanting to make a dual-plot of contours on top
        of something else in the 2D/3D viewer. Now the handles to the patches are extracted from the hggroup object.
        Affected routines: plotcont





=============
!web release! : march 31 2006, version 3.5.45
=============

06-04-'06: When using the CopyFigure the name of the window would remain the same as the original window, which
	would make it impossible to distinguish from the original without opening the window. Now a generic name
        is given.
        Affected routines: CopyFig

08-04-'06: The change of 11-03-'06 had introduced a new bug in the reading of SIMPSON files.
        Affected routines: SIMPSONread

10-04-'06: When setting tick labels an unwanted output was generated because a semi-colon was lacking in an eval
	statement.
        Affected routines: regelticklabel

10-04-'06: The window for changing the colour scheme wasn't positioned properly and wasn't corrected in size for
	screens that are too small, which meant it couldn't be dealt with properly on some systems.
        Affected routines: Qsetcolorscheme

10-04-'06: I came across a Bruker dataset which used little-endian byte ordering in the FID. As this was always
	big endian so far I had to include this. Now the byte ordering is read in from the standard parameter
        files but it is STILL ASSUMED to be big endian if the standard parameter files aren't used!! This in order
        to avoid yet another option in the input window.
        Affected routines: matNMRdefineglobals, matNMRinitvars, Qfidread, QReadParameterFiles, regelQfidread,
        regelQfidreadSeries, matNMRReadBinaryFID

11-04-'06: Have implemented support for newer versions of the Bruker firmware that is used for their digital filter.
	Affected routines: DetermineBrukerDigitalFilter, askBrukerdig

18-04-'06: Bruker have increased the number of pulses and delays in the acquisition files/pulse programs from 32
	to 64. That made one routine fail. Now a more general syntax is used.
        Affected routines: regeldefparsDiff

19-04-'06: Have made the diffusion fitting routine more general such that a larger variety of diffusion experiments
	can be fitted, by making two constants variable. So, now two additional parameters alpha and beta must be
        defined at the same time when DELTA and delta are defined. By default they have the same values as before
        (3 and 2 respectively). Affected routines: matNMRdefineglobals, matNMRinitvars, Difffit, regeldefparsDiff,
        Diffpk_init, Diffpk_qvt, Diffpk_qvtdf, Diffpk_voigt

27-04-'06: Certain arrayed parameters in a Chemagnetics dataset would cause an error message. This was caused by an
	ambiguous result from a strmatch command.
        Affected routines: QReadParameterFiles

9-05-'06: When performing a baseline correction to a 2D matrix the range in the second dimension is either the
	entire length or some part of that, as defined by the user in the inpuw window. When the entire range
        is asked for then this would be written like that in the history macro. But it's nice to be able to run
        the same macro on matrices of different sizes and hence a code is now written to the history macro such
        that it recognizes whether the entire range should be baseline corrected.
        Affected routines: doebasl2dcor, stopbasl2d, matNMRdefineglobals, matNMRinitvars, RunMacro, AnalyseMacro

12-05-'06: Added a few grey-tones for line colours to the legend.
	Affected routines: QezLegend

12-05-'06: When using the CPM's one needs to specify a region using a rubber box, which is then worked upon. That
	is rather insensitive if you want to specify the region exactly. Now an additional input window pops up
        like for the extract function.
        Affected routines: CreateCPMs, regelCPMs

15-06-'06: The horizontal and vertical stack plots in the main window did not preserve the axis tag, causing the
	zoom function to interfere with the Uicontextmenu.
        Affected routines: stack1dhorizontal, stack1dvertical

15-05-'06: Entering peaks during baseline correction and linear prediction interfered slightly with the UIUcontextmenus,
	which was annoying.
        Affected routines: defpeaks1d, defpeaks2d, defpeaksLP




=============
!web release! : may 11 2006, version 3.5.55
=============

19-05-'06: Added the possibility of using filled contours with the CPMs.
	Affected routines: regelCPMs, askcreateCPMs, matNMRdefineglobals, matNMRinitvars, regelcreateCPMs

22-05-'06: Two bugs were reported in the matNMRFT2D routine:
	-the HyperComplexNeeded flag was not set for States and States-TPPI
        -the Bruker qseq FT mode in TD2 was not correct.
        Affected routines: matNMRFT2D

14-06-'06: A bug in the vertical stack 1D routine caused spectra not to be plotted correctly, whereas FIDs were.
	This was because two temporary variables were used, that were subsequently changed.
        Affected routines: stack1dvertical

16-06-'06: the change of 10-03-'06, which concerned the implementation of the PosNeg colormaps, has introduced
	updating of the PosNeg maps even for simple lines and 2D bar plots, which is not necessary.
        Affected routines: displine, dispbar

16-06-'06: Have started to solve one very ugly feature in matNMR: temporary variables that are used between routines
	but with unspecific names. From now, only one variable QTEMP99 is used for that and this contains lots of named
        items in its structure.
	Affected routines: way too many after I've finished this issue

16-06-'06: The creation of a super title would not be stored in a processing macro.
	Affected routines: regelsupertitle, RunMacro, AnalyseMacro

16-06-'06: It was found that the supertitle axis was below the first axis of any 2D/3D window. The reason for this
	is unclear but by shifting the creation of the axis to after selecting the first axis, the problem was solved.
        Affected routines: SubPlots

20-06-'06: The change made on 15-05-'06 to the defpeaks* routines had a problem since the main window and 2D/3D viewer
	used the same variable name for the UIContextMenu object. This caused an error if a 2D/3D viewer window
        had been openened after the main window.
        Affected routines: matNMRdefineglobals, matNMRinitvars, defpeak1d, defpeaks2d, defpeaksLP

20-06-'06: The change made on 9-05-'06 worked for baseline corrections on the entire spectrum but forgot to write
	specific ranges to the history macro.
        Affected routines: doebasl2dcor

20-06-'06: Added a 37x37 Subplot configuration. This really is the limit I guess ...
	Affected routines: Subplots, matNMR2DButtons

20-06-'06: The change made on 14-03-'06, that tests the norm of FID and spectra, caused an error when a NaN matrix
	would be found, since the norm routine doesn't like that. Now a test is done to check whether NaN are in
        an FID/Spectrum and if so then norm is not tested.
        Affected routines: checkinput1d, checkinput2d, checkinputcont, checkinputdual

07-07-'06: The window positioning has always been an issue in matNMR. This may be because of the interaction between
	Matlab and the operating system. To ensure better window positioning now, after making a window visible,
        followed by a drawnow, a while loop is used to reset the position until it is correct. This usually takes
        two more positioning commands. This fix still doesn't always do the trick though ...
        Affected routines: PutScreenRight, matNMR2DButtons, matNMR2DPanelButtons, matprint, QezLegend

07-07-'06: After making a contour plot the routine checks to see if the peak list needs to be plotted too. If so,
	(default) then it used the name of the spectrum as stored in the figure userdata. This works fine, unless
        the hold property is set to on, because then the userdata is only partially updated and the name stored
        in there is usually not the name of the spectrum that is being plotted. Now the last-used name, stored in
        QspctC2, is used instead.
        Affected routines: plotcont

07-07-'06: The dual display with equal integral was not correct: the integral was not properly calculated.
	Affected routines: dualdisp

13-07-'06: Trying to make a horizontal stack plot is not possible but instead of a warning message an error was
	produced. Now a message is issued.
        Affected routines: stack1dhorizontal

03-08-'06: Reintroduced an option in the general options menu for the setting of the multiplication by 0.5 of the
	first point of the FID. It turns out to be better NEVER to do that multiplication, but just do a
        baseline correction. The multiplication will introduce larger baseline distortions than without.
        Affected routines: matNMRdefineglobals, matNMRinitvars, Qoptions, doeopties, saveoptions, setdefaults,
        matNMR1DButtons

07-08-'06: Made minor changes to the direct printing button in the T1 fitting window.
	Affected routines: T1print, T1fit, T1pk_udata




=============
!web release! : august 7 2006, version 3.5.72
=============

17-08-'06: Implemented a conversion from Echo/Anti-Echo data to States. The data should be in the same format as
	normal States data before the conversion and will be in hypercomplex format after the conversion, ready
        to start States processing directly.
        Affected routines: matNMR1DButtons, regelconvertEAE, convertEAE, RunMacro, AnalyseMacro, matNMRConvertEAE2D

22-08-'06: Found some trivial typo bugs in some offline-processing routines.
	Affected routines: matNMRSetSize2D, matNMRFT2D

30-08-'06: The correcting of the window position (see 07-07-'06) was repeated indefinitely, which caused problems
	on systems that really wouldn't allow correct positiong. Now the attempt is aborted after 5 tries.
        Affected routines: matNMR1DButtons, matNMR2DButtons, matNMR2DPanelButtons, PutScreenRight, matprint

02-09-'06: The forward LP did not work in TD1 for 2D matrices that are not hypercomplex. The original part of the
	spectrum was overwritten with the fitted, instead of the fitted data appended at the back.
        Affected routines: regellp2d

02-09-'06: The fourier mode was not retained when switching from a 2D to a 1D mode.
	Affected routines: SwitchTo1D

02-09-'06: Up until now the PosNeg colormaps were reset towards the lowest and highest points in a given spectrum.
	Now, it has been changed to the current colormapping settings. This has the advantage of being able to change
        the colormapping, whilst not losing out on the PosNeg mapping. Also, when plotting contours the PosNeg map
        will no longer be a problem.
        Affected routines: QColorMaps, regelcaxis

02-09-'06: An issue was found concerning the changing of the fourier mode and how the slice/column then looks like.
	Since the fourier mode changes whether the imaginary part is not present or from which matrix it should be
        taken, I think this should be reflected in the way the FID (it only holds for the time domain) is displayed.
        So now when changing the fourier mode, the slice/column is reread and if necessary made real.
        So far the individual routines have done things correctly (mostly, see below for changes to routines that
        didn't!) with respect to the Fourier mode but the display was not always consistent with what was being done.
        Affected routines: Qspcrel, resetfourmode, viewcolumn, viewslice

	LP did not do all fourier modes correctly.
        Affected routines: regellp1d, regellp2d

02-09-'06: The LP routines still weren't protected against negative dampening factors (which explode with time).
	A warning message is issued by the LP routines if a protective measure had to be taken.
	Affected routines: itcmp, lpsvd

04-09-'06: The axis vectors would not be changed after extraction of a 2D, when using the default axis.
	Affected routines: regelextract2d

06-09-'06: Some file names have been changed to avoid possible confusion with user variable names.
	Affected routines: left, right, up, down (now: movespecup, etc)

06-09-'06: Found a typo in the offline processing routines for apodization that didn't work for gaussian LB
	with whole-echo spectra.
	Affected routines: matNMRApodize1D, matNMRApodize2D

06-09-'06: Found a bug in the offline processing routine for reading binary FIDs. When not using the standard
	parameter files, the routine wouldn't know what the Byte ordering is, and produced an error.
        Affected routines: matNMRReadBinaryFID

13-09-'06: Found a series of bugs which caused the matNMRFT2D routine to hardly ever function correctly, because
	the output variable was never used. Only the input variable was acted upon.
        Affected routines: matNMRFT2D

13-09-'06: Similarly, the matNMRSetPhase2D and matNMRShearingTransformationTD routines were faulty.
	Affected routines: matNMRSetPhase2D

14-09-'06: An axis can now be associated with the third dimension of a 3D matrix. This will then be used when plotting
	a series of spectra.
	Affected routines: GenerateMatNMRStructure, matNMR3DButtons, askuderdef3, regelaxis3d, regelplotseries,
        matNMRdefineglobals, matNMRinitvars, checkinputcont

15-09-'06: Made a slight change to the attempts to reconstruct the original spectrum from the name of the spectrum
	as given in the input window, in the UpdateFigure routine. Now also the standard checks for the name (i.e.
        checkinput and checkinputcont) are in the try-catch loop, since in some cases an error message may occur
        there too.
        Affected routines: UpdateFigure

16-09-'06: The checking of indexing into matrices by checkinputcont was not correct. In case of a 3D matrix the indexing
	would usually be ignored for the axis vectors due to an oversimplified scheme.
	Affected routines: checkinputcont

18-09-'06: Non-linear axes are now stored in history and processing macros. Before these would be ignored; now they
	are stored entirely. In case of extremely big axes this may become problematic as the size of the macro
        will become very large. But since non-linear axes are atypical in NMR, the risk is bearable.
        Affected routines: scale1d, RunMacro

19-09-'06: Made some more improvements to the CPM routine:
	-improved stability by adding a small constant to the matrix before calculating the CPM.
        -improved stability by providing a threshold to the sum projections. Values lower than 1/200 of the maximum
        of the projection are discarded.
        -removed one old stability measure, which proved useless in the new scheme
        -minor changes to the axis properties after plotting.
        -multiple variables in the CPM routine did not start with "Q"
        Affected routines: regelCPMs, CheckAxisCPMs

20-09-'06: An accelerator key has been introduced for the printing menu (CTRL-P) and to close a window (CTRL-W).
	Affected routines: matNMR1DButtons, matNMR2DButtons, pk_init, T1pk_init, Diffpk_init, CopyFig

        Also, an accelerator key has been added for loading series of binary FIDs.
        Affected routines: matNMR1DButtons

20-09-'06: matNMR now recognizes Matlab 7.3.
	Affected routines: matNMRinitvars




=============
!web release! : september 22 2006, version 3.6.0
=============

25-09-'06: When reading standard parameter files, the parameter file handle would not be closed, which would lead
	to problems when many files would be loaded in one session. The same problem was also found for reading CMX
        processed spectra.
        Affected routines: ReadParameterFile, readCMXProcessedData

26-09-'06: Added an extra colour to the legend menu.
	Affected routines: QezLegend

27-09-'06: Inverse FT in 1D mode was not stored in the history.
	Affected routines: four1d

27-09-'06: Made inverse FT available for 1D spectra in the offline processing scripts.
	Affected routines: matNMRFT1D

03-10-'06: Whenever reading a binary FID or a series of binary FIDs, there would be no immediate check to see if
	the file name exists. Now a check is built in, which is especially useful for loading a series of data
        because now the particular faulty entry is simply skipped and the rest is loaded properly.
        Affected routines: regelQfidread, regelQfidreadSeries, QReadParameterFiles

05-10-'06: A check for the file size of a binary FID was made less stringent to avoid weird error messages obtained
	on a Bruker system. There the file size was larger than just the stated number of data points. Now, an error
        message is only given if the file size is too small to accomodate all the data points.
        Affected routines: QReadParameterFiles

10-10-'06: Implemented ACME automatic phase correction (Chen, L., Weng, Z., Goh, L. and Garland, M., JMR 158 (2002),
	164-168). For real spectra it's not very useful but for high-resolution spectra it works quite reasonable.
        NOTE: the automatic phase correction provides values and these are currently stored in the history
        macro, NOT the autmatic determination itself. This may still change though ...
        NOTE: this routine is decent for spectra without baseline distortions. Such distortions however will screw up
        the non-negativity penalty. Furthermore, the non-negativity penalty is typically huge because the spectrum is
        not normalized, whereas the derivative spectrum (used for the entropy) is. This means that non-negativity
        overwhelmes the entropy if there is any, and this also means that the algorithm will tend to overestimate the
        first-order phase correction in order to cause a baseline distortion that yields an all-positive signal. Pretty
        poor I think ...
        Affected routines: setphase1d, matNMR1DButtons, fasemenu, stopfasemenu, disablephasebuttons, enablephasebuttons
        switch2Daid

11-10-'06: Finally changed the variable organization in matNMR: previously all variables would occupy the workspace
	making a 'whos' virtually useless while matNMR was running. Now only 2 variables are visible and these
        structures contain all the variables needed by matNMR. Temporary variables are now deleted by almost all
        routines.
        Also, various variable names have been changed to make more sense to the user. These are documented in the
        manual.
        Also, all QTEMP99 variables are now obsolete and have been renamed to go into QmatNMR.
        Affected routines: virtually ALL routines!

12-10-'06: Implemented try-catch loops around the evaluation of string connected to loading new spectra into matNMR.
	Affected routines: checkinput1d, checkinput2d, checkinputdual, dualdisp, checkinputcont, regelcont,
        regelabscont,
        regelmesh, regelpcolor3d, regelstack3D, regelraster2D, regelbar, regelline, UpdateFigure

16-10-'06: Implemented setting the integral of a 1D in the main window. So far this was only implemented for 2D.
	Affected routines: asksetintegral1d, regelsetintegral1d, RunMacro, AnalyseMacro

        Changed the "set integral 2D" function such that it allows input in the unit of the current axis. So far this
        assumed points.
        Affected routines: asksetintegral2d, regelsetintegral2d, RunMacro, AnalyseMacro

16-10-'06: The zero-frequency after FT is at index floor(QmatNMR.Size1d/2)+1. Now all routines that still used
	other values (e.g. default reference point for 1st-order phase correction) have been changed to all use
        the same index.
        Affected routines: matNMRinitvars, makenew1D, makenew2D, transponeer, regelsize1d, setphase1d, update2Daid

16-10-'06: When apodizing a slice of a 2D, the history and history macro would not be appended until apodizing the
	entire 2D spectrum. If, however, the user switches to a 1D mode then this entry would be lost. Now it is
        stored first in a separate temporary variable and only appended if the processing mode is switched.
        Affected routines: apodize1d, apodize2d, historyapodize, repairapodize, SwitchTo1D, matNMRinitvars,
        setphase1d, setphase2d

18-10-'06: When defining an axis for the third dimension of a 3D then this is now stored in the history macro.
	Affected routines: regelaxis3d, RunMacro, AnalyseMacro

18-10-'06: When plotting a series of spectra from a variable name that contained a '_' in the name, this would result
	in an underscore format for the next character. Now the '_' is changed into '\_' as is done in most other
        routines.
        Affected routines: regelplotseries

20-10-'06: When plotting a contour plot when the hold state is on, then we plot would be plotted above the previous
	spectrum (see 15-08-'05). Now this feature is disabled for contour3 plots, which are again plotted at their
        respective heights.
        Affected routines: plotcont

23-10-'06: Before starting LP on a 2D, the user is asked to specify the spectral regions to predict. A plot would be
	made showing the projection in the other dimension. The plotting direction would sometimes be wrong.
        Affected routines: defpeaksLP

23-10-'06: The panel window in the 2D/3D viewer now has an indicator for the hold state of an axis (i.e. nextplot
	property of axis). This is much easier than having to go into the plot manipulations menu.
        Affected routines: matNMRinitvars, matNMR2DPanelButtons, SubPlots, SelectAxis, UpdateFigure, holdcont

13-11-'06: Changed an old inconsistency relating to whether windows should be resizeable or not. This used to be coupled
	to having the units in pixels and also to the native size of the windows, which used to be correct for an old
        screen I had.
        Affected routines: matNMR1DButtons, matNMR2DButtons, matNMR2DPanelButtons, Qscreenops, pk_init, T1pk_init, Diffpk_init






=============
!web release! : december 6 2006, version 3.7.0
=============


11-12-'06: The standard variable names used for storing fit results had not been updated yet to the new variable
	structure.
	Affected routines: matNMRinitvars

20-12-'06: Storing of fitting results (peakfit, T1 and Diffusion) produced an error message related to the new
	variable structure.
        Affected routines: peakfit, T1fit, Difffit

16-01-'06: Implemented a routine that creates projections in the 2D/3D viewer.
	Affected routines: matNMR2DButtons, SelectAxis, askshowprojections, regelshowprojections, matNMRinitvars,
        RestoreSubplots

16-01-'06: Implemented a routine that allows fitting quadrupolar tensors under MAS.
	Affected routines: matNMR1DButtons, quadtensorfit1d, Quadlsq, quadfit, Quadpk_init, stopquadfit,
        askstopquadfit, Quadpk_udata, Quadpk_fig, fitquadtensor, simquadtensor, matNMRinitvars, regelloadparsQuad,
        regeldefvarQuad, regelviewresultsQuad,
        stopnmr, stopmatnmr

22-01-'06: Implemented a routine that allows fitting static CSA tensors.
	Affected routines: matNMR1DButtons, csatensorfit1d, CSAlsq, csafit, CSApk_init, stopcsafit, askstopcsafit,
        CSApk_udata, CSApk_fig, fitcsatensor, simcsatensor, matNMRinitvars, regelloadparsCSA, regeldefvarCSA,
        regelviewresultsCSA,
        stopnmr, stopmatnmr

26-01-'07: Creating a 1D bar plot caused an error because of a deleted QTEMP variable.
	Affected routines: DetermineNewAxisLimits

26-01-'07: The routine implemented on 16-01-'07 has created a problem: Now that there are 3 types of axes possible
	(regular axes, colorbar axes and projection axes), some routines may not work correctly anymore. Hence a tag
        has been defined for regular axes to make them uniquely identifiable. I still need to check which routines
        need to use this tag.
        Affected routines: Subplots, RestoreSubplots

28-01-'06: Implemented a routine that allows fitting of tensor values from MAS sideband intensities.
	Affected routines: matNMR1DButtons, ssafit1d, SSAlsq, ssafit, SSApk_init, stopssafit, askstopssafit,
        SSApk_udata, SSApk_fig, fitssatensor, simssatensor, matNMRinitvars, regelloadparsSSA, regeldefvarSSA,
        regelviewresultsSSA, stopnmr, stopmatnmr

29-01-'07: It is possible for the user to first do the FT in TD1 for a TPPI-specturm, and afterwards do the FT in TD2. That
	would create an incorrect matrix though, because the hypercomplex part would not be transformed during the Ft in TD2.
        Now a check is done to see if the hypercomplex part is non-zero. If so then the FT is done on it.
        Affected routines: four2d

29-01-'07: Found a bug during reading of a Chemagnetics spectrum: a wrong variable name was used during closing of the file id.
	Affected routines: readCMXProcessedData

02-02-'07: There are still problems with the implementation of the data format for TopSpin in matNMR. It appears that TD is no
	longer indicative for the number of data points stored on disk. They actually store more (WHY ON EARTH?????). This would
        cause problems when reading in 2D spectra using standard parameter files. Now this issue is dealt with specifically.
        Affected routines: Qfidread, QReadParameterFiles

02-02-'07: Printing in WYSIWYG mode through the printing menu did not work well for the fitting routine windows because a hidden
	axis prevented the real axis to be centered on the screen.
        Affected routines: CSApk_init, Diffpk_init, Quadpk_init, SSApk_init, T1pk_init

02-02-'07: A button was added to the tensor-fitting routines to be able to simulate a spectrum. So far a weird trick was needed
	to get it to simulate the spectrum, instead of fitting.
        Affected routines: CSApk_init, CSApk_udata, csafit, Quadpk_init, Quadpk_udata, quadfit, fitquadtensor, SSApk_init, SSApk_udata,
        ssafit, fitssa

02-02-'07: Added a function to the all major windows that allows saving the plot as an m-file. At the same time the printing
	menu has been renamed to "Create Output" and incorporates the printing menu, the saving as m-file and the copy figure.
        Affected routines: Quadpk_init, CSApk_init, SSApk_init, pk_init, T1pk_init, Diffpk_init, asksavefitdisk, regelsavefitdisk,
        matNMR1DButtons, matNMR2DButtons

05-02-'07: Some bugs occured because of incorrect use of the rmfield command. Now instead of using the QmatNMR variable
	a QTEMP* variable is used.
	Affected routines: regelleftshift, detsovern

07-02-'07: The fitting routines have been protected against an error message occuring when the axis upper and lower limits would
	be set equal.
        Affected routines: peakfit, T1fit, Difffit, quadfit, csafit, ssafit

08-02-'07: So far the results from the fitting routines were stored in the workspace, but mainly the parameters and only sometimes
	the fit. Now the results are stored in a structured variable with the data, the fit to it, the chi^2 and the fit parameters.
        Affected routines: peakfit, T1fit, Difffit, quadfit, csafit, ssafit, Diffprint, T1print, CSAprint, SSAprint, Quadprint

13-02-'07: Searched for bugs related to the change of variable structure. Found some ...
	Affected routines: DCcorr1d, matNMRinitvars, symmetrize2d

13-02-'07: Entering 0 for the number of points to shift caused an error. Now, no action is taken.
	Affected routines: regelleftshift

14-02-'07: When making a dual display of a horizontal stack plot then the scaling to the same maximum was incorrect:
	it used to take the maximum of the current slice/column of the current 2D variable, instead of te maximum
        of the vector used to create the horizontal stack plot. Now the vector for the stack plot is stored in the
        QmatNMR variable and is read out directly.
        Affected routines: stack1dhorizontal, dualdisp

14-02-'07: The plotting direction for a dual disp of the horizontal stack plot was incorrect in some cases.
	Affected routines: dualdisp

14-02-'07: By default the zoom has been turned on in all fitting routines.
	Affected routines: pk_init, t1fit, Difffit, CSApk_init, Quadpk_init, SSApk_init

16-02-'07: Extracting various views from a 2D spectrum wasn't shown in the history. Only when reprocessing stepwise
	this would be shown. Now this is corrected.
        Also, when switching from 2D to 1D mode this is now shown in the history.
        Affected routines: SwitchTo1D, getdiag, getantidiag, regelprojTD1, regelprojTD2, regelskyline

19-02-'07: Zeroing part of a 2D spectrum would be executed correctly when running a macro.
	Affected routines: regelzero2d, RunMacro

20-02-'07: A switch has been implemented to allow switching between a logarithmic view and a linear view along the y-axis in the
	T1 and diffusion-fitting routines.
        Affected routines: T1fit, T1pk_init, T1pk_udata, T1leasqr, Difffit, Diffpk_init, Diffpk_udata, Diffleasqr

20-02-'07: Users were confused sometimes by the lack of a filename in the printing menu, causing them to not store a plot on disk
	as planned. Now the command line states "FILENAME" by default instead of an empty space.
        Affected routines: matprint

20-02-'07: Added three plotting functions to the processing history that weren't in yet: 1D bar plot, errorbar plot and show
	sidebands.
        Affected routines: RunMacro, AnalyseMacro, regelmake1Dbar, regelmake1derrorbar, regelshowsidebands

20-02-'07: 2 bugs were found in the errorbar routine: an error message would sometimes appear because of empty spaces in the
	string for the linespec. Now a deblank is executed. Furthermore, incorrect lines would be drawn for non-logarithmic
        plots when there aer negative intensities.
        Affected routines: errorbarMatNMR

20-02-'07: When saving the history macro to the workspace, the dimension-specific information would be appended. This would
	cause a problem whenever a plotting action would be the last item in the history macro. Then the redrawing would
        cancel that plotting action. Now this is only done when the last action was not a plotting action and for plotting
        actions the dimension-specific information is stored before the action itself.
        Affected routines: regelsaveasmacro, stack1dhorizontal, stack1dvertical, regelmake1dbar, regelmake1derrorbar,
        regelshowsidebands

21-02-'07: Plotting functions are normally not stored in processing macros. An exeception is made for the following
	routines.
        Affected routines: stack1dhorizontal, stack1dvertical, regelmake1dbar, regelmake1derrorbar, regelshowsidebands

21-02-'07: Loading a series of Bruker data was always a pain because the number of the experiment was the name of the directory.
	The routine hence showed only the $#$ code for the suggested common part in the workspace, requiring typing of the full
        name every time a change was made to the directory name. Now the directory name before the experiment number is taken and
        if this name doesn't start with a proper character it is prepended with an 'x'.
        Affected routines: regelinputbuttonsfidlaadSeries3

22-02-'07: Since printing to bitmap screws up WYSIWYG behaviour when not printing at the screen resolution, I have enforced
	the '-r0' screen resolution in the matprint routine when the WYSIWYG flag is on.
        Affected routines: matprint

23-02-'07: When applying an external reference to both dimensions of a 2D, the mode would not be switched to the default axis
	for both dimensions.
        Affected routines: regeldefinereference

27-02-'07: Added an estimation of the data format when loading binary FIDs. Not all formats are recognizeable because they
	do not have specific file names, but most common formats are found.
        Affected routines: fidlaad, fidlaadSeries






=============
!web release! : february 28 2007, version 3.8.0
=============

06-03-'07: In certain cases the plot direction of a spectrum was incorrect in some of the fitting routines.
	Affected routines: simcsatensor, simquadtensor, simssa

19-03-'07: Switching between 1D and 2D mode no longer worked properly after loading a 1D from the "Load 2D" menu.
	The new 1D would be shown, but because internal variables for 2D datasets had been overwritten, switching
        back to the 2D spectrum went wrong.
        Affected routines: checkinput2d

19-03-'07: Added a feature to the solvent deconvolution routine in 2D mode: now, as for LP, a range can be designated
	which contains peaks and which makes sense to act upon.
        Affected routines: regelsolvensuppression2d, defpeakSD, RunMacro, AnalyseMacro

19-03-'07: When loading a spectrum/FID through the "Load 1D" function, a check would be done for NaN entries and
	a zero-norm, which could yield an error if a 3D would be loaded.
        Affected routines: checkinput1d

22-03-'07: Converting an echo/anti-echo spectrum to states was stored incorrectly in the history macro (as Varian
	states to matNMR States).
        Affected routines: regelconvertEAE

23-03-'07: For reasons of speed, the routine for FT on 2D FID has been changed for a number of FFT modes. Now the
	fft and fftshift commands are used on the entire 2D matrix (still dimension-specific though!), instead of
        on single slices only. This is faster for smaller matrices, but also has the danger of increased memory
        usage! We'll keep this issue in mind.
        Affected routines: four2d

26-03-'07: Refreshing the screen to the current 1D did not work when using the UI-control in the peak-fitting
	window.

        The numerical resolution of the initial peak parameters, when using the "cursor" function has been increased.
        Affected routines: peakfit

26-03-'07: Matlab 7.4 is recognized.
	Affected routines: matNMRinitvars

02-04-'07: When the intensity with of a spectrum was smaller than eps the axis limits were generically set to -1 and +1.
	This is okay but the limits were crossed at eps, whilst when reading a FID/spectrum the limit was set to eps^2.
        Now all are set to eps^2.
        Affected routines: DetermineNewAxisLimits

04-04-'07: Variables written to the workspace from the fitting routines were made global but still invisible because of
	the way Matlab handles global variables. The user MUST declare this variable global once in order to be able to
        access it. Now a statement is made to point the user to this fact.
        Affected routines: peakfit, Difffit, T1fit, csafit, ssafit, quadfit

04-04-'07: The button in the main window that allows switching between FID/Spectrum was no longer functional for anything
	but data using the default axis. This was because it looked for an incorrect axis tag (that was changed only
        2.5 years ago. Apparantly nobody uses this ...)
        Affected routines: FIDstatus

04-04-'07: The resolution for the num2str conversion for the axis limits was too small. The same for the "get position"
	routine in the main window.
	Affected routines: asklims, crsshair

04-04-'07: Changed the output from the peak fitting routine such that the parameters are only the fitting parameters and
	no longer the integrals and chi^2 error. Those are stored separately anyway.
        Affected routines: peakfit

06-04-'07: Fixed a long-standing (but not realized) issue concerning the zoom routines: matNMR used the zoom routine from
	Matlab 5.3 in the main window and the 2D/3D viewer window. The fitting routines used the default zoom routine though.
        This inconsistency was annoying, especially now that the zoom routine in Matlab 7 is different.
        Now a single zoom routine has been created and is used throughout matNMR.
        Affected routines: ZoomMatNMR, asaanpas, dispbar, dispmesh, disppcolor3d, disppolarplot, dispraster2D, dispstack3D
        dualdisp, plotcont, regelmake1dbar, regelmake1derrorbar, scale1d, scale2d, stack1dhorizontal, stack1dvertical,
        switchzoomoff, switchzoomon, matNMR1DButtons, contzoomOFF, CopyFig, disableZoomandRot, extract, peakpick, regelCPMs,
        regelsavefitdisk, rotcont, Subplots, Difffit, T1fit, peakfit, ssafit, csafit, quadfit.
        Removed Routines: zoom1d, ContZoom

06-04-'07: Recently, a tag was defined for regular axes in the 2D/3D viewer window to distinguish them from colorbar axes and
	axes for projections and super-title axes. It hadn't been defined yet which routines need to use this tag, and this
        in fact caused problems:
        -All plot manipulations routines now either operate on 1) all selected axes, 2) all regular axes, 3) the current row
        of regular axes or 4) the current column of regular axes.
        -In processing macros only selected regular axes are stored because currently it is too much effort to check whether
        both the subplot configuration is the same AND the configuration of other types of axis.
        Affected routines: contcbar, LineStyle, LineWidth, Marker, Markersize, regelaxis, regelaxiscolors, regelaxislabels,
        regelaxislocation, regelaxisposition, regelaxisview, regelbox, regelcaxis, regelclearxis, regeldirs, regelfont,
        regelgrid, regelhold, regellims, regelscales, regelshading, regeltick, regeltickdir, regelticklabel, regelticklengths,
        regeltitle

08-04-'07: The callback for the keypressfcn in the input window didn't work properly because it hadn't been correctly adapted
	to the new variable structure yet.
        Affected routines: QuiInput_3

08-04-'07: Changing the font properties did not work correctly for titles and for changing the titles and axis labels
	in colorbar axes.
        Affected routines: regelfont

08-04-'07: Removed the keypressfcn in 2D/3D viewer windows because it made it difficult to select multiple axes. This function
	was introduced to make sure that the current window is clearly defined. Now, however, there is the "Select" button
        in the top-left corner to make sure of that and the keypressfcn is more annoying than useful.
        Affected routines: matNMR2DButtons

09-04-'07: Resetting the figure in the main window did not update the y-axis label, causing an inconsistency whenever an
	existing y-label with different font properties would remain.
        Affected routines: asaanpas, simpelplot






=============
!web release! : april 10 2007, version 3.8.19
=============

19-04-'07: The routine that creates both projections of a 2D spectrum in the 2D/3D viewer did not use the same
	axis limits as for the real plot. Now the axis limits are read out and used. Furthermore, when changing
        the zoom limits, the projection axes would not be updated. Now they are.
        Finally, when deleting a colorbar then the projection axes were actively removed. Now they remain and
        are simply updated.
        Affected routines: regelshowprojections, ZoomMatNMR, updateprojectionaxes, RestoreSubplots

19-04-'07: A line of code was missing in the routine that sets the color axis automatically, which caused an error
	message.
	Affected routines: regelcaxis

20-04-'07: tested for bugs in the script-based processing routines and found some ...
	Affected routines: matNMRSetSize2D, matNMRSetPhase2D

20-04-'07: The real FT in TD2 was no longer real.
	Affected routines: four2d

24-04-'07: TPPI Fourier transform in TD2 did not result in the spectral width being halved. Now it is.
	Affected routines: four2d
        
24-04-'07: The search profile for binary FIDs has been set to "*.*" because the default "*" would require the user
	to set the file type to "All Files" every time the uigetfile would be called. Note that this was only an
        issue when using the JAVA desktop.
        Affected routines: matNMRinitvars
        
26-04-'07: A short tutorial for matNMR was added to the manual. Two datasets are included in the matNMR distribution
	and the tutorial describes how to process these.







=============
!web release! : april 26 2007, version 3.8.26 done to make the quick tutorial available
=============

09-05-'07: The change to a single QmatNMR variable caused some side effects, amongst which some characters that
	were replaced and now read as strange words (e.g. ACQUS -> ACQmatNMRUS).
        Affected routines: matNMRRemoveBrukerDigitalFilter1D, matNMRRemoveBrukerDigitalFilter2D, regeldefparsDiff
        
09-05-'07: The change from 19-03-'07 was not stored correctly in the processing history, which caused problems
	when reprocessing stepwise from history.
        Affected routines: AnalyseMacro
        
09-05-'07: The search path for finding acqus files for automatic removal of the Bruker digital filter was bad for the 
	JAVA interface in Matlab. Now it is set to '*.*' everywhere (see also change of 24-04-'07)
        This also solves an issue under Windows XP (Matlab 7): previously with '*' as search profile there would be
        a popup asking whether it's okay to overwrite the acqus file. Now with the new search profile this issue
        is solved.
        Affected routines: regelBrukerdig
        
09-05-'07: In input windows the order of the UIcontrols was not correct when wanting to use the TAB button to walk
	through them. Now this has been corrected.
       	Affected routines: QuiInput

23-05-'07: The solvent suppression in 2D mode would fail sometimes because a variable wouldn't always be declared.
	Affected routines: regelsolventsuppression2d
        
25-05-'07: The routine that cuts a plot into parts (to avoid lots of empty space) had an error. A QTEMPx variable
	was accessed after it was deleted.
        Also, for descending axes an error message would appear because the tick marks would not be in ascending
        order.
        Affected routines: regelcutspectrum

31-05-'07: The routine for making projections (2D/3D viewer) was faulty for single slices. Also, some variables were
	not deleted or badly named.
        Affected routines: askshowprojections, updateprojectionaxes, regelshowprojections

31-05-'07: The routine for projection onto TD1 and TD2 in the main window still used points as units, instead of the unit
	of the axis.
        Also, the projection routines could easily be optimized.
        Affected routines: askprojTD1, askprojTD2, regelprojTD1, regelprojTD2, Qview90, Qview0.

31-05-'07: Currently, all routines that use QTEMP* variables should delete them at the end. When using an external routine
	in a for loop then deleting the QTEMP* variables is likely to be bad. And so it turned out for some routines.
        Such routines should then NOT delete the variables but assume that the calling routines do so.
        Affected routines: putinlist1d, putinlist2d, putinlist3d

01-06-'07: Added an option that allows positive and negative contours relative to the negative maximum.
	Affected routines: asknamecontrel, calccontlevels

01-06-'07: The routines that set the title and axis labels used the Matlab routines title, xlabel, ylabel and zlabel. These
	standard routines have the drawback of also setting the font properties of all labels to the settings of the axis.
        Now the string objects are targetted directly.
        Affected routines: klabels, clabels

08-06-'07: There was an error in the call for the Copy Figure command of all fitting windows: they all led to the main
	window being used, instead of the desired window.
        Affected routines: copyfignmr

11-06-'07: Viewing of the fitting results in the peak fitting routine no longer worked after a recent change (04-04-'07).
	Affected routines: peakfit

14-06-'07: To make old macros compatible with the new variable structure a string replacement was added to RunMacro (for
	the input variables QmatNMR.uiInputx only).
        Affected routines: RunMacro
        
14-06-'07: The horizontal stack 1D routine couldn't handle plots which had axis limits outside the range of the spectrum.
	Now this is checked beforehand dealt with appropriately.
        Affected routines: stack1dhorizontal

14-06-'07: When reading Chemagnetics/Varian Spinsight binary FIDs then an array over the spectral frequency would make it
	impossible to use the standard parameter files. Long-known issue but never bothered to clean it up until now.
        Affected routines: QReadParameterFiles

15-06-'07: Arrayed parameters would be shown when reading SpinSight data but would not be stored in the matNMR structure.
	Since this is sometimes useful, this has been implemented.
        Affected routines: QReadParameterFiles







=============
!web release! : may 15 2007, version 3.8.43
=============

25-06-'07: Changed the reading of standard parameter files for Bruker data files, such that by default the routine 
	uses the acqus and acqu2s files. Should the size in TD1 not be correct then the acqu2 file will be read. It
	seems the older Bruker software has a slightly different way of storing the data meaning that in some versions
        an unfinished experiment will have the sizes as specified by TD, in other versions the data file has the size
        of the number of finished experiments.
        Affected routines: QReadParameterFiles
        
25-06-'07: in the change of the horizontal stack plot routine (of 14-06-'07), the corresponding change to the dualdisp
	routine was omitted.
        Affected routines: dualdisp
        
27-06-'07: The dual display routine needed some updating:
	-now the axis limits are updated such that all lines in the plot fall within the view, i.e. the zoom limits are
        updated.
        
        -for vertical stack plots the routine was no longer working correctly in all cases.
        Affected routines: dualdisp
        
27-06-'07: The routine to cut contour plots into strips was extended to include other plot types. Currently only the mesh/
	surface/stack3D/raster2D routines have been added. Due to risk of errors for uncommon plot types this has not been 
        implemented for all types yet.
        Affected routines: regelcutspectrum, matNMR2DButtons

28-06-'07: The "define plot limits" routine has been changed such that now a new variable is made that contains the
	zoomed-in spectrum and the corresponding axes. That way the routine can be used multiple times, without that the
        user must pay attention to the indices. Before a double application of the routine would typically not be possible.
        
        To do this, the checkinput routines had to be changed such they can deal with structures embedded in a structure, e.g.
        QmatNMR.Spec2D3DDefinePlot, where evaluation of this variable yields a matNMR structure. Before this wasn't possible.
        
        Affected routines: defineplotlimits, checkinput1d, checkinput2d, checkinputcont, checkinputdual, checkinputerrorbar

04-07-'07: The routine to cut spectra into strips was changed such that now it saves a variable in the workspace which contains
	the cut spectrum and all the necessary information to prepare the plot. This is now similar to the "define plot limits"
        routine.
        
        Furthermore, the input of the peak positions is done using the mouse first, after which the final values must be
        edited in an input window (as before).
        
        Also, the separating lines are allowed to be deleted using a buttondownfunction. The callback routine only worked during
        peak picking though (for which it was intended. Now it's general.
        
        Affected routines: regelcutspectrum, regelcont, dispmesh, plotcont, dispraster2D, dispstack3D, dispcutspectrum, drawalllabels,
        checkinputcont, matNMR2DButtons,matNMR2DPanelButtons, askcutspectrum, definecutspectrum, regeleditline

10-07-'07: The reference for the first order phase correction was not reset after a linear prediction. This was problematic because
	the size would be changed.
        Affected routines: regellp1d, regellp2d
        
10-07-'07: The reference point for first-order phase correction was not switched correctly between dimensions. Now it is always
	reset to the middle of the spectrum whevener the dimension is changed.
        Affected routines: repair, regelgetcolumn, regelgetslice, viewcolumnn, viewrow

11-07-'07: Peaks defined for linear prediction or solvent deconvolution would not always be indicated nicely.
	Affected routines: defpeaksLP, defpeaksSD
        
11-07-'07: The lines used when defining peaks for making a cut spectrum weren't put in the right place.
	Affected routines: definecutspectrum

12-07-'07: Zoom is switched on by default in the main window.
	Affected routines: matNMR1DButtons

12-07-'07: Reprocessing of linear prediction in 2D mode could not be skipped because the peak list wasn't included
	during the analysis of the macro by AnalyseMacro.
        Affected routines: AnalyseMacro
        
12-07-'07: Reprocessing a horizontal stack plot would fail because the plot wasn't updated right before the processing
	action. The same potential issue was repaired for the vertical stack plot, 1D bar plot, errorbar plot and
        show sidebands
        Affected routines: stack1dhorizontal, regelmake1dbar, regelmake1derrorbar, regelshowsidebands

18-07-'07: The zoom would be switched off when defining peaks for linear prediction, solvent deconvolution and the
	baseline corrections, but would not be switched back on afterwards.
        Affected routines: defpeakLP, defpeakSD, defpeaks1d, defpeaks2d

18-07-'07: The zoom would be switched off when defining peaks for linear prediction, solvent deconvolution and the
	baseline corrections, but would not be switched back on afterwards.
        
        Also, the context menu would be switched on independently by these routines after the peaks were defined.
        This would switch the context menu on whilst zoom is on, which is annoying.
        
        Affected routines: defpeakLP, defpeakSD, defpeaks1d, defpeaks2d

23-07-'07: When applying an external reference using a variable the name would be deleted so the next time the
	variable name needed to be entered again, which is annoying.
        Affected routines: regeldefinereference

24-07-'07: When using the zoom function in the main window when a legend was present, the main axis would be pulled
	in front of the legend. This turns out to be a feature of the matlab-5.3-style zoom routine that is
        incorporated into matNMR. Newer versions of zoom don't have that issue and similar coding is now used in
        matNMR.
        Affected routines: ZoomMatNMR
        
24-07-'07: The former issue also solves the age-old stupidity of the making a legend which shows the window being
	rebuilt. This was slow and ugly. This is because Matlab redraws all objects whenever the vector of children
        is reset manually. Now the whole thing is clean.
        
        Also, the zoom function was switched off before starting the legend routine, for no apparant reason.
        
        Affected routines: Qlegend, matNMR1DButtons

25-07-'07: Undo in 1D mode has been disfunctional (no more than 1 step back!) since the introduction of the new variable 
	structure because of a typo.
        Affected routines: regelUNDO
        
26-07-'07: The tick labels after apodization a 1D (or slice of 2D) would not be set correctly for display mode 'both'.

	Also, the colour of the line used for showing the apodization function was blue. Now it is connected to the
        colour scheme.

	Affected routines: plotapodizer

26-07-'07: Trying to reload the last spectrum when none has been defined (i.e. just after starting matNMR) produced an
	error, because the variable QmatNMR.last was not defined as a structure yet. Now is is.
        Affected routines: matNMRinitvars

26-07-'07: The variable used for containing the peak list for solvent deconvolution was not defined at the start of
	matNMR. This would yield an error message when reprocessing a macro with solvent deconvolution, before having
        executed a regular solvent decovolution first.
        affected routines: matNMRinitvars

26-07-'07: A variable was not initiated which could cause a strange message when reloading the last variable.
	Affected routines: checkinput1d
        
26-07-'07: Reprocessing a macro with a concatenation would fail because the variable that RunMacro uses QmatNMR.ExecutingMacro
	would be falsely reset.
        Affected routines: regelconcatenate

26-07-'07: Reprocessing a macro with linear prediction stepwise would give an error: a non-exisiting variable was used 
	in a if statement.
	Affected routines: AnalyseMacro

27-07-'07: A dotted line at zero intensity is now drawn when making projections in the 2D/3D viewer. This line only shows
	when the projection itself has an intensity that is close to 0 because otherwise the dotted line will fall out
        of the view.
        Affected routines: regelshowprojections

30-07-'07: performing LP in 1D mode after apodization would cause a problem with replotting the FID because the
	flag for apodization would not be reset, hence the apodization function would still be attempted to be shown.
        Affected routines: regellp1d

31-07-'07: The zoom limits would not be written to the axis applicationdata, which would make for strange zooming-out.
	Affected routines: regelgetcolumn, regelgetslice
        
31-07-'07: When defining peaks for linear prediction or solvent deconvolution in TD1, there would sometimes be an error
	message because the routines would plot the spectrum in TD2, without preserving the axis tag. This would
        lead to the zoom routine not finding the target axis. Now the defpeaks?? routines preserve the axis tag
        AND the zoom routine is protected from not finding a proper target to function on.
        Affected routines: defpeaksSD, defpeaksLP, ZoomMatNMR

31-07-'07: Two small typos caused a minor inconvenience in certain cases when reprocessing zeroing part of a 2D.
	Affected routines: regelzero2d, AnalyseMacro

31-07-'07: When defining peaks (baseline correction, linear prediction or solvent deconvolution), the ui context menu
	would pop up when finishing the defining. This was annoying.
        Affected routines: defpeaks1d, defpeaks2d, defpeaksLP, defpeaksSD

02-08-'07: Concatenation of variables was programmed inefficiently for large sets by not reserving memory for the new matrix.
	Affected routines: regelconcatenatevariables

02-08-'07: The linear prediction routines are stabilized against negative dampening factors (which explode in time). The
	method was too crude though and one could miss out on zero-frequency components (offsets) that would have a
        (meaningless) negative factor.
        Affected routines: lpsvd, itcmp

02-08-'07: Storing non-linear axes in processing macros was programmed inefficiently for large matrices.
	Affected routines: scale1d

03-08-'07: Added the option of "last series of external matlab files" to the main window.
	Affected routines: matNMR1DButtons

03-08-'07: Implemented that, when adding or concatenating a series of variables, the resulting matrix can be loaded into
	matNMR directly (as for binary FIDs).
        Affected routines: askaddvariables, regeladdvariables, askconcatenatevariables, regelconcatenatevariables

06-08-'07: The zoom would be switched off when defining the reference position for the first-order phase correction.
	Now, it is switched back on after the action is finished.
        Affected routines: muisinput

06-08-'07: Making a 3D bar plot in the 2D/3D viewer did not work nicely for non-linear axes.
	Affected routines: pcolor3d, disppcolor3d







=============
!web release! : august 9 2007, version 3.8.81  ==> NO CHANGES MADE TO MANUAL YET!!
=============

09-08-'07: The combination of zoom and a legend proved difficult because of the intereference of the moveaxis
	property of the legend axis, and the zoom routine that operates on the figure level. Now, the zoom routine
        will only act of an axis if the axis is the TargetAxis as defined at the start of the routine. The
        TargetAxis is limited by matNMR such that e.g. legend axes cannot be chosen.
        Affected routines: ZoomMatNMR

10-08-'07: Some more issues with the zoom in the 2D/3D viewer: selecting subplots (SelectAxis) interfered with
	the zoom routine. Also, the super-title axis is made first now, before all other axes, to make sure it's
        located below all other axes.
        Affected routines: ZoomMatNMR, SubPlots

24-08-'07: The change made to the regeloutput3d routine (24-11-'05) was buggy (and obviously untested).
	Affected routines: regeloutput3d







=============
!web release! : august 29 2007, version 3.8.84  ==> NO CHANGES MADE TO MANUAL YET!!
=============

14-09-'07: By request, I have increased the maximum number of peaks in the peak deconvolution routine to 36. The
	previous 24 were already way too big to fit something conveniently, but if people like it.
        Affected routines: pk_init, peakfit, pk_udata, clearradios, pk_inivl, pk_gtcon

17-09-'07: Altered the legend routine such that it now also works with the fitting routines (in the plot
	manipulations menu).
        Affected routines: pk_init, T1pk_init, Diffpk_init, SSApk_init, CSApk_init, Quadpk_init

17-09-'07: Inverse FT was not indicated in the text version of the history macro.
	Affected routines: historyFT

27-09-'07: The userdata for a 4x2 subplot configuration was not properly defined.
	Affected routines: Subplots

02-10-'07: Found some instances where switching from 2D to 1D mode yielded bad axes because not all relevant 
	spectral parameters were ported. This mainly concerns the default axis.
        Affected routines: regelprojTD1, regelprojTD2, regelgetcolumn, regelgetslice, viewrow, viewcolumn

05-10-'07: Added sine FT to the 1D offline processing scripts.
	Affected routines: matNMRFT1D
        
08-10-'07: Changed the way the reference position for first-order phase correction is stored in matNMR. Previously this
	was in points. Now it is in the unit of the axis, which is more coherent with the rest of matNMR.
        Affected routines: matNMRinitvars, GetDeafultAxis, scale1d, muisinput, docurrentphase, doUnDo, makenew1d, makenew2d, makenew3d,
        regelconcatenate, regelgetcolumn, regelgetslice, regellp1d, regellp2d, regelsize1d, regelsize2d, regelUNDO, repair, setphase1d,
        setphase2d, transponeer, update2Daid, updatebuttons, viewcolumn, viewrow, GenerateMatNMRStructure, checkinput1d, checkinput2d,
        matNMR1DButtons, RunMacro, matNMRSetPhase1D, matNMRSetPhase2D

08-10-'07: The flag in the menubar for showing that the default axis is used, wasn't switched off after a user-defined axis.
	Affected routines: scale1d

08-10-'07: The direction of first- and second-order phase correction was different in the offline processing routines, compared to
	the main GUI.
        Affected routines: matNMRSetPhase1D, matNMRSetPhase2D

08-10-'07: Made a start with a routine that allows the conversion of processing macros to independent processing scripts. Now,
	only 1D macros are converted.
        Affected routines: matNMRinitvars, matNMR1DButtons, askconvertmacro, regelconvertmacro, ConvertMacroToScript, matNMRCreateDefaultAxis

10-10-'07: The manual baseline correction in 1D mode was removed because it was not very easy to use and probably was never used in the
	first place.
        Affected routines: basl1dmenu, doebasl1dcor, stopbasl1d, RunMacro, AnalyseMacro

11-10-'07: The baseline correction routines did not handle the situation when no noise areas are given. This is now taken such
	that everything is noise.
        Affected routines: doebasl1dcor, doebasl2dcor

15-10-'07: When reprocessing from history the history macro would first be cleared. This could lead to loss of processing information.
	Now the history macro is not cleared before.
        Affected routines: reprocessHistory
        
16-10-'07: In order to allow for the possibility of having a function as input that generates a matNMR structure as output, the definition
	of the matrix in the 2D/3D viewer has been taken within the checkinputcont routine.
        Affected routines: checkinputcont, regelcont, regelmesh, regelstack3D, regelraster2D, regelbar, regelline, regelpcolor3d, regelpolarplot

26-10-'07: Found some bugs in the routines that allow extraction in 1D and 2D spectra. Both routines were not completely general as they used
	str2num instead of eval. Also, the 1D version did not work correctly when specifying an increment.
        Furthermore, implemented the option of a range for the script-based routines.
        Affected routines: regelextract1d, regelextract2d, matNMRExtract1D, matNMRExtract2D

12-11-'07: Changed the 2D rastering routine such that it now takes the integral of each area instead of just a single point. Slightly slower
	but more useful.
        Affected routines: dispraster2D

12-11-'07: So far the rendering mode in the 2D/3D viewer would be switched to painters if possible (faster). But it wasn't done at the optimum
	time. Also, it only checked for surface objects and not for light objects.
        Affected routines: plotcont, dispbar, displine, disppolarplot, dispstack3D

13-11-'07: When adding or concatenating variables the new variabe would always be loaded into matNMR, despite the user being able to choose.
	Affected routines: regeladdvariables, regelconcatenatevariables

13-11-'07: Baseline correction is refused when working in display mode 'both" as peaks cannot be defined properly. Same holds now for linear
	prediction and solvent suppression in 2D mode.
	Affected routines: basl1dmenu, basl2dmenu, asklp2d, asksolvensuppression2d

13-11-'07: Second-order phase correction was incorrect for TD1.
	Affected routines: setphase2d

14-11-'07: Added a feature that allows noise filling in 2D spectra.
	Affected routines: matNMR1DButtons, asknoisefilling2d, regelnoisefilling2d, RunMacro, AnalyseMacro

14-11-'07: Added a feature that allows regridding the current 2D spectrum to new axes through interpolation.
	Affected routines: matNMRinitvars, matNMR1DButtons, askregrid2d, regelregrid2d, RunMacro, AnalyseMacro, matNMRRegridSpectrum2D
        matNMRRegridSpectrum1D, askregrid1d, regelregrid1d

14-11-'07: When in 2D mode, selecting a 1D processing action results in a switch to 1D mode. Cancelling the action would leave the flag
	unreset. This didn't lead to problems directly, but wasn't pretty.
        Affected routines: regelBrukerdig, regelleftshift, regelswapecho, DCcorr1d, regelsolventsuppression1d, regelconcatenate,
        regelextract1d, integrate1d, regellp1d, regelregrid1d, regelsetintegral1d, regelsize1d

15-11-'07: A bug was found in the routine for making polar plots: the axes were checked for sign of the increment even though
	this was useless and resulted in an error since the routine for checking the axes cannot deal with matrices for axes.
        Affected routines: disppolarplot

15-11-'07: The saving of a plot to disk from the 2D/3D viewer did not work when a plot was not in 2D mode because
	the ZoomMatNMR routine would produce an error. Now the error is changed into a return so the routine doesn't
        continue but at least doesn't cause a needless error.
        Affected routines: ZoomMatNMR

16-11-'07: Solved a long-standing problem with matNMR under Matlab 7 (with Java IDE): in analogy to the issue from 24-07-'07, where
	it was found that chaning the order of the children of a figure manually, will result in rerendering of the entire window.
        In Matlab 7 the AXES command will result in a reordering of the figure's children, when accessing an axis that is not on
        the top of the list of children. Now all routines that execute such a command have been changed to set the currentaxes
        property of the figure directly. Not ideal to use a low-level routine but at least it saves on much rerendering.
        Affected routines: updateprojectionaxes, update2Daid, regeltitle, regelticklengths, regelticklabel, regeltickdir
        regeltick, regelshading, regelscales, regellims, regelhold, regelgrid, regelfont, regeldirs, regelclearaxis, regelcaxis,
	regelbox, regelaxisview, regelaxisposition, regelaxislocation, regelaxislabels, regelaxiscolors, regelaxis, regelshowprojections,
        regelCPMs, plotcont, dispbar, displine, dispmesh, disppcolor3d, disppolarplot, dispraster2D, dispstack3d, Markersize,
        Marker, Linewidth, Linestyle, GetAxis, contcmap, contcbar, ChangeColorbarToContourf, regelplotseries, Qlegend

16-11-'07: Implemented that when fit results are viewed then not only the parameters are shown in the Matlab console window,
	but also in the UIcontrols on the screen and also as a plot in the axis of the corresponding window.
        Affected routines: T1fit, peakfit, Difffit, ssafit, csafit, quadfit

16-11-'07: Started implementing the addition of light to the plot manipulations in the 2D/3D viewer window.
	Affected routines: matNMR2DButtons, Subplots, UpdateFigure, matNMRinitvars, asknamemesh, regelmesh, regelplotseries, asklight,
        regellight, RunMacro, AnalyseMacro

19-11-'07: Fixed a few small bugs in the peak fitting routine regarding loading of old parameters and viewing other slices in 2D matrices.
	Affected routines: peakfit

20-11-'07: Added apodization into the menubar and context menus for 1D and 2D processing.
	Affected routines: matNMR1DButtons

20-11-'07: Removed some of the old default settings that used to be implemented when there was no proper colour scheme implemented. Now
	these are no longer necessary and can be annoying as the user may want to have the default settings of Matlab instead.
        Affected routines: basl1dmenu, basl2dmenu, clabels, CSApk_init, Diffpk_init, klabels, matNMR2DButtons, matNMR2DPanelButtons,
        matNMR3DButtons, matNMRintro, matprint, nmr, pk_init, Qoptions, Quadpk_init, QuiInput, RunMacroStepwise, SSApk_init, stats1d, 
        stats2d, T1pk_init

20-11-'07: The CorrectWindow routine, which is used to scale UIcontrols whenever the screen size is too small for a certain window,
	also scaled UIcontrols that have normalized units.
        Affected routines: CorrectWindow

20-11-'07: When plotting a 3D matrix in the 2D/3D viewer the check for the norm would be executed, and could produce an error message.
	Now the check is only done for 2D matrices (includes vectors).
        Affected routines: checkinputcont

20-11-'07: Changed the position of the SigmaS button for the T1 and diffusion fitting routines because before it wasn't clear whether
	this was a fitting parameter or not. Now, it's clearly not.
        Affected routines: T1pk_init, Diffpk_init

20-11-'07: Changed the routines for converting Bruker and Varian STATES experiment to the right format such that now the hypercomplex
	matrix is generated in the same step, so the user doesn't have to execute the "Start STATES processing" function anymore.
        Affected routines: regelconvertBruker, regelconvertVarian

20-11-'07: matNMR now knows about Matlab 7.5.
	Affected routines: matNMRinitvars

20-11-'07: Added a button to the T1 fitting routine that allows switching the x-scale between logarithmic and linear
	scale (similar button for y-scale already existed).
        Affected routines: T1pk_init, T1pk_udata, T1fit

20-11-'07: matNMR always changes a number of default settings to make sure it runs the same on every platform. Some of these are no
	longer needed since the introduction of the colour schemes. Hence, the changes to the colours have been taken out and users
        can work with their own settings for normal windows, whilst matNMR still has its own.
        Affected routines: settings, setdefaults

21-11-'07: Before running a macro is check is being done to make sure the format is correct. Now a try-catch loop is built around that
	to make sure that, whenever an error occurs, a statement is made instead of a true error.
        
        For simplicity it is now also possible to enter the name of a matNMR structure when running a running. matNMR will check whether
        the field "HistoryMacro" is present and select that.
        
        Affected routines: regelexecutemacro, regelexecutemacro3d

23-11-'07: Shearing in frequency domain would give an error message for horizontal shearing (shearing worked but output
	to screen and history created the error).
        Affected routines: regelshearingFD

26-11-'07: Horizontal shearing in frequency domain required a strange shearing factor due to an inversion of sizes/spectral widths for
	the two dimensions.
	Affected routines: regelshearingFD, matNMRShearingTransformationFD





=============
!web release! : november 23 2007, version 3.9.0
=============

14-12-'07: Implemented some suggestions to remember the current path better so as to avoid having to select the directory.
	When using the automatic removal of the Bruker digital filter, the routine now checks whether an acqus file exists
        in the last directory that was used to load files. If so, the acqus file is accessed, otherwise a window pops up
        asking the user to select the acqus file.
        Affected routines: regelBrukerdig
        
        Up to now every time the user wants to load data into Matlab using matNMR the current directory was used as a starting
        point for where to look for files. Now an option menu has been added to matNMR to allow the last directory from which files
        were loaded to be used as the starting point. By default this will be as before, but the user may now select a default
        starting directory and whether the last directory should be re-used.
        Affected routines: fidlaad, fidlaadSeries, simpsonasciilaad, simpsonasciilaadSeries, Brukerlaad, BrukerlaadSeries,
        CMXlaad, CMXlaadSeries, matlaad, matlaadSeries, selectdistribution, setdefaults, matNMRinitvars, matNMR1DButtons, Qfileops,
        stopmatnmr, stopnmr, SetOptions

17-12-'07: Updated the routines that extract the diagonal or anti-diagonal from a 2D spectrum such that it can handle non-square matrices. 
	The new routine always uses the axes to determine whether the standard diag routine can be used or whether a linear interpolation must be used.
        Affected routines: getdiag, getantidiag

20-12-'07: A bug was found in the stats2d routine that caused an error and made it not open the window properly. The closerequest function
	was not defined.
        Affected routines: stats2d

21-12-'07: The change of 20-11-'07 caused some unwanted effects when selecting the area in the 2D on which to apply solvent
	deconvolution or linear prediction.
        Affected routines: defpeaksSD, defpeaksLP

04-01-'08: The change of 20-11-'07 introduced a bug: the title of plots by default gets the value of the DefaultTextColor
	property, which may not be what the colour scheme uses. Now this value is set explicitly in matNMR.
        This is not an issue for axis labels as these are reset when setting the xcolor, ycolor and zcolor properties of
        an axis!
        The legend routine was also affected, as are a number of routines that define text objects.
        Affected routines: asaanpas, defpeaksLP, defpeaksSD, Difffit, dispbar, displine, dispmesh, disppcolor3d, 
        disppolarplot, dispraster2D, dispstack3D, getantidiag, getdiag, makenew1D, makenew2D, plotcont, regelCPMs, 
        regelextract, regelgetcolumn, regelgetslice, regelmake1dbar, regelmake1derrorbar, regelplotseries, 
        regelprojTD1, regelprojTD2, regelshowprojections, regelskyline, ResetAfterError, stack1dhorizontal, 
        stack1dvertical, T1fit, viewcolumn, viewrow, Qlegend, SSAprint, CSAprint, restorepeaklist, restorepeaklist3,
        mathelpprint, GetPeaks, disppolarplot, Subplots, CreateMainAxes, pk_init, T1pk_init, Diffpk_init, Quadpk_init,
        SSApk_init, CSApk_init, stack1dhorizontal, stack1dvertical

04-01-'08: Updated the copyright statement

04-01-'08: Deleted the title1d routine as it was no longer used by matNMR

07-01-'08: Making a pcolor plot in the 2D/3D viewer yielded a ackward color mapping from 0 to the maximum of the matrix 
	(assuming the minimum of the matrix to be larger than 0). This was because the matrix was enlarged by appending with
        0. Now, by using NaN, the plot looks the same but the color mapping really fits the data matrix.
        Affected routines: dispmesh

08-01-'08: When resizing a 2D spectrum the axes of the current dimension ONLY would be defined straigt away, leaving room for
	error.
        Affected routines: regelsize2d, regelnoisefilling2d

14-01-'08: When opening a new window in the 2D/3D viewer, the colorbar status of the original window would not be remembered and
	hence no colorbar would be plotted, even though it was supposed to.
        Affected routines: makenew2D3D

17-01-'08: Another issue connected to the change of 20-11-'07 (see also 04-01-'08) was found in making colorbars.
	Affected routines: colorbarmatNMR        

11-02-'08: The color of the crosshair used by the "get position" routine in the main window would always be red. Now
	it follows the color of the line that is being tracked.
        Affected routines: crsshair

13-02-'08: When reading new Bruker files sometimes the size of the file no longer corresponds to the size of the FID
	(see also change 02-02-'07). When that has happened the next time, the input window would have a problem because
        it couldn't deal with the two sizes stored in a variable. Now only the first value is ever shown.
        Affected routines: askfidlaad, askfidlaadSeries

13-02-'08: The change of 14-12-'08 was not so good: when loading a number of datasets and then wanting to remove the digital
	filter, then matNMR would look in the last directory to see whether an acqus file exists. If so, that would be used
        to extract the data for the digital filter. But that wouldn't leave the possibility of selecting the file by hand,
        which one needs if the last dataset is completely different from the first.

        To solve this first of all the datapath and filename are now stored in the matNMR structure.
        Affected routines: GenerateMatNMRStructure, regelQfidread, regelQfidreadSeries, regelBrukerSpectraread, 
        regelBrukerSpectrareadSeries, regelCMXSpectraread, regelCMXSpectrareadSeries, SIMPSONread
        
        Then, a variable is now stored that keeps track of the datapath for each 1D and 2D dataset.
        Affected routines: matNMRinitvars, checkinput1d, checkinput2d
        
        Finally, the routine that removes the Bruker digital filter now uses the stored datapath to extract the information.
        If no acqus file is found in the dataset belonging to the variable, then the input window appears.
        Affected routines: regelBrukerdig

29-02-'08: When stopping the main window but not matNMR, the variables used for the windows would not be set to 0, causing
	problems when reopening the main window again.
        Affected routines: stopnmr

29-02-'08: After extraction the reference for the 1st order phase correction would be lost because the index would not
	be updated by the extraction routine.
        Affected routines: regelextract1d, regelextract2d

03-03-'08: Implemented Cadzow filtering and Cadzow filtering followed by LPSVD estimation for 1D data.
	Affected routines: cadzow, matNMRinitvars, matNMR1DButtons, askcadzow1d, askcadzowlpsvd1d, regelcadzow1d, 
        regelcadzowlpsvd1d, RunMacro, AnalyseMacro, ConvertMacroToScript, matNMRCadzow1D, matNMRCadzowLPSVD1D

05-03-'08: On Solaris the input windows would not have text comments in Matlab 7. A solution was found by defining the size
	of the axis. Previously, this was taken implicitly and worked fine. On Windows this was no issue.
        Affected routines: QuiInput

07-03-'08: Added a 14x14 grid of subplots to the 2D/3D viewer.
	Affected routines: Subplots, matNMR2DButtons
        
07-03-'08: Started a new implementation of the cut spectrum with separate axes instead of separation lines.
	Affected routines: dispmesh, regelmesh, regelplotcutspectrum, matNMRinitvars, Subplots, checkinputcont,
        dispstack3D, dispraster2D, plotcont, regelcont, regelabscont, regelstack3D, regelraster2D, askcutspectrum, 
        definecutspectrum, regelpcolor3d

10-03-'08: The colorbar would not always be remembered correctly when making a new 2D/3D viewer window.
	Affected routines: makenew2D3D, contcmap

11-03-'08: Added an option that allows adding the fit results to the plot in relaxation and diffusion curve fits.
	Affected routines: T1pk_init, T1fit, regelviewaddresultsT1, Diffpk_init, Difffit, regelviewaddresultsDiff

11-03-'08: Some of the routines used for direct printing in the fitting routines were incorrect as they didn't use the new 
	structure of the fit parameters yet.
	Affected routines: T1print, Diffprint

11-03-'08: An option was added to the default callback routines of text objects that allows deleting text objects.
	Affected routines: askedittext, regeledittext

11-03-'08: With the new functionality for cut spectra, it is now possible to offer a user-defined grid of subplots from
	the menubar.
        Affected routines: Subplots, RestoreSubplots, matNMR2DButtons, matNMRinitvars, askuserdefsubplots, regeluserdefsubplots

12-03-'08: Raster plots would fail whevener the matrix size would not be a multiple of the sampling factor.
	Affected routines: dispraster2D






=============
!web release! : march 12 2008, version 3.9.26
=============

13-03-'08: The sharecolors figure property has been disabled by default throughout matNMR because it's deprecated.
	Affected routines: settings, matNMRintro

14-03-'08: Finished the implementation of the Cadzow filtering and Cadzow filtering followed by LPSVD estimation for 1D data.
	Now also a frequency-domain filtering is implemented, which is much better in practice than a time-domain routine.
        This because now windows in the spectrum are defined that contain peaks, but are only 256 data points wide.
        This prevents excruciatingly slow SVD's.
	Affected routines: matNMRinitvars, askcadzow1d, askcadzowlpsvd1d, regelcadzow1d, regelcadzowlpsvd1d, RunMacro, 
        AnalyseMacro

26-03-'08: The "axis rulers" function no longer worked for the 2D/3D viewer because of an incorrect syntax during the making of
	the figure window.
        Affected routines: stats2d

28-03-'08: Added ACME automatic phase correction to the processing scripts.
	Affected routines: matNMRSetPhase1D

31-03-'08: Added a button to the main window that allows changing of the current setting for the default axis.
	Affected routines: matNMR1DButtons, regeldefaultaxisbutton, GetDefaultAxis, regelsetdefaultaxis, asaanpas 

07-04-'08: A bug was found in matNMR running under Matlab 7.5: ginput uses the function uirestore, which in turn makes
	a new context menu. This clashed with the ZoomMatNMR routine. Now the original handle is always called by
        ZoomMatNMR.
        Affected routines: ZoomMatNMR
        
08-04-'08: Stepwise reprocessing of a macro would fail for creating a user-defined axis.
	Affected routines: AnalyseMacro

09-04-'08: Until now concatenation of variables only worked when the matrices were of equal size. This is not useful.
	Affected routines: regelconcatenatevariables

09-04-'08: The scale1d routine did not write dimension-specific information to the history macro when non-linear axes
	were defined.
        Affected routines: scale1d

10-04-'08: When reading a series of binary FIDs it is often nice to read in the first of the series into matNMR directly.
	Now this has been implemented.
        Affected routines: regelQfidreadSeries, askfidlaadSeries

14-04-'08: When fitting T1's or diffusion constants, a UIcontrol containing the fitting functional is placed where
	normally the title of the plot would be. Now, this button can be deleted by clicking on the button.
        Affected routines: T1pk_init, Diffpk_init

15-04-'08: When saving a slice from a 2D to the workspace, then the mode would not be switched to 1D, causing some variables
	(default axis mainly) not to be taken properly.
        Affected routines: matNMR1DButtons, regelsave1d, regelsavedisk1d

22-04-'08: Matlab 7.6 is now recognized.
	Affected routines: matNMRinitvars
        
07-05-'08: Viewing fit results showed an incorrect value for the chi^2 for T1 and diffusion fitting.
	Affected routines: T1fit, Difffit        

23-05-'08: Found a bug in matNMRShearingTransformationTD (typos).
	Affected routines: matNMRShearingTransformationTD

26-05-'08: Added a routine that allows shifting a spectrum in frequency domain by applying a phase modulation in
	the time domain.
        Affected routines: matNMR1DButtons, askshiftspectrum1D, askshiftspectrum2D, regelshiftspectrum1D, regelshiftspectrum2D,
        matNMRinitvars, AnalyseMacro, RunMacro

28-05-'08: Found a bug in stepwise reprocessing whenever an update of the current 2D slice was enforced (code 401 in RunMacro).
	Affected routines: RunMacroStepwise

05-06-'08: Added a line of text explaining how to convert the output from the fitting routines (structure variables) into
	matrices. This only works from Matlab 7 and above.
        Affected routines: peakfit, T1fit, Difffit, csafit, ssafit, quadfit

12-06-'08: A change was made to the way the matprint routine rescales a figure when using WYSIWYG mode. Now the real papersize
	is taken into account better than before.
        Affected routines: matprint

30-06-'08: MIF-printable colorbars could not be selected yet.
	Affected routines: ChangeColorbarToContourf

16-07-'08: A problem was found when reading VNMR data that did not have the number of data points in it (so not ntraces*np).
	This might occur whenever a user stops an experiment prematurely. Now a check is performed.
        Affected routines: Qfidread

13-08-'08: When using large numbers the ranges in dealing with series would be truncated by Matlab. Now 10 digits precision is
	specified for the num2str conversion.
        Affected routines: regelBrukerSpectrareadSeries, regelCMXSpectrareadSeries, regelmatlaadSeries, regelQfidreadSeries,
        regelsimpsonasciilaadSeries, regelconcatevariables, regeladdvariables, regelnormalizevariables

10-09-'08: In certain cases the reference for the first order phase correction would become NaN. Now a reset is made to
	make sure this is corrected to the middle of the spectrum again.
        Affected routines: repair, updatebuttons

25-09-'08: When plotting a sliced spectrum the type of contours would not be remembered when using relative contours.
	Affected routines: regelplotcutspectrum

29-09-'08: When using the automatic removal of the Bruker digital filter, matNMR would try and load the acqus file.
	For this it used the same variable as for loading binary FIDs, meaning that the last filename would no longer
        be remembered.
        Affected routines: regelBrukerdig

03-10-'08: An additional zeroth-order phase shift was accidentally given when applying the removal of the Bruker
	digital filter. This can be annoying for certain applications and has been corrected.
        Affected routines: regelBrukerdig

03-10-'08: The routine for 1D baseline correction now plots an additional line after having performed the fit. Now the
	original spectrum is plotted as well so one can judge how well the simulated baseline fits the spectrum.
        Affected routines: doebasl1dcor, stopbasl1d

31-10-'08: Added a single-slice option to delete the current row/column from a 2D dataset
	Affected routines: matNMR1DButtons, regeldelete, RunMacro, AnalyseMacro

25-11-'08: Changed the routine for making contour plots with non-linear contour levels. Previously a complicated calculation
	was made to fit the right number of contours between the specified limits, using an ununderstandable factor.
        Now the same approach is used as in many other software packages for bio-NMR: a factor is taken and multiplied on
        top of the lower limit. The number of contours is cut off by the upper limit.
        Affected routines: calccontlevels, dispcont, regelcont

25-11-'08: I have improvised an extension to the "get position" routine in the 2D/3D viewer. Now the slices corresponding to the
	ones indicated by the crosshair can be displayed on the fly (option from the menubar only). May not be perfect yet but
        it works decent in most cases.
        Affected routines: matNMR2DPanelButtons, matNMR2DButtons, crsshair2d

26-11-'08: Implemented a routine that allows exporting a processed spectrum as a Bruker processed dataset. The initial goal is
	to make it readable by the Sparky software package. So only a limited number of parameters are stored alongside the 
        spectrum.
        Affected routines: matNMR1DButtons, matNMRinitvars, asksavetoBrukerSpectrum, regelsavetoBrukerSpectrum

26-11-'08: Corrected an issue with setting the reference point for 1st-order phase correction. An interpolation was used to
	connect the value in units of the axis into an index in points. When setting the reference point outside the spectrum
        the interpolation would fail, resulting in NaN. Now an extrapolation is executed when the interpolation fails.
        Affected routines: matNMR1DButtons, setrefphase1

26-11-'08: Matlab 7.7 is now recognized.
	Affected routines: matNMRinitvars






=============
!web release! : november 27 2008, version 3.9.59 ==> manual not updated yet since release 3.9.26
=============

27-11-'08: Made an option that allows it to save strip plots and "defined plots" to the workspace.
	Affected routines: matNMRinitvars, askcutspectrum, regelcutspectrum, matNMR2DButtons, matNMR2DPanelButtons, askdefineplotlimits
        defineplotlimits

05-01-2009: When making a horizontal stack plot the imaginary part did not have NaN-blocks to separate slices, only the real part.
	Affected routines: dualdisp, stack1dhorizontal

16-01-'09: Updated the fitting routines such that they all use the correct definition for calculating the reduced chi^2 and
	all of them allow refitting data after a previously-stored variable is imported again.
        Affected routines: peakfit, T1fit, Difffit, simcsatensor, simquadtensor, simssa

20-01-'09: Implemented storing of constraints and sigma into the parameter structure for T1 fits. Also, the last variable name is
	now remembered when loading parameters or viewing previous fits.
	Affected routines: T1fit, matnmrinitvars

21-01-'09: Changed the fixed frequency resolution of the quadrupolar fitting routine to 0.05 ppm. This will be changed such that
	a button is given to decide what the resolution must be.
        Affected routines: fitquadtensor

23-01-'09: When changing the size of a 2D FID both dimensions would be switched to the default axis. Now, if the other dimension
	is not changed in size then the axis remains as it is.
        Affected routines: regelsize2d

28-01-'09: Implemented importing of Sparky data (UCSF data format) into Matlab.
	Affected routines: matNMR1DButtons, askUCSFlaad, UCSFlaad, regelUCSFread, readUCSF

05-02-'09: Found a Bruker Aspect file which did not conform to the current filter. Made a fix but don't know how general the
	problem really is.
        Affected routines: Qfidread

20-02-'09: When making a colorbar from the panel window in the 2D/3D viewer it was possible to have it end up in another
	window. Now the window is made active if necessary.
        Affected routines: contcbar

20-02-'09: Shifting a 1D by 0 points resulted in no output in the offline processing routine.
	Affected routines: matNMRLeftShift1D

25-02-'09: When switching the default mode for the default axis when the default axis was switched off, would not result in
	the default axis being switched on. This was annoying.
        Affected routines: regeldefaultaxisbutton

27-02-'09: Made a slight alteration to the processing script for phasing 2D datasets.
	Affected routines: matNMRSetPhase2D

12-03-'09: Added a parameter to the cos^2 apodization function. Now the span of the sine can be supplied. 1 yields the result
	obtained until now, i.e. 90 degrees.
        Affected routines: apodize1d, regellb, RunMacro, historyapodize, matNMRinitvars

30-03-'09: Fixed an issue with the refreshing of a legend, i.e. the reading of a legend from a given window and changing the
	legend interface window accordingly. This didn't work at all.
        Affected routines: QezLegend, stopnmr, stopmatnmr
 
07-04-'09: Linear prediction would produce an error when reprocessing macros because the reference for the first-order
	phase correction would be recalculated (interpolation) before the new default axis was calculated.
        
        Other routines also appear to be affected. So I made a try-catch clause in the repair routine which performs
        the interpolation
        Affected routines: regellp1d, regellp2d, repair

15-04-'09: Dual display of a structure without a reference carrierindex (deafult axis) would produce an error.
	Affected routines: checkinputdual
 
18-04-'09: Linear prediction would produce an error when reprocessing macros because the type of linear prediction
	would not be set by RunMacro (an old variable was used instead of the new dedicated one).
        Affected routines: RunMacro
 
27-05-'09: Found a bug in the routine that plots strip plots: the axes would not be defined by the checkinputcont routine,
	causing problems in some cases.
        Affected routines: checkinputcont

02-06-'09: Found two typo bugs.
	Affected routines: ResetAfterError, regelsavetoBrukerspectrum

03-06-'09: Defining axis rulers in the 2D/3D viewer caused lots of beeping because a variable was not defined by default in
	the QmatNMR structure, which caused the crsshair2d routine to beep.
	Affected routines: matNMRinitvars

05-06-'09: During reprocessing from macro certain large numeric values would be truncated by the num2str routine. Now a 10-digit
	accuracy is used.
        Affected routines: RunMacro
        
05-06-'09: Found that spectra exported as Bruker spectra could not be imported again due to missing parameters in the parameter
	files. Also, the routine was protected from loss of numerical accuracy as the data are stored as 32-bit integers (no decimals).
        Now the data will be scaled when this becomes an issue.
	Affected routines: regelsavetoBrukerSpectrum

05-06-'09: Finished the change of 21-01-'09.
	Affected routines: fitquadtensor, quadfit, Quadpk_udata, Quadpk_init

05-06-'09: Implemented the change of 20-01-'09 for all fitting routines.
	Affected routines: peakfit, matNMRinitvars, Difffit, csafit, quadfit, ssafit

05-06-'09: Fixed a bug introduced on 14-04-'08 that prevented the diffusion fitting from working.
	Affected routines: Diffpk_init, Difffit

09-06-'09: Fixed a bug in the regridding routine that would set the hypercomplex part to 0 but wouldn't necessarily make sure that
	it had the same size as the spectrum.
        Affected routines: regelregrid2d

10-06-'09: Implemented maximum entropy (MEM) reconstruction in 1D and 2D mode using the lpc algorithm.
	NOTE: it should be made clear in the manual that this is NOT the same as MaxEnt reconstruction, i.e. the regularized
        fitting of data using the entropy of the data as criterion besides the squared deviation.
        MEM works only on periodically and continuously sampled time-domain data and requires a good correlation of each data
        point to the next. The FID is modelled using a recursive model that requires only the first data point to reconstruct
        the data beyond the original range. It is in fact closely related to linear prediction techniques and not so much to
        MaxEnt reconstruction. Typically this approach fails for complicated lineshapes (powder lineshapes, overlap).
	Affected routines: matNMR1DButtons, matNMRinitvars, askmem1d, regelmem1d, askmem2d, regelmem2d, RunMacro, AnalyseMacro

16-06-'09: Second-order phase correction in TD1 was not working properly.
	Affected routines: setphase2d

18-08-'09: The matNMRReadBrukerSpectra routine did not work properly when no pathname was included (i.e. no filesep in
	the string with the filename present).
        Affected routines: matNMRReadBrukerSpectra

21-08-'09: Matlab 7.8 is now recognized.
	Affected routines: matNMRinitvars

27-08-'09: Added edit buttons in the main window to allow changing the number of undo-steps without having to enter the options
	menu.
        Affected routines: matNMR1DButtons, regelUNDO, Qoptions

27-08-'09: When changing the subplot configuration the default colourmap would be used again. Now the current map is used instead.
	Affected routines: SubPlots

27-08-'09: Supplying a matNMR structure when wanting to run a macro on a 3D matrix failed to work.
	Affected routines: matNMRinitvars, regelexecutemacro3d

27-08-'09: Most plot-manipulations routines had an incorrect return to their input routines whenever no subplots would be selected.
	Affected routines: contcbar, regelaxis, regelaxiscolors, regelaxislabels, regelaxislocation, regelaxisview, regelbox, 
        regelclearaxis, regeldirs, regelfont, regelgrid, regelhold, regellight, regellims, regelSBCM, regelscales, regelshading, 
        regeltick, regeltickdir, regelticklabel, regelticklengths, regeltitle

27-08-'09: By default now the default axis will remain on when setting an axis in ppm, Hz or kHz.
	Affected routines: scale1d

27-08-'09: In some cases the buttons for the status of the default axis were not updated. Now an update is always made.
	Affected routines: updatebuttons

27-08-'09: Selecting a default axis from the button in the main window would not switch the status to on.
	Affected routines: regeldefaultaxisbutton

01-09-'09: When creating a user-defined subplot configuration, the status variable QmatNMR.ContSubplots would not
	be set appropriately.
	Affected routines: SubPlots

04-09-'09: The regeltick routine produced an error whenever asking for automatic positioning of the tick marks.
	Affected routines: regeltick

29-09-'09: A generic error handling routine has been created that allows catching all errors. A window will pop up
	asking the user to send a bug report if the problem persists.
	Affected routines: all scripts (all functions excluded for now)

02-10-'09: An errror would occur if external functions created a uimenu in the 2D/3D panel window (during setting of
	properties of uicontrol objects). Now only uicontrols are selected.
	Affected routines: matNMR1DButtons, pos1d, stopcrsshair, matNMR2DPanelButtons

07-10-'09: When making a new axis ruler, the zoom limits would be stored until a "reset figure" would be done. Now the
	new limits are stored properly.
	Affected routines: scale1d

13-10-'09: The routine that converts 1D processing macro's to scripts had typos (1d instead of 1D), causing incorrect
	script names to be called.
	Affected routines: ConvertMacroToScript

13-10-'09: Setting the size for whole-echo acquisition wasn't supported yet in the offline processing routines.
	Affected routines: matNMRSetSize1D, ConvertMacroToScript, regelsize1d, RunMacro

13-10-'09: The conversion of the FT mode was incorrectly done by the routine that converts 1D processing macro's to scripts.
	Affected routines: ConvertMacroToScript






=============
!web release! : october 27 2008, version 3.9.94 ==> manual not updated yet since release 3.9.26
=============




28-08-'09: 
	Affected routines:

28-08-'09: 
	Affected routines:

28-08-'09: 
	Affected routines:

28-08-'09: 
	Affected routines:


===============================================================================================================================

TO DO: finish the processing scripts for the Cadzow filtering and the conversion from macro to script.

TO DO: finish the processing scripts for shifting a spectrum in the FD + conversion to script for 1D!!

TO DO: implement MEM in script-based processing for 1D and 2D + make a conversion from macro to script for
	1D MEM.

TO DO: the asklinecolor routine doesn't exist yet even though it is in the plot manipulations menus.

TO DO: all line properties zo maken dat ze ook in de 2D/3D viewer werken op verschillende assen, net als bij de andere functies.

