Jump to content

Recommended Posts

Hello

 

I'm gradually getting to know the DO-TIMELINE function and wanted to ask about the 3 x DO-TIMELINE scripts inlcuded in the example.  Which of the 3 is being read when we evaluate and notate?  It's difficult to tell from the notation so is there a particular order that these are read in and what is  the best way to switch between them without deleting them?

(do-timeline
 '(
   afl nil
   cl  (x - x - x - x - x - x -)
   bcl (- x - x - x - x - x - x)
   hn  t
   vn  (- x - x - x - x - x - x)
   vc  (x - x - x - x - x - x -)
   )
 '(pitch-variant x :variant '?) :time '1/1)

(do-timeline
 '(
   afl (x - x - x x - - x - x - x - x - x x - - x - x -)
   cl  (- x - x x - x - - x - x - x - x x - x - - x - x)
   bcl (x x - x x - x - - x - x x x - x x - x - - x - x)
   hn  (x - x x - x - x x - x - x - x x - x - x x - x -)
   vn  (- x x - x - x - - x - x - x x - x - x - - x - x)
   vc  (- x x - x - x - - x - x - x x - x - x - - x - x)
   )
 '(pitch-figurate '(2 3) x) :time '1/2)

(do-timeline
 '(
   afl (binary-invert (gen-binary-euclidean 1 48 30 48))
   cl  (binary-invert (gen-binary-euclidean 1 48 30 48))
   bcl (binary-invert (gen-binary-euclidean 1 48 30 48))
   hn  (binary-invert (gen-binary-euclidean 1 48 30 48))
   vn  (binary-invert (gen-binary-euclidean 1 48 30 48))
   vc  (binary-invert (gen-binary-euclidean 1 48 30 48))
   )
 '(gen-pause x) :time (rnd-sample 12 '(1/4 1/2)) :loop t)

 

Many thanks

 

Brian

Link to comment
Share on other sites

The DO-TIMELINE will read, process and then set back the result to the variable names.

The next DO-TIMELINE is using the return of the previous one and so on.

If you make any change to any of the sections you will need to evaluate all of them again, starting with the evaluation of the origin variable set you are using in the DO-TIMELINE function.

 

Example

After any change (edit) the first thing you need to do is to evaluate the original variable set:

(setf
 afl afl-omn
 cl  cl-omn
 bcl bcl-omn
 hn  hn-omn
 vn  vn-omn
 vc  vc-omn
 )

 

then each of the DO-TIMELINE:

(do-timeline
 '(
   afl nil
   cl  (x - x - x - x - x - x -)
   bcl (- x - x - x - x - x - x)
   hn  t
   vn  (- x - x - x - x - x - x)
   vc  (x - x - x - x - x - x -)
   )
 '(pitch-variant x :variant '?) :time '1/1)

(do-timeline
 '(
   afl (x - x - x x - - x - x - x - x - x x - - x - x -)
   cl  (- x - x x - x - - x - x - x - x x - x - - x - x)
   bcl (x x - x x - x - - x - x x x - x x - x - - x - x)
   hn  (x - x x - x - x x - x - x - x x - x - x x - x -)
   vn  (- x x - x - x - - x - x - x x - x - x - - x - x)
   vc  (- x x - x - x - - x - x - x x - x - x - - x - x)
   )
 '(pitch-figurate '(2 3) x) :time '1/2)

(do-timeline
 '(
   afl (binary-invert (gen-binary-euclidean 1 48 30 48))
   cl  (binary-invert (gen-binary-euclidean 1 48 30 48))
   bcl (binary-invert (gen-binary-euclidean 1 48 30 48))
   hn  (binary-invert (gen-binary-euclidean 1 48 30 48))
   vn  (binary-invert (gen-binary-euclidean 1 48 30 48))
   vc  (binary-invert (gen-binary-euclidean 1 48 30 48))
   )
 '(gen-pause x) :time (rnd-sample 12 '(1/4 1/2)) :loop t)

 

Link to comment
Share on other sites

The :resolution option sets the bar length (internally) for the process. The output is given in the original time signature.

