old_contents: import math
  from math import sin, pi
  import colorsys
  
  def sinebow(hue):
    '''Adapted from http://basecase.org/env/on-rainbows'''
    hue = -(hue + 0.5) # Start at red rotating clockwise
    rgb = sin(pi * hue), sin(pi * (hue + 1.0/3.0)), sin(pi * (hue + 2.0/3.0))
    return tuple(int(255  * c**2) for c in rgb)
   
  def distinct_color_sequence():
    phi = (1 + 5**0.5) / 2
    golden_angle = phi #1.0 / phi**2
    
    #print('# GA:', math.degrees(golden_angle), phi)
   
    hue = 0.0 # Normalized from 0-1.0 for one revolution
    while(True):
      yield sinebow(hue)
      hue += golden_angle
      
  def lighten(rgb, p):
    h,l,s = colorsys.rgb_to_hls(*(c / 255.0 for c in rgb))
    
    l = p + l - p*l
    return tuple(int(c * 255) for c in colorsys.hls_to_rgb(h,l,s))
      
  
  if __name__ == '__main__': 
  
    import PIL
    from PIL import Image, ImageDraw
  
    cs = distinct_color_sequence()
    
    im = Image.new('RGB',(1024,10))
    d = ImageDraw.Draw(im)
    
    for i in range(256):
      hue = i / 256
      #r,g,b = sinebow(hue)
      r,g,b = next(cs)
      d.line([(i*4,0), (i*4,9)], (r,g,b), width=4)
  
    im.save('sinebow_rand.png')
  
  
    im = Image.new('RGB',(256,10))
    d = ImageDraw.Draw(im)
    
    for i in range(256):
      hue = i / 256
      r,g,b = sinebow(hue)
      d.line([(i,0), (i,9)], (r,g,b))
  
    im.save('sinebow.png')
  
  
new_contents: import math
  from math import sin, pi
  import colorsys
  
  def sinebow(hue):
    '''Adapted from http://basecase.org/env/on-rainbows'''
    hue = -(hue + 0.5) # Start at red rotating clockwise
    rgb = sin(pi * hue), sin(pi * (hue + 1.0/3.0)), sin(pi * (hue + 2.0/3.0))
    return tuple(int(255  * c**2) for c in rgb)
   
  def distinct_color_sequence(hue=0.0):
    # Hue is normalized from 0-1.0 for one revolution
    
    phi = (1 + 5**0.5) / 2
    golden_angle = phi #1.0 / phi**2
    
    #print('# GA:', math.degrees(golden_angle), phi)
    
    while(True):
      yield sinebow(hue)
      hue += golden_angle
      
  def lighten(rgb, p):
    h,l,s = colorsys.rgb_to_hls(*(c / 255.0 for c in rgb))
    
    l = p + l - p*l
    return tuple(int(c * 255) for c in colorsys.hls_to_rgb(h,l,s))
      
  
  if __name__ == '__main__': 
  
    import PIL
    from PIL import Image, ImageDraw
  
    cs = distinct_color_sequence()
    
    im = Image.new('RGB',(1024,10))
    d = ImageDraw.Draw(im)
    
    for i in range(256):
      hue = i / 256
      #r,g,b = sinebow(hue)
      r,g,b = next(cs)
      d.line([(i*4,0), (i*4,9)], (r,g,b), width=4)
  
    im.save('sinebow_rand.png')
  
  
    im = Image.new('RGB',(256,10))
    d = ImageDraw.Draw(im)
    
    for i in range(256):
      hue = i / 256
      r,g,b = sinebow(hue)
      d.line([(i,0), (i,9)], (r,g,b))
  
    im.save('sinebow.png')
  
  
subject: Add initial hue parameter