Argyll CMS Changelog

What's new in Argyll CMS 3.2.0

Apr 18, 2024
  • Added extra diagnostics to printcal.
  • Added colprof -nI option, that adds inverse gamut mapping to
  • Perceptual and Saturation A2B tables, if they are being created.
  • This is not recommended for source profiles, since it
  • handicaps true gamut mapping, but may be a workaround
  • to faulty Adobe Lightroom BPC for Perceptual intent in output prodfiles.
  • Added error message for ColorMunki spectro sensor
  • internal cable being disconnected.
  • Fixed bug in Appearance B2A conversion that appeared in V3.0 release.

New in Argyll CMS 3.1.0 (Nov 30, 2023)

  • Added MSWindows USB uninstaller and libwdi based installer installer to make use on MSWindows easier.
  • Added UbsDk MSWindows usb driver support code, but it is currenly disabled because the release versions of UsbDk have limited usefulness as a general USB driver.
  • Fixed bug in CMYK profile B2A table creation that sometimes resulted in bumpy black generation. (Only occured when compiled using recent gcc with code optimization.)
  • Changed ICC profile serialization of pure ASCII text tags emit a warning rather than error if they are fed non-ASCII utf8 input.
  • Made ICC code a little more robust against bad profiles. (Thanks to David Hoyt).
  • Fixed latent bug in X11 plot code that caused window not to be created or updated when dowait == 0. This shows up on Linux as failure of spotread -S to show spectral plot.
  • Fixed problem with colorhug not noticing errors from the instrument.
  • Updated scanin/it8Wolf.cht to improve accuracy of grey wedge patch recognition.
  • Merged some Debian patches, including spelling fixes.

New in Argyll CMS 3.0.2 (Oct 23, 2023)

  • Fix #include <ctype.h> in spectro/conv.c
  • Fix typo introduced into spectro/i1d3.c that prevents retail i1d3 from working.

New in Argyll CMS 3.0.1 (Oct 19, 2023)

  • Fixed accuracy problem with xicclu -fb when using cLut type profiles that use a matrix in their B2A table.
  • Fixed crash in xicclu with device link profiles.
  • Fixed error when creating profiles with ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD or ARGYLL_CREATE_OUTPUT_PROFILE_WITH_CHAD.
  • Make re-writing an ICC profile more forgiving of tags that are incorrect for the profile version.
  • Fixed problem with writing textDescriptionType ScriptCode that was not being padded to 67 characters.
  • Fixed bug in CGATS output. This showed up in oeminst.

New in Argyll CMS 3.0.0 (Sep 18, 2023)

  • Updated ccast/axTLS to get ChromCast working again with latest Google CC operating software.
  • Extensive re-write/re-factor of icclib to make it more future-proof:
  • - Changed all the tag type file serialization to be more declarative in form, and make it more robust against buffer overflows. Switched to a processing element pipeline implementation of color transforms.
  • The change in icclib API's necessitates changes thruout the ArgyllCMS codebase. Bumped ArgyllCMS and icclib to V3 to reflect this major re-factoring.
  • Added iccdump -S flag which turns on strict ICC format checking.
  • Added iccdumo -w and -W flags which turn on ICC format warnings.
  • Added icclu -T flag which turns on detailed conversion tracing.
  • Added ref/ColorCheckerPassport.ti2 and ref/ColorCheckerHalfPassport.ti2 to allow measuring ColorCheckerPassport with instrument.
  • Fixed bug in Munki spectro hi-res mode with some instruments.
  • Luminance matching between normal and hi-res was sometimes quite poor.
  • Added ARGYLL_CREATE_DISPLAY_PROFILE_WITHOUT_CHAD environment variable.
  • Changed colprof -U flag to -u.
  • Changed dispcal -J flag to -K to accomodate a potential new flag for colprof and dispcal.
  • Added workaround for bug in madHcNet64.dll32/64.dll which sometimes causes failure.
  • Added delay after USB set_config on OS X to help Spyder 3/4 on Ventura OS.
  • Added -Y parameter to dispwin to override automatic patch delay.
  • Changed i1d3 driver to cope with Rev. B "0x83" error robustly:
  • This should fix any issuses measuring low level Red only patch values on OLED displays, but with slower measurements when this occures.
  • Added spotread -Y S option to save spectral sensitivity curves and added corresponding support in i1d3 driver. This alllows for comparison of different instruments factory calibrations.
  • Added a -h scale parameter to dispread, to allow the automatic instrument calibration test patch values to be scaled down from their default 100% value. This is useful with HDR displays.
  • Added manifest to MSWindows executables to use UTF-8 code pages on Windows 1903 and later. This should improve non-ASCII filename and path handling.
  • Added a Violet colorant to the targen colorant list.
  • Fixed problem with OS X 64 bit backwards compatibility where it failed to locate serial instruments when the binaries are run on OS X V12 or latter machines.
  • Fixed bug in i1Pro3 driver where it was not returning the correct measurement conditions enum.
  • Fixed spotread so that ambient measure for monochrome sources doesn't error out due to bad CCT/VCT/VDT. Also change -T so that it suppresses CCT etc. if ambient mode is used.
  • Added hacky workaround to strange Mac M2/rosetta bug in del_i1proimp().
  • Added -n option to specplot to match plot levels.