Each 'x represents one bar (original time signature) and if :resolution is used, each 'x is the length of the process of the given resolution value.

 

Link to comment
Share on other sites

this is what I have but still only have 12 bars

(do-timeline
 '(
   afl nil
   cl  (x - x - x - x - x - x - x x x x x x x x x x x x)
   bcl (- x - x - x - x - x - x - x - x x x x x x x x x)
   hn  t
   vn  (- x - x - x - x - x - x - x x - x x x x x x x x)
   vc  (x - x - x - x - x - x - - - x x x x x x x x x x)
   )
 '(pitch-variant x :variant '?) :time '1/1)
 
(do-timeline
 '(
   afl (x - x - x x - - x - x - x - x - x x - - x - x -)
   cl  (- x - x x - x - - x - x - x - x x - x - - x - x)
   bcl (x x - x x - x - - x - x x x - x x - x - - x - x)
   hn  (x - x x - x - x x - x - x - x x - x - x x - x -)
   vn  (- x x - x - x - - x - x - x x - x - x - - x - x)
   vc  (- x x - x - x - - x - x - x x - x - x - - x - x)
   )
 '(pitch-figurate '(2 3) x) :time '1/1)
 
(do-timeline
 '(
   afl (binary-invert (gen-binary-euclidean 1 48 30 48))
   cl  (binary-invert (gen-binary-euclidean 1 48 30 48))
   bcl (binary-invert (gen-binary-euclidean 1 48 30 48))
   hn  (binary-invert (gen-binary-euclidean 1 48 30 48))
   vn  (binary-invert (gen-binary-euclidean 1 48 30 48))
   vc  (binary-invert (gen-binary-euclidean 1 48 30 48))
   )
 '(gen-pause x) :time (rnd-sample 24 '(1/4 1/2))

 

Link to comment
Share on other sites

On 21 January 2016 at 5:13 PM, Stephane Boussuge said:

Hi,

 

may be your base material is 12 bars long ?

 

S.

 

the base material is more or less the same as in the score example, I changed the library file and some of the numbers.  I don't the system well enough yet which is why I'm trying to reconfigure some examples.

B

Link to comment
Share on other sites

The original length span of each instrument will not change after the DO-TIMELINE process.

If one of your instrument is 6 bar long (6 x 4/4) and the span of your section is bigger then the rest of the section will have no effect.

 

Example:

(setf inst '((q c4) (q c4) (q c4) (q c4) (q c4) (q c4) (q c4) (q c4)))

(do-timeline
 '(inst (x - x - x - x - x x x x - x - x - x x x))
 '(pitch-transpose -12 x))

inst
=> ((q c3) (q c4) (q c3) (q c4) (q c3) (q c4) (q c3) (q c4))

 

Link to comment
Share on other sites

16 hours ago, opmo said:

The original length span of each instrument will not change after the DO-TIMELINE process.

If one of your instrument is 6 bar long (6 x 4/4) and the span of your section is bigger then the rest of the section will have no effect.

 

Example:


(setf inst '((q c4) (q c4) (q c4) (q c4) (q c4) (q c4) (q c4) (q c4)))

(do-timeline
 '(inst (x - x - x - x - x x x x - x - x - x x x))
 '(pitch-transpose -12 x))

inst
=> ((q c3) (q c4) (q c3) (q c4) (q c3) (q c4) (q c3) (q c4))

 

 

Thanks for your reply.  So taking your score example from OM below, what would you need to change to double the length to 24 bars?  Each of my partial-rows return 12 pitches each.  Is this the problem?

(setf partial1 (library 'tbn-cs3-frames 'partials 'p0))
(setf partial2 (library 'tbn-cs3-frames 'partials 'p1))
(setf partial3 (library 'tbn-cs3-frames 'partials 'p2))
(setf partial4 (library 'tbn-cs3-frames 'partials 'p3))
(setf partial5 (library 'tbn-cs3-frames 'partials 'p4))
(setf partial6 (library 'tbn-cs3-frames 'partials 'p5))

(setf row1 (partial-row partial1))
(setf row2 (partial-row partial2))
(setf row3 (partial-row partial3))
(setf row4 (partial-row partial4))
(setf row5 (partial-row partial5))
(setf row6 (partial-row partial6))

(setf rhy1 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample 48 '(5 4 3))))
(setf rhy2 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample 48 '(5 4 3))))
(setf rhy3 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample 48 '(5 4 3))))
(setf rhy4 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample 48 '(5 4))))
(setf rhy5 (gen-tuplet 1 4 'd '? (gen-repeat 24 '(h)) (rnd-sample 24 '(3 2))))
(setf rhy6 (gen-tuplet 1 4 'd '? (gen-repeat 24 '(h)) (rnd-sample 24 '(3 2))))

(setf vel (rnd-sample 24 '(pp p mp mf f)))
(setf afl-omn (make-omn :length rhy1 :pitch row1 :velocity vel))
(setf cl-omn  (make-omn :length rhy2 :pitch row2 :velocity vel))
(setf bcl-omn (make-omn :length rhy3 :pitch row3 :velocity vel))
(setf hn-omn  (make-omn :length rhy4 :pitch row4 :velocity vel))
(setf vn-omn  (make-omn :length rhy5 :pitch row5 :velocity vel))
(setf vc-omn  (make-omn :length rhy6 :pitch row6 :velocity vel))

 

Link to comment
Share on other sites

Yes, you need to extend the bar count to 24 x 4/4.

 

(setf partial1 (library 'tbn-cs3-frames 'partials 'p0))
(setf partial2 (library 'tbn-cs3-frames 'partials 'p1))
(setf partial3 (library 'tbn-cs3-frames 'partials 'p2))
(setf partial4 (library 'tbn-cs3-frames 'partials 'p3))
(setf partial5 (library 'tbn-cs3-frames 'partials 'p4))
(setf partial6 (library 'tbn-cs3-frames 'partials 'p5))
 
(setf row1 (partial-row partial1))
(setf row2 (partial-row partial2))
(setf row3 (partial-row partial3))
(setf row4 (partial-row partial4))
(setf row5 (partial-row partial5))
(setf row6 (partial-row partial6))
 
(setf rhy1 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample (* 4 24) '(5 4 3))))
(setf rhy2 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample (* 4 24) '(5 4 3))))
(setf rhy3 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample (* 4 24) '(5 4 3))))
(setf rhy4 (gen-tuplet 1 2 'd '? (gen-repeat 48 '(q)) (rnd-sample (* 4 24) '(5 4))))
(setf rhy5 (gen-tuplet 1 4 'd '? (gen-repeat 24 '(h)) (rnd-sample (* 2 24) '(3 2))))
(setf rhy6 (gen-tuplet 1 4 'd '? (gen-repeat 24 '(h)) (rnd-sample (* 2 24) '(3 2))))
 
(setf vel (rnd-sample 96 '(pp p mp mf f)))
(setf afl-omn (make-omn :length rhy1 :pitch row1 :velocity vel))
(setf cl-omn  (make-omn :length rhy2 :pitch row2 :velocity vel))
(setf bcl-omn (make-omn :length rhy3 :pitch row3 :velocity vel))
(setf hn-omn  (make-omn :length rhy4 :pitch row4 :velocity vel))
(setf vn-omn  (make-omn :length rhy5 :pitch row5 :velocity vel))
(setf vc-omn  (make-omn :length rhy6 :pitch row6 :velocity vel))

 

Each row is looped here. You could continue processing and develop the rows further before you merge them to omn of course.

Link to comment
Share on other sites

Thanks for this.  Nice easy fix.

 

I'm having another difficulty with do-timeline when trying to do full orchestral score as in the example.  All three DO-TIMELINE return this error message:

25 >
> Error: The GET-SPAN output denominator is not a power of two (1, 2, 4, 8, 16, ...). Denominator: 12.
> While executing: (:internal get-time-signature-l get-time-signature), in process Listener-1(7).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.

 

Silly question I'm sure but where can I adjust the denominator?

 

Thanks Brian

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