spectro/synthread
    Summary
    Simulate the measurement of a devices response using a synthetic
    device model. This is intended for testing of profile creation
    accuracy. A device link separation or color space conversion can be
    applied before the print/measure simulation.
    Usage
    synthread [-v] [separation.icm] inoutfile
       -v               
 
              Verbose mode
       -p                       
Use
        separation profile
       -l                       
Output
        Lab rather than XYZ
        
       -0
        pow                   
Apply
        power to input device chanel 0-9 (after sep.)
        
       -r
        level                 
Add
        average random deviation of <level>% to input device
        values (after sep.)
       -R
        level                 
Add
        average random deviation of <level>% to output PCS values
       -u
 
           
                        
Make
        random deviations have uniform distributions rather than normal
     -b
        L,a,b                 
Scale
        black point to target Lab value
       [separation.icm]         
Device
        link separation profile
        inoutfile          
 
              Base name for input[.ti1]/output[.ti3] file
    
      Examples
    
    synthread xxxx testvalues
    synthread -p xxx separation.icm testvalues
    Comments
    
    The -v flag does nothing at
    the moment.
    The -p flag enables a
    device to device value conversion before converting to expected PCS
    values.
    The -l flag causes the CIE
    output values to be L*a*b* rather than the default XYZ values.
    
    The -0, -1, -2 .. -9
    parameters are a way of simulating changes in the behaviour of the
    simulated printing system. The parameter supplied to the flag will
    be used to modify the device values (after any separation is
    applied) by raising them to the power of the parameter. This applies
    a transfer curve to the simulated device response.
    
    The -r parameter is a way
    of simulating instability in the behaviour of the simulated printing
    system. The parameter supplied to the flag will be used to scale a
    random offset added to the device values (after any separation is
    applied). The offset will be a normally distributed error with an
    average deviation of level%. A typically value supplied might be 1.0
    to simulate 1% randomness.
    
    The -R parameter is a way
    of simulating instability in the behaviour of the simulated
    measuring system. The parameter supplied to the flag will be used to
    scale a random offset added to the PCS values. The offset will be a
    normally distributed error with an average deviation of level%. A
    typically value supplied might be 1.0 to simulate 1% randomness. 
    
    The -u flag changes the
    distribution of the random offsets applied using the -r or -R flags, from the default standard deviation, to a
    uniform deviation distribution. The level is still specified as an
    average deviation.
    
    The -b parameter is a way
    of simulating devices that have a different black point to the
    profile used. This only works if an ICC profile is used, and scales
    the black point to the parameter value. This will be done in XYZ
    space by default, and in L*a*b* space if the -l flag is used.
    
    synthread is useful in creating artificial test value for testing colprof, as well as providing one path for
    turning an MPP profile into an ICC profile. 
    
    If a separation device profile is provided (e.g. from CMY ->
    CMYK, or perhaps CMYK->CMYK, to simulate a color correction step
    before "printing"), then this will be applied to the .ti1 device
    values, before converting the the device values into .ti3 PCS
    values.