New in Argyll CMS 2.3.1 (Jun 29, 2022)

  • Added value sanity check & warning to chartread patch by patch mode.
  • Fixed crash on 64 bit MSWin in spectro/aglob due to changing
  • SDK declarations for _findfirst().
  • Fixed one remaining problem with not coping with "Colour"
  • spelling rather than "Color" in cxf2ti3.
  • Add code in cgats write to check for float format
  • problems when faced with -inf or +inf value.
  • Fix i1Pro3 highres in ccxxmake, dispcal & dispread.
  • Changed OS X usb reset to re-enumerate instead, as reset
  • does nothing on OS X >= 10.8.
  • Added spectro/instlib.api.txt file to public distribution.
  • Fixed possible crashes in xicc/ccss.c and spectro/oeminst.c
  • (Thanks to localcanine).

New in Argyll CMS 2.3.0 (Dec 24, 2021)

  • Fixed spotread -YL (i1Pro1/2 lamp remediation) to function even if calibration is impossible due to the white reference being out of tolerance.
  • Fix SpyderX faulty initial black calibration (it was asking for calibration every measurement).
  • Added icomuf_reset_before_close flag for SpyderX, as some versions of the instrument have been reported to lock up after use.
  • Modified the ArgyllCMS CIECAM02 implementation to include a blue hue linearization tweak, to improve the "blue goes purple" effect when gamut mapping or clipping highly saturated blues
  • to smaller gamuts.
  • Added spotread -Y y option that forces the listing of instrument specific display calibrations in the usage, even for serial instruments.
  • Removed native i1d3 C6 instrument support as a favor to X-Rite. Anybody adversely affected should contact me (Graeme Gill).
  • Modified usbio_lx.c cancel_req() to supress cancel_req: failed error message, since this seems benign.
  • Improved cxf2ti3 so that it should cope with XML that uses "Colour" spelling rather than "Color".
  • Added I1D3_ESCAPE environment variable to allow a user to potentialy use any current or future OEM coded i1d3 instrument.

New in Argyll CMS 2.2.1 (Sep 16, 2021)

  • Added support for Christophe Mtairie's Mini Digital Target with CMP_DT_mini.cht
  • Added Toshiba TPA-1 i1d3 support.
  • Added extra file corruption checks to Munki & i1Pro current calibration restore.
  • Fix inconsistency between .ti3 documentation of NORMALIZED_TO_Y_100 tag behavior and profile/profin.c code.
  • Improved cxf2ti3 so that it truncates trailing spaces on the names
  • of patch id's. This caused scanin to ignore patches with such
  • trailing spaces, omitting them from the resulting .ti3 file.
  • Added iccvcgt utility for extracting or inserting a
  • 'vcgt' tag from or into an ICC profile.
  • Fix bug in applycal.c introduced in 2.2.0 - crashes when existing
  • ICC curves are not 256 step LUTs.
  • Removed OS X hidio device Release - returned error on recent
  • OS X versions.
  • Fix bug in dispwin on OS X that randomly causes crash on exit
  • by removing releases.

New in Argyll CMS 2.2.0 (May 4, 2021)

  • Fix bug in applycal.c where it gets an "Error - Write file: 1, icmTextDescription_write: ascii string is shorter" error on replacing one calibration with another.
  • Added native i1Pro3 and i1Pro3 Plus driver.
  • Improved i1pro & Munki patch recognition to work much more reliably with a slow swipe speed.
  • Fix Apple M1 display name code & builds. (Thanks to Simone Karin). Should work now using Rosetta 2 or as M1 native binaries.
  • Fixed oeminst to work with spyder V5.5. setup.exe
  • Fixed bug in oemdld that prevented HTML encoded characters in download file decoding properly, which prevented certain filenames from working.
  • Fixed bug in ccxxmake -S -f where save error wasn't being fully reported, and display technology presence check was faulty.
  • Fixed typo in display technology, VPA -> PVA.
  • Made Klein K10A "Lights Off" command timeout a soft error. For some reason this command doesn't seem to be implemented on some K10A's.
  • Fixed OS X 10.15 compatibility problem with change in objc_msgSend declaration. (Thanks to Misty De Meo)
  • Added CIE dE2000 to spotread output.
  • Fixed accidental global "wrl" in gamut/gamut.h that cases compile warnings.

New in Argyll CMS 2.1.2 (Jan 15, 2020)

  • Added -d option to spotread to print out Density values.
  • Improved i1Pro2 emissive measurement compatibility with X-Rite driver.
  • Removed mistaken attempt to make i1Pro2 calibration align with legacy calibration - the wavlength conversions don't match, forsome reason that only X-Rite knows. (This amounts to abouta 1 delta E difference for display white measurement.)
  • Also fixed a bug where i1Pro2 style calibration wasn't being fully restored
  • from calibration file. This shows up when the -N flag is used.This bug reveals the discrepancy between the legacy wavelength conversion and the i1Pro2 one.
  • Changed targen round down/up to 0%/100% to have a tighter tollerance of 0.5% rather than 2%, so that -n values of L* 1 and 99 are not rounded.
  • Fix bug in xicclu -v2 option when operating on a .cal file. (Thanks to Matjaz Kljun for noticing this.)
  • Added -M option to ccxxmake.
  • Added -Yk flag to spectro/dispread, to restore a workflow in which
  • display calibration is done without using vcgt hardware.
  • Fixed bug in xicc/xmatrix.c when creating input profile from XYZ input data -
  • white point wasn't being computed correctly. (Thanks to Matjaz Kljun for noticing this.)
  • Modified txt2ti3 to cope with files that don't have SampleName/SampleID fields,
  • such as CoPrA sample files.
  • Added instrument ambient mode (-a flag) to dispcal, dispread and ccxxmake,
  • to allow use of direct projector to ambient mode measurement.
  • Fixed latent data sensitivity problem with i1Pro and Munki Spectro high res modethat sometimes caused crashes or faulty luminance readings.
  • Fixed problem with i1Pro2 EO2-XR-UF model crashing when high-res mode used.
  • Added spotread -rw option, to return chromatically adjusted white relative reflection values.
  • Added check in dispwin for sanity of calibration curves. Willfail to set or install calibration with contrast too low for display to be readable.
  • Added spectral support to namedc/cxf parser.
  • Fixed profile/txt2ti3.c to properly handle i1profiler SPECTRAL_NMXXX format.
  • Changed dispcal ADJ_THRESH mode MIN_THRESH value to 0.25 from 0.05, as
  • well as restricting it to the last pass, to reduce pointless repeats of dark values.

New in Argyll CMS 2.1.1 (Apr 30, 2019)

  • Fix typo in usb/55-Argyll.rules for i1Studio
  • Added SpyderX support for inst_opt_noinitcalib option, so that the -N flag can be honoured. (Thanks to Florian Hoch)

New in Argyll CMS 2.1.0 (Apr 10, 2019)

  • Added scanin .cht for Christophe Metairie's Digital Target 2019 with 522 patches.
  • Changed spotread -E option to work with all the spectral instruments, and now argument should be a transmission spectrum of the filter placed on the instrument.
  • Added targen options -M to generate device space cube surface steps, and -n option to generate neutral axis steps based on a pre-conditioning profile.
  • Added support for SpyderX colorimeter.
  • Fix bug in oeminst/oemdnld that causes crash.
  • Improved oeminst to look in WOW64 installation locations.
  • Improve oeminst to cope with wider range of oem files, and defined .edr technology type 23 as LCD IPS with WLED backlight, since this seems to be what a Lenovo Thinkpad P70 has.
  • Added new disptech definitions to match latest X-Rite usage.
  • Added -s flag and -d option to specplot.
  • Added support for Lasersoft ISO12641-2 reflective and 3 part transmissive charts (recognition files, cxf2ti3 tool, changes to average utility).
  • Added support for CMP_Digital_Target_Studio_Edition chart.
  • Change black ink "locus" rules (i.e. -K option) to just scale from zero to maximum possible K, rather than minimum to maximum K.
  • This makes these rules much more usable, since the sharp increase in minimum black near the black point will no longer badly distort the curve shape. This affects colprof, collink and xicclu.
  • Changed colprof and collink to not use pseudo-least squares averaging when generating B2A tables. This may reduce robustness and average accuracy slightly, but seems to improve smoothness.
  • Minor fix to gamut clipping code.
  • Added Yu'v' support to xicclu.
  • Fixed error reporting bug in spectro/hidio.c - on failing to open the instrument, the wrong last error value was reported.
  • Added dummy display option to dispwin, dispcal, dispread & ccxxmake, to allow using the -C option without needing to create any sort of test window. (Thanks to Florian Hoch)
  • Changed spotread so that spectral values are shown and logged using %g format for better emissive precision.
  • Add IES TM-30-15 (Method for Evaluating Light Source Color Rendition) to spotread.
  • Added optional spectrum save file argument to spotread -O option.
  • Changed spotread so that plot option -S doesn't wait for a keystroke before continuing.
  • Fix FWA bugs in spotread - wasn't saving FWA compensated spectra, was double correcting reference spectra.
  • Fix FWA compensation bug that sometimes lead to silly values when processing media with no FWA.
  • Changed colprof Display profile -ax option to create just XYZ cLUT profiles, rather than including dummy channel swapped matrix as well. This will force the use of the cLUT tags in any application/CMM that uses an unconventional tag priority when dealing with a profile that contains both cLUT and shaper/matrix tags. The -aY option has been added to create a diagnostic cLUT display profile that contains matrix tags with swapped color channels.

New in Argyll CMS 2.0.1 (Jul 9, 2018)

  • Increased maximum render channels to 16
  • Added -O option to collink to allow creating a link purely from calibration file.
  • Fixed JETI specbos & specval timeout when in averaging mode and dark measurement.
  • Changed JETI specval 1511 driver to ignore REMOTE command error with newer firmware.
  • Changed Klein K10 serial parameters in attempt to prevent serial lock up on MSWindows.
  • Made a failure of the conf:maxtin command with a JETI 1201 a soft error, to allow for old firmware versions.
  • Change colorhug Linux driver to reset on close. This may overcome a problem re-starting the driver.
  • Fixed i1Pro driver to cope with stripped down OEM i1Pro2 that is missing one piece of calibration information.
  • Fixed display calibration selection to allow for more than 62 entries. This is to fix problem using Klein K10 that has a lot of saved calibrations.
  • Changed spec2cie to add extra informational L*a*b* output fields, if a non D50 illuminant (-i option) is used.
  • Added -w parameter to spotread, to use the -i parameter illuminant for L*a*b* calculation.
  • Fixed bug in spec2cie - XRGA conversion wasn't saving spectrum out.

New in Argyll CMS 2.0.0 (Nov 20, 2017)

  • Returned input profile forced Absolute Colorimetric option with
  • -ua flag, after the -u option was changed in V1.5.0.
  • Added support for "pm" viewing condition (Print evaluation with partial
  • Mid-tone adaptation), and associated m: viewing condition parameter.
  • This is intended to address certain situations involving the use of
  • papers containing FWA/OBE brighteners when viewed in an environment that
  • has a very noticeably warmer white point than the paper itself under the
  • illuminant.
  • Added support for the X-Rite i1Studio
  • (AKA new ColorMunki Spectrometer) instrument.
  • Note that you may have to un-install and re-install the
  • system drivers on MSWindows, or update the udev 55-Argyll.rules
  • file on Linux.
  • Slight improvement to i1d3 accuracy, by rounding
  • the frequency mode measurements up by 0.5.
  • This makes frequency and period modes mesh better
  • in adaptive mode, as well as improving non-adaptive
  • mode accuracy subtly. (Thanks to Marc Repnow for
  • noticing this.)
  • Try and fix problem in triggering calibration when
  • ARGYLL_NOT_INTERACTIVE is set.
  • Fixed rspl scattered data setup to be unrestricted in
  • input dimensions.
  • Improve compatibility of txt2ti3, and added -D option to mark
  • output as Display but not Normalized to white.
  • Changed Huey driver to ignore return status of unlock command.
  • (Doesn't help make it work on the crippled "HueyColor"
  • some embeded instruments though!).
  • Modified collink to control Video encoded in/out sync level
  • preservation with #PRESERVE_SYNC, and default this to off.
  • Added experimental perceptual space "Lpt" based on
  • CIE 2012 cone space transform + IPT matrix and L* curve,
  • designed to replace L*a*b*.
  • Added support for custom Observer by using a .cmf file as
  • an argument to all tools taking an observer parameter.
  • Added support for proposed CIE 2012 2 degree & 10 degree observers.
  • These are based on the CIE (2006) 2-deg LMS cone fundamentals.
  • Fix problem with dispwin -E option not being shown in usage,
  • and only being applied when a calibration file is used.
  • (Thanks to Florian Hoch).
  • Added spotread -u option to display XYZ amd CIE 1976 Yuv values.
  • Added XRGA conversion support to spec2cie, as well as
  • better support in chartread and txt2ti3 for tracking
  • XRGA standard and polarization filter use.
  • Fix bug in spec2cie processing emissive .sp files.
  • Fix problem with i1d3 running direct USB (i.e. Not via HID)
  • on MSWin.
  • Fixed bug in render/timage -p. This wasn't working since
  • dithering was left on and 16 bit or dithered L*a*b* output
  • was broken.
  • Changed spotread ambient readings (CCT, CRI, TLCI) to show
  • CCT delta E in 1960 Duv units and others in Delta E 2000.
  • Also renamed (Invalid) notification to (Caution), since
  • the computed values themselves are not necessarily invalid,
  • just that the illuminant is out of whiteness (red/green) tollerance.
  • Added ARGYLL_UNTWIST_GAMUT_SURFACE environment variable,
  • that enables extra gamut clip surface processing that
  • may improve the smoothness of device links and B2A tables
  • for poorly behaved devices. Makes processing slower,
  • and can harm the accuracy and smoothness in other cases,
  • so probably shouldn't be used by default.
  • Fixed bug introduced in new colorimetric nearest clipping code
  • in rspl/rev.c in V1.9.0 that caused colprof using some ink limit
  • settings (such as -L0) to crash.
  • Fixed bug introduced in new colorimetric nearest clipping code
  • in rspl/rev.c in V1.9.0 that caused some (mainly XYZ clut) profiles
  • to clip badly, causing banding.
  • Improved dispcal -R VideoLUT depth measurement
  • algorithm robustness (allow for rounding offset).
  • Worked around latest OS X super slow opening
  • serial port problem (1.5 seconds to open a port!)
  • Added ColorCheckerHalfPassport.cht file.
  • Fixed bug in ChromeCast mDNS parsing that caused problems
  • with some devices with long names being detected.
  • Now ignoring Chromecast-Audio and (.ca flags & 1) == 0 devices,
  • and showing the friendly chromecast name if available.
  • Wait longer to find more Chromecasts, even if we've found one.
  • Fixed colprof bug when handling Display L*a*b* .ti3 data -
  • (Only converted L*a*b* of first sample to XYZ internally).
  • Added Wacom i1d3 support.
  • Changed dispwin to by default ignore Gnome colord,
  • and use its native ucmm for storage of display profiles,
  • since colord support for ArgyllCMS has proven unreliable.
  • This can be re-enabled by setting the ARGYLL_USE_COLORD
  • environment variable (i.e. to "true").
  • Change X11 root window _ICC_PROFILE_xxx atom setting for
  • Xrandr case to now match the Xinerama order, so that
  • _ICC_PROFILE_xxx atoms match, irrespective of which
  • extension applications are using. This improves conformance
  • to "ICC Profiles in X Specification 0.2".
  • Improved ucmm install/load/delete to better respect
  • systemlocal/user scopes, as well as eliminating need
  • for profile name on delete when ucmm is used.
  • Improve fast serial port scan to better detect Lumagen Radiance
  • without upsetting it.
  • Added ARGYLL_EXCLUDE_SERIAL_SCAN environment variable, to allow
  • suppression of fast serial port scan of sensitive devices.

