-
Notifications
You must be signed in to change notification settings - Fork 3
set limits by section
I find using set-limits
in slippery-chicken
is really powerful for providing
forward-movement in the pitch domain. For example, in the first part of my
for Magda Cordell, if she'll have
it, the piano part is
controlled by set-limits
to create an overall descending motion. You can listen
at
bandcamp
and read all about set-limits
in the
manual.
Sometimes though you don't want to have interpolating limits, rather, you need
abrupt pitch range changes on section boundaries. This is where the
set-limits-by-section
method comes in handy. As this is a slippery-chicken
method, it begs the question what comes first, the creation of the
slippery-chicken
instance, with all its pitches selected as per usual (without
set-limits
), or the algorithmic generation of set-limits
based on the section
boundaries (which may be at unknown bar numbers, and may even change as you
develop and increase/decrease the length of the piece)?
This chicken-before-the-egg problem can be solved with sc-init
.
This method is actually called by the system every time you initialise a
slippery-chicken object
, but it can also be called again, explicitly, if you
need to regenerate the piece:
(let ((mini
(make-slippery-chicken
'+mini+
:ensemble '(((vc (cello :midi-channel 1))))
:set-palette '((1 ((f3 g3 a3 b3 c4))))
:set-map '((1 (1 1 1 1 1))
(2 (1 1 1 1 1))
(3 (1 1 1 1 1)))
:rthm-seq-palette '((1 ((((4 4) h q e s s))
:pitch-seq-palette ((1 2 3 4 5)))))
:rthm-seq-map '((1 ((vc (1 1 1 1 1))))
(2 ((vc (1 1 1 1 1))))
(3 ((vc (1 1 1 1 1))))))))
(flet ((print-em ()
;; first bars of sections 1, 2, 3
(loop for bar in '(1 6 11) do
(print (get-pitch-symbols (get-bar mini bar 'vc))))))
(print-em)
;; replace existing curve. NB The y values are degrees which if default is
;; quarter-tone scale might be the double of what is perhaps expected
;; (i.e. (note-to-degree 'c4) -> 120)
(print (set-limits-by-section mini '(g3 a3 c4) 'set-limits-high 'vc))
(sc-init mini)
;; note the new (repeating) pitches
(print-em)))
---->>
******* section (1)
Getting notes for VC
******* section (2)
Getting notes for VC
******* section (3)
Getting notes for VC
WARNING:
slippery-chicken::tempo-curve-to-map: No tempo-map or tempo-curve given.
Using default of crotchet/quarter = 60.
Shortening short, fast leaps...
Shortened 0 large fast leaps
(F3 G3 A3 B3 C4)
(F3 G3 A3 B3 C4)
(F3 G3 A3 B3 C4)
(1 110 5 110 6 114 10 114 11 120 15 120)
******* section (1)
Getting notes for VC
******* section (2)
Getting notes for VC
******* section (3)
Getting notes for VC
Shortening short, fast leaps...
Shortened 0 large fast leaps
(F3 F3 G3 G3 G3)
(F3 G3 G3 A3 A3)
(F3 G3 A3 B3 C4)
NIL
- which instruments are available in the standard instrument-palette?
- how can I change the default directory for output?
- how can I change the range of instruments in the standard instrument-palette?
- how can I stop (or start) slippery chicken from opening score files automatically?
- how do I make a one-note rthm-seq with a chord?
- set-limits by section
- empty bars
- combining bars
- combining chopped and unchopped rthm-seq palettes
- how can I 'roll-my-own' slippery-chicken
- graphics files as marks
- three-quarter tone accidentals
- what to do when lilypond fails?
- tuplets with colons e.g 7:6