ChromIQ v4.0.0
v4.0.0
34 new or changed things and 18 fixed problems and 3 internal changes in this release.
✨ What's new
🎯 Verification, from start to finish:
-
Three ways to check a profile, clearly told apart. A chart built from
the profile's own gamut (the everyday accuracy check), a chart printed
through the profile (the strict whole-path check), and a sheet printed from
your own application with the profile applied (the everyday-chain check).
The Dictionary entry "Which verification should I use? (the three ways)"
compares them, and the report records which way every sheet was made so
they are never mixed silently. -
A verification chart built from your profile's own gamut. The FROM
PROFILE GAMUT module on Create Chart asks the profile which colours it
can actually print — from a fixed, published reference set — and builds the
chart out of exactly those, so no patch is wasted on a colour that was
never possible on this paper. White, black and evenly spaced grey steps
take about one patch in eight — enough of a grey wedge to catch a
drifting printer, without swallowing a small chart. Repeated checks of
one profile always get the same colours, so this month's figures compare
patch by patch with last month's. The chart already carries the profile, the Print Chart tab selects
Raw for it by itself, and for a verification run with a built profile this
module is the one Create Chart opens on. -
A verification chart can be printed THROUGH its profile. The Print
Chart tab's Colour row chooses "Through the profile" (ChromIQ converts
every patch itself — the printer's own colour management stays off, so
nothing is ever converted twice) or "Raw — no profile". The choice, the
profile file and the rendering intent are written into a print record
beside the chart, and the report states them for every sheet. -
Sheets ChromIQ did not print are asked about, once. Measuring or
importing a verification sheet that has no print record raises "How was
this sheet printed?" — Raw / With colour management / Not sure (always
safe, stores nothing). The answer is kept with that one measurement. -
Import a measurement made in another program. With Run type set to
Verification, the Measure tab shows an IMPORT module (it exists
only for verification runs): it files an i1Profiler (or any .ti3)
measurement as a dated verification — converted, checked patch-for-patch
against this run's chart, and stored exactly where a native measurement
would go. Your original file is never touched. -
The report judges every sheet by the fair yardstick. A print that
mapped white to the paper — through the profile with relative intent, or
another application's colour management — is judged relative to its own
paper white; everything else is judged as measured — no white
adjustment (a way of comparing, not a rendering intent). The report says
which was used, per sheet, and physical readings like paper white and
deepest black always stay as measured. -
Colour accuracy is split into within / beyond the profile's gamut.
Some design colours are simply not printable on a given paper; their
distance describes the gamut, not a mistake of the profile. The report
shows both groups — side-by-side columns in the detail chapters, row
blocks in the Overview so dated columns stay comparable — and Pass/Fail
judges the within-gamut figures. Every patch stays counted and visible. -
Raw sheets get a drift figure instead of an unfair verdict. A sheet
printed raw is not expected to match the design, so it is never graded
Pass/Fail against the profile thresholds. Instead the report compares it
with your previous raw check of the same chart — print against print,
patch by patch. The first raw check becomes the baseline; checks made with
different charts are refused rather than mispaired. -
📈 The Measurement Report grew into the profile's health record. It
gathers every dated check of a run automatically, trends colour accuracy,
paper white, darkest black and the cube corners over time, lets you
untick individual runs, warns about mixed instruments and mixed printing
methods, carries adjustable Pass thresholds, and remembers every option
you set. Save report as PDF produces a print-sharp document (vector
text, ~300 dpi charts) whose proposed folder always matches what the
report covers — one dated check, one run's checks, or the whole profile.
🧰 And the rest:
-
🧭 The run bar — one place that says what you are working on. Above the
tabs, on every tab: Profile run, Run type (Profiling,
Verification — and Calibration, once its options are enabled in
Preferences) and — for verifications — which dated check,
each with its own ⓘ explanation. Beside them sit the run actions:
duplicate a run, restore the chart a measurement was made with, and
delete — with a window first that says exactly what would happen. The
whole app follows the bar: Create Chart, Print, Measure and Build Profile
always show the run it points at, and when no project is loaded the bar
says so instead of guessing. -
📦 Ready-made Red River Paper charts. Four built-in starting points in
Create Chart carry Red River's own 2052-patch Standard Patch Set v25 —
byte-identical to their published file — laid out and verified for i1Pro
(A4 and Letter, with the clip-border record) and ColorMunki. The patch
set is fixed so results stay comparable; every layout control (paper,
margins, branding) stays yours to change. -
Every setting belongs to the run you set it on. Create Chart, Measure
and Build Profile each remember their own settings per run — and per run
type, verification included; switching run, opening a project or changing
run type loads them, leaving a tab saves them — without a dialog. This
holds before any chart exists, and a generated chart's own file records
the complete recipe that made it, so returning to a run always shows the
options its sheet was really built with. A brand-new run starts from the
values of the run you were on — by design, so "make another run like this
one, with one change" needs no preset. -
Runs have descriptions. "Matte paper, second attempt" appears in the
run bar, the measurement report and on the printed chart
({rundescription}); verifications and the calibration have one too. The
profile description writes itself from project, run and date — editable,
or off. And the installed copy of a profile can be named after its
description (a checkbox on Build Profile), so the profile picker in your
editor reads like your own words. -
Calibration is a run type. Once "Enable calibration options" is
ticked in Preferences, Calibration appears in the Run type list —
choose it and the whole app follows: chart, measurement,.calfile and
its description live in the project'scal/folder, shared by every run,
and each profile run records which calibration it was built with — one
run can keep an older calibration with "Include" while another applies
the new one. -
🔔 Sounds during measurement — a strip accepted, a patch misread, a
session finished — so you can keep your eyes on the chart. Preferences →
Sounds — pick a sound per event, or point ChromIQ at your own sounds. -
A gentle warning when you swipe a strip too fast. Every instrument
takes a fixed number of readings per second, so a strip has a minimum
time it needs — swipe faster and patches get too few readings, even when
ArgyllCMS still accepts the strip. ChromIQ knows the pace for your
instrument, shows a live verdict while you measure, and mentions it when
a strip was read quicker than the minimum, so you can re-read it before
it costs you accuracy — the strip reading times under the chart preview
mark such a strip with an ✕. Tune or switch it off under
Preferences → Measurement ("Warn me when I read a strip too fast"). -
📖 The "Getting started" help card was rebuilt: a clickable chapter
index, chapters that walk from first start to a finished profile, its own
chapter on checking a finished profile (the three ways, and which to
pick), and a plain-language overview of where your files are stored — in
all twelve languages. -
🌍 Twelve languages, complete — German, Spanish, French, Italian, Dutch,
Portuguese, Swedish, Norwegian, Polish, Russian, Japanese and Chinese —
every button, message, tooltip and help text. -
Demo projects for learning and testing, attached to this release as
downloads:
ChromIQ-demo-projects.zip
demonstrates the file-handling rules step by step (including projects in
the old 3.13 layout, to watch the migration happen),
Demo-Report-Matrix.zip
holds thirteen documented Measurement Report cases with one ready-made
PDF per case, and
ChromIQ-Switching-Demo.zip
demonstrates the per-run settings rules with documented test cases. -
Preferences → "Hide the log panel on every tab", for when the chart
preview deserves the room. The full log is still written to disk.
🔁 Changed
-
The ChromIQ layout engine is the default for new charts — in Manual
mode too, where printtarg stays one untick away (Guided has used the
engine all along). A saved echo of the old off-default is migrated once;
a choice you make yourself is never touched, and charts that exist keep
the layout recipe recorded in their own file. -
The chart-reading engine has left the Beta tab. It and its
companion options (patch flagging, calibration retries, faster
connection, the misalignment warning) now live at the top of
Preferences ▸ Measurement, and the engine no longer carries a beta
label — only the profile engine is still experimental. -
The measurement report explains its own limits. How to read this
report now says what the one ΔE figure bundles — the profile's
conversion of each colour, the printer's behaviour on the day, the
instrument's own small uncertainty — and points to Check & Refine ▸
Analyse Profile Quality as the check that looks at the profile
alone. It also says plainly what the figures are for: comparing a
profile with itself over time, not ranking papers or printers against
each other. The coverage line in Create Chart and the report's
within-gamut note now carry percentages besides the counts. -
Preferences links the ChromIQ website. The "Created by" line above
the buttons carries a Website link in the app's accent colour — one
click to the showcase page. -
The measurement report breathes, and its PDF prints the same
everywhere. A small gap under every section headline, after the intro
lines, and between the four trend charts; each section starts on its own
PDF page, and a table always keeps its headline beside it. Headline sizes
are pinned, so a saved report renders identically wherever it is made.
The report window opens a little wider, and the console warning about a
missing "Sans-serif" font is gone. -
The measurement model is consistent everywhere. Replacing a chart,
rebuilding one, measuring over an existing measurement, deleting a run —
each has one window, one wording and one outcome, whichever tab you reach
it from. The rules live indocs/design/and the app is tested against
them. -
Nothing is deleted, only archived. Replaced measurements, regenerated
charts, redone calibrations and replaced verification charts all move to a
datedold/folder — and the windows say so before you commit. -
Every measurement keeps a copy of the chart it was measured with, saved
the moment measuring starts — profile runs, dated verifications and the
calibration alike — and Restore Used Chart puts it back. A dated
verification is always judged against the chart it was measured with,
even if the shared chart was replaced later. -
File dialogs are ChromIQ's own everywhere — with the sidebar shortcuts
to your working folder — instead of the bare system dialogs. -
🗂️ Existing projects are migrated in place. A project from 3.13 or an
earlier 3.14 is reorganised into the new folder shape the first time it is
opened — every old file kept, the plain-language folder guide ("Where are
my files?" in the Welcome window) always current. -
The interface holds still. Buttons sit in the same place on every tab,
the log panel ends on the same line shown or hidden — and can be dragged
as large as the window allows — the run bar no longer shifts during
start-up, and windows placed off-screen by the system are nudged back so
their bottom row of buttons is always reachable. -
The icons were drawn for the job. Load Project and Load chart have
their own recognisable icons, the Duplicate and Calibration actions got
purpose-made marks, and the run bar's action marks were aligned optically
— reviewed on screen, in light and dark mode, before being adopted. -
The windows that ask what to do with a chart read like every other
window — explanation in plain text, buttons in a row, Cancel set apart,
long project names shortened in the middle with the full name given in the
text. -
ChromIQ starts a little quicker — the printer list is fetched when you
first open Print Chart rather than while the window is being built.
🔧 Fixed
This entry covers everything that changed since v3.14.7, the last stable release — 224 betas' worth of work, grouped so you can find what affects you instead of reading a diary. The individual beta histories remain in the repository.
If you only read one paragraph: ChromIQ 4.0 looks after your work — every
run keeps its own chart, measurement and settings, nothing you made is ever
deleted, and checking how good a finished profile really is has become a
guided, honest, repeatable workflow. Your existing projects are picked up
exactly as they are: ChromIQ migrates them in place the first time it opens
them, keeps every old file, and there is nothing you need to do first.
Two headlines in more detail. ChromIQ now keeps track of your work for
you: a profile run
holds its own chart, its own measurement, its own settings and its own
description; nothing you made is ever deleted, only archived; and every window
that could cost you something says exactly what it is about to do. And
checking a finished profile is now a first-class workflow: three clearly
explained ways to verify, honest statistics for each of them, and a
measurement report that keeps the whole dated history of a profile's health.
(New words along the way — "gamut", "drift check", "judged as measured" —
each have a plain-language Dictionary entry: open the Welcome window's
"Dictionary and terminology" card. The card "Check a finished profile
(verification run)" walks the whole workflow step by step.)
Two hundred and twenty-four betas fixed far more than fits a list — the
per-beta histories in the repository carry the complete record. What users
met most sat in measuring and in chart handling, so those come first:
While measuring:
- Pressing Esc during a measurement no longer throws your readings away.
- Patches no longer come back as "inconsistent" for no visible reason —
the tolerance sent to the instrument was stricter than the manufacturer's
own default. - Several measurement windows never appeared at all when the ChromIQ
reading engine was in use — the abort confirmation, failure windows, and
two that opened in silence. All reachable now, verified against a real
instrument, and the sound tables for every window are written down as
specification. - A resume no longer archives the measurement it resumes from, a
finished re-measurement of a whole chart announces its completion, and a
good measurement is no longer called foreign while guided refinement
loses its ticks. - The "this chart already has a measurement" window opens showing what
the panel actually says — its old answers could quietly switch an armed
refinement off and turn the next read into a replacement. - "No instrument found" fired once per app run instead of every
attempt, and the abort window wording was reworked. - Text typed for a "New run" is kept, and lands on the run you make.
- The strip reading times sit exactly under their strips — they used to
drift right of their strips as the preview re-fitted; they are placed
live at every paint now, and on a small window they split into two
staggered rows so every time stays readable.
Charts and previews:
- "This chart was made for a different instrument" could name the wrong
instrument — it compared your connected device against a setting rather
than against the chart itself. - Restoring a calibration chart put back a completely different chart,
and a calibration restore redrew the selected run's chart. - The chart patch-set editor and the 3D patch view opened the run's
chart, not the chart you had selected. - The windows that ask what to do with a loaded chart were rebuilt —
explanation in plain text, buttons on one row, Cancel set apart, long
project names shortened without clipping ("JSE AS BASE FOR A NEW
PROFILE" is gone: windows widen to fit their buttons, everywhere). - The auto-update preview judged the wrong chart after switching
modules, and a switched-off option now looks switched off in both
themes. - printtarg margins were applied in the wrong order (top/right/bottom/
left confusion) — charts now sit where the instrument minimums say.
Reports, projects and the app around them:
- Checking for updates works again for stable versions. The check used
to fail with "No release tag found" whenever the newest releases were all
betas; it now asks for the latest finished release directly. - The measurement report's PDF paginates cleanly — headings stay with
their tables, the trend legend never overlaps the graph, and charts print
sharp instead of pixelated. The proposed save folder follows the
four-location design again. The report window itself keeps its run list
to five lines, its charts readable and its buttons on screen at every
window size. - A damaged
meta.jsonno longer stops a run remembering anything, and
runs write their metadata atomically. - Help texts tell the truth. The verification help card described a
colour-management print path the app deliberately prevents; the gamut
check was described as a drift check; "as measured (absolute)" read like
a rendering intent. All corrected — and every such correction is now
guarded by a test.
🔧 Under the hood
- The test suite no longer writes to your own ChromIQ preferences.
docs/design/holds the agreed, binding specifications: the measurement
model, the message catalogue, per-target settings, the measurement windows
and their sounds, calibration as a run type, and verification printing;
the suite fails when code and specification disagree.- Two purpose-built demo generators (
scripts/make_demo_projects.py,
scripts/make_report_demo.py) build test projects entirely from the real
Argyll pipeline, and on-screen drivers verify the app against them —
54 automated expectations for the Measurement Report alone.
Every fixed entry above starts with what you would have noticed, so you can find the one that was bothering you without knowing what caused it.