New in Argyll CMS 1.7.0 (May 1, 2015)

  • Improved gamut mapping to reduce unnecessary changes to less saturated colors such as skin tones
  • Add support for DataColor Spyder 5
  • Add support for ColorHug2 colorimeter
  • Add support for Klein K10-A colorimeter
  • Added Google ChromeCast as a test patch generator for Video displays
  • Added ls2ti3 tool to convert LightSpace .bcs files to .ti3
  • Added IRIDAS .cube 3DLut format support to collink
  • Add X3D and X3DOM support as an alternative to VRML, and make X3DOM the default
  • Add better cross compatibility with non-Argyll ICC profiles using ArgyllCMS 'arts' tag to mark 'wtpt' Absolute Colorimetric chromaticity transform, as well as implement proper absolute colorimetric intent for Display profiles use the 'chad' tag. Note that the standard ICC profiles provided by ArgyllCMS in the ref directory (such as sRGB etc.) now include an 'arts' tag
  • Ignore any patches that have zero values for creating Display profiles, unless they are for device zero
  • Fix various instrument communications problems for JETI specbos, DTP20, DTP92 & DTP94
  • Fix gestaltSystemVersion warning on OS X 10.10
  • Fix very major bug in illumread. It wasn't actually working at all since V1.4.0
  • Added collink -I[gG][:p.p]:x.x options that allows an output offset gamma curve be targetted instead of BT1886
  • Added dispcal and collink -b black point hack. This forces the input zero to map to the output zero for well behaved displays, reducing dependence on the instrument accuracy for a very dark black point
  • Added preset list of display techologies to select from in ccxxmake
  • Added a -P prune option to profcheck, that creates a .ti3 file pruned of any patches that have a delta E fit error greater than a threshold. This may be of use in eliminating bad reading values from a measurement set
  • Added histogram plot option -h to both profcheck and verify
  • Added a dispread & fakeread -Z option to set the number of bits to quantize the test values to
  • Fixed bug in targen - the -V dark emphasis wasn't being applied to OFPS generated points
  • Make sure that if an instrument display reading is interrupted by a forced calibration, that the user is asked to place it back on the display before resuming the measurements

New in Argyll CMS 1.6.3 (Jan 31, 2014)

  • Added ProPhoto.icm and ProPhotoLin.icm to ref profiles.
  • Fix bug in xicclu -py conversion.
  • Added code to minimize ICC rounding error on matrix profile white point accuracy. Re-generated all reference profiles with this change.
  • Changed i1d3 driver to completely ignore any EEPROM checksum errors for non "A-01" rev. instruments.
  • Made transplot handle RGB->RGB device link.
  • Removed colprof -y option. Use "profcheck -v2" instead, as it is more developed.
  • Fixed bug in dispcal - it was not using the final measurement pass to update the calibration curves.
  • Fixed bug in spotread, dispcal & dispread for CCSS capable instruments where refresh display types was being ignored if a custom observer was used, and/or the custom observer as being ignored, and/or a CCMX was being ignored. Changed instlib semantics for inst_opt_set_ccss_obs :- this is now set immediately, and applied also to any subsequent set_disptype() or col_cal_spec_set().
  • Renamed verify to colverify to avoid clash with MSWin program of the same name. Made it print the patch location for -v2 if it is present in the file.
  • Changed targen to ensure that -V and -p options effects are reflected in the resulting expected CIE values of the .ti1 file.
  • Changed targen so that -V parameter also affects single channel, grey wedge, grid & body centered grid point distribution.
  • Changed colprof to deal with variable grid distribution in a more neuanced way, to reduce overshoot artifacts when the -V parameter is used.
  • Changed colprof to used a power_like function for the grid distribution shape from the -V parameter, so as to avoid issues with a power curve infinte slope near zero.
  • Changed colprof to used a scaled down value of the targen -V parameter as the default for its -V parameter. Documentation now recommends more moderate values for -V.
  • Added a special case to collink for RGB video input encoding to (attempt) to fine tune the black point to compensate for it (probably) not falling on a cLUT grid point. & out encoding
  • Tweaked dispcal to try and improve accuracy of black point calibration.
  • Switch dispread to use NoClamp readings, so that average black point value is not biased.
  • Fixed bug introduced into 1.6.2 oeminst that prevents .ccss files being installed.

New in Argyll CMS 1.6.2 (Dec 4, 2013)

  • Added "dark region emphasis" -V parameter to targen and colprof, in an attempt to improve the accuracy of display profiles intended for use with video. This should improve the subsequent black point accuracy of the profile.
  • Fixed bug and tweaked dispcal black point optimization to err on the black side. Added -v3 for even more debugging information.
  • Changed i1d3 driver to be more forgiving of EEProm checksum calculation, so that it works with the latest release "A-02" rev. i1 display pro & colormunki display instruments, as well as improving its robustness in the face of errors.
  • Fixed race condition bug in OS X HID driver. This fixes occassional problem with i1d3, and also solves problem with the ColorHug on OS X.
  • Fixed problem with TV encoded output and dispread -E -k/-K.
  • Fixed minor bug in DE94 in icclib.
  • Fixed major bug in illumread - result was being corrupted.
  • Fixed "edges don't match" bug in printarg when -iCM -h -s/-S used.
  • Fix bug in -H flag in ccxxmake, chartread, dispcal, dispread, illumread & spotread so that it works once again.

New in Argyll CMS 1.6.1 (Sep 30, 2013)

  • Fix bug in "average -m"
  • Fix oeminst to work with a wider range of i1d3 install files.
  • Fix ColorMunki reflective measurement accuracy, particularly for reflective readings. This has been poor since V1.5
  • Fix bug in using DTP94 on Apple OS X introduced in V1.5
  • Fix MadVR connect code to look for appropriate 32 bit or 64 bit .dll.
  • Improve MSWin system driver installation by creating valid ArgyllCMS.cat file to match ArgyllCMS.inf. This eliminates the need to "Disable Driver Signature Enforcement", as well as allowing installation on MSWin 8.1.

New in Argyll CMS 1.6.0 (Aug 16, 2013)

  • Added support for JETI specbos 1211 and 1201 (Thanks to JETI for their support!)
  • Added Video profiling & 3dLut creation support for eeColor and MadVR. See video section in tutorial for pointers to relevant changes to tools. This includes support for MadTPG + various Video standard ICC profiles + verification workflow.
  • Linux profile installation will use colord if libcolordcompat.so is present on system.
  • Fix ColorHug driver so that it is backwards compatible with FW 1.1.8
  • Made sure that MSWin test colors are not color managed. This may affect Vista, Win7 and Win8.
  • Changed spectro/dispwin.c so that null transform color matching is used for displaying test patches on OS X >= 10.6. This should fix calibrating/profiling secondary displays on > OS X 10.6. Note that the 32 bit 10.4 binary will still have problems on > OS X 10.6.
  • Changed instlib API ambient XYZ and spectral units to Lux. In previous versions of instlib they were Lux/pi.
  • For those instruments that support it, made ambient readings honor refresh mode measurements, to improve repeatability when measuring regularly flickering light sources. (specbos, i1d3, i1disp).
  • Changed spotread -ew mode to be Bradford chromatic transform rather than XYZ scaling, to better match Argyll ICC abs. vs. rel.
  • Added support to xicclu to lookup colors though CAL files, both forward and backwards. Will also plot CAL file contents using -g.
  • Added -Y R:rate option to spotread, dispcal, dispread & ccxxmake to allow setting a chosen display refresh rate. This can be used with the Colormunki display, as well as situations in which refresh rate measurement is not reliable.
  • By default printtarg will create PS and EPS files with a CUPS job ticket to disable color management. Use the -U flag to disable this.
  • Added display update delay calibration support to i1pro and ColorMunki (just like i1disp3), to improve measurement times.
  • Changed dispcal & dispread so that they wait up to 0.5 seconds when reading dark patches after light ones to allow for display fall time. Added patch order optimization for display patch sets in targen to minimize the extra time.
  • Changed dispwin daemon loader mode option from -E to -X. Added -E option to encode test patch colors in Video 16-235 range.
  • Changed dispcal verify option from -E to -z. Added -E option to encode test patch colors in Video 16-235 range.
  • Added -E option to to dispread to encode test patch colors in Video 16-235 range.
  • Changed CIECAM02 Flare model to distinguish between Flare from the image itself, and Glare from ambient light. This allows scaling Glare with ambient automatically. Changed enumerated viewing conditions for new Flare/Glare settings, changed all to Flareless to improve dark image behavior, while retaining Glare modelling. Tweaked brightness and ambient values.
  • Improved i1pro hi-res mode to improve accuracy.
  • Added Body Centered Cubic grid option to targen.
  • Added -Yn flag to dispcal and dispread, which skips asking the user to place the instrument on the measuring spot.
  • Improve robustness of i1d3 display update measurement code.
  • Added support for applying calibration curves in collink.
  • Changed spotread so that it won't fall back to emissive spot mode if an ambient reading is requested.
  • Turned off B2A table clip map smoothing, as it seems to introduce reversals for some data sets, and provides little benefit.
  • Fixed crash in ucmm/ucmm.c when loading certain profiles using dispwin (thanks to Torok Edwin).
  • Fixed gamut mapping intent "rl" to really use relative L*a*b*
  • Fix bug in cicam02 in V1.5.0 that causes some mapping problems in the red for collink -ir or -ila.
  • Changed cctiff so that it does lossless JPEG copy when there is no color transformation. This makes it more useful for embedding a profile.
  • Fix xicclu so that it works with device links.
  • Fixed bug in shaper/matrix profile curves that caused random bumpy black behaviour (shaper curve optimization local minimum problem).
  • Don't add colorant tag to .tiff files in cctiff unless it is a non-standard space, as Photoshop will barf on such files.
  • Fix bug with Spyder not being able to break out of dispcal adjustment loop.
  • Fix bug in xicc/xicclu, -K flag not being recognised.
  • Fix bug in xicc/xmatrix.c introduced in V1.5 that prevents matrix only profiles from being created.
  • libusb 1.0 is now deprecated in favor of native USB drivers.

New in Argyll CMS 1.3.6 (Mar 20, 2012)

  • Ecperimental ColorHug support is compiled in, but is disabled unless the environment variable "ENABLE_COLORHUG" is set
  • The ColorHug currently doesn't seem to work reliably accross all platforms Argyll supports)
  • Modified spectro/hidio.c for OS X so that it only attaches run loop when an hid call is made to make the SW more GUI friendly
  • Fixed bug in Spyder 2 driver, where aborting a reading ie. in interactive dispcal), leaves hardware out of sync with driver, leading to a bad next reading
  • Reworked i1disp driver slightly to improve repeatability when in CRT mode
  • Added a -V option to spotread to allow tracking reading consistency
  • Tweaked i1d3 integration times, and added refresh period calibration to the refresh display mode
  • Refresh display measurement times are double non-refresh displays
  • Added Spyder4 support. Note the need for sptd4en
  • Speeded up Spyder on brighter colors. Hopefully this doesn't affect accuracy
  • Changed ccxxmake to create default .ccss with just RGBW, and not to weight W. This may give better matching. Made corresponding change to CCMX, giving the white patch 1/4 weighting of sum of all other patches
  • Changed display selection (-y flag) to be instrument specific. This is to support the Spyder4 and ColorHug
  • Improved i1d3 period measurement logic to improve measurement speed and accuracy for dark colors
  • Removed Linux serial port filtering code for USB serial ports, since it may interfere with other devices
  • Fixed bug in black point finding code in xicc/xicc.c that affected xicclu
  • Fixed txt2ti3 to cope with inputs that don't have any device values
  • This is useful for dealing with input chart reference values
  • Fixed applycal so that it applies calibration to both A2B and B2A tables to preserve softproofing
  • Changed ICC unknown manufracturer and model Tags to value 0, rather than "????"
  • Fixed timeout in SpectroScanT reference transmission measurement
  • Switched ucmm over to using spectro/xdg_bds code to solve problem with multiple paths in
  • XDG_*_DIRS. Changed xdg_bds and aglob code to an "MIT" license, consistent with all the ucmm code
  • Made DTRP94 driver ignore with a warning any
  • NEEDS_OFFSET_DRIFT_CAL_ERR after a full reset It seems that occasionally a few instruments do this and X-Rite don't appear to be prepared to treat this
  • as an instrument fault
  • Added support for Datacolor SpyderCheckr (Thanks to Jos Pereira)
  • Improved the ability of spyd2en to cope with slightly different setup.exe formats
  • Made sure that dispcal and dispread now error if reading of ccmx or ccss files fail
  • Add support for NEC SpectraSensor Pro version of the i1d3
  • Add smoothing control flag to printcal
  • Fix bug in ccxxmake with regard to -I and -T options
  • Fix bug in ccxxmake that stops the test patch from being scaled properly using -P
  • Supress TIFF open message errors better when attempting to open an ICC profile embeded within a TIFF file

