Jump to content

Vector to Length


Recommended Posts

Initialise random seed to all functions which may use random seed.

(init-seed 347)

 

The GEN-SINE function generates a sequence of vectors that describe and simulate the characteristics of a sine wave.

(setf sine1 (gen-sine 60 2 0.6))
(setf sine2 (gen-sine 60 3 0.3))
(setf sine3 (gen-sine 60 4 1.3))
(setf sine4 (gen-sine 60 5 0.4))
(setf sine5 (gen-sine 60 6 0.5))
(setf sine6 (gen-sine 60 7 1.6))
(setf sine7 (gen-sine 60 8 0.7))
(setf sine8 (gen-sine 60 9 0.8))
(setf sine9 (gen-sine 60 4 0.9))

 

Generate a graph from the data provided in these nine sine sequences.

(list-plot
 (list sine1 sine2 sine3 sine4 sine5
       sine6 sine7 sine8 sine9)
 :zero-based t 
 :point-radius 2
 :join-points t)

assemble-seq_01p.png

 

Conversion process from vector to length in a given note-length values.

(setf span (rnd-sample 24 '(q q. h)))
(setf dur1 (length-span span (vector-to-length '1/32 1 1 sine1)))
(setf dur2 (length-span span (vector-to-length '1/32 1 1 sine2)))
(setf dur3 (length-span span (vector-to-length '1/16 1 1 sine3)))
(setf dur4 (length-span span (vector-to-length '1/32 1 1 sine4)))
(setf dur5 (length-span span (vector-to-length '1/16 1 1 sine5)))
(setf dur6 (length-span span (vector-to-length '1/32 1 3 sine6)))
(setf dur7 (length-span span (vector-to-length '1/32 1 5 sine7)))
(setf dur8 (length-span span (vector-to-length '1/32 1 7 sine8)))
(setf dur9 (length-span span (vector-to-length '1/16 1 5 sine9)))

 

Conversion process from vector to pitch in a given ambitus.

Combining pitches to chords.

(setf pitch1a (vector-to-pitch '(g1 bb3) sine6))
(setf pitch2a (vector-to-pitch '(gs1 b3) sine7))
(setf pitch3a (vector-to-pitch '(a1 fs3) sine8))
(setf pitch4a (vector-to-pitch '(ab1 b3) sine9))
(setf pitch5a (vector-to-pitch '(c1 bb3) sine1))

(setf comp6 (gen-combine pitch1a pitch2a))
(setf comp7 (gen-combine pitch1a pitch2a pitch3a))
(setf comp8 (gen-combine pitch1a pitch2a pitch3a pitch4a))
(setf comp9 (gen-combine pitch1a pitch2a pitch3a pitch4a pitch5a))

(setf pitch1 (vector-to-pitch '(g2 gs6) sine1))
(setf pitch2 (vector-to-pitch '(gs2 a6) sine2))
(setf pitch3 (vector-to-pitch '(a2 b6) sine3))
(setf pitch4 (vector-to-pitch '(ab2 d6) sine4))
(setf pitch5 (vector-to-pitch '(c2 gs6) sine5))
(setf pitch6 (chord-pitch-unique (chordize-list comp6)))
(setf pitch7 (chord-pitch-unique (chordize-list comp7)))
(setf pitch8 (chord-pitch-unique (chordize-list comp8)))
(setf pitch9 (chord-pitch-unique (chordize-list comp9)))

 

Generating length lists with the help of RND-SAMPLE function.

(setf dyn '((f f f f) (p p p p) (mf mf mf mf)
            (ff ff ff ff) (mp mp mp mp)))
            
(setf dyn1 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn2 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn3 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn4 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn5 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn6 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn7 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn8 (rnd-sample (length (flatten dur1)) dyn))
(setf dyn9 (rnd-sample (length (flatten dur1)) dyn))

 

Making OMN lists.

(setf p1 (make-omn :length dur1 :pitch pitch1 :velocity dyn1))
(setf p2 (make-omn :length dur2 :pitch pitch2 :velocity dyn2))
(setf p3 (make-omn :length dur3 :pitch pitch3 :velocity dyn3))
(setf p4 (make-omn :length dur4 :pitch pitch4 :velocity dyn4))
(setf p5 (make-omn :length dur5 :pitch pitch5 :velocity dyn5))
(setf p6 (make-omn :length dur6 :pitch pitch6 :velocity dyn6))
(setf p7 (make-omn :length dur7 :pitch pitch7 :velocity dyn7))
(setf p8 (make-omn :length dur8 :pitch pitch8 :velocity dyn8))
(setf p9 (make-omn :length dur9 :pitch pitch9 :velocity dyn9))

 

Random selection of variants.

(setf var1 (pitch-variant p1 :variant '?))
(setf var2 (pitch-variant p2 :variant '?))
(setf var3 (pitch-variant p3 :variant '?))
(setf var4 (pitch-variant p4 :variant '?))
(setf var5 (pitch-variant p5 :variant '?))
(setf var6 (pitch-variant p6 :variant '?))
(setf var7 (pitch-variant p7 :variant '?))
(setf var8 (pitch-variant p8 :variant '?))
(setf var9 (pitch-variant p9 :variant '?))

 

Transposition.

(setf transp (library '12-tone-row 'berg 'r08))
(setf part1 (pitch-transpose-start transp var1))
(setf part2 (pitch-transpose-start transp var2))
(setf part3 (pitch-transpose-start transp var3))
(setf part4 (pitch-transpose-start transp var4))
(setf part5 (pitch-transpose-start transp var5))
(setf part6 (pitch-transpose-start transp var6))
(setf part7 (pitch-transpose-start transp var7))
(setf part8 (pitch-transpose-start transp var8))
(setf part9 (pitch-transpose-start transp var9))

 

One bar pause.

(setf pause (gen-pause (first part9)))

 

Assembling all parts with :start and :end sequence.

(setf rh (ambitus-chord
          13
          (ambitus
           '(0 36)
           (assemble-subseq 
            '((pause :start 1 :end 1)
              (pause :start 1 :end 1)
              (pause :start 1 :end 1)
              (part2 :start 2 :end 3)
              (part2 :start 12 :end 12)
              (part2 :start 3 :end 8)
              (part2 :start 4 :end 9)
              (part3 :start 4 :end 4)
              (part3 :start 5 :end 5)
              (part3 :start 8 :end 12)
              (part3 :start 2 :end 3)
              (part4 :start 1 :end 4)
              (part4 :start 12 :end 12)
              (part4 :start 1 :end 2)
              (part4 :start 4 :end 7)
              (part4 :start 11 :end 12)
              (part5 :start 10 :end 12)
              (part5 :start 8 :end 9)
              (part5 :start 9 :end 9))))))

(setf lh (ambitus-chord
          13
          (ambitus
           '(-32 -1)
           (assemble-subseq 
              '((part9 :start 1 :end 1)
                (part6 :start 1 :end 2)
                (part1 :start 2 :end 3)
                (part7 :start 3 :end 4)
                (part2 :start 4 :end 5)
                (part7 :start 4 :end 6)
                (part3 :start 5 :end 7)
                (part8 :start 6 :end 8)
                (part1 :start 7 :end 9)
                (part8 :start 8 :end 10)
                (part1 :start 9 :end 11)
                (part9 :start 10 :end 11)
                (part1 :start 11 :end 12)
                (part9 :start 12 :end 13)
                (part2 :start 13 :end 15)
                (part9 :start 14 :end 15)
                (part2 :start 15 :end 16)
                (part9 :start 16 :end 17)
                (part2 :start 17 :end 18)
                (part9 :start 18 :end 19)
                (part3 :start 19 :end 22))))))

 

Defining a score.

(def-score assemble-subsubseq
           (:composer "OPMO"
            :copyright "Opusmodus"
            :key-signature 'atonal
            :time-signature (get-time-signature
                             lh :group '((1 1) (1 1 1) (1 1 1 1)))
            :tempo 72
            :layout (piano-solo-layout 'rh 'lh))

  (rh :omn rh
      :port 0
      :sound 'gm
      :channel 1
      :program 0)
  (lh :omn lh))
 
assemble-seq_01s.png
assemble-seq_02s.png
assemble-seq_03s.png
assemble-seq_04s.png
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy