DO-TIMELINE

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

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)```

Share on other sites

Thanks for the quick response.  I didn't know that it evaluates more than one of the same function, great!

Staying with this example (I'm still learning), how do I extend the number of bars?

Thanks Brian

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.

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))```

Share on other sites

Hi,

may be your base material is 12 bars long ?

S.

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

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))```

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))```

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.

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

Share on other sites

Looks like you have some problems with lengths.

I would need to see the score in order to help.

You can send it to me by email if you wish.

Share on other sites

On 28/01/2016 at 5:55 PM, opmo said:

Looks like you have some problems with lengths.

I would need to see the score in order to help.

You can send it to me by email if you wish.

Hello

I followed the directions in import-spectral-spear and created a new library

low-c-frames.opmo

Share on other sites

Perfect, this is a library file. Now I will try your score and see why the oboe etc... is not displaying in notation score.

I found an error in your layout. The alto flute layout is no closed (parenthesis missing).

Share on other sites

Thank you!! All working. :)

Join the conversation

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

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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

×
×
• Browser

• Video Gallery

• Lessons