Add five Ilford stocks, and say plainly that they are constructed
Build and test / Desktop (Linux) (push) Successful in 20m48s
Build and test / Layer separation (push) Successful in 27s
Traceability / Requirement traces (push) Failing after 25s
🐳 Android image / Build and push (push) Successful in 2s
Build and test / android-image (push) Successful in 2s
Build and test / Android (aarch64) (push) Failing after 33m33s

They were asked for and they are here, but not on the same footing as the
Kodak profiles, and the files say so in their first line.

What I had claimed, and had to withdraw: that Delta 100 is "quoted around 9"
and HP5 "around 12". Ilford publish no such figures. The word granularity does
not occur anywhere in their technical information -- grain is described as
"fine" and "finest" and nothing more. That claim was in this crate's
documentation as though it came from a datasheet; it is corrected there too.

Two further traps found while looking:

  - Kodak colour negatives publish Print Grain Index, not RMS granularity.
    PGI is a perceptual scale from viewer surveys -- 25 is roughly the
    threshold of visibility, four units a just-noticeable difference -- and
    Kodak state it cannot be compared to RMS. So a Portra number cannot be
    dropped into the granularity field, and none has been.
  - RMS proper is published mostly for black-and-white, reversal and motion
    picture stocks. Every shipped stock therefore still carries the same
    default, which means grain does not yet tell one film from another. That
    is per-stock data, not code, and is now written down where somebody will
    find it.

So the Ilford profiles are built rather than extracted, and each part rests on
something different:

  speed        published and exact -- ISO 400/27 for HP5 is a fact
  contrast     ISO 6:1993's normal development, average gradient 0.62
  spectral     borrowed from Kodak Double-X, a *measured* panchromatic
               negative, shifted by the speed difference. Conventional
               panchromatic sensitisation is much alike across black-and-white
               films, and this is far better founded than reading pixels off a
               printed curve
  silver       neutral, which is not an approximation: developed silver
               absorbs flat, and Double-X's measurement is flat
  granularity  estimated, ordered by each film's known relative grain

They render as a film of that speed and contrast. They are not a measurement
of that emulsion, and the two stocks that share a speed differ only in the
estimated part.