New in Argyll CMS 1.3.5 (Mar 20, 2012)

  • Add support for the SpectraCal version of the i1d3.
  • Fix bug in dispread where spectral instrument readings weren't being normalized to the display white Y when they were supposed to be.
  • Kill i1ProfileTray.exe process if unable to open i1d3 on MSWin.
  • Tweak gamut mapping to improve dark area mapping, non-monotonic profile inversion, and contrast preservation to small gamut.
  • Fix bug that stopped ccxxmake being able to make ccmx's.
  • Unable to use colorimeter due to "instrument doesn't support spectral or CCSS" error).
  • Fix bug (crash) that affects ColorMunki design/photo display measurement.
  • This also stops it restoring a calibration (-N flag).
  • Fix DTP20 chart printing - TID was sometimes incomplete.
  • This shows up on a 4x6 chart.
  • Changed DTP20 chart to use a much smaller and ligher row label to try and avoid mis-reads.

New in Argyll CMS 1.3.4 (Mar 20, 2012)

  • Fix gamut code to ignore setting primary/secondary cusps that are unlikely to be true. This avoids buggy gamut mapping behaviour for gamuts that are very small and odd shaped.
  • Tweak saturation intent very slightly to improved hue consistency.
  • Added support for the X-Rite i1 Display Pro and ColorMunki Display colorimeters. As part of this, added support for CCSS calibration
  • files for the instruments and added CCSS support to ccxxmake (renamed from ccmxmake).
  • Provide new tool i1d3ccss to translating and installing CCSS files as well as the manufacturers calibration files for these instruments.
  • Added non-default observer support for these instruments too.
  • Fix all colorimeters so that the ccmx matrix is used only for non-Ambient measurements.
  • Change printtarg for DTP20 to allow for variable patch size.
  • Note that patch length must me 6.5, 7, 10, 12.5 or 13 mm.
  • Changed dummy display matrix table to have channels rotated rather than R & G swapped, to make it more obvious.
  • Added option to colprof to allow setting the default profile rendering intent.
  • Fix bug in spectro/average.c - field match check index was wrong variable.
  • Fix bug in xicc/xlut.c that caused bad reverse lookup values at some clipped grid points.
  • Increase number of re-seeding retries in target/ofps.c, and fix bug that caused failure to finish rather than error.
  • Enhanced spectro/fakeread so that it will process a .ti3 file that has been renamed to .ti1.
  • Fix bug in matrix input profile white point selection, add in slight neutral bias code used in clut profiles.
  • New profcheck -I wasn't working - fix option parsing.

New in Argyll CMS 1.3.3 (Mar 20, 2012)

  • Added -I relative colorimetric intent flags to spectro/fakeread and profile/profcheck, for special use.
  • Fixed compiler dependant bug in Eye-One pro and (posibly) Munki high res. spectral wavelength calculation.
  • Add support for install variables DESTDIR and PREFIXin Jamtop. These can be set on the command line using "jam -s"
  • Add ref/linear.cal to distribution.
  • Added targen -N parameter to allow adjustment of neutral axis patch density emphasis. The default effect has also been increased. Note this is only effective when perceptual distributions are created, or the defaul OFPS with a high level of Adaptation is used. This will be most effective when a pre-conditioning profile is used. This may reduce the number of patches needed for a given quality profile, or increase the quality for a given number of patches. This should improve the result without needing to add explicit grey test patches.
  • Added spectro/instlib.ksh script to assemble all the files needed for a standalone instrument library. Changed licence to GPLv2 for the files included in the instlib.zip file that is thus created.
  • Can be built using the included Makefile, once libusb-1.0A has been built.
  • Fix Jambase so that recent MingW compilers don't need extra .dll's
  • Change Linux serial code to test ports using O_NONBLOCK
  • Modify xspect & illumread to improve realism of UV spectrum estimation.
  • Fixed profile/txt2ti3 so that a sample name that looks like an integer is treated as text. (Fixes problem with latest ProfileMaker file).
  • Added LCh option to spotread.
  • Fixed numerical issue in scanin/scanrd.c, where large input rasters would cause fitting to fail.
  • Modified colprof input chart white patch detection to slightly favour patches that are close to D50 neutral.
  • Scaled XYZ PCS A2B profile deviation to improve default smoothness.
  • Change Make cLUT input -u black & white point extrapolation to use gamma curve + one order shaper, and increase these extra points weights.
  • Change black point search weighting to give a*b* error less weight, so that devices narow gamuts due to strange inks get a better chance at a reasonable black point.
  • Added -Z option to colprof, to allow setting ICC attribute flags.
  • Attempted to (yet again) fix the shortcoming of cam02 blue behaviour.
  • This may well improve the purity and color of blue gamut mapping.
  • Also fixed problem with inversion not matching the forward conversion, resulting in gamut mapped cLUT tables white points not being exact, and resulted in non perfect device values for white.
  • Added -R flag to colprof, which restricts the values of the white, black
  • and primaryies to have Y

