Jump to content

opmo

Administrators
  • Posts

    2,894
  • Joined

  • Last visited

Posts posted by opmo

  1. (setf lst '(1 2 3 4 5))
    (setf list-sum (sum lst))
    (setf scale (/ 25 list-sum))
    
    (scale-numbers scale lst)

     

    I will add a round (keyword) into the function.

     

    (scale-numbers scale lst :round t)
    => (2 3 5 7 8)

     

  2. Revised rnd-rest in version 3.0.29080
     

    The function RND-REST convert a subset of the length notes in the list to length rests, such that the sum of all length rests (including any existing ones) becomes equal to the given percentage of the sum (span) of the absolute values of all lengths in the list.
     

    (setf lengths (gen-repeat 8 1/16))
    => (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16)
    
    (rnd-rest 0.3 lengths)
    => (1/16 1/16 1/16 1/16 1/16 -1/16 1/16 -1/16)
    
    (rnd-rest 0.5 lengths)
    => (1/16 1/16 -1/16 1/16 -1/16 -1/16 1/16 -1/16)

     

    (rnd-rest '(0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9)
              (gen-repeat 9 (list lengths))
              :seed 76)

     

    image.png

     

    (setf percent (vector-round 0.2 0.8 (gen-sine 16 1 0.8)))
    => (0.5 0.61480505 0.71213204 0.77716387 0.8 0.77716387 0.71213204
        0.614805 0.5 0.38519496 0.28786793 0.2228361 0.2 0.22283617
        0.28786805 0.38519496)
    
    (setf seq '((1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6)
                (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16)
                (1/16 1/16 1/16 1/16) (1/20 1/20 1/20 1/20 1/20)
                (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10)
                (1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6) (1/6 1/6 1/6)
                (1/10 1/10 1/10 1/10 1/10) (1/16 1/16 1/16 1/16)
                (1/16 1/16 1/16 1/16) (1/6 1/6 1/6) (1/6 1/6 1/6)
                (1/10 1/10 1/10 1/10 1/10) (1/10 1/10 1/10 1/10 1/10)))
    
    (rnd-rest percent seq :omn t :seed 32)
    => ((5h - = = -) (3h - =) (s - - - = - = -) (-s - = -)
        (-5q - - - =) (-3h = -) (-5h = - - =) (-5h = = - -)
        (3h - =) (-3h = =) (-5h = = = =) (s = = =) (s = = =)
        (3h = =) (3h = =) (5h = = = -) (5h = = - -))

     

    (setf omn1 '((q c5gs4f4 e f5c5gs4 e gs5f5c5 s c6gs5f5)
                 (e c6eb5 c5eb4 e eb4c4 eb5c5)
                 (q b4g4d4 e g4d4b3 s d4b3g3 b3g3d3 q g3d3b2)))

     

     

    Pasted Graphic.png

     

     

    (rnd-rest 0.5 omn1 :seed 11)

     

    Pasted Graphic 1.png

     

    (setf omn2 '((e cs4 mf cs4 cs4 d4)
                 (s d4 mf cs4 ds4 d4 d4 e4 d4 d4)
                 (e f4 mf ds4 d4 fs4)
                 (e ds4 mf d4 fs4 ds4)
                 (e d4 mf s g4 e ds4 s d4 e g4)
                 (s ds4 mf d4 g4 ds4 d4 g4 ds4 d4)
                 (e g4 mf s ds4 d4 e g4 s ds4 d4)
                 (q g4 mf ds4)))

     

    Pasted Graphic 2.png

     

     

    (rnd-rest '(0.0 0.2 0.3 0.4 0.5 0.7 0.9 1.0) omn2 :seed 34)

     

    Pasted Graphic 3.png

     


    Happy coding.

  3. New function rnd-rest in version 3.0.29077
     

    (setf lengths (gen-repeat 8 1/16))
    => (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16)
    
    (rnd-rest 2 lengths)
    => (1/16 1/16 1/16 -1/16 1/16 -1/16 1/16 1/16)
    
    (rnd-rest 5 lengths)
    => (-1/16 -1/16 1/16 -1/16 -1/16 -1/16 1/16 1/16)
    
    (rnd-rest '(2 3 1 2 1 3 2 1)
              '((1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6)
                (1/16 1/16 1/16 1/16 1/16 1/16 1/16 1/16)
                (1/16 1/16 1/16 1/16) (1/20 1/20 1/20 1/20 1/20)
                (1/6 1/6 1/6) (1/10 1/10 1/10 1/10 1/10)
                (1/10 1/10 1/10 1/10 1/10) (1/6 1/6 1/6) (1/6 1/6 1/6)
                (1/10 1/10 1/10 1/10 1/10) (1/16 1/16 1/16 1/16)
                (1/16 1/16 1/16 1/16) (1/6 1/6 1/6) (1/6 1/6 1/6)
                (1/10 1/10 1/10 1/10 1/10) (1/10 1/10 1/10 1/10 1/10))
              :omn t)
    => ((-5h - = = =) (-3h - -) (s - = = = = = =)
        (-s = - =) (5q - = = =) (-3h - -) (-5h = = = -)
        (5h - = = =) (-3h = -) (-3h - -) (5h - = = =)
        (s - = -) (s = - =) (-3h - -) (-3h = -)
        (-5h = = = =) (5h - = - =))
    
    (setf omn '((q c5gs4f4 e f5c5gs4 e gs5f5c5 s c6gs5f5)
                (e c6eb5 c5eb4 e eb4c4 eb5c5)
                (q b4g4d4 e g4d4b3 s d4b3g3 b3g3d3 q g3d3b2)))
    
    (rnd-rest 2 omn :seed 11)
    => ((-q -e gs5f5c5 mf s c6gs5f5)
        (-e - eb4c4 mf eb5c5)
        (q b4g4d4 mf e g4d4b3 s d4b3g3 - -q))
    

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy