diff --git a/core/dr-film/profiles/ilford_delta_100.yaml b/core/dr-film/profiles/ilford_delta_100.yaml new file mode 100644 index 0000000..b166cbe --- /dev/null +++ b/core/dr-film/profiles/ilford_delta_100.yaml @@ -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] diff --git a/core/dr-film/profiles/ilford_delta_400.yaml b/core/dr-film/profiles/ilford_delta_400.yaml new file mode 100644 index 0000000..7694c53 --- /dev/null +++ b/core/dr-film/profiles/ilford_delta_400.yaml @@ -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] diff --git a/core/dr-film/profiles/ilford_fp4_plus.yaml b/core/dr-film/profiles/ilford_fp4_plus.yaml new file mode 100644 index 0000000..c118750 --- /dev/null +++ b/core/dr-film/profiles/ilford_fp4_plus.yaml @@ -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] diff --git a/core/dr-film/profiles/ilford_hp5_plus.yaml b/core/dr-film/profiles/ilford_hp5_plus.yaml new file mode 100644 index 0000000..7ba23c5 --- /dev/null +++ b/core/dr-film/profiles/ilford_hp5_plus.yaml @@ -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] diff --git a/core/dr-film/profiles/ilford_pan_f_plus.yaml b/core/dr-film/profiles/ilford_pan_f_plus.yaml new file mode 100644 index 0000000..ef9a178 --- /dev/null +++ b/core/dr-film/profiles/ilford_pan_f_plus.yaml @@ -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] diff --git a/core/dr-film/src/built_in.rs b/core/dr-film/src/built_in.rs index d515f2d..b7e00e5 100644 --- a/core/dr-film/src/built_in.rs +++ b/core/dr-film/src/built_in.rs @@ -118,4 +118,24 @@ pub static BUILT_IN: &[(&str, &str)] = &[ include_str!("../profiles/kodak_doublex.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"), + ), ]; diff --git a/core/dr-film/src/grain.rs b/core/dr-film/src/grain.rs index ead2b63..be33b64 100644 --- a/core/dr-film/src/grain.rs +++ b/core/dr-film/src/grain.rs @@ -34,15 +34,35 @@ //! //! # Where crystal habit lives //! -//! In [`crate::profile::Profile::rms_granularity`], the number every datasheet -//! publishes. It is a measurement of exactly the thing that differs between a -//! traditional cubic emulsion and a tabular one: for the same speed, tabular -//! crystals present more area per unit of silver, so fewer, flatter grains -//! cover the frame and the film reads finer. Ilford Delta 100 is quoted around -//! 9 where HP5 Plus is around 12, and that gap *is* the crystal habit. +//! In [`crate::profile::Profile::rms_granularity`]. It measures exactly the +//! thing that differs between a traditional cubic emulsion and a tabular one: +//! for the same speed, tabular crystals present more area per unit of silver, +//! so fewer, flatter grains cover the frame and the film reads finer. A +//! stock's grain character therefore needs no new model and no new code — it +//! is one number in the profile. //! -//! So a stock's grain character needs no new model and no new code — it is one -//! number in the profile, taken from the manufacturer's own measurement. +//! # Getting that number is the hard part +//! +//! 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; diff --git a/core/dr-film/src/lib.rs b/core/dr-film/src/lib.rs index 25335ab..d23be23 100644 --- a/core/dr-film/src/lib.rs +++ b/core/dr-film/src/lib.rs @@ -126,6 +126,30 @@ mod tests { "{} rendered mid-grey as {mid:?}", 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] + ); } } diff --git a/tools/film-profiles/convert.py b/tools/film-profiles/convert.py index d34e2e9..efc2b2a 100644 --- a/tools/film-profiles/convert.py +++ b/tools/film-profiles/convert.py @@ -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. 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" @@ -239,6 +289,100 @@ def convert(stock): 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. //! //! The fixed colour science: the observer, the illuminants and the spectral @@ -345,6 +489,11 @@ def main(): dest.write_text(convert(stock)) 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" if lic.exists(): (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.", "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("];") dest.write_text("\n".join(lines) + "\n")