New in Argyll CMS 1.3.2 (Mar 20, 2012)

  • Turn off debugging that was accidentally left on in FWA code.
  • Add gcc 3.3 PPC optimizer bug workaround to FWA code in xicc/xspect.c
  • Change shaper/matrix profile back to using power curve as 0th order shape. Improve it with input & output offsets and straight segment at zero. Make cLUT input -u black & white point extrapolation use pure shaper curves with special tweaks.
  • Increase dispcal native white target weighting from 10 to 50 to encourage white to be device 1.0,1.0,1.0 more strongly.

New in Argyll CMS 1.3.1 (Mar 20, 2012)

  • Tightened up scanin -ca option parsing to reduce chances of false trigger.
  • Added synthetic device white/black point for input cLUT profiles where the -u flag is being used. Particularly for Lab PCS, this can improve the reasonableness of the extrapolation along the neutral
  • axis. Added -un flag option to disable this.
  • Changed shaper/matrix profiles so that they use pure shaper curves rather than base gamma + shapers, as this seems to be a better fit for real device behaviour.
  • Fixed MSWIN Vista/Win7 problem where having Task Manager running would stop display test window updating. Also fixed plot library to avid the same problem.
  • Added -i (input) option to profile/txt2ti3, as well as making device value scaling be guessed from the data range.
  • Fixed problem in MSWin .inf files not copying libusb .dll to system directories.
  • Swapped dispwin -E and -D flags, to make -D debug consistent throughout tools.
  • Changed the ARGYLL_NOT_INTERACTIVE mode so that all return and line feed characters are ignored, so that they can be used freely to flush stdin without triggering anything.
  • Added ref/ECI2002.ti1, so ECI2002 test values can be printed using printtarg.
  • Added -L option to chartread, to save both XYZ and Lab values.
  • Fixed endless loop problem with chartread -r -p on fully read chart.
  • Increase display patch color change to instrument measurement
  • settling time from 60 to 200 msec, to allow for very slow
  • MVA and PVA LCD displays.
  • Fixed problem in Jambase that stops MSWin MingW compiling.
  • Added -S option to chartread, that suppresses wrong strip and unexpected value warnings.
  • Fix dispcal and spotread so that color temperature takes into account any non-standard observer (ie. the color temperature is the closest point on the spectrum locus as determined by the chosen observers interpretation of the Plancian or daylight spectrum.)
  • Added 1964_10c observer to spectro/dispcal, to better allow comparison to
  • the default numbers.
  • Added recognition for Huey built into Lenovo W series Laptops.
  • Fixed chartread/dispsup/spotread etc. so that -N isn't fatal if the instrument doesn't support it.
  • Fixed dispcal to disable black & white drift tracking during interactive adjustment.
  • Added -s option to ccmxmake to allow the number of test patches to be set.

New in Argyll CMS 1.3.0 (Mar 20, 2012)

  • Added option to dispread to save non-normalised to Y=100 values.
  • Fixed colprof to normalise display spectral values that haven't been normalised.
  • Fixed profcheck to normalise display spectral values that haven't been normalised.
  • Fixed verify to scale white point reference to be larger than largest Y value
  • being compared.
  • Added option to dispcal and dispread that attempts to counteract instrument
  • black drift and display white drift (-I option). This may help with
  • instruments that haven't properly acclimatised to the measurement location, and LCD displays that also take some time to stabilise.
  • Added option to dispcal to allow specifying a non 1931 2 degree observer
  • if a spectrometer is being used.
  • Added new utility spectro/ccmxmake, which makes Colorimeter Correction
  • Matrices for a particular Colorimeter/Display combination, using a Spectrometer as a reference. The resulting .ccmx file can then be used
  • with spotread/dispcal/dispread (-X option) to improve the accuracy of
  • the colorimeter on that particular display.
  • Fixed bug in spotread's handling of emsissive measurements.
  • If the XYZ was computed from spectral, it was using a D50 white instead of no white reference.
  • Fixed bug in i1pro normal resolution wavelength calibration, introduced in V1.2.0.
  • Fixed bug in the way illumread displays available instruments.
  • Changed libusb V1.0 name to libusb-1.0A, so as not to clash with any official but different libubs V1.0 installation.
  • This may necessitate re-installing device drivers on MSWin.]
  • Added support for HP DreamColor version of the i1 display.
  • Fix problem with ARGYLL_NOT_INTERACTIVE - reading from instruments
  • was not actually possible, because polling for input was disabled.
  • Adjust ColorMunki dark threshold to reduce misread reports.
  • Add inconsitent data to debug output.
  • Fix bug in adaptive mode - the integration time was sometimes
  • too short.
  • Set adapative emissive target at 95% to allow a little more margin to saturation.
  • Fix some minor compiler warnings.
  • Added direction indicators to xy values in dispcal interactive monitor adjustments.