`every_shipped_stock_bakes` is tightened to match, because a constructed
profile fails in a way a measured one does not: the curve parses, bakes, and
sits entirely off one end of its own exposure range, rendering every frame
black or blown while passing a finiteness check. It now asserts mid-grey lands
somewhere photographic and that the tone response runs the way the stock's
kind says it should.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-26 10:08:51 +02:00
co-authored by Claude Opus 5
parent 4b2ee0ac50
commit e9b3598841
9 changed files with 2517 additions and 9 deletions
+459
View File
@@ -0,0 +1,459 @@
# Generated by tools/film-profiles/convert.py.
#
# *** CONSTRUCTED, NOT MEASURED. ***
#
# Ilford publish this film's spectral sensitivity and characteristic
# curve as graphs, and no granularity figure at all, so this profile is
# built rather than extracted. Its speed is the published ISO rating,
# and its contrast is ISO 6:1993's normal development (average gradient
# 0.62). Its spectral response is borrowed from Kodak Double-X, a
# *measured* panchromatic negative, shifted by the speed difference.
# Its granularity is an estimate, ordered against the other films here.
#
# So it renders as a film of this speed and contrast, not as a
# measurement of this emulsion. Replace it outright if anyone digitises
# the real curves.
version: 'constructed-1'
stock: ilford_delta_100
name: 'Ilford Delta 100'
kind: negative # negative | positive
support: film # film | paper
stage: filming # filming | printing
monochrome: true
reference_illuminant: D55
viewing_illuminant: D50
rms_granularity: [6, 6, 6]
# log10 spectral sensitivity per layer, 380-780nm at 5nm.
log_sensitivity:
- [-9, -9, -9] # 380nm
- [-9, -9, -9] # 385nm
- [-9, -9, -9] # 390nm
- [-9, -9, -9] # 395nm
- [-9, -9, -9] # 400nm
- [-9, -9, -9] # 405nm
- [-9, -9, -9] # 410nm
- [-9, -9, -9] # 415nm
- [-9, -9, -9] # 420nm
- [-1.11516, -1.11516, -1.11516] # 425nm
- [-1.1149, -1.1149, -1.1149] # 430nm
- [-1.1149, -1.1149, -1.1149] # 435nm
- [-1.11525, -1.11525, -1.11525] # 440nm
- [-1.12495, -1.12495, -1.12495] # 445nm
- [-1.13768, -1.13768, -1.13768] # 450nm
- [-1.15447, -1.15447, -1.15447] # 455nm
- [-1.17373, -1.17373, -1.17373] # 460nm
- [-1.19518, -1.19518, -1.19518] # 465nm
- [-1.21361, -1.21361, -1.21361] # 470nm
- [-1.2395, -1.2395, -1.2395] # 475nm
- [-1.26728, -1.26728, -1.26728] # 480nm
- [-1.30522, -1.30522, -1.30522] # 485nm
- [-1.34497, -1.34497, -1.34497] # 490nm
- [-1.38465, -1.38465, -1.38465] # 495nm
- [-1.41792, -1.41792, -1.41792] # 500nm
- [-1.4332, -1.4332, -1.4332] # 505nm
- [-1.43637, -1.43637, -1.43637] # 510nm
- [-1.43566, -1.43566, -1.43566] # 515nm
- [-1.42589, -1.42589, -1.42589] # 520nm
- [-1.41287, -1.41287, -1.41287] # 525nm
- [-1.3981, -1.3981, -1.3981] # 530nm
- [-1.38014, -1.38014, -1.38014] # 535nm
- [-1.36192, -1.36192, -1.36192] # 540nm
- [-1.34305, -1.34305, -1.34305] # 545nm
- [-1.32648, -1.32648, -1.32648] # 550nm
- [-1.30871, -1.30871, -1.30871] # 555nm
- [-1.29546, -1.29546, -1.29546] # 560nm
- [-1.28805, -1.28805, -1.28805] # 565nm
- [-1.28317, -1.28317, -1.28317] # 570nm
- [-1.27961, -1.27961, -1.27961] # 575nm
- [-1.28242, -1.28242, -1.28242] # 580nm
- [-1.28885, -1.28885, -1.28885] # 585nm
- [-1.29837, -1.29837, -1.29837] # 590nm
- [-1.31101, -1.31101, -1.31101] # 595nm
- [-1.32288, -1.32288, -1.32288] # 600nm
- [-1.33805, -1.33805, -1.33805] # 605nm
- [-1.35316, -1.35316, -1.35316] # 610nm
- [-1.35819, -1.35819, -1.35819] # 615nm
- [-1.34978, -1.34978, -1.34978] # 620nm
- [-1.35875, -1.35875, -1.35875] # 625nm
- [-1.38789, -1.38789, -1.38789] # 630nm
- [-1.47825, -1.47825, -1.47825] # 635nm
- [-1.66767, -1.66767, -1.66767] # 640nm
- [-1.88331, -1.88331, -1.88331] # 645nm
- [-2.13893, -2.13893, -2.13893] # 650nm
- [-2.40079, -2.40079, -2.40079] # 655nm
- [-2.66866, -2.66866, -2.66866] # 660nm
- [-9, -9, -9] # 665nm
- [-9, -9, -9] # 670nm
- [-9, -9, -9] # 675nm
- [-9, -9, -9] # 680nm
- [-9, -9, -9] # 685nm
- [-9, -9, -9] # 690nm
- [-9, -9, -9] # 695nm
- [-9, -9, -9] # 700nm
- [-9, -9, -9] # 705nm
- [-9, -9, -9] # 710nm
- [-9, -9, -9] # 715nm
- [-9, -9, -9] # 720nm
- [-9, -9, -9] # 725nm
- [-9, -9, -9] # 730nm
- [-9, -9, -9] # 735nm
- [-9, -9, -9] # 740nm
- [-9, -9, -9] # 745nm
- [-9, -9, -9] # 750nm
- [-9, -9, -9] # 755nm
- [-9, -9, -9] # 760nm
- [-9, -9, -9] # 765nm
- [-9, -9, -9] # 770nm
- [-9, -9, -9] # 775nm
- [-9, -9, -9] # 780nm
# Developed silver: neutral across the band.
dye_density:
- [0.333333, 0.333333, 0.333333] # 380nm
- [0.333333, 0.333333, 0.333333] # 385nm
- [0.333333, 0.333333, 0.333333] # 390nm
- [0.333333, 0.333333, 0.333333] # 395nm
- [0.333333, 0.333333, 0.333333] # 400nm
- [0.333333, 0.333333, 0.333333] # 405nm
- [0.333333, 0.333333, 0.333333] # 410nm
- [0.333333, 0.333333, 0.333333] # 415nm
- [0.333333, 0.333333, 0.333333] # 420nm
- [0.333333, 0.333333, 0.333333] # 425nm
- [0.333333, 0.333333, 0.333333] # 430nm
- [0.333333, 0.333333, 0.333333] # 435nm
- [0.333333, 0.333333, 0.333333] # 440nm
- [0.333333, 0.333333, 0.333333] # 445nm
- [0.333333, 0.333333, 0.333333] # 450nm
- [0.333333, 0.333333, 0.333333] # 455nm
- [0.333333, 0.333333, 0.333333] # 460nm
- [0.333333, 0.333333, 0.333333] # 465nm
- [0.333333, 0.333333, 0.333333] # 470nm
- [0.333333, 0.333333, 0.333333] # 475nm
- [0.333333, 0.333333, 0.333333] # 480nm
- [0.333333, 0.333333, 0.333333] # 485nm
- [0.333333, 0.333333, 0.333333] # 490nm
- [0.333333, 0.333333, 0.333333] # 495nm
- [0.333333, 0.333333, 0.333333] # 500nm
- [0.333333, 0.333333, 0.333333] # 505nm
- [0.333333, 0.333333, 0.333333] # 510nm
- [0.333333, 0.333333, 0.333333] # 515nm
- [0.333333, 0.333333, 0.333333] # 520nm
- [0.333333, 0.333333, 0.333333] # 525nm
- [0.333333, 0.333333, 0.333333] # 530nm
- [0.333333, 0.333333, 0.333333] # 535nm
- [0.333333, 0.333333, 0.333333] # 540nm
- [0.333333, 0.333333, 0.333333] # 545nm
- [0.333333, 0.333333, 0.333333] # 550nm
- [0.333333, 0.333333, 0.333333] # 555nm
- [0.333333, 0.333333, 0.333333] # 560nm
- [0.333333, 0.333333, 0.333333] # 565nm
- [0.333333, 0.333333, 0.333333] # 570nm
- [0.333333, 0.333333, 0.333333] # 575nm
- [0.333333, 0.333333, 0.333333] # 580nm
- [0.333333, 0.333333, 0.333333] # 585nm
- [0.333333, 0.333333, 0.333333] # 590nm
- [0.333333, 0.333333, 0.333333] # 595nm
- [0.333333, 0.333333, 0.333333] # 600nm
- [0.333333, 0.333333, 0.333333] # 605nm
- [0.333333, 0.333333, 0.333333] # 610nm
- [0.333333, 0.333333, 0.333333] # 615nm
- [0.333333, 0.333333, 0.333333] # 620nm
- [0.333333, 0.333333, 0.333333] # 625nm
- [0.333333, 0.333333, 0.333333] # 630nm
- [0.333333, 0.333333, 0.333333] # 635nm
- [0.333333, 0.333333, 0.333333] # 640nm
- [0.333333, 0.333333, 0.333333] # 645nm
- [0.333333, 0.333333, 0.333333] # 650nm
- [0.333333, 0.333333, 0.333333] # 655nm
- [0.333333, 0.333333, 0.333333] # 660nm
- [0.333333, 0.333333, 0.333333] # 665nm
- [0.333333, 0.333333, 0.333333] # 670nm
- [0.333333, 0.333333, 0.333333] # 675nm
- [0.333333, 0.333333, 0.333333] # 680nm
- [0.333333, 0.333333, 0.333333] # 685nm
- [0.333333, 0.333333, 0.333333] # 690nm
- [0.333333, 0.333333, 0.333333] # 695nm
- [0.333333, 0.333333, 0.333333] # 700nm
- [0.333333, 0.333333, 0.333333] # 705nm
- [0.333333, 0.333333, 0.333333] # 710nm
- [0.333333, 0.333333, 0.333333] # 715nm
- [0.333333, 0.333333, 0.333333] # 720nm
- [0.333333, 0.333333, 0.333333] # 725nm
- [0.333333, 0.333333, 0.333333] # 730nm
- [0.333333, 0.333333, 0.333333] # 735nm
- [0.333333, 0.333333, 0.333333] # 740nm
- [0.333333, 0.333333, 0.333333] # 745nm
- [0.333333, 0.333333, 0.333333] # 750nm
- [0.333333, 0.333333, 0.333333] # 755nm
- [0.333333, 0.333333, 0.333333] # 760nm
- [0.333333, 0.333333, 0.333333] # 765nm
- [0.333333, 0.333333, 0.333333] # 770nm
- [0.333333, 0.333333, 0.333333] # 775nm
- [0.333333, 0.333333, 0.333333] # 780nm
# Base plus fog. No orange mask on a black-and-white film.
base_density: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
# The characteristic curve, parametric.
log_exposure_min: -3
log_exposure_max: 4
density_curves:
- [3.5129e-07, 3.5129e-07, 3.5129e-07]
- [4.2083e-07, 4.2083e-07, 4.2083e-07]
- [5.0412e-07, 5.0412e-07, 5.0412e-07]
- [6.039e-07, 6.039e-07, 6.039e-07]
- [7.2343e-07, 7.2343e-07, 7.2343e-07]
- [8.6662e-07, 8.6662e-07, 8.6662e-07]
- [1.0381e-06, 1.0381e-06, 1.0381e-06]
- [1.2436e-06, 1.2436e-06, 1.2436e-06]
- [1.4898e-06, 1.4898e-06, 1.4898e-06]
- [1.7846e-06, 1.7846e-06, 1.7846e-06]
- [2.1379e-06, 2.1379e-06, 2.1379e-06]
- [2.561e-06, 2.561e-06, 2.561e-06]
- [3.0679e-06, 3.0679e-06, 3.0679e-06]
- [3.6751e-06, 3.6751e-06, 3.6751e-06]
- [4.4025e-06, 4.4025e-06, 4.4025e-06]
- [5.2739e-06, 5.2739e-06, 5.2739e-06]
- [6.3177e-06, 6.3177e-06, 6.3177e-06]
- [7.5681e-06, 7.5681e-06, 7.5681e-06]
- [9.066e-06, 9.066e-06, 9.066e-06]
- [1.086e-05, 1.086e-05, 1.086e-05]
- [1.301e-05, 1.301e-05, 1.301e-05]
- [1.5585e-05, 1.5585e-05, 1.5585e-05]
- [1.8669e-05, 1.8669e-05, 1.8669e-05]
- [2.2364e-05, 2.2364e-05, 2.2364e-05]
- [2.6789e-05, 2.6789e-05, 2.6789e-05]
- [3.2091e-05, 3.2091e-05, 3.2091e-05]
- [3.8441e-05, 3.8441e-05, 3.8441e-05]
- [4.6048e-05, 4.6048e-05, 4.6048e-05]
- [5.516e-05, 5.516e-05, 5.516e-05]
- [6.6074e-05, 6.6074e-05, 6.6074e-05]
- [7.9146e-05, 7.9146e-05, 7.9146e-05]
- [9.4804e-05, 9.4804e-05, 9.4804e-05]
- [0.00011356, 0.00011356, 0.00011356]
- [0.00013602, 0.00013602, 0.00013602]
- [0.00016292, 0.00016292, 0.00016292]
- [0.00019513, 0.00019513, 0.00019513]
- [0.0002337, 0.0002337, 0.0002337]
- [0.00027989, 0.00027989, 0.00027989]
- [0.00033519, 0.00033519, 0.00033519]
- [0.00040139, 0.00040139, 0.00040139]
- [0.00048064, 0.00048064, 0.00048064]
- [0.00057548, 0.00057548, 0.00057548]
- [0.00068897, 0.00068897, 0.00068897]
- [0.00082475, 0.00082475, 0.00082475]
- [0.00098713, 0.00098713, 0.00098713]
- [0.0011813, 0.0011813, 0.0011813]
- [0.0014134, 0.0014134, 0.0014134]
- [0.0016906, 0.0016906, 0.0016906]
- [0.0020217, 0.0020217, 0.0020217]
- [0.0024167, 0.0024167, 0.0024167]
- [0.0028878, 0.0028878, 0.0028878]
- [0.0034491, 0.0034491, 0.0034491]
- [0.004117, 0.004117, 0.004117]
- [0.004911, 0.004911, 0.004911]
- [0.0058534, 0.0058534, 0.0058534]
- [0.0069701, 0.0069701, 0.0069701]
- [0.0082906, 0.0082906, 0.0082906]
- [0.0098485, 0.0098485, 0.0098485]
- [0.011681, 0.011681, 0.011681]
- [0.013831, 0.013831, 0.013831]
- [0.016344, 0.016344, 0.016344]
- [0.019268, 0.019268, 0.019268]
- [0.022655, 0.022655, 0.022655]
- [0.026559, 0.026559, 0.026559]
- [0.031032, 0.031032, 0.031032]
- [0.036126, 0.036126, 0.036126]
- [0.041886, 0.041886, 0.041886]
- [0.048352, 0.048352, 0.048352]
- [0.055556, 0.055556, 0.055556]
- [0.063518, 0.063518, 0.063518]
- [0.072247, 0.072247, 0.072247]
- [0.081739, 0.081739, 0.081739]
- [0.09198, 0.09198, 0.09198]
- [0.10294, 0.10294, 0.10294]
- [0.11459, 0.11459, 0.11459]
- [0.12687, 0.12687, 0.12687]
- [0.13975, 0.13975, 0.13975]
- [0.15317, 0.15317, 0.15317]
- [0.16707, 0.16707, 0.16707]
- [0.18141, 0.18141, 0.18141]
- [0.19613, 0.19613, 0.19613]
- [0.21119, 0.21119, 0.21119]
- [0.22653, 0.22653, 0.22653]
- [0.24214, 0.24214, 0.24214]
- [0.25796, 0.25796, 0.25796]
- [0.27396, 0.27396, 0.27396]
- [0.29013, 0.29013, 0.29013]
- [0.30643, 0.30643, 0.30643]
- [0.32284, 0.32284, 0.32284]
- [0.33935, 0.33935, 0.33935]
- [0.35595, 0.35595, 0.35595]
- [0.37261, 0.37261, 0.37261]
- [0.38933, 0.38933, 0.38933]
- [0.4061, 0.4061, 0.4061]
- [0.42291, 0.42291, 0.42291]
- [0.43975, 0.43975, 0.43975]
- [0.45663, 0.45663, 0.45663]
- [0.47352, 0.47352, 0.47352]
- [0.49044, 0.49044, 0.49044]
- [0.50737, 0.50737, 0.50737]
- [0.52432, 0.52432, 0.52432]
- [0.54128, 0.54128, 0.54128]
- [0.55825, 0.55825, 0.55825]
- [0.57523, 0.57523, 0.57523]
- [0.59222, 0.59222, 0.59222]
- [0.60921, 0.60921, 0.60921]
- [0.6262, 0.6262, 0.6262]
- [0.6432, 0.6432, 0.6432]
- [0.6602, 0.6602, 0.6602]
- [0.67721, 0.67721, 0.67721]
- [0.69422, 0.69422, 0.69422]
- [0.71123, 0.71123, 0.71123]
- [0.72824, 0.72824, 0.72824]
- [0.74525, 0.74525, 0.74525]
- [0.76226, 0.76226, 0.76226]
- [0.77928, 0.77928, 0.77928]
- [0.79629, 0.79629, 0.79629]
- [0.81331, 0.81331, 0.81331]
- [0.83033, 0.83033, 0.83033]
- [0.84734, 0.84734, 0.84734]
- [0.86436, 0.86436, 0.86436]
- [0.88138, 0.88138, 0.88138]
- [0.8984, 0.8984, 0.8984]
- [0.91542, 0.91542, 0.91542]
- [0.93244, 0.93244, 0.93244]
- [0.94945, 0.94945, 0.94945]
- [0.96647, 0.96647, 0.96647]
- [0.98349, 0.98349, 0.98349]
- [1.0005, 1.0005, 1.0005]
- [1.0175, 1.0175, 1.0175]
- [1.0345, 1.0345, 1.0345]
- [1.0516, 1.0516, 1.0516]
- [1.0686, 1.0686, 1.0686]
- [1.0856, 1.0856, 1.0856]
- [1.1026, 1.1026, 1.1026]
- [1.1196, 1.1196, 1.1196]
- [1.1367, 1.1367, 1.1367]
- [1.1537, 1.1537, 1.1537]
- [1.1707, 1.1707, 1.1707]
- [1.1877, 1.1877, 1.1877]
- [1.2047, 1.2047, 1.2047]
- [1.2218, 1.2218, 1.2218]
- [1.2388, 1.2388, 1.2388]
- [1.2558, 1.2558, 1.2558]
- [1.2728, 1.2728, 1.2728]
- [1.2898, 1.2898, 1.2898]
- [1.3068, 1.3068, 1.3068]
- [1.3239, 1.3239, 1.3239]
- [1.3409, 1.3409, 1.3409]
- [1.3579, 1.3579, 1.3579]
- [1.3749, 1.3749, 1.3749]
- [1.3919, 1.3919, 1.3919]
- [1.4089, 1.4089, 1.4089]
- [1.426, 1.426, 1.426]
- [1.443, 1.443, 1.443]
- [1.46, 1.46, 1.46]
- [1.477, 1.477, 1.477]
- [1.494, 1.494, 1.494]
- [1.511, 1.511, 1.511]
- [1.528, 1.528, 1.528]
- [1.545, 1.545, 1.545]
- [1.562, 1.562, 1.562]
- [1.579, 1.579, 1.579]
- [1.596, 1.596, 1.596]
- [1.613, 1.613, 1.613]
- [1.63, 1.63, 1.63]
- [1.647, 1.647, 1.647]
- [1.664, 1.664, 1.664]
- [1.681, 1.681, 1.681]
- [1.6979, 1.6979, 1.6979]
- [1.7149, 1.7149, 1.7149]
- [1.7319, 1.7319, 1.7319]
- [1.7488, 1.7488, 1.7488]
- [1.7657, 1.7657, 1.7657]
- [1.7827, 1.7827, 1.7827]
- [1.7996, 1.7996, 1.7996]
- [1.8165, 1.8165, 1.8165]
- [1.8333, 1.8333, 1.8333]
- [1.8502, 1.8502, 1.8502]
- [1.867, 1.867, 1.867]
- [1.8838, 1.8838, 1.8838]
- [1.9006, 1.9006, 1.9006]
- [1.9173, 1.9173, 1.9173]
- [1.934, 1.934, 1.934]
- [1.9506, 1.9506, 1.9506]
- [1.9672, 1.9672, 1.9672]
- [1.9837, 1.9837, 1.9837]
- [2.0001, 2.0001, 2.0001]
- [2.0165, 2.0165, 2.0165]
- [2.0327, 2.0327, 2.0327]
- [2.0489, 2.0489, 2.0489]
- [2.0649, 2.0649, 2.0649]
- [2.0807, 2.0807, 2.0807]
- [2.0965, 2.0965, 2.0965]
- [2.112, 2.112, 2.112]
- [2.1273, 2.1273, 2.1273]
- [2.1424, 2.1424, 2.1424]
- [2.1573, 2.1573, 2.1573]
- [2.1719, 2.1719, 2.1719]
- [2.1861, 2.1861, 2.1861]
- [2.2001, 2.2001, 2.2001]
- [2.2136, 2.2136, 2.2136]
- [2.2268, 2.2268, 2.2268]
- [2.2395, 2.2395, 2.2395]
- [2.2518, 2.2518, 2.2518]
- [2.2635, 2.2635, 2.2635]
- [2.2748, 2.2748, 2.2748]
- [2.2855, 2.2855, 2.2855]
- [2.2956, 2.2956, 2.2956]
- [2.3051, 2.3051, 2.3051]
- [2.3141, 2.3141, 2.3141]
- [2.3224, 2.3224, 2.3224]
- [2.3302, 2.3302, 2.3302]
- [2.3373, 2.3373, 2.3373]
- [2.3439, 2.3439, 2.3439]
- [2.3499, 2.3499, 2.3499]
- [2.3554, 2.3554, 2.3554]
- [2.3604, 2.3604, 2.3604]
- [2.3649, 2.3649, 2.3649]
- [2.369, 2.369, 2.369]
- [2.3726, 2.3726, 2.3726]
- [2.3759, 2.3759, 2.3759]
- [2.3788, 2.3788, 2.3788]
- [2.3814, 2.3814, 2.3814]
- [2.3836, 2.3836, 2.3836]
- [2.3857, 2.3857, 2.3857]
- [2.3875, 2.3875, 2.3875]
- [2.389, 2.389, 2.389]
- [2.3904, 2.3904, 2.3904]
- [2.3916, 2.3916, 2.3916]
- [2.3927, 2.3927, 2.3927]
- [2.3936, 2.3936, 2.3936]
- [2.3944, 2.3944, 2.3944]
- [2.3952, 2.3952, 2.3952]
- [2.3958, 2.3958, 2.3958]
- [2.3963, 2.3963, 2.3963]
- [2.3968, 2.3968, 2.3968]
- [2.3972, 2.3972, 2.3972]
- [2.3976, 2.3976, 2.3976]
- [2.3979, 2.3979, 2.3979]
- [2.3982, 2.3982, 2.3982]
- [2.3984, 2.3984, 2.3984]
- [2.3986, 2.3986, 2.3986]
- [2.3988, 2.3988, 2.3988]
- [2.3989, 2.3989, 2.3989]
- [2.3991, 2.3991, 2.3991]
- [2.3992, 2.3992, 2.3992]
- [2.3993, 2.3993, 2.3993]
- [2.3994, 2.3994, 2.3994]
- [2.3995, 2.3995, 2.3995]
- [2.3995, 2.3995, 2.3995]
- [2.3996, 2.3996, 2.3996]
- [2.3997, 2.3997, 2.3997]
- [2.3997, 2.3997, 2.3997]
- [2.3997, 2.3997, 2.3997]
- [2.3998, 2.3998, 2.3998]
+459
View File
@@ -0,0 +1,459 @@
# Generated by tools/film-profiles/convert.py.
#
# *** CONSTRUCTED, NOT MEASURED. ***
#
# Ilford publish this film's spectral sensitivity and characteristic
# curve as graphs, and no granularity figure at all, so this profile is
# built rather than extracted. Its speed is the published ISO rating,
# and its contrast is ISO 6:1993's normal development (average gradient
# 0.62). Its spectral response is borrowed from Kodak Double-X, a
# *measured* panchromatic negative, shifted by the speed difference.
# Its granularity is an estimate, ordered against the other films here.
#
# So it renders as a film of this speed and contrast, not as a
# measurement of this emulsion. Replace it outright if anyone digitises
# the real curves.
version: 'constructed-1'
stock: ilford_delta_400
name: 'Ilford Delta 400'
kind: negative # negative | positive
support: film # film | paper
stage: filming # filming | printing
monochrome: true
reference_illuminant: D55
viewing_illuminant: D50
rms_granularity: [9, 9, 9]
# log10 spectral sensitivity per layer, 380-780nm at 5nm.
log_sensitivity:
- [-9, -9, -9] # 380nm
- [-9, -9, -9] # 385nm
- [-9, -9, -9] # 390nm
- [-9, -9, -9] # 395nm
- [-9, -9, -9] # 400nm
- [-9, -9, -9] # 405nm
- [-9, -9, -9] # 410nm
- [-9, -9, -9] # 415nm
- [-9, -9, -9] # 420nm
- [-0.513098, -0.513098, -0.513098] # 425nm
- [-0.51284, -0.51284, -0.51284] # 430nm
- [-0.51284, -0.51284, -0.51284] # 435nm
- [-0.51319, -0.51319, -0.51319] # 440nm
- [-0.522893, -0.522893, -0.522893] # 445nm
- [-0.53562, -0.53562, -0.53562] # 450nm
- [-0.552412, -0.552412, -0.552412] # 455nm
- [-0.571665, -0.571665, -0.571665] # 460nm
- [-0.593122, -0.593122, -0.593122] # 465nm
- [-0.611553, -0.611553, -0.611553] # 470nm
- [-0.637438, -0.637438, -0.637438] # 475nm
- [-0.665217, -0.665217, -0.665217] # 480nm
- [-0.703161, -0.703161, -0.703161] # 485nm
- [-0.742909, -0.742909, -0.742909] # 490nm
- [-0.782594, -0.782594, -0.782594] # 495nm
- [-0.815861, -0.815861, -0.815861] # 500nm
- [-0.831143, -0.831143, -0.831143] # 505nm
- [-0.834309, -0.834309, -0.834309] # 510nm
- [-0.833599, -0.833599, -0.833599] # 515nm
- [-0.823829, -0.823829, -0.823829] # 520nm
- [-0.810809, -0.810809, -0.810809] # 525nm
- [-0.796036, -0.796036, -0.796036] # 530nm
- [-0.778081, -0.778081, -0.778081] # 535nm
- [-0.759864, -0.759864, -0.759864] # 540nm
- [-0.740987, -0.740987, -0.740987] # 545nm
- [-0.724425, -0.724425, -0.724425] # 550nm
- [-0.706653, -0.706653, -0.706653] # 555nm
- [-0.693404, -0.693404, -0.693404] # 560nm
- [-0.685993, -0.685993, -0.685993] # 565nm
- [-0.68111, -0.68111, -0.68111] # 570nm
- [-0.677547, -0.677547, -0.677547] # 575nm
- [-0.680358, -0.680358, -0.680358] # 580nm
- [-0.686794, -0.686794, -0.686794] # 585nm
- [-0.696308, -0.696308, -0.696308] # 590nm
- [-0.708955, -0.708955, -0.708955] # 595nm
- [-0.720822, -0.720822, -0.720822] # 600nm
- [-0.735995, -0.735995, -0.735995] # 605nm
- [-0.751102, -0.751102, -0.751102] # 610nm
- [-0.75613, -0.75613, -0.75613] # 615nm
- [-0.747716, -0.747716, -0.747716] # 620nm
- [-0.756689, -0.756689, -0.756689] # 625nm
- [-0.785834, -0.785834, -0.785834] # 630nm
- [-0.876194, -0.876194, -0.876194] # 635nm
- [-1.06561, -1.06561, -1.06561] # 640nm
- [-1.28125, -1.28125, -1.28125] # 645nm
- [-1.53687, -1.53687, -1.53687] # 650nm
- [-1.79873, -1.79873, -1.79873] # 655nm
- [-2.0666, -2.0666, -2.0666] # 660nm
- [-9, -9, -9] # 665nm
- [-9, -9, -9] # 670nm
- [-9, -9, -9] # 675nm
- [-9, -9, -9] # 680nm
- [-9, -9, -9] # 685nm
- [-9, -9, -9] # 690nm
- [-9, -9, -9] # 695nm
- [-9, -9, -9] # 700nm
- [-9, -9, -9] # 705nm
- [-9, -9, -9] # 710nm
- [-9, -9, -9] # 715nm
- [-9, -9, -9] # 720nm
- [-9, -9, -9] # 725nm
- [-9, -9, -9] # 730nm
- [-9, -9, -9] # 735nm
- [-9, -9, -9] # 740nm
- [-9, -9, -9] # 745nm
- [-9, -9, -9] # 750nm
- [-9, -9, -9] # 755nm
- [-9, -9, -9] # 760nm
- [-9, -9, -9] # 765nm
- [-9, -9, -9] # 770nm
- [-9, -9, -9] # 775nm
- [-9, -9, -9] # 780nm
# Developed silver: neutral across the band.
dye_density:
- [0.333333, 0.333333, 0.333333] # 380nm
- [0.333333, 0.333333, 0.333333] # 385nm
- [0.333333, 0.333333, 0.333333] # 390nm
- [0.333333, 0.333333, 0.333333] # 395nm
- [0.333333, 0.333333, 0.333333] # 400nm
- [0.333333, 0.333333, 0.333333] # 405nm
- [0.333333, 0.333333, 0.333333] # 410nm
- [0.333333, 0.333333, 0.333333] # 415nm
- [0.333333, 0.333333, 0.333333] # 420nm
- [0.333333, 0.333333, 0.333333] # 425nm
- [0.333333, 0.333333, 0.333333] # 430nm
- [0.333333, 0.333333, 0.333333] # 435nm
- [0.333333, 0.333333, 0.333333] # 440nm
- [0.333333, 0.333333, 0.333333] # 445nm
- [0.333333, 0.333333, 0.333333] # 450nm
- [0.333333, 0.333333, 0.333333] # 455nm
- [0.333333, 0.333333, 0.333333] # 460nm
- [0.333333, 0.333333, 0.333333] # 465nm
- [0.333333, 0.333333, 0.333333] # 470nm
- [0.333333, 0.333333, 0.333333] # 475nm
- [0.333333, 0.333333, 0.333333] # 480nm
- [0.333333, 0.333333, 0.333333] # 485nm
- [0.333333, 0.333333, 0.333333] # 490nm
- [0.333333, 0.333333, 0.333333] # 495nm
- [0.333333, 0.333333, 0.333333] # 500nm
- [0.333333, 0.333333, 0.333333] # 505nm
- [0.333333, 0.333333, 0.333333] # 510nm
- [0.333333, 0.333333, 0.333333] # 515nm
- [0.333333, 0.333333, 0.333333] # 520nm
- [0.333333, 0.333333, 0.333333] # 525nm
- [0.333333, 0.333333, 0.333333] # 530nm
- [0.333333, 0.333333, 0.333333] # 535nm
- [0.333333, 0.333333, 0.333333] # 540nm
- [0.333333, 0.333333, 0.333333] # 545nm
- [0.333333, 0.333333, 0.333333] # 550nm
- [0.333333, 0.333333, 0.333333] # 555nm
- [0.333333, 0.333333, 0.333333] # 560nm
- [0.333333, 0.333333, 0.333333] # 565nm
- [0.333333, 0.333333, 0.333333] # 570nm
- [0.333333, 0.333333, 0.333333] # 575nm
- [0.333333, 0.333333, 0.333333] # 580nm
- [0.333333, 0.333333, 0.333333] # 585nm
- [0.333333, 0.333333, 0.333333] # 590nm
- [0.333333, 0.333333, 0.333333] # 595nm
- [0.333333, 0.333333, 0.333333] # 600nm
- [0.333333, 0.333333, 0.333333] # 605nm
- [0.333333, 0.333333, 0.333333] # 610nm
- [0.333333, 0.333333, 0.333333] # 615nm
- [0.333333, 0.333333, 0.333333] # 620nm
- [0.333333, 0.333333, 0.333333] # 625nm
- [0.333333, 0.333333, 0.333333] # 630nm
- [0.333333, 0.333333, 0.333333] # 635nm
- [0.333333, 0.333333, 0.333333] # 640nm
- [0.333333, 0.333333, 0.333333] # 645nm
- [0.333333, 0.333333, 0.333333] # 650nm
- [0.333333, 0.333333, 0.333333] # 655nm
- [0.333333, 0.333333, 0.333333] # 660nm
- [0.333333, 0.333333, 0.333333] # 665nm
- [0.333333, 0.333333, 0.333333] # 670nm
- [0.333333, 0.333333, 0.333333] # 675nm
- [0.333333, 0.333333, 0.333333] # 680nm
- [0.333333, 0.333333, 0.333333] # 685nm
- [0.333333, 0.333333, 0.333333] # 690nm
- [0.333333, 0.333333, 0.333333] # 695nm
- [0.333333, 0.333333, 0.333333] # 700nm
- [0.333333, 0.333333, 0.333333] # 705nm
- [0.333333, 0.333333, 0.333333] # 710nm
- [0.333333, 0.333333, 0.333333] # 715nm
- [0.333333, 0.333333, 0.333333] # 720nm
- [0.333333, 0.333333, 0.333333] # 725nm
- [0.333333, 0.333333, 0.333333] # 730nm
- [0.333333, 0.333333, 0.333333] # 735nm
- [0.333333, 0.333333, 0.333333] # 740nm
- [0.333333, 0.333333, 0.333333] # 745nm
- [0.333333, 0.333333, 0.333333] # 750nm
- [0.333333, 0.333333, 0.333333] # 755nm
- [0.333333, 0.333333, 0.333333] # 760nm
- [0.333333, 0.333333, 0.333333] # 765nm
- [0.333333, 0.333333, 0.333333] # 770nm
- [0.333333, 0.333333, 0.333333] # 775nm
- [0.333333, 0.333333, 0.333333] # 780nm
# Base plus fog. No orange mask on a black-and-white film.
base_density: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
# The characteristic curve, parametric.
log_exposure_min: -3
log_exposure_max: 4
density_curves:
- [3.5129e-07, 3.5129e-07, 3.5129e-07]
- [4.2083e-07, 4.2083e-07, 4.2083e-07]
- [5.0412e-07, 5.0412e-07, 5.0412e-07]
- [6.039e-07, 6.039e-07, 6.039e-07]
- [7.2343e-07, 7.2343e-07, 7.2343e-07]
- [8.6662e-07, 8.6662e-07, 8.6662e-07]
- [1.0381e-06, 1.0381e-06, 1.0381e-06]
- [1.2436e-06, 1.2436e-06, 1.2436e-06]
- [1.4898e-06, 1.4898e-06, 1.4898e-06]
- [1.7846e-06, 1.7846e-06, 1.7846e-06]
- [2.1379e-06, 2.1379e-06, 2.1379e-06]
- [2.561e-06, 2.561e-06, 2.561e-06]
- [3.0679e-06, 3.0679e-06, 3.0679e-06]
- [3.6751e-06, 3.6751e-06, 3.6751e-06]
- [4.4025e-06, 4.4025e-06, 4.4025e-06]
- [5.2739e-06, 5.2739e-06, 5.2739e-06]
- [6.3177e-06, 6.3177e-06, 6.3177e-06]
- [7.5681e-06, 7.5681e-06, 7.5681e-06]
- [9.066e-06, 9.066e-06, 9.066e-06]
- [1.086e-05, 1.086e-05, 1.086e-05]
- [1.301e-05, 1.301e-05, 1.301e-05]
- [1.5585e-05, 1.5585e-05, 1.5585e-05]
- [1.8669e-05, 1.8669e-05, 1.8669e-05]
- [2.2364e-05, 2.2364e-05, 2.2364e-05]
- [2.6789e-05, 2.6789e-05, 2.6789e-05]
- [3.2091e-05, 3.2091e-05, 3.2091e-05]
- [3.8441e-05, 3.8441e-05, 3.8441e-05]
- [4.6048e-05, 4.6048e-05, 4.6048e-05]
- [5.516e-05, 5.516e-05, 5.516e-05]
- [6.6074e-05, 6.6074e-05, 6.6074e-05]
- [7.9146e-05, 7.9146e-05, 7.9146e-05]
- [9.4804e-05, 9.4804e-05, 9.4804e-05]
- [0.00011356, 0.00011356, 0.00011356]
- [0.00013602, 0.00013602, 0.00013602]
- [0.00016292, 0.00016292, 0.00016292]
- [0.00019513, 0.00019513, 0.00019513]
- [0.0002337, 0.0002337, 0.0002337]
- [0.00027989, 0.00027989, 0.00027989]
- [0.00033519, 0.00033519, 0.00033519]
- [0.00040139, 0.00040139, 0.00040139]
- [0.00048064, 0.00048064, 0.00048064]
- [0.00057548, 0.00057548, 0.00057548]
- [0.00068897, 0.00068897, 0.00068897]
- [0.00082475, 0.00082475, 0.00082475]
- [0.00098713, 0.00098713, 0.00098713]
- [0.0011813, 0.0011813, 0.0011813]
- [0.0014134, 0.0014134, 0.0014134]
- [0.0016906, 0.0016906, 0.0016906]
- [0.0020217, 0.0020217, 0.0020217]
- [0.0024167, 0.0024167, 0.0024167]
- [0.0028878, 0.0028878, 0.0028878]
- [0.0034491, 0.0034491, 0.0034491]
- [0.004117, 0.004117, 0.004117]
- [0.004911, 0.004911, 0.004911]
- [0.0058534, 0.0058534, 0.0058534]
- [0.0069701, 0.0069701, 0.0069701]
- [0.0082906, 0.0082906, 0.0082906]
- [0.0098485, 0.0098485, 0.0098485]
- [0.011681, 0.011681, 0.011681]
- [0.013831, 0.013831, 0.013831]
- [0.016344, 0.016344, 0.016344]
- [0.019268, 0.019268, 0.019268]
- [0.022655, 0.022655, 0.022655]
- [0.026559, 0.026559, 0.026559]
- [0.031032, 0.031032, 0.031032]
- [0.036126, 0.036126, 0.036126]
- [0.041886, 0.041886, 0.041886]
- [0.048352, 0.048352, 0.048352]
- [0.055556, 0.055556, 0.055556]
- [0.063518, 0.063518, 0.063518]
- [0.072247, 0.072247, 0.072247]
- [0.081739, 0.081739, 0.081739]
- [0.09198, 0.09198, 0.09198]
- [0.10294, 0.10294, 0.10294]
- [0.11459, 0.11459, 0.11459]
- [0.12687, 0.12687, 0.12687]
- [0.13975, 0.13975, 0.13975]
- [0.15317, 0.15317, 0.15317]
- [0.16707, 0.16707, 0.16707]
- [0.18141, 0.18141, 0.18141]
- [0.19613, 0.19613, 0.19613]
- [0.21119, 0.21119, 0.21119]
- [0.22653, 0.22653, 0.22653]
- [0.24214, 0.24214, 0.24214]
- [0.25796, 0.25796, 0.25796]
- [0.27396, 0.27396, 0.27396]
- [0.29013, 0.29013, 0.29013]
- [0.30643, 0.30643, 0.30643]
- [0.32284, 0.32284, 0.32284]
- [0.33935, 0.33935, 0.33935]
- [0.35595, 0.35595, 0.35595]
- [0.37261, 0.37261, 0.37261]
- [0.38933, 0.38933, 0.38933]
- [0.4061, 0.4061, 0.4061]
- [0.42291, 0.42291, 0.42291]
- [0.43975, 0.43975, 0.43975]
- [0.45663, 0.45663, 0.45663]
- [0.47352, 0.47352, 0.47352]
- [0.49044, 0.49044, 0.49044]
- [0.50737, 0.50737, 0.50737]
- [0.52432, 0.52432, 0.52432]
- [0.54128, 0.54128, 0.54128]
- [0.55825, 0.55825, 0.55825]
- [0.57523, 0.57523, 0.57523]
- [0.59222, 0.59222, 0.59222]
- [0.60921, 0.60921, 0.60921]
- [0.6262, 0.6262, 0.6262]
- [0.6432, 0.6432, 0.6432]
- [0.6602, 0.6602, 0.6602]
- [0.67721, 0.67721, 0.67721]
- [0.69422, 0.69422, 0.69422]
- [0.71123, 0.71123, 0.71123]
- [0.72824, 0.72824, 0.72824]
- [0.74525, 0.74525, 0.74525]
- [0.76226, 0.76226, 0.76226]
- [0.77928, 0.77928, 0.77928]
- [0.79629, 0.79629, 0.79629]
- [0.81331, 0.81331, 0.81331]
- [0.83033, 0.83033, 0.83033]
- [0.84734, 0.84734, 0.84734]
- [0.86436, 0.86436, 0.86436]
- [0.88138, 0.88138, 0.88138]
- [0.8984, 0.8984, 0.8984]
- [0.91542, 0.91542, 0.91542]
- [0.93244, 0.93244, 0.93244]
- [0.94945, 0.94945, 0.94945]
- [0.96647, 0.96647, 0.96647]
- [0.98349, 0.98349, 0.98349]
- [1.0005, 1.0005, 1.0005]
- [1.0175, 1.0175, 1.0175]
- [1.0345, 1.0345, 1.0345]
- [1.0516, 1.0516, 1.0516]
- [1.0686, 1.0686, 1.0686]
- [1.0856, 1.0856, 1.0856]
- [1.1026, 1.1026, 1.1026]
- [1.1196, 1.1196, 1.1196]
- [1.1367, 1.1367, 1.1367]
- [1.1537, 1.1537, 1.1537]
- [1.1707, 1.1707, 1.1707]
- [1.1877, 1.1877, 1.1877]
- [1.2047, 1.2047, 1.2047]
- [1.2218, 1.2218, 1.2218]
- [1.2388, 1.2388, 1.2388]
- [1.2558, 1.2558, 1.2558]
- [1.2728, 1.2728, 1.2728]
- [1.2898, 1.2898, 1.2898]
- [1.3068, 1.3068, 1.3068]
- [1.3239, 1.3239, 1.3239]
- [1.3409, 1.3409, 1.3409]
- [1.3579, 1.3579, 1.3579]
- [1.3749, 1.3749, 1.3749]
- [1.3919, 1.3919, 1.3919]
- [1.4089, 1.4089, 1.4089]
- [1.426, 1.426, 1.426]
- [1.443, 1.443, 1.443]
- [1.46, 1.46, 1.46]
- [1.477, 1.477, 1.477]
- [1.494, 1.494, 1.494]
- [1.511, 1.511, 1.511]
- [1.528, 1.528, 1.528]
- [1.545, 1.545, 1.545]
- [1.562, 1.562, 1.562]
- [1.579, 1.579, 1.579]
- [1.596, 1.596, 1.596]
- [1.613, 1.613, 1.613]
- [1.63, 1.63, 1.63]
- [1.647, 1.647, 1.647]
- [1.664, 1.664, 1.664]
- [1.681, 1.681, 1.681]
- [1.6979, 1.6979, 1.6979]
- [1.7149, 1.7149, 1.7149]
- [1.7319, 1.7319, 1.7319]
- [1.7488, 1.7488, 1.7488]
- [1.7657, 1.7657, 1.7657]
- [1.7827, 1.7827, 1.7827]
- [1.7996, 1.7996, 1.7996]
- [1.8165, 1.8165, 1.8165]
- [1.8333, 1.8333, 1.8333]
- [1.8502, 1.8502, 1.8502]
- [1.867, 1.867, 1.867]
- [1.8838, 1.8838, 1.8838]
- [1.9006, 1.9006, 1.9006]
- [1.9173, 1.9173, 1.9173]
- [1.934, 1.934, 1.934]
- [1.9506, 1.9506, 1.9506]
- [1.9672, 1.9672, 1.9672]
- [1.9837, 1.9837, 1.9837]
- [2.0001, 2.0001, 2.0001]
- [2.0165, 2.0165, 2.0165]
- [2.0327, 2.0327, 2.0327]
- [2.0489, 2.0489, 2.0489]
- [2.0649, 2.0649, 2.0649]
- [2.0807, 2.0807, 2.0807]
- [2.0965, 2.0965, 2.0965]
- [2.112, 2.112, 2.112]
- [2.1273, 2.1273, 2.1273]
- [2.1424, 2.1424, 2.1424]
- [2.1573, 2.1573, 2.1573]
- [2.1719, 2.1719, 2.1719]
- [2.1861, 2.1861, 2.1861]
- [2.2001, 2.2001, 2.2001]
- [2.2136, 2.2136, 2.2136]
- [2.2268, 2.2268, 2.2268]
- [2.2395, 2.2395, 2.2395]
- [2.2518, 2.2518, 2.2518]
- [2.2635, 2.2635, 2.2635]
- [2.2748, 2.2748, 2.2748]
- [2.2855, 2.2855, 2.2855]
- [2.2956, 2.2956, 2.2956]
- [2.3051, 2.3051, 2.3051]
- [2.3141, 2.3141, 2.3141]
- [2.3224, 2.3224, 2.3224]
- [2.3302, 2.3302, 2.3302]
- [2.3373, 2.3373, 2.3373]
- [2.3439, 2.3439, 2.3439]
- [2.3499, 2.3499, 2.3499]
- [2.3554, 2.3554, 2.3554]
- [2.3604, 2.3604, 2.3604]
- [2.3649, 2.3649, 2.3649]
- [2.369, 2.369, 2.369]
- [2.3726, 2.3726, 2.3726]
- [2.3759, 2.3759, 2.3759]
- [2.3788, 2.3788, 2.3788]
- [2.3814, 2.3814, 2.3814]
- [2.3836, 2.3836, 2.3836]
- [2.3857, 2.3857, 2.3857]
- [2.3875, 2.3875, 2.3875]
- [2.389, 2.389, 2.389]
- [2.3904, 2.3904, 2.3904]
- [2.3916, 2.3916, 2.3916]
- [2.3927, 2.3927, 2.3927]
- [2.3936, 2.3936, 2.3936]
- [2.3944, 2.3944, 2.3944]
- [2.3952, 2.3952, 2.3952]
- [2.3958, 2.3958, 2.3958]
- [2.3963, 2.3963, 2.3963]
- [2.3968, 2.3968, 2.3968]
- [2.3972, 2.3972, 2.3972]
- [2.3976, 2.3976, 2.3976]
- [2.3979, 2.3979, 2.3979]
- [2.3982, 2.3982, 2.3982]
- [2.3984, 2.3984, 2.3984]
- [2.3986, 2.3986, 2.3986]
- [2.3988, 2.3988, 2.3988]
- [2.3989, 2.3989, 2.3989]
- [2.3991, 2.3991, 2.3991]
- [2.3992, 2.3992, 2.3992]
- [2.3993, 2.3993, 2.3993]
- [2.3994, 2.3994, 2.3994]
- [2.3995, 2.3995, 2.3995]
- [2.3995, 2.3995, 2.3995]
- [2.3996, 2.3996, 2.3996]
- [2.3997, 2.3997, 2.3997]
- [2.3997, 2.3997, 2.3997]
- [2.3997, 2.3997, 2.3997]
- [2.3998, 2.3998, 2.3998]
+459
View File
@@ -0,0 +1,459 @@
# Generated by tools/film-profiles/convert.py.
#
# *** CONSTRUCTED, NOT MEASURED. ***
#
# Ilford publish this film's spectral sensitivity and characteristic
# curve as graphs, and no granularity figure at all, so this profile is
# built rather than extracted. Its speed is the published ISO rating,
# and its contrast is ISO 6:1993's normal development (average gradient
# 0.62). Its spectral response is borrowed from Kodak Double-X, a
# *measured* panchromatic negative, shifted by the speed difference.
# Its granularity is an estimate, ordered against the other films here.
#
# So it renders as a film of this speed and contrast, not as a
# measurement of this emulsion. Replace it outright if anyone digitises
# the real curves.
version: 'constructed-1'
stock: ilford_fp4_plus
name: 'Ilford FP4 Plus'
kind: negative # negative | positive
support: film # film | paper
stage: filming # filming | printing
monochrome: true
reference_illuminant: D55
viewing_illuminant: D50
rms_granularity: [7, 7, 7]
# log10 spectral sensitivity per layer, 380-780nm at 5nm.
log_sensitivity:
- [-9, -9, -9] # 380nm
- [-9, -9, -9] # 385nm
- [-9, -9, -9] # 390nm
- [-9, -9, -9] # 395nm
- [-9, -9, -9] # 400nm
- [-9, -9, -9] # 405nm
- [-9, -9, -9] # 410nm
- [-9, -9, -9] # 415nm
- [-9, -9, -9] # 420nm
- [-1.01825, -1.01825, -1.01825] # 425nm
- [-1.01799, -1.01799, -1.01799] # 430nm
- [-1.01799, -1.01799, -1.01799] # 435nm
- [-1.01834, -1.01834, -1.01834] # 440nm
- [-1.02804, -1.02804, -1.02804] # 445nm
- [-1.04077, -1.04077, -1.04077] # 450nm
- [-1.05756, -1.05756, -1.05756] # 455nm
- [-1.07682, -1.07682, -1.07682] # 460nm
- [-1.09827, -1.09827, -1.09827] # 465nm
- [-1.1167, -1.1167, -1.1167] # 470nm
- [-1.14259, -1.14259, -1.14259] # 475nm
- [-1.17037, -1.17037, -1.17037] # 480nm
- [-1.20831, -1.20831, -1.20831] # 485nm
- [-1.24806, -1.24806, -1.24806] # 490nm
- [-1.28774, -1.28774, -1.28774] # 495nm
- [-1.32101, -1.32101, -1.32101] # 500nm
- [-1.33629, -1.33629, -1.33629] # 505nm
- [-1.33946, -1.33946, -1.33946] # 510nm
- [-1.33875, -1.33875, -1.33875] # 515nm
- [-1.32898, -1.32898, -1.32898] # 520nm
- [-1.31596, -1.31596, -1.31596] # 525nm
- [-1.30119, -1.30119, -1.30119] # 530nm
- [-1.28323, -1.28323, -1.28323] # 535nm
- [-1.26501, -1.26501, -1.26501] # 540nm
- [-1.24614, -1.24614, -1.24614] # 545nm
- [-1.22957, -1.22957, -1.22957] # 550nm
- [-1.2118, -1.2118, -1.2118] # 555nm
- [-1.19855, -1.19855, -1.19855] # 560nm
- [-1.19114, -1.19114, -1.19114] # 565nm
- [-1.18626, -1.18626, -1.18626] # 570nm
- [-1.1827, -1.1827, -1.1827] # 575nm
- [-1.18551, -1.18551, -1.18551] # 580nm
- [-1.19194, -1.19194, -1.19194] # 585nm
- [-1.20146, -1.20146, -1.20146] # 590nm
- [-1.2141, -1.2141, -1.2141] # 595nm
- [-1.22597, -1.22597, -1.22597] # 600nm
- [-1.24114, -1.24114, -1.24114] # 605nm
- [-1.25625, -1.25625, -1.25625] # 610nm
- [-1.26128, -1.26128, -1.26128] # 615nm
- [-1.25287, -1.25287, -1.25287] # 620nm
- [-1.26184, -1.26184, -1.26184] # 625nm
- [-1.29098, -1.29098, -1.29098] # 630nm
- [-1.38134, -1.38134, -1.38134] # 635nm
- [-1.57076, -1.57076, -1.57076] # 640nm
- [-1.7864, -1.7864, -1.7864] # 645nm
- [-2.04202, -2.04202, -2.04202] # 650nm
- [-2.30388, -2.30388, -2.30388] # 655nm
- [-2.57175, -2.57175, -2.57175] # 660nm
- [-9, -9, -9] # 665nm
- [-9, -9, -9] # 670nm
- [-9, -9, -9] # 675nm
- [-9, -9, -9] # 680nm
- [-9, -9, -9] # 685nm
- [-9, -9, -9] # 690nm
- [-9, -9, -9] # 695nm
- [-9, -9, -9] # 700nm
- [-9, -9, -9] # 705nm
- [-9, -9, -9] # 710nm
- [-9, -9, -9] # 715nm
- [-9, -9, -9] # 720nm
- [-9, -9, -9] # 725nm
- [-9, -9, -9] # 730nm
- [-9, -9, -9] # 735nm
- [-9, -9, -9] # 740nm
- [-9, -9, -9] # 745nm
- [-9, -9, -9] # 750nm
- [-9, -9, -9] # 755nm
- [-9, -9, -9] # 760nm
- [-9, -9, -9] # 765nm
- [-9, -9, -9] # 770nm
- [-9, -9, -9] # 775nm
- [-9, -9, -9] # 780nm
# Developed silver: neutral across the band.
dye_density:
- [0.333333, 0.333333, 0.333333] # 380nm
- [0.333333, 0.333333, 0.333333] # 385nm
- [0.333333, 0.333333, 0.333333] # 390nm
- [0.333333, 0.333333, 0.333333] # 395nm
- [0.333333, 0.333333, 0.333333] # 400nm
- [0.333333, 0.333333, 0.333333] # 405nm
- [0.333333, 0.333333, 0.333333] # 410nm
- [0.333333, 0.333333, 0.333333] # 415nm
- [0.333333, 0.333333, 0.333333] # 420nm
- [0.333333, 0.333333, 0.333333] # 425nm
- [0.333333, 0.333333, 0.333333] # 430nm
- [0.333333, 0.333333, 0.333333] # 435nm
- [0.333333, 0.333333, 0.333333] # 440nm
- [0.333333, 0.333333, 0.333333] # 445nm
- [0.333333, 0.333333, 0.333333] # 450nm
- [0.333333, 0.333333, 0.333333] # 455nm
- [0.333333, 0.333333, 0.333333] # 460nm
- [0.333333, 0.333333, 0.333333] # 465nm
- [0.333333, 0.333333, 0.333333] # 470nm
- [0.333333, 0.333333, 0.333333] # 475nm
- [0.333333, 0.333333, 0.333333] # 480nm
- [0.333333, 0.333333, 0.333333] # 485nm
- [0.333333, 0.333333, 0.333333] # 490nm
- [0.333333, 0.333333, 0.333333] # 495nm
- [0.333333, 0.333333, 0.333333] # 500nm
- [0.333333, 0.333333, 0.333333] # 505nm
- [0.333333, 0.333333, 0.333333] # 510nm
- [0.333333, 0.333333, 0.333333] # 515nm
- [0.333333, 0.333333, 0.333333] # 520nm
- [0.333333, 0.333333, 0.333333] # 525nm
- [0.333333, 0.333333, 0.333333] # 530nm
- [0.333333, 0.333333, 0.333333] # 535nm
- [0.333333, 0.333333, 0.333333] # 540nm
- [0.333333, 0.333333, 0.333333] # 545nm
- [0.333333, 0.333333, 0.333333] # 550nm
- [0.333333, 0.333333, 0.333333] # 555nm
- [0.333333, 0.333333, 0.333333] # 560nm
- [0.333333, 0.333333, 0.333333] # 565nm
- [0.333333, 0.333333, 0.333333] # 570nm
- [0.333333, 0.333333, 0.333333] # 575nm
- [0.333333, 0.333333, 0.333333] # 580nm
- [0.333333, 0.333333, 0.333333] # 585nm
- [0.333333, 0.333333, 0.333333] # 590nm
- [0.333333, 0.333333, 0.333333] # 595nm
- [0.333333, 0.333333, 0.333333] # 600nm
- [0.333333, 0.333333, 0.333333] # 605nm
- [0.333333, 0.333333, 0.333333] # 610nm
- [0.333333, 0.333333, 0.333333] # 615nm
- [0.333333, 0.333333, 0.333333] # 620nm
- [0.333333, 0.333333, 0.333333] # 625nm
- [0.333333, 0.333333, 0.333333] # 630nm
- [0.333333, 0.333333, 0.333333] # 635nm
- [0.333333, 0.333333, 0.333333] # 640nm
- [0.333333, 0.333333, 0.333333] # 645nm
- [0.333333, 0.333333, 0.333333] # 650nm
- [0.333333, 0.333333, 0.333333] # 655nm
- [0.333333, 0.333333, 0.333333] # 660nm
- [0.333333, 0.333333, 0.333333] # 665nm
- [0.333333, 0.333333, 0.333333] # 670nm
- [0.333333, 0.333333, 0.333333] # 675nm
- [0.333333, 0.333333, 0.333333] # 680nm
- [0.333333, 0.333333, 0.333333] # 685nm
- [0.333333, 0.333333, 0.333333] # 690nm
- [0.333333, 0.333333, 0.333333] # 695nm
- [0.333333, 0.333333, 0.333333] # 700nm
- [0.333333, 0.333333, 0.333333] # 705nm
- [0.333333, 0.333333, 0.333333] # 710nm
- [0.333333, 0.333333, 0.333333] # 715nm
- [0.333333, 0.333333, 0.333333] # 720nm
- [0.333333, 0.333333, 0.333333] # 725nm
- [0.333333, 0.333333, 0.333333] # 730nm
- [0.333333, 0.333333, 0.333333] # 735nm
- [0.333333, 0.333333, 0.333333] # 740nm
- [0.333333, 0.333333, 0.333333] # 745nm
- [0.333333, 0.333333, 0.333333] # 750nm
- [0.333333, 0.333333, 0.333333] # 755nm
- [0.333333, 0.333333, 0.333333] # 760nm
- [0.333333, 0.333333, 0.333333] # 765nm
- [0.333333, 0.333333, 0.333333] # 770nm
- [0.333333, 0.333333, 0.333333] # 775nm
- [0.333333, 0.333333, 0.333333] # 780nm
# Base plus fog. No orange mask on a black-and-white film.
base_density: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
# The characteristic curve, parametric.
log_exposure_min: -3
log_exposure_max: 4
density_curves:
- [3.5129e-07, 3.5129e-07, 3.5129e-07]
- [4.2083e-07, 4.2083e-07, 4.2083e-07]
- [5.0412e-07, 5.0412e-07, 5.0412e-07]
- [6.039e-07, 6.039e-07, 6.039e-07]
- [7.2343e-07, 7.2343e-07, 7.2343e-07]
- [8.6662e-07, 8.6662e-07, 8.6662e-07]
- [1.0381e-06, 1.0381e-06, 1.0381e-06]
- [1.2436e-06, 1.2436e-06, 1.2436e-06]
- [1.4898e-06, 1.4898e-06, 1.4898e-06]
- [1.7846e-06, 1.7846e-06, 1.7846e-06]
- [2.1379e-06, 2.1379e-06, 2.1379e-06]
- [2.561e-06, 2.561e-06, 2.561e-06]
- [3.0679e-06, 3.0679e-06, 3.0679e-06]
- [3.6751e-06, 3.6751e-06, 3.6751e-06]
- [4.4025e-06, 4.4025e-06, 4.4025e-06]
- [5.2739e-06, 5.2739e-06, 5.2739e-06]
- [6.3177e-06, 6.3177e-06, 6.3177e-06]
- [7.5681e-06, 7.5681e-06, 7.5681e-06]
- [9.066e-06, 9.066e-06, 9.066e-06]
- [1.086e-05, 1.086e-05, 1.086e-05]
- [1.301e-05, 1.301e-05, 1.301e-05]
- [1.5585e-05, 1.5585e-05, 1.5585e-05]
- [1.8669e-05, 1.8669e-05, 1.8669e-05]
- [2.2364e-05, 2.2364e-05, 2.2364e-05]
- [2.6789e-05, 2.6789e-05, 2.6789e-05]
- [3.2091e-05, 3.2091e-05, 3.2091e-05]
- [3.8441e-05, 3.8441e-05, 3.8441e-05]
- [4.6048e-05, 4.6048e-05, 4.6048e-05]
- [5.516e-05, 5.516e-05, 5.516e-05]
- [6.6074e-05, 6.6074e-05, 6.6074e-05]
- [7.9146e-05, 7.9146e-05, 7.9146e-05]
- [9.4804e-05, 9.4804e-05, 9.4804e-05]
- [0.00011356, 0.00011356, 0.00011356]
- [0.00013602, 0.00013602, 0.00013602]
- [0.00016292, 0.00016292, 0.00016292]
- [0.00019513, 0.00019513, 0.00019513]
- [0.0002337, 0.0002337, 0.0002337]
- [0.00027989, 0.00027989, 0.00027989]
- [0.00033519, 0.00033519, 0.00033519]
- [0.00040139, 0.00040139, 0.00040139]
- [0.00048064, 0.00048064, 0.00048064]
- [0.00057548, 0.00057548, 0.00057548]
- [0.00068897, 0.00068897, 0.00068897]
- [0.00082475, 0.00082475, 0.00082475]
- [0.00098713, 0.00098713, 0.00098713]
- [0.0011813, 0.0011813, 0.0011813]
- [0.0014134, 0.0014134, 0.0014134]
- [0.0016906, 0.0016906, 0.0016906]
- [0.0020217, 0.0020217, 0.0020217]
- [0.0024167, 0.0024167, 0.0024167]
- [0.0028878, 0.0028878, 0.0028878]
- [0.0034491, 0.0034491, 0.0034491]
- [0.004117, 0.004117, 0.004117]
- [0.004911, 0.004911, 0.004911]
- [0.0058534, 0.0058534, 0.0058534]
- [0.0069701, 0.0069701, 0.0069701]
- [0.0082906, 0.0082906, 0.0082906]
- [0.0098485, 0.0098485, 0.0098485]
- [0.011681, 0.011681, 0.011681]
- [0.013831, 0.013831, 0.013831]
- [0.016344, 0.016344, 0.016344]
- [0.019268, 0.019268, 0.019268]
- [0.022655, 0.022655, 0.022655]
- [0.026559, 0.026559, 0.026559]
- [0.031032, 0.031032, 0.031032]
- [0.036126, 0.036126, 0.036126]
- [0.041886, 0.041886, 0.041886]
- [0.048352, 0.048352, 0.048352]
- [0.055556, 0.055556, 0.055556]
- [0.063518, 0.063518, 0.063518]
- [0.072247, 0.072247, 0.072247]
- [0.081739, 0.081739, 0.081739]
- [0.09198, 0.09198, 0.09198]
- [0.10294, 0.10294, 0.10294]
- [0.11459, 0.11459, 0.11459]
- [0.12687, 0.12687, 0.12687]
- [0.13975, 0.13975, 0.13975]
- [0.15317, 0.15317, 0.15317]
- [0.16707, 0.16707, 0.16707]
- [0.18141, 0.18141, 0.18141]
- [0.19613, 0.19613, 0.19613]
- [0.21119, 0.21119, 0.21119]
- [0.22653, 0.22653, 0.22653]
- [0.24214, 0.24214, 0.24214]
- [0.25796, 0.25796, 0.25796]
- [0.27396, 0.27396, 0.27396]
- [0.29013, 0.29013, 0.29013]
- [0.30643, 0.30643, 0.30643]
- [0.32284, 0.32284, 0.32284]
- [0.33935, 0.33935, 0.33935]
- [0.35595, 0.35595, 0.35595]
- [0.37261, 0.37261, 0.37261]
- [0.38933, 0.38933, 0.38933]
- [0.4061, 0.4061, 0.4061]
- [0.42291, 0.42291, 0.42291]
- [0.43975, 0.43975, 0.43975]
- [0.45663, 0.45663, 0.45663]
- [0.47352, 0.47352, 0.47352]
- [0.49044, 0.49044, 0.49044]
- [0.50737, 0.50737, 0.50737]
- [0.52432, 0.52432, 0.52432]
- [0.54128, 0.54128, 0.54128]
- [0.55825, 0.55825, 0.55825]
- [0.57523, 0.57523, 0.57523]
- [0.59222, 0.59222, 0.59222]
- [0.60921, 0.60921, 0.60921]
- [0.6262, 0.6262, 0.6262]
- [0.6432, 0.6432, 0.6432]
- [0.6602, 0.6602, 0.6602]
- [0.67721, 0.67721, 0.67721]
- [0.69422, 0.69422, 0.69422]
- [0.71123, 0.71123, 0.71123]
- [0.72824, 0.72824, 0.72824]
- [0.74525, 0.74525, 0.74525]
- [0.76226, 0.76226, 0.76226]
- [0.77928, 0.77928, 0.77928]
- [0.79629, 0.79629, 0.79629]
- [0.81331, 0.81331, 0.81331]
- [0.83033, 0.83033, 0.83033]
- [0.84734, 0.84734, 0.84734]
- [0.86436, 0.86436, 0.86436]
- [0.88138, 0.88138, 0.88138]
- [0.8984, 0.8984, 0.8984]
- [0.91542, 0.91542, 0.91542]
- [0.93244, 0.93244, 0.93244]
- [0.94945, 0.94945, 0.94945]
- [0.96647, 0.96647, 0.96647]
- [0.98349, 0.98349, 0.98349]
- [1.0005, 1.0005, 1.0005]
- [1.0175, 1.0175, 1.0175]
- [1.0345, 1.0345, 1.0345]
- [1.0516, 1.0516, 1.0516]
- [1.0686, 1.0686, 1.0686]
- [1.0856, 1.0856, 1.0856]
- [1.1026, 1.1026, 1.1026]
- [1.1196, 1.1196, 1.1196]
- [1.1367, 1.1367, 1.1367]
- [1.1537, 1.1537, 1.1537]
- [1.1707, 1.1707, 1.1707]
- [1.1877, 1.1877, 1.1877]
- [1.2047, 1.2047, 1.2047]
- [1.2218, 1.2218, 1.2218]
- [1.2388, 1.2388, 1.2388]
- [1.2558, 1.2558, 1.2558]
- [1.2728, 1.2728, 1.2728]
- [1.2898, 1.2898, 1.2898]
- [1.3069, 1.3069, 1.3069]
- [1.3239, 1.3239, 1.3239]
- [1.3409, 1.3409, 1.3409]
- [1.3579, 1.3579, 1.3579]
- [1.3749, 1.3749, 1.3749]
- [1.3919, 1.3919, 1.3919]
- [1.409, 1.409, 1.409]
- [1.426, 1.426, 1.426]
- [1.443, 1.443, 1.443]
- [1.46, 1.46, 1.46]
- [1.477, 1.477, 1.477]
- [1.494, 1.494, 1.494]
- [1.5111, 1.5111, 1.5111]
- [1.5281, 1.5281, 1.5281]
- [1.5451, 1.5451, 1.5451]
- [1.5621, 1.5621, 1.5621]
- [1.5791, 1.5791, 1.5791]
- [1.5961, 1.5961, 1.5961]
- [1.6131, 1.6131, 1.6131]
- [1.6301, 1.6301, 1.6301]
- [1.6471, 1.6471, 1.6471]
- [1.6642, 1.6642, 1.6642]
- [1.6812, 1.6812, 1.6812]
- [1.6982, 1.6982, 1.6982]
- [1.7151, 1.7151, 1.7151]
- [1.7321, 1.7321, 1.7321]
- [1.7491, 1.7491, 1.7491]
- [1.7661, 1.7661, 1.7661]
- [1.7831, 1.7831, 1.7831]
- [1.8001, 1.8001, 1.8001]
- [1.817, 1.817, 1.817]
- [1.834, 1.834, 1.834]
- [1.8509, 1.8509, 1.8509]
- [1.8679, 1.8679, 1.8679]
- [1.8848, 1.8848, 1.8848]
- [1.9017, 1.9017, 1.9017]
- [1.9186, 1.9186, 1.9186]
- [1.9354, 1.9354, 1.9354]
- [1.9523, 1.9523, 1.9523]
- [1.9691, 1.9691, 1.9691]
- [1.9859, 1.9859, 1.9859]
- [2.0027, 2.0027, 2.0027]
- [2.0194, 2.0194, 2.0194]
- [2.036, 2.036, 2.036]
- [2.0527, 2.0527, 2.0527]
- [2.0692, 2.0692, 2.0692]
- [2.0857, 2.0857, 2.0857]
- [2.1022, 2.1022, 2.1022]
- [2.1185, 2.1185, 2.1185]
- [2.1347, 2.1347, 2.1347]
- [2.1509, 2.1509, 2.1509]
- [2.1669, 2.1669, 2.1669]
- [2.1827, 2.1827, 2.1827]
- [2.1984, 2.1984, 2.1984]
- [2.2139, 2.2139, 2.2139]
- [2.2292, 2.2292, 2.2292]
- [2.2443, 2.2443, 2.2443]
- [2.2591, 2.2591, 2.2591]
- [2.2737, 2.2737, 2.2737]
- [2.2879, 2.2879, 2.2879]
- [2.3018, 2.3018, 2.3018]
- [2.3153, 2.3153, 2.3153]
- [2.3284, 2.3284, 2.3284]
- [2.3411, 2.3411, 2.3411]
- [2.3533, 2.3533, 2.3533]
- [2.365, 2.365, 2.365]
- [2.3761, 2.3761, 2.3761]
- [2.3867, 2.3867, 2.3867]
- [2.3968, 2.3968, 2.3968]
- [2.4063, 2.4063, 2.4063]
- [2.4151, 2.4151, 2.4151]
- [2.4234, 2.4234, 2.4234]
- [2.4311, 2.4311, 2.4311]
- [2.4382, 2.4382, 2.4382]
- [2.4447, 2.4447, 2.4447]
- [2.4507, 2.4507, 2.4507]
- [2.4561, 2.4561, 2.4561]
- [2.461, 2.461, 2.461]
- [2.4655, 2.4655, 2.4655]
- [2.4695, 2.4695, 2.4695]
- [2.4731, 2.4731, 2.4731]
- [2.4763, 2.4763, 2.4763]
- [2.4791, 2.4791, 2.4791]
- [2.4817, 2.4817, 2.4817]
- [2.4839, 2.4839, 2.4839]
- [2.4859, 2.4859, 2.4859]
- [2.4877, 2.4877, 2.4877]
- [2.4892, 2.4892, 2.4892]
- [2.4906, 2.4906, 2.4906]
- [2.4918, 2.4918, 2.4918]
- [2.4928, 2.4928, 2.4928]
- [2.4937, 2.4937, 2.4937]
- [2.4945, 2.4945, 2.4945]
- [2.4952, 2.4952, 2.4952]
- [2.4958, 2.4958, 2.4958]
- [2.4964, 2.4964, 2.4964]
- [2.4969, 2.4969, 2.4969]
- [2.4973, 2.4973, 2.4973]
- [2.4976, 2.4976, 2.4976]
- [2.4979, 2.4979, 2.4979]
- [2.4982, 2.4982, 2.4982]
- [2.4984, 2.4984, 2.4984]
- [2.4986, 2.4986, 2.4986]
- [2.4988, 2.4988, 2.4988]
- [2.499, 2.499, 2.499]
- [2.4991, 2.4991, 2.4991]
- [2.4992, 2.4992, 2.4992]
- [2.4993, 2.4993, 2.4993]
- [2.4994, 2.4994, 2.4994]
- [2.4995, 2.4995, 2.4995]
+459
View File
@@ -0,0 +1,459 @@
# Generated by tools/film-profiles/convert.py.
#
# *** CONSTRUCTED, NOT MEASURED. ***
#
# Ilford publish this film's spectral sensitivity and characteristic
# curve as graphs, and no granularity figure at all, so this profile is
# built rather than extracted. Its speed is the published ISO rating,
# and its contrast is ISO 6:1993's normal development (average gradient
# 0.62). Its spectral response is borrowed from Kodak Double-X, a
# *measured* panchromatic negative, shifted by the speed difference.
# Its granularity is an estimate, ordered against the other films here.
#
# So it renders as a film of this speed and contrast, not as a
# measurement of this emulsion. Replace it outright if anyone digitises
# the real curves.
version: 'constructed-1'
stock: ilford_hp5_plus
name: 'Ilford HP5 Plus'
kind: negative # negative | positive
support: film # film | paper
stage: filming # filming | printing
monochrome: true
reference_illuminant: D55
viewing_illuminant: D50
rms_granularity: [11, 11, 11]
# log10 spectral sensitivity per layer, 380-780nm at 5nm.
log_sensitivity:
- [-9, -9, -9] # 380nm
- [-9, -9, -9] # 385nm
- [-9, -9, -9] # 390nm
- [-9, -9, -9] # 395nm
- [-9, -9, -9] # 400nm
- [-9, -9, -9] # 405nm
- [-9, -9, -9] # 410nm
- [-9, -9, -9] # 415nm
- [-9, -9, -9] # 420nm
- [-0.513098, -0.513098, -0.513098] # 425nm
- [-0.51284, -0.51284, -0.51284] # 430nm
- [-0.51284, -0.51284, -0.51284] # 435nm
- [-0.51319, -0.51319, -0.51319] # 440nm
- [-0.522893, -0.522893, -0.522893] # 445nm
- [-0.53562, -0.53562, -0.53562] # 450nm
- [-0.552412, -0.552412, -0.552412] # 455nm
- [-0.571665, -0.571665, -0.571665] # 460nm
- [-0.593122, -0.593122, -0.593122] # 465nm
- [-0.611553, -0.611553, -0.611553] # 470nm
- [-0.637438, -0.637438, -0.637438] # 475nm
- [-0.665217, -0.665217, -0.665217] # 480nm
- [-0.703161, -0.703161, -0.703161] # 485nm
- [-0.742909, -0.742909, -0.742909] # 490nm
- [-0.782594, -0.782594, -0.782594] # 495nm
- [-0.815861, -0.815861, -0.815861] # 500nm
- [-0.831143, -0.831143, -0.831143] # 505nm
- [-0.834309, -0.834309, -0.834309] # 510nm
- [-0.833599, -0.833599, -0.833599] # 515nm
- [-0.823829, -0.823829, -0.823829] # 520nm
- [-0.810809, -0.810809, -0.810809] # 525nm
- [-0.796036, -0.796036, -0.796036] # 530nm
- [-0.778081, -0.778081, -0.778081] # 535nm
- [-0.759864, -0.759864, -0.759864] # 540nm
- [-0.740987, -0.740987, -0.740987] # 545nm
- [-0.724425, -0.724425, -0.724425] # 550nm
- [-0.706653, -0.706653, -0.706653] # 555nm
- [-0.693404, -0.693404, -0.693404] # 560nm
- [-0.685993, -0.685993, -0.685993] # 565nm
- [-0.68111, -0.68111, -0.68111] # 570nm
- [-0.677547, -0.677547, -0.677547] # 575nm
- [-0.680358, -0.680358, -0.680358] # 580nm
- [-0.686794, -0.686794, -0.686794] # 585nm
- [-0.696308, -0.696308, -0.696308] # 590nm
- [-0.708955, -0.708955, -0.708955] # 595nm
- [-0.720822, -0.720822, -0.720822] # 600nm
- [-0.735995, -0.735995, -0.735995] # 605nm
- [-0.751102, -0.751102, -0.751102] # 610nm
- [-0.75613, -0.75613, -0.75613] # 615nm
- [-0.747716, -0.747716, -0.747716] # 620nm
- [-0.756689, -0.756689, -0.756689] # 625nm
- [-0.785834, -0.785834, -0.785834] # 630nm
- [-0.876194, -0.876194, -0.876194] # 635nm
- [-1.06561, -1.06561, -1.06561] # 640nm
- [-1.28125, -1.28125, -1.28125] # 645nm
- [-1.53687, -1.53687, -1.53687] # 650nm
- [-1.79873, -1.79873, -1.79873] # 655nm
- [-2.0666, -2.0666, -2.0666] # 660nm
- [-9, -9, -9] # 665nm
- [-9, -9, -9] # 670nm
- [-9, -9, -9] # 675nm
- [-9, -9, -9] # 680nm
- [-9, -9, -9] # 685nm
- [-9, -9, -9] # 690nm
- [-9, -9, -9] # 695nm
- [-9, -9, -9] # 700nm
- [-9, -9, -9] # 705nm
- [-9, -9, -9] # 710nm
- [-9, -9, -9] # 715nm
- [-9, -9, -9] # 720nm
- [-9, -9, -9] # 725nm
- [-9, -9, -9] # 730nm
- [-9, -9, -9] # 735nm
- [-9, -9, -9] # 740nm
- [-9, -9, -9] # 745nm
- [-9, -9, -9] # 750nm
- [-9, -9, -9] # 755nm
- [-9, -9, -9] # 760nm
- [-9, -9, -9] # 765nm
- [-9, -9, -9] # 770nm
- [-9, -9, -9] # 775nm
- [-9, -9, -9] # 780nm
# Developed silver: neutral across the band.
dye_density:
- [0.333333, 0.333333, 0.333333] # 380nm
- [0.333333, 0.333333, 0.333333] # 385nm
- [0.333333, 0.333333, 0.333333] # 390nm
- [0.333333, 0.333333, 0.333333] # 395nm
- [0.333333, 0.333333, 0.333333] # 400nm
- [0.333333, 0.333333, 0.333333] # 405nm
- [0.333333, 0.333333, 0.333333] # 410nm
- [0.333333, 0.333333, 0.333333] # 415nm
- [0.333333, 0.333333, 0.333333] # 420nm
- [0.333333, 0.333333, 0.333333] # 425nm
- [0.333333, 0.333333, 0.333333] # 430nm
- [0.333333, 0.333333, 0.333333] # 435nm
- [0.333333, 0.333333, 0.333333] # 440nm
- [0.333333, 0.333333, 0.333333] # 445nm
- [0.333333, 0.333333, 0.333333] # 450nm
- [0.333333, 0.333333, 0.333333] # 455nm
- [0.333333, 0.333333, 0.333333] # 460nm
- [0.333333, 0.333333, 0.333333] # 465nm
- [0.333333, 0.333333, 0.333333] # 470nm
- [0.333333, 0.333333, 0.333333] # 475nm
- [0.333333, 0.333333, 0.333333] # 480nm
- [0.333333, 0.333333, 0.333333] # 485nm
- [0.333333, 0.333333, 0.333333] # 490nm
- [0.333333, 0.333333, 0.333333] # 495nm
- [0.333333, 0.333333, 0.333333] # 500nm
- [0.333333, 0.333333, 0.333333] # 505nm
- [0.333333, 0.333333, 0.333333] # 510nm
- [0.333333, 0.333333, 0.333333] # 515nm
- [0.333333, 0.333333, 0.333333] # 520nm
- [0.333333, 0.333333, 0.333333] # 525nm
- [0.333333, 0.333333, 0.333333] # 530nm
- [0.333333, 0.333333, 0.333333] # 535nm
- [0.333333, 0.333333, 0.333333] # 540nm
- [0.333333, 0.333333, 0.333333] # 545nm
- [0.333333, 0.333333, 0.333333] # 550nm
- [0.333333, 0.333333, 0.333333] # 555nm
- [0.333333, 0.333333, 0.333333] # 560nm
- [0.333333, 0.333333, 0.333333] # 565nm
- [0.333333, 0.333333, 0.333333] # 570nm
- [0.333333, 0.333333, 0.333333] # 575nm
- [0.333333, 0.333333, 0.333333] # 580nm
- [0.333333, 0.333333, 0.333333] # 585nm
- [0.333333, 0.333333, 0.333333] # 590nm
- [0.333333, 0.333333, 0.333333] # 595nm
- [0.333333, 0.333333, 0.333333] # 600nm
- [0.333333, 0.333333, 0.333333] # 605nm
- [0.333333, 0.333333, 0.333333] # 610nm
- [0.333333, 0.333333, 0.333333] # 615nm
- [0.333333, 0.333333, 0.333333] # 620nm
- [0.333333, 0.333333, 0.333333] # 625nm
- [0.333333, 0.333333, 0.333333] # 630nm
- [0.333333, 0.333333, 0.333333] # 635nm
- [0.333333, 0.333333, 0.333333] # 640nm
- [0.333333, 0.333333, 0.333333] # 645nm
- [0.333333, 0.333333, 0.333333] # 650nm
- [0.333333, 0.333333, 0.333333] # 655nm
- [0.333333, 0.333333, 0.333333] # 660nm
- [0.333333, 0.333333, 0.333333] # 665nm
- [0.333333, 0.333333, 0.333333] # 670nm
- [0.333333, 0.333333, 0.333333] # 675nm
- [0.333333, 0.333333, 0.333333] # 680nm
- [0.333333, 0.333333, 0.333333] # 685nm
- [0.333333, 0.333333, 0.333333] # 690nm
- [0.333333, 0.333333, 0.333333] # 695nm
- [0.333333, 0.333333, 0.333333] # 700nm
- [0.333333, 0.333333, 0.333333] # 705nm
- [0.333333, 0.333333, 0.333333] # 710nm
- [0.333333, 0.333333, 0.333333] # 715nm
- [0.333333, 0.333333, 0.333333] # 720nm
- [0.333333, 0.333333, 0.333333] # 725nm
- [0.333333, 0.333333, 0.333333] # 730nm
- [0.333333, 0.333333, 0.333333] # 735nm
- [0.333333, 0.333333, 0.333333] # 740nm
- [0.333333, 0.333333, 0.333333] # 745nm
- [0.333333, 0.333333, 0.333333] # 750nm
- [0.333333, 0.333333, 0.333333] # 755nm
- [0.333333, 0.333333, 0.333333] # 760nm
- [0.333333, 0.333333, 0.333333] # 765nm
- [0.333333, 0.333333, 0.333333] # 770nm
- [0.333333, 0.333333, 0.333333] # 775nm
- [0.333333, 0.333333, 0.333333] # 780nm
# Base plus fog. No orange mask on a black-and-white film.
base_density: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
# The characteristic curve, parametric.
log_exposure_min: -3
log_exposure_max: 4
density_curves:
- [3.5129e-07, 3.5129e-07, 3.5129e-07]
- [4.2083e-07, 4.2083e-07, 4.2083e-07]
- [5.0412e-07, 5.0412e-07, 5.0412e-07]
- [6.039e-07, 6.039e-07, 6.039e-07]
- [7.2343e-07, 7.2343e-07, 7.2343e-07]
- [8.6662e-07, 8.6662e-07, 8.6662e-07]
- [1.0381e-06, 1.0381e-06, 1.0381e-06]
- [1.2436e-06, 1.2436e-06, 1.2436e-06]
- [1.4898e-06, 1.4898e-06, 1.4898e-06]
- [1.7846e-06, 1.7846e-06, 1.7846e-06]
- [2.1379e-06, 2.1379e-06, 2.1379e-06]
- [2.561e-06, 2.561e-06, 2.561e-06]
- [3.0679e-06, 3.0679e-06, 3.0679e-06]
- [3.6751e-06, 3.6751e-06, 3.6751e-06]
- [4.4025e-06, 4.4025e-06, 4.4025e-06]
- [5.2739e-06, 5.2739e-06, 5.2739e-06]
- [6.3177e-06, 6.3177e-06, 6.3177e-06]
- [7.5681e-06, 7.5681e-06, 7.5681e-06]
- [9.066e-06, 9.066e-06, 9.066e-06]
- [1.086e-05, 1.086e-05, 1.086e-05]
- [1.301e-05, 1.301e-05, 1.301e-05]
- [1.5585e-05, 1.5585e-05, 1.5585e-05]
- [1.8669e-05, 1.8669e-05, 1.8669e-05]
- [2.2364e-05, 2.2364e-05, 2.2364e-05]
- [2.6789e-05, 2.6789e-05, 2.6789e-05]
- [3.2091e-05, 3.2091e-05, 3.2091e-05]
- [3.8441e-05, 3.8441e-05, 3.8441e-05]
- [4.6048e-05, 4.6048e-05, 4.6048e-05]
- [5.516e-05, 5.516e-05, 5.516e-05]
- [6.6074e-05, 6.6074e-05, 6.6074e-05]
- [7.9146e-05, 7.9146e-05, 7.9146e-05]
- [9.4804e-05, 9.4804e-05, 9.4804e-05]
- [0.00011356, 0.00011356, 0.00011356]
- [0.00013602, 0.00013602, 0.00013602]
- [0.00016292, 0.00016292, 0.00016292]
- [0.00019513, 0.00019513, 0.00019513]
- [0.0002337, 0.0002337, 0.0002337]
- [0.00027989, 0.00027989, 0.00027989]
- [0.00033519, 0.00033519, 0.00033519]
- [0.00040139, 0.00040139, 0.00040139]
- [0.00048064, 0.00048064, 0.00048064]
- [0.00057548, 0.00057548, 0.00057548]
- [0.00068897, 0.00068897, 0.00068897]
- [0.00082475, 0.00082475, 0.00082475]
- [0.00098713, 0.00098713, 0.00098713]
- [0.0011813, 0.0011813, 0.0011813]
- [0.0014134, 0.0014134, 0.0014134]
- [0.0016906, 0.0016906, 0.0016906]
- [0.0020217, 0.0020217, 0.0020217]
- [0.0024167, 0.0024167, 0.0024167]
- [0.0028878, 0.0028878, 0.0028878]
- [0.0034491, 0.0034491, 0.0034491]
- [0.004117, 0.004117, 0.004117]
- [0.004911, 0.004911, 0.004911]
- [0.0058534, 0.0058534, 0.0058534]
- [0.0069701, 0.0069701, 0.0069701]
- [0.0082906, 0.0082906, 0.0082906]
- [0.0098485, 0.0098485, 0.0098485]
- [0.011681, 0.011681, 0.011681]
- [0.013831, 0.013831, 0.013831]
- [0.016344, 0.016344, 0.016344]
- [0.019268, 0.019268, 0.019268]
- [0.022655, 0.022655, 0.022655]
- [0.026559, 0.026559, 0.026559]
- [0.031032, 0.031032, 0.031032]
- [0.036126, 0.036126, 0.036126]
- [0.041886, 0.041886, 0.041886]
- [0.048352, 0.048352, 0.048352]
- [0.055556, 0.055556, 0.055556]
- [0.063518, 0.063518, 0.063518]
- [0.072247, 0.072247, 0.072247]
- [0.081739, 0.081739, 0.081739]
- [0.09198, 0.09198, 0.09198]
- [0.10294, 0.10294, 0.10294]
- [0.11459, 0.11459, 0.11459]
- [0.12687, 0.12687, 0.12687]
- [0.13975, 0.13975, 0.13975]
- [0.15317, 0.15317, 0.15317]
- [0.16707, 0.16707, 0.16707]
- [0.18141, 0.18141, 0.18141]
- [0.19613, 0.19613, 0.19613]
- [0.21119, 0.21119, 0.21119]
- [0.22653, 0.22653, 0.22653]
- [0.24214, 0.24214, 0.24214]
- [0.25796, 0.25796, 0.25796]
- [0.27396, 0.27396, 0.27396]
- [0.29013, 0.29013, 0.29013]
- [0.30643, 0.30643, 0.30643]
- [0.32284, 0.32284, 0.32284]
- [0.33935, 0.33935, 0.33935]
- [0.35595, 0.35595, 0.35595]
- [0.37261, 0.37261, 0.37261]
- [0.38933, 0.38933, 0.38933]
- [0.4061, 0.4061, 0.4061]
- [0.42291, 0.42291, 0.42291]
- [0.43975, 0.43975, 0.43975]
- [0.45663, 0.45663, 0.45663]
- [0.47352, 0.47352, 0.47352]
- [0.49044, 0.49044, 0.49044]
- [0.50737, 0.50737, 0.50737]
- [0.52432, 0.52432, 0.52432]
- [0.54128, 0.54128, 0.54128]
- [0.55825, 0.55825, 0.55825]
- [0.57523, 0.57523, 0.57523]
- [0.59222, 0.59222, 0.59222]
- [0.60921, 0.60921, 0.60921]
- [0.6262, 0.6262, 0.6262]
- [0.6432, 0.6432, 0.6432]
- [0.6602, 0.6602, 0.6602]
- [0.67721, 0.67721, 0.67721]
- [0.69422, 0.69422, 0.69422]
- [0.71123, 0.71123, 0.71123]
- [0.72824, 0.72824, 0.72824]
- [0.74525, 0.74525, 0.74525]
- [0.76226, 0.76226, 0.76226]
- [0.77928, 0.77928, 0.77928]
- [0.79629, 0.79629, 0.79629]
- [0.81331, 0.81331, 0.81331]
- [0.83033, 0.83033, 0.83033]
- [0.84735, 0.84735, 0.84735]
- [0.86436, 0.86436, 0.86436]
- [0.88138, 0.88138, 0.88138]
- [0.8984, 0.8984, 0.8984]
- [0.91542, 0.91542, 0.91542]
- [0.93244, 0.93244, 0.93244]
- [0.94945, 0.94945, 0.94945]
- [0.96647, 0.96647, 0.96647]
- [0.98349, 0.98349, 0.98349]
- [1.0005, 1.0005, 1.0005]
- [1.0175, 1.0175, 1.0175]
- [1.0346, 1.0346, 1.0346]
- [1.0516, 1.0516, 1.0516]
- [1.0686, 1.0686, 1.0686]
- [1.0856, 1.0856, 1.0856]
- [1.1026, 1.1026, 1.1026]
- [1.1196, 1.1196, 1.1196]
- [1.1367, 1.1367, 1.1367]
- [1.1537, 1.1537, 1.1537]
- [1.1707, 1.1707, 1.1707]
- [1.1877, 1.1877, 1.1877]
- [1.2047, 1.2047, 1.2047]
- [1.2218, 1.2218, 1.2218]
- [1.2388, 1.2388, 1.2388]
- [1.2558, 1.2558, 1.2558]
- [1.2728, 1.2728, 1.2728]
- [1.2898, 1.2898, 1.2898]
- [1.3069, 1.3069, 1.3069]
- [1.3239, 1.3239, 1.3239]
- [1.3409, 1.3409, 1.3409]
- [1.3579, 1.3579, 1.3579]
- [1.3749, 1.3749, 1.3749]
- [1.392, 1.392, 1.392]
- [1.409, 1.409, 1.409]
- [1.426, 1.426, 1.426]
- [1.443, 1.443, 1.443]
- [1.46, 1.46, 1.46]
- [1.477, 1.477, 1.477]
- [1.4941, 1.4941, 1.4941]
- [1.5111, 1.5111, 1.5111]
- [1.5281, 1.5281, 1.5281]
- [1.5451, 1.5451, 1.5451]
- [1.5621, 1.5621, 1.5621]
- [1.5791, 1.5791, 1.5791]
- [1.5962, 1.5962, 1.5962]
- [1.6132, 1.6132, 1.6132]
- [1.6302, 1.6302, 1.6302]
- [1.6472, 1.6472, 1.6472]
- [1.6642, 1.6642, 1.6642]
- [1.6812, 1.6812, 1.6812]
- [1.6982, 1.6982, 1.6982]
- [1.7153, 1.7153, 1.7153]
- [1.7323, 1.7323, 1.7323]
- [1.7493, 1.7493, 1.7493]
- [1.7663, 1.7663, 1.7663]
- [1.7833, 1.7833, 1.7833]
- [1.8003, 1.8003, 1.8003]
- [1.8173, 1.8173, 1.8173]
- [1.8343, 1.8343, 1.8343]
- [1.8512, 1.8512, 1.8512]
- [1.8682, 1.8682, 1.8682]
- [1.8852, 1.8852, 1.8852]
- [1.9022, 1.9022, 1.9022]
- [1.9191, 1.9191, 1.9191]
- [1.9361, 1.9361, 1.9361]
- [1.953, 1.953, 1.953]
- [1.97, 1.97, 1.97]
- [1.9869, 1.9869, 1.9869]
- [2.0038, 2.0038, 2.0038]
- [2.0207, 2.0207, 2.0207]
- [2.0375, 2.0375, 2.0375]
- [2.0544, 2.0544, 2.0544]
- [2.0712, 2.0712, 2.0712]
- [2.088, 2.088, 2.088]
- [2.1047, 2.1047, 2.1047]
- [2.1214, 2.1214, 2.1214]
- [2.1381, 2.1381, 2.1381]
- [2.1547, 2.1547, 2.1547]
- [2.1713, 2.1713, 2.1713]
- [2.1878, 2.1878, 2.1878]
- [2.2042, 2.2042, 2.2042]
- [2.2205, 2.2205, 2.2205]
- [2.2367, 2.2367, 2.2367]
- [2.2529, 2.2529, 2.2529]
- [2.2688, 2.2688, 2.2688]
- [2.2847, 2.2847, 2.2847]
- [2.3003, 2.3003, 2.3003]
- [2.3158, 2.3158, 2.3158]
- [2.3311, 2.3311, 2.3311]
- [2.3462, 2.3462, 2.3462]
- [2.361, 2.361, 2.361]
- [2.3755, 2.3755, 2.3755]
- [2.3896, 2.3896, 2.3896]
- [2.4035, 2.4035, 2.4035]
- [2.417, 2.417, 2.417]
- [2.43, 2.43, 2.43]
- [2.4426, 2.4426, 2.4426]
- [2.4547, 2.4547, 2.4547]
- [2.4664, 2.4664, 2.4664]
- [2.4775, 2.4775, 2.4775]
- [2.488, 2.488, 2.488]
- [2.498, 2.498, 2.498]
- [2.5074, 2.5074, 2.5074]
- [2.5162, 2.5162, 2.5162]
- [2.5244, 2.5244, 2.5244]
- [2.532, 2.532, 2.532]
- [2.539, 2.539, 2.539]
- [2.5455, 2.5455, 2.5455]
- [2.5514, 2.5514, 2.5514]
- [2.5567, 2.5567, 2.5567]
- [2.5616, 2.5616, 2.5616]
- [2.566, 2.566, 2.566]
- [2.5699, 2.5699, 2.5699]
- [2.5735, 2.5735, 2.5735]
- [2.5766, 2.5766, 2.5766]
- [2.5795, 2.5795, 2.5795]
- [2.582, 2.582, 2.582]
- [2.5842, 2.5842, 2.5842]
- [2.5861, 2.5861, 2.5861]
- [2.5879, 2.5879, 2.5879]
- [2.5894, 2.5894, 2.5894]
- [2.5907, 2.5907, 2.5907]
- [2.5919, 2.5919, 2.5919]
- [2.5929, 2.5929, 2.5929]
- [2.5938, 2.5938, 2.5938]
- [2.5946, 2.5946, 2.5946]
- [2.5953, 2.5953, 2.5953]
- [2.5959, 2.5959, 2.5959]
- [2.5964, 2.5964, 2.5964]
- [2.5969, 2.5969, 2.5969]
- [2.5973, 2.5973, 2.5973]
- [2.5977, 2.5977, 2.5977]
- [2.598, 2.598, 2.598]
- [2.5982, 2.5982, 2.5982]
- [2.5985, 2.5985, 2.5985]
- [2.5987, 2.5987, 2.5987]
- [2.5988, 2.5988, 2.5988]
@@ -0,0 +1,459 @@
# Generated by tools/film-profiles/convert.py.
#
# *** CONSTRUCTED, NOT MEASURED. ***
#
# Ilford publish this film's spectral sensitivity and characteristic
# curve as graphs, and no granularity figure at all, so this profile is
# built rather than extracted. Its speed is the published ISO rating,
# and its contrast is ISO 6:1993's normal development (average gradient
# 0.62). Its spectral response is borrowed from Kodak Double-X, a
# *measured* panchromatic negative, shifted by the speed difference.
# Its granularity is an estimate, ordered against the other films here.
#
# So it renders as a film of this speed and contrast, not as a
# measurement of this emulsion. Replace it outright if anyone digitises
# the real curves.
version: 'constructed-1'
stock: ilford_pan_f_plus
name: 'Ilford Pan F Plus'
kind: negative # negative | positive
support: film # film | paper
stage: filming # filming | printing
monochrome: true
reference_illuminant: D55
viewing_illuminant: D50
rms_granularity: [5, 5, 5]
# log10 spectral sensitivity per layer, 380-780nm at 5nm.
log_sensitivity:
- [-9, -9, -9] # 380nm
- [-9, -9, -9] # 385nm
- [-9, -9, -9] # 390nm
- [-9, -9, -9] # 395nm
- [-9, -9, -9] # 400nm
- [-9, -9, -9] # 405nm
- [-9, -9, -9] # 410nm
- [-9, -9, -9] # 415nm
- [-9, -9, -9] # 420nm
- [-1.41619, -1.41619, -1.41619] # 425nm
- [-1.41593, -1.41593, -1.41593] # 430nm
- [-1.41593, -1.41593, -1.41593] # 435nm
- [-1.41628, -1.41628, -1.41628] # 440nm
- [-1.42598, -1.42598, -1.42598] # 445nm
- [-1.43871, -1.43871, -1.43871] # 450nm
- [-1.4555, -1.4555, -1.4555] # 455nm
- [-1.47476, -1.47476, -1.47476] # 460nm
- [-1.49621, -1.49621, -1.49621] # 465nm
- [-1.51464, -1.51464, -1.51464] # 470nm
- [-1.54053, -1.54053, -1.54053] # 475nm
- [-1.56831, -1.56831, -1.56831] # 480nm
- [-1.60625, -1.60625, -1.60625] # 485nm
- [-1.646, -1.646, -1.646] # 490nm
- [-1.68568, -1.68568, -1.68568] # 495nm
- [-1.71895, -1.71895, -1.71895] # 500nm
- [-1.73423, -1.73423, -1.73423] # 505nm
- [-1.7374, -1.7374, -1.7374] # 510nm
- [-1.73669, -1.73669, -1.73669] # 515nm
- [-1.72692, -1.72692, -1.72692] # 520nm
- [-1.7139, -1.7139, -1.7139] # 525nm
- [-1.69913, -1.69913, -1.69913] # 530nm
- [-1.68117, -1.68117, -1.68117] # 535nm
- [-1.66295, -1.66295, -1.66295] # 540nm
- [-1.64408, -1.64408, -1.64408] # 545nm
- [-1.62751, -1.62751, -1.62751] # 550nm
- [-1.60974, -1.60974, -1.60974] # 555nm
- [-1.59649, -1.59649, -1.59649] # 560nm
- [-1.58908, -1.58908, -1.58908] # 565nm
- [-1.5842, -1.5842, -1.5842] # 570nm
- [-1.58064, -1.58064, -1.58064] # 575nm
- [-1.58345, -1.58345, -1.58345] # 580nm
- [-1.58988, -1.58988, -1.58988] # 585nm
- [-1.5994, -1.5994, -1.5994] # 590nm
- [-1.61204, -1.61204, -1.61204] # 595nm
- [-1.62391, -1.62391, -1.62391] # 600nm
- [-1.63908, -1.63908, -1.63908] # 605nm
- [-1.65419, -1.65419, -1.65419] # 610nm
- [-1.65922, -1.65922, -1.65922] # 615nm
- [-1.65081, -1.65081, -1.65081] # 620nm
- [-1.65978, -1.65978, -1.65978] # 625nm
- [-1.68892, -1.68892, -1.68892] # 630nm
- [-1.77928, -1.77928, -1.77928] # 635nm
- [-1.9687, -1.9687, -1.9687] # 640nm
- [-2.18434, -2.18434, -2.18434] # 645nm
- [-2.43996, -2.43996, -2.43996] # 650nm
- [-2.70182, -2.70182, -2.70182] # 655nm
- [-2.96969, -2.96969, -2.96969] # 660nm
- [-9, -9, -9] # 665nm
- [-9, -9, -9] # 670nm
- [-9, -9, -9] # 675nm
- [-9, -9, -9] # 680nm
- [-9, -9, -9] # 685nm
- [-9, -9, -9] # 690nm
- [-9, -9, -9] # 695nm
- [-9, -9, -9] # 700nm
- [-9, -9, -9] # 705nm
- [-9, -9, -9] # 710nm
- [-9, -9, -9] # 715nm
- [-9, -9, -9] # 720nm
- [-9, -9, -9] # 725nm
- [-9, -9, -9] # 730nm
- [-9, -9, -9] # 735nm
- [-9, -9, -9] # 740nm
- [-9, -9, -9] # 745nm
- [-9, -9, -9] # 750nm
- [-9, -9, -9] # 755nm
- [-9, -9, -9] # 760nm
- [-9, -9, -9] # 765nm
- [-9, -9, -9] # 770nm
- [-9, -9, -9] # 775nm
- [-9, -9, -9] # 780nm
# Developed silver: neutral across the band.
dye_density:
- [0.333333, 0.333333, 0.333333] # 380nm
- [0.333333, 0.333333, 0.333333] # 385nm
- [0.333333, 0.333333, 0.333333] # 390nm
- [0.333333, 0.333333, 0.333333] # 395nm
- [0.333333, 0.333333, 0.333333] # 400nm
- [0.333333, 0.333333, 0.333333] # 405nm
- [0.333333, 0.333333, 0.333333] # 410nm
- [0.333333, 0.333333, 0.333333] # 415nm
- [0.333333, 0.333333, 0.333333] # 420nm
- [0.333333, 0.333333, 0.333333] # 425nm
- [0.333333, 0.333333, 0.333333] # 430nm
- [0.333333, 0.333333, 0.333333] # 435nm
- [0.333333, 0.333333, 0.333333] # 440nm
- [0.333333, 0.333333, 0.333333] # 445nm
- [0.333333, 0.333333, 0.333333] # 450nm
- [0.333333, 0.333333, 0.333333] # 455nm
- [0.333333, 0.333333, 0.333333] # 460nm
- [0.333333, 0.333333, 0.333333] # 465nm
- [0.333333, 0.333333, 0.333333] # 470nm
- [0.333333, 0.333333, 0.333333] # 475nm
- [0.333333, 0.333333, 0.333333] # 480nm
- [0.333333, 0.333333, 0.333333] # 485nm
- [0.333333, 0.333333, 0.333333] # 490nm
- [0.333333, 0.333333, 0.333333] # 495nm
- [0.333333, 0.333333, 0.333333] # 500nm
- [0.333333, 0.333333, 0.333333] # 505nm
- [0.333333, 0.333333, 0.333333] # 510nm
- [0.333333, 0.333333, 0.333333] # 515nm
- [0.333333, 0.333333, 0.333333] # 520nm
- [0.333333, 0.333333, 0.333333] # 525nm
- [0.333333, 0.333333, 0.333333] # 530nm
- [0.333333, 0.333333, 0.333333] # 535nm
- [0.333333, 0.333333, 0.333333] # 540nm
- [0.333333, 0.333333, 0.333333] # 545nm
- [0.333333, 0.333333, 0.333333] # 550nm
- [0.333333, 0.333333, 0.333333] # 555nm
- [0.333333, 0.333333, 0.333333] # 560nm
- [0.333333, 0.333333, 0.333333] # 565nm
- [0.333333, 0.333333, 0.333333] # 570nm
- [0.333333, 0.333333, 0.333333] # 575nm
- [0.333333, 0.333333, 0.333333] # 580nm
- [0.333333, 0.333333, 0.333333] # 585nm
- [0.333333, 0.333333, 0.333333] # 590nm
- [0.333333, 0.333333, 0.333333] # 595nm
- [0.333333, 0.333333, 0.333333] # 600nm
- [0.333333, 0.333333, 0.333333] # 605nm
- [0.333333, 0.333333, 0.333333] # 610nm
- [0.333333, 0.333333, 0.333333] # 615nm
- [0.333333, 0.333333, 0.333333] # 620nm
- [0.333333, 0.333333, 0.333333] # 625nm
- [0.333333, 0.333333, 0.333333] # 630nm
- [0.333333, 0.333333, 0.333333] # 635nm
- [0.333333, 0.333333, 0.333333] # 640nm
- [0.333333, 0.333333, 0.333333] # 645nm
- [0.333333, 0.333333, 0.333333] # 650nm
- [0.333333, 0.333333, 0.333333] # 655nm
- [0.333333, 0.333333, 0.333333] # 660nm
- [0.333333, 0.333333, 0.333333] # 665nm
- [0.333333, 0.333333, 0.333333] # 670nm
- [0.333333, 0.333333, 0.333333] # 675nm
- [0.333333, 0.333333, 0.333333] # 680nm
- [0.333333, 0.333333, 0.333333] # 685nm
- [0.333333, 0.333333, 0.333333] # 690nm
- [0.333333, 0.333333, 0.333333] # 695nm
- [0.333333, 0.333333, 0.333333] # 700nm
- [0.333333, 0.333333, 0.333333] # 705nm
- [0.333333, 0.333333, 0.333333] # 710nm
- [0.333333, 0.333333, 0.333333] # 715nm
- [0.333333, 0.333333, 0.333333] # 720nm
- [0.333333, 0.333333, 0.333333] # 725nm
- [0.333333, 0.333333, 0.333333] # 730nm
- [0.333333, 0.333333, 0.333333] # 735nm
- [0.333333, 0.333333, 0.333333] # 740nm
- [0.333333, 0.333333, 0.333333] # 745nm
- [0.333333, 0.333333, 0.333333] # 750nm
- [0.333333, 0.333333, 0.333333] # 755nm
- [0.333333, 0.333333, 0.333333] # 760nm
- [0.333333, 0.333333, 0.333333] # 765nm
- [0.333333, 0.333333, 0.333333] # 770nm
- [0.333333, 0.333333, 0.333333] # 775nm
- [0.333333, 0.333333, 0.333333] # 780nm
# Base plus fog. No orange mask on a black-and-white film.
base_density: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
# The characteristic curve, parametric.
log_exposure_min: -3
log_exposure_max: 4
density_curves:
- [3.5129e-07, 3.5129e-07, 3.5129e-07]
- [4.2083e-07, 4.2083e-07, 4.2083e-07]
- [5.0412e-07, 5.0412e-07, 5.0412e-07]
- [6.039e-07, 6.039e-07, 6.039e-07]
- [7.2343e-07, 7.2343e-07, 7.2343e-07]
- [8.6662e-07, 8.6662e-07, 8.6662e-07]
- [1.0381e-06, 1.0381e-06, 1.0381e-06]
- [1.2436e-06, 1.2436e-06, 1.2436e-06]
- [1.4898e-06, 1.4898e-06, 1.4898e-06]
- [1.7846e-06, 1.7846e-06, 1.7846e-06]
- [2.1379e-06, 2.1379e-06, 2.1379e-06]
- [2.561e-06, 2.561e-06, 2.561e-06]
- [3.0679e-06, 3.0679e-06, 3.0679e-06]
- [3.6751e-06, 3.6751e-06, 3.6751e-06]
- [4.4025e-06, 4.4025e-06, 4.4025e-06]
- [5.2739e-06, 5.2739e-06, 5.2739e-06]
- [6.3177e-06, 6.3177e-06, 6.3177e-06]
- [7.5681e-06, 7.5681e-06, 7.5681e-06]
- [9.066e-06, 9.066e-06, 9.066e-06]
- [1.086e-05, 1.086e-05, 1.086e-05]
- [1.301e-05, 1.301e-05, 1.301e-05]
- [1.5585e-05, 1.5585e-05, 1.5585e-05]
- [1.8669e-05, 1.8669e-05, 1.8669e-05]
- [2.2364e-05, 2.2364e-05, 2.2364e-05]
- [2.6789e-05, 2.6789e-05, 2.6789e-05]
- [3.2091e-05, 3.2091e-05, 3.2091e-05]
- [3.8441e-05, 3.8441e-05, 3.8441e-05]
- [4.6048e-05, 4.6048e-05, 4.6048e-05]
- [5.516e-05, 5.516e-05, 5.516e-05]
- [6.6074e-05, 6.6074e-05, 6.6074e-05]
- [7.9146e-05, 7.9146e-05, 7.9146e-05]
- [9.4804e-05, 9.4804e-05, 9.4804e-05]
- [0.00011356, 0.00011356, 0.00011356]
- [0.00013602, 0.00013602, 0.00013602]
- [0.00016292, 0.00016292, 0.00016292]
- [0.00019513, 0.00019513, 0.00019513]
- [0.0002337, 0.0002337, 0.0002337]
- [0.00027989, 0.00027989, 0.00027989]
- [0.00033519, 0.00033519, 0.00033519]
- [0.00040139, 0.00040139, 0.00040139]
- [0.00048064, 0.00048064, 0.00048064]
- [0.00057548, 0.00057548, 0.00057548]
- [0.00068897, 0.00068897, 0.00068897]
- [0.00082475, 0.00082475, 0.00082475]
- [0.00098713, 0.00098713, 0.00098713]
- [0.0011813, 0.0011813, 0.0011813]
- [0.0014134, 0.0014134, 0.0014134]
- [0.0016906, 0.0016906, 0.0016906]
- [0.0020217, 0.0020217, 0.0020217]
- [0.0024167, 0.0024167, 0.0024167]
- [0.0028878, 0.0028878, 0.0028878]
- [0.0034491, 0.0034491, 0.0034491]
- [0.004117, 0.004117, 0.004117]
- [0.004911, 0.004911, 0.004911]
- [0.0058534, 0.0058534, 0.0058534]
- [0.0069701, 0.0069701, 0.0069701]
- [0.0082906, 0.0082906, 0.0082906]
- [0.0098485, 0.0098485, 0.0098485]
- [0.011681, 0.011681, 0.011681]
- [0.013831, 0.013831, 0.013831]
- [0.016344, 0.016344, 0.016344]
- [0.019268, 0.019268, 0.019268]
- [0.022655, 0.022655, 0.022655]
- [0.026559, 0.026559, 0.026559]
- [0.031032, 0.031032, 0.031032]
- [0.036126, 0.036126, 0.036126]
- [0.041886, 0.041886, 0.041886]
- [0.048352, 0.048352, 0.048352]
- [0.055556, 0.055556, 0.055556]
- [0.063518, 0.063518, 0.063518]
- [0.072247, 0.072247, 0.072247]
- [0.081739, 0.081739, 0.081739]
- [0.09198, 0.09198, 0.09198]
- [0.10294, 0.10294, 0.10294]
- [0.11459, 0.11459, 0.11459]
- [0.12687, 0.12687, 0.12687]
- [0.13975, 0.13975, 0.13975]
- [0.15317, 0.15317, 0.15317]
- [0.16707, 0.16707, 0.16707]
- [0.18141, 0.18141, 0.18141]
- [0.19613, 0.19613, 0.19613]
- [0.21119, 0.21119, 0.21119]
- [0.22653, 0.22653, 0.22653]
- [0.24214, 0.24214, 0.24214]
- [0.25796, 0.25796, 0.25796]
- [0.27396, 0.27396, 0.27396]
- [0.29013, 0.29013, 0.29013]
- [0.30643, 0.30643, 0.30643]
- [0.32284, 0.32284, 0.32284]
- [0.33935, 0.33935, 0.33935]
- [0.35595, 0.35595, 0.35595]
- [0.37261, 0.37261, 0.37261]
- [0.38933, 0.38933, 0.38933]
- [0.4061, 0.4061, 0.4061]
- [0.42291, 0.42291, 0.42291]
- [0.43975, 0.43975, 0.43975]
- [0.45663, 0.45663, 0.45663]
- [0.47352, 0.47352, 0.47352]
- [0.49044, 0.49044, 0.49044]
- [0.50737, 0.50737, 0.50737]
- [0.52432, 0.52432, 0.52432]
- [0.54128, 0.54128, 0.54128]
- [0.55825, 0.55825, 0.55825]
- [0.57523, 0.57523, 0.57523]
- [0.59222, 0.59222, 0.59222]
- [0.60921, 0.60921, 0.60921]
- [0.6262, 0.6262, 0.6262]
- [0.6432, 0.6432, 0.6432]
- [0.6602, 0.6602, 0.6602]
- [0.67721, 0.67721, 0.67721]
- [0.69422, 0.69422, 0.69422]
- [0.71123, 0.71123, 0.71123]
- [0.72824, 0.72824, 0.72824]
- [0.74525, 0.74525, 0.74525]
- [0.76226, 0.76226, 0.76226]
- [0.77928, 0.77928, 0.77928]
- [0.79629, 0.79629, 0.79629]
- [0.81331, 0.81331, 0.81331]
- [0.83033, 0.83033, 0.83033]
- [0.84734, 0.84734, 0.84734]
- [0.86436, 0.86436, 0.86436]
- [0.88138, 0.88138, 0.88138]
- [0.8984, 0.8984, 0.8984]
- [0.91542, 0.91542, 0.91542]
- [0.93244, 0.93244, 0.93244]
- [0.94945, 0.94945, 0.94945]
- [0.96647, 0.96647, 0.96647]
- [0.98349, 0.98349, 0.98349]
- [1.0005, 1.0005, 1.0005]
- [1.0175, 1.0175, 1.0175]
- [1.0345, 1.0345, 1.0345]
- [1.0516, 1.0516, 1.0516]
- [1.0686, 1.0686, 1.0686]
- [1.0856, 1.0856, 1.0856]
- [1.1026, 1.1026, 1.1026]
- [1.1196, 1.1196, 1.1196]
- [1.1367, 1.1367, 1.1367]
- [1.1537, 1.1537, 1.1537]
- [1.1707, 1.1707, 1.1707]
- [1.1877, 1.1877, 1.1877]
- [1.2047, 1.2047, 1.2047]
- [1.2218, 1.2218, 1.2218]
- [1.2388, 1.2388, 1.2388]
- [1.2558, 1.2558, 1.2558]
- [1.2728, 1.2728, 1.2728]
- [1.2898, 1.2898, 1.2898]
- [1.3069, 1.3069, 1.3069]
- [1.3239, 1.3239, 1.3239]
- [1.3409, 1.3409, 1.3409]
- [1.3579, 1.3579, 1.3579]
- [1.3749, 1.3749, 1.3749]
- [1.3919, 1.3919, 1.3919]
- [1.409, 1.409, 1.409]
- [1.426, 1.426, 1.426]
- [1.443, 1.443, 1.443]
- [1.46, 1.46, 1.46]
- [1.477, 1.477, 1.477]
- [1.494, 1.494, 1.494]
- [1.5111, 1.5111, 1.5111]
- [1.5281, 1.5281, 1.5281]
- [1.5451, 1.5451, 1.5451]
- [1.5621, 1.5621, 1.5621]
- [1.5791, 1.5791, 1.5791]
- [1.5961, 1.5961, 1.5961]
- [1.6131, 1.6131, 1.6131]
- [1.6301, 1.6301, 1.6301]
- [1.6471, 1.6471, 1.6471]
- [1.6642, 1.6642, 1.6642]
- [1.6812, 1.6812, 1.6812]
- [1.6982, 1.6982, 1.6982]
- [1.7151, 1.7151, 1.7151]
- [1.7321, 1.7321, 1.7321]
- [1.7491, 1.7491, 1.7491]
- [1.7661, 1.7661, 1.7661]
- [1.7831, 1.7831, 1.7831]
- [1.8001, 1.8001, 1.8001]
- [1.817, 1.817, 1.817]
- [1.834, 1.834, 1.834]
- [1.8509, 1.8509, 1.8509]
- [1.8679, 1.8679, 1.8679]
- [1.8848, 1.8848, 1.8848]
- [1.9017, 1.9017, 1.9017]
- [1.9186, 1.9186, 1.9186]
- [1.9354, 1.9354, 1.9354]
- [1.9523, 1.9523, 1.9523]
- [1.9691, 1.9691, 1.9691]
- [1.9859, 1.9859, 1.9859]
- [2.0027, 2.0027, 2.0027]
- [2.0194, 2.0194, 2.0194]
- [2.036, 2.036, 2.036]
- [2.0527, 2.0527, 2.0527]
- [2.0692, 2.0692, 2.0692]
- [2.0857, 2.0857, 2.0857]
- [2.1022, 2.1022, 2.1022]
- [2.1185, 2.1185, 2.1185]
- [2.1347, 2.1347, 2.1347]
- [2.1509, 2.1509, 2.1509]
- [2.1669, 2.1669, 2.1669]
- [2.1827, 2.1827, 2.1827]
- [2.1984, 2.1984, 2.1984]
- [2.2139, 2.2139, 2.2139]
- [2.2292, 2.2292, 2.2292]
- [2.2443, 2.2443, 2.2443]
- [2.2591, 2.2591, 2.2591]
- [2.2737, 2.2737, 2.2737]
- [2.2879, 2.2879, 2.2879]
- [2.3018, 2.3018, 2.3018]
- [2.3153, 2.3153, 2.3153]
- [2.3284, 2.3284, 2.3284]
- [2.3411, 2.3411, 2.3411]
- [2.3533, 2.3533, 2.3533]
- [2.365, 2.365, 2.365]
- [2.3761, 2.3761, 2.3761]
- [2.3867, 2.3867, 2.3867]
- [2.3968, 2.3968, 2.3968]
- [2.4063, 2.4063, 2.4063]
- [2.4151, 2.4151, 2.4151]
- [2.4234, 2.4234, 2.4234]
- [2.4311, 2.4311, 2.4311]
- [2.4382, 2.4382, 2.4382]
- [2.4447, 2.4447, 2.4447]
- [2.4507, 2.4507, 2.4507]
- [2.4561, 2.4561, 2.4561]
- [2.461, 2.461, 2.461]
- [2.4655, 2.4655, 2.4655]
- [2.4695, 2.4695, 2.4695]
- [2.4731, 2.4731, 2.4731]
- [2.4763, 2.4763, 2.4763]
- [2.4791, 2.4791, 2.4791]
- [2.4817, 2.4817, 2.4817]
- [2.4839, 2.4839, 2.4839]
- [2.4859, 2.4859, 2.4859]
- [2.4877, 2.4877, 2.4877]
- [2.4892, 2.4892, 2.4892]
- [2.4906, 2.4906, 2.4906]
- [2.4918, 2.4918, 2.4918]
- [2.4928, 2.4928, 2.4928]
- [2.4937, 2.4937, 2.4937]
- [2.4945, 2.4945, 2.4945]
- [2.4952, 2.4952, 2.4952]
- [2.4958, 2.4958, 2.4958]
- [2.4964, 2.4964, 2.4964]
- [2.4969, 2.4969, 2.4969]
- [2.4973, 2.4973, 2.4973]
- [2.4976, 2.4976, 2.4976]
- [2.4979, 2.4979, 2.4979]
- [2.4982, 2.4982, 2.4982]
- [2.4984, 2.4984, 2.4984]
- [2.4986, 2.4986, 2.4986]
- [2.4988, 2.4988, 2.4988]
- [2.499, 2.499, 2.499]
- [2.4991, 2.4991, 2.4991]
- [2.4992, 2.4992, 2.4992]
- [2.4993, 2.4993, 2.4993]
- [2.4994, 2.4994, 2.4994]
- [2.4995, 2.4995, 2.4995]
+20
View File
@@ -118,4 +118,24 @@ pub static BUILT_IN: &[(&str, &str)] = &[
include_str!("../profiles/kodak_doublex.yaml"), include_str!("../profiles/kodak_doublex.yaml"),
), ),
("kodak_2302", include_str!("../profiles/kodak_2302.yaml")), ("kodak_2302", include_str!("../profiles/kodak_2302.yaml")),
(
"ilford_pan_f_plus",
include_str!("../profiles/ilford_pan_f_plus.yaml"),
),
(
"ilford_delta_100",
include_str!("../profiles/ilford_delta_100.yaml"),
),
(
"ilford_fp4_plus",
include_str!("../profiles/ilford_fp4_plus.yaml"),
),
(
"ilford_delta_400",
include_str!("../profiles/ilford_delta_400.yaml"),
),
(
"ilford_hp5_plus",
include_str!("../profiles/ilford_hp5_plus.yaml"),
),
]; ];
+28 -8
View File
@@ -34,15 +34,35 @@
//! //!
//! # Where crystal habit lives //! # Where crystal habit lives
//! //!
//! In [`crate::profile::Profile::rms_granularity`], the number every datasheet //! In [`crate::profile::Profile::rms_granularity`]. It measures exactly the
//! publishes. It is a measurement of exactly the thing that differs between a //! thing that differs between a traditional cubic emulsion and a tabular one:
//! traditional cubic emulsion and a tabular one: for the same speed, tabular //! for the same speed, tabular crystals present more area per unit of silver,
//! crystals present more area per unit of silver, so fewer, flatter grains //! so fewer, flatter grains cover the frame and the film reads finer. A
//! cover the frame and the film reads finer. Ilford Delta 100 is quoted around //! stock's grain character therefore needs no new model and no new code — it
//! 9 where HP5 Plus is around 12, and that gap *is* the crystal habit. //! is one number in the profile.
//! //!
//! So a stock's grain character needs no new model and no new code — it is one //! # Getting that number is the hard part
//! number in the profile, taken from the manufacturer's own measurement. //!
//! It is **not** simply "what the datasheet says", and assuming so is a trap
//! worth naming:
//!
//! - **Kodak colour negatives publish Print Grain Index, not RMS.** PGI is a
//! perceptual scale from viewer surveys — 25 is roughly the threshold of
//! visibility and four units is one just-noticeable difference — and Kodak
//! state it *cannot* be compared to RMS granularity. There is no published
//! conversion, so a PGI figure cannot be dropped into this field.
//! - **Ilford publish no granularity figure at all.** Their technical sheets
//! describe grain only in words ("fine grain", "finest grain"); the word
//! granularity does not appear in them. Spectral sensitivity and the
//! characteristic curves are there, but as graphs.
//! - RMS granularity proper is published mostly for black-and-white, reversal
//! and motion-picture stocks.
//!
//! So the shipped defaults are plausible rather than measured, and every stock
//! currently carries the same ones — which means **grain does not yet tell one
//! stock from another**. Fixing that is per-stock data, not code, and for the
//! films whose figures are unpublished it needs a defensible estimate rather
//! than a number copied off a page.
use crate::profile::Profile; use crate::profile::Profile;
+24
View File
@@ -126,6 +126,30 @@ mod tests {
"{} rendered mid-grey as {mid:?}", "{} rendered mid-grey as {mid:?}",
film.stock film.stock
); );
// And that it is a *photograph*. Finiteness alone passes for a
// stock that renders every frame black or blown, which is the way
// a constructed profile fails: the curve parses, bakes, and sits
// entirely off one end of its own exposure range.
let luma = (mid[0] + mid[1] + mid[2]) / 3.0;
assert!(
(0.02..0.75).contains(&luma),
"{} put mid-grey at {luma:.3}, which is not a rendering of it",
film.stock
);
// Monotone, too. A stock that darkens as it is exposed is either
// inverted or broken, and either way is not what the picker
// offered.
let shadow = baked.apply([0.02; 3]);
let highlight = baked.apply([0.8; 3]);
let rising = highlight[1] > shadow[1];
let inverted = film.kind == Kind::Negative && default_print(film).is_none();
assert_eq!(
rising, !inverted,
"{}: shadow {:.3} highlight {:.3} runs the wrong way",
film.stock, shadow[1], highlight[1]
);
} }
} }
+150 -1
View File
@@ -83,6 +83,56 @@ DEV_BRANCH = {"kodak_trix", "kodak_doublex", "kodak_2302"}
# file and is dropped here only because nothing can yet ask for it. # file and is dropped here only because nothing can yet ask for it.
DEVELOPMENT_INDEX = 2 DEVELOPMENT_INDEX = 2
# ---------------------------------------------------------------------------
# Constructed black-and-white stocks.
# ---------------------------------------------------------------------------
#
# **These are not measurements, and the profiles say so.** Ilford publish
# spectral sensitivity and characteristic curves as *graphs*, and no
# granularity figure at all -- the word does not appear in their technical
# information. Nobody has digitised them, so a profile has to be constructed.
#
# What each part actually rests on:
#
# speed Published and exact. ISO 400/27 for HP5 Plus is a fact.
# contrast ISO 6:1993 defines normal development as an average gradient
# of 0.62 over 1.30 log-E. A standard, not a guess.
# spectral *Borrowed* from Kodak Double-X, which is a measured
# panchromatic negative -- peak near 430nm, the dip at 500, the
# cutoff at 660 -- shifted by the speed difference. Conventional
# panchromatic sensitisation is much alike across black-and-white
# stocks, and this is far better founded than reading pixels off
# a printed curve.
# silver Neutral, which is not an approximation: developed silver
# absorbs flat across the visible band, and Double-X's measured
# density is flat 1.0.
# granularity **Estimated.** Ordered by each film's known relative grain and
# nothing more.
#
# So these render as an Ilford-*shaped* stock -- right speed, right contrast,
# right relative grain -- and not as a measurement of one. Anyone who digitises
# the real curves should replace them outright.
PARAMETRIC_BW = [
# stock, display name, ISO, Dmax, granularity estimate
("ilford_pan_f_plus", "Ilford Pan F Plus", 50, 2.5, 5.0),
("ilford_delta_100", "Ilford Delta 100", 100, 2.4, 6.0),
("ilford_fp4_plus", "Ilford FP4 Plus", 125, 2.5, 7.0),
("ilford_delta_400", "Ilford Delta 400", 400, 2.4, 9.0),
("ilford_hp5_plus", "Ilford HP5 Plus", 400, 2.6, 11.0),
]
# The stock whose measured panchromatic response the constructed ones borrow.
BW_REFERENCE = "kodak_doublex"
BW_REFERENCE_ISO = 250
# ISO 6:1993's normal-development contrast.
BW_GAMMA = 0.62
# Where mid-grey sits above the speed point, in log exposure. At gamma 0.62
# this puts an 18% card near 0.68 above fog, which is what a correctly exposed
# negative reads.
BW_SPEED_POINT = -1.1
CACHE = pathlib.Path(__file__).parent / "upstream" CACHE = pathlib.Path(__file__).parent / "upstream"
@@ -239,6 +289,100 @@ def convert(stock):
return "\n".join(out) + "\n" return "\n".join(out) + "\n"
def build_parametric_bw(stock, name, iso, density_max, granularity):
"""A constructed black-and-white profile. See PARAMETRIC_BW for its basis."""
import math
ref = json.loads((CACHE / f"{BW_REFERENCE}.json").read_text())["data"]
wavelengths = ref["wavelengths"]
n = len(wavelengths)
# The measured panchromatic response, moved by the speed difference. A
# faster film is more sensitive at every wavelength, which is a shift of
# the log curve rather than a change in its shape.
speed_shift = math.log10(iso / BW_REFERENCE_ISO)
sensitivity = []
for row_in in ref["log_sensitivity"]:
v = row_in[0]
sensitivity.append(None if v is None or v != v else v + speed_shift)
# Developed silver, which absorbs neutrally. A third each, because the
# renderer sums the three layers -- the same reason `split_dye` exists.
dye = [[1.0 / 3.0] * 3 for _ in range(n)]
base = [0.1] * n
# A straight line of slope `gamma`, softened into a toe below and a
# shoulder above.
log_exposure = [-3.0 + 7.0 * i / 255.0 for i in range(256)]
toe, shoulder = 0.35, 0.45
curves = []
for x in log_exposure:
d = (
BW_GAMMA * toe * math.log10(1 + 10 ** ((x - BW_SPEED_POINT) / toe))
- BW_GAMMA
* shoulder
* math.log10(
1 + 10 ** ((x - BW_SPEED_POINT - density_max / BW_GAMMA) / shoulder)
)
)
curves.append([d] * 3)
g = num(granularity)
out = [
"# Generated by tools/film-profiles/convert.py.",
"#",
"# *** CONSTRUCTED, NOT MEASURED. ***",
"#",
"# Ilford publish this film's spectral sensitivity and characteristic",
"# curve as graphs, and no granularity figure at all, so this profile is",
"# built rather than extracted. Its speed is the published ISO rating,",
"# and its contrast is ISO 6:1993's normal development (average gradient",
"# 0.62). Its spectral response is borrowed from Kodak Double-X, a",
"# *measured* panchromatic negative, shifted by the speed difference.",
"# Its granularity is an estimate, ordered against the other films here.",
"#",
"# So it renders as a film of this speed and contrast, not as a",
"# measurement of this emulsion. Replace it outright if anyone digitises",
"# the real curves.",
"",
"version: 'constructed-1'",
"stock: " + stock,
"name: '" + name + "'",
"kind: negative # negative | positive",
"support: film # film | paper",
"stage: filming # filming | printing",
"monochrome: true",
"reference_illuminant: D55",
"viewing_illuminant: D50",
"",
"rms_granularity: [" + g + ", " + g + ", " + g + "]",
"",
"# log10 spectral sensitivity per layer, 380-780nm at 5nm.",
"log_sensitivity:",
]
for wl, v in zip(wavelengths, sensitivity):
cell = "-9" if v is None else num(v)
out.append(" - [" + cell + ", " + cell + ", " + cell + "] # %.0fnm" % wl)
out += ["", "# Developed silver: neutral across the band.", "dye_density:"]
for wl, triple in zip(wavelengths, dye):
out.append(" - " + row(triple) + " # %.0fnm" % wl)
out += [
"",
"# Base plus fog. No orange mask on a black-and-white film.",
"base_density: " + row(base),
"",
"# The characteristic curve, parametric.",
"log_exposure_min: " + num(log_exposure[0]),
"log_exposure_max: " + num(log_exposure[-1]),
"density_curves:",
]
for triple in curves:
out.append(" - " + row(triple, 5))
return "\n".join(out) + "\n"
TABLE_HEADER = '''//! Generated by tools/film-profiles/convert.py. Do not edit. TABLE_HEADER = '''//! Generated by tools/film-profiles/convert.py. Do not edit.
//! //!
//! The fixed colour science: the observer, the illuminants and the spectral //! The fixed colour science: the observer, the illuminants and the spectral
@@ -345,6 +489,11 @@ def main():
dest.write_text(convert(stock)) dest.write_text(convert(stock))
print(f"{dest.relative_to(ROOT)} {dest.stat().st_size / 1024:.1f} kB") print(f"{dest.relative_to(ROOT)} {dest.stat().st_size / 1024:.1f} kB")
for stock, name, iso, dmax, gran in PARAMETRIC_BW:
dest = PROFILE_DIR / (stock + ".yaml")
dest.write_text(build_parametric_bw(stock, name, iso, dmax, gran))
print(f"{dest.relative_to(ROOT)} {dest.stat().st_size / 1024:.1f} kB (constructed)")
lic = CACHE / "SPEKTRAFILM_LICENSE.txt" lic = CACHE / "SPEKTRAFILM_LICENSE.txt"
if lic.exists(): if lic.exists():
(PROFILE_DIR / "LICENSE-PROFILES.txt").write_text(lic.read_text()) (PROFILE_DIR / "LICENSE-PROFILES.txt").write_text(lic.read_text())
@@ -376,7 +525,7 @@ def emit_registry(dest):
"/// Each stock's id and its YAML, in the order the converter ran.", "/// Each stock's id and its YAML, in the order the converter ran.",
"pub static BUILT_IN: &[(&str, &str)] = &[", "pub static BUILT_IN: &[(&str, &str)] = &[",
] ]
for stock in STOCKS: for stock in STOCKS + [p[0] for p in PARAMETRIC_BW]:
lines.append(f' ("{stock}", include_str!("../profiles/{stock}.yaml")),') lines.append(f' ("{stock}", include_str!("../profiles/{stock}.yaml")),')
lines.append("];") lines.append("];")
dest.write_text("\n".join(lines) + "\n") dest.write_text("\n".join(lines) + "\n")