-
Notifications
You must be signed in to change notification settings - Fork 3
combining bars
Michael Edwards edited this page Jun 6, 2020
·
7 revisions
You might want to define some isolated bars then use and re-use them in various combinations to form rhythm sequences. You might first of all want to take a look at the make-rthm-seq-from-fragments function but such things can also be done using standard Common Lisp list building/manipulation procedures:
(in-package :sc)
;; explicitly create a 4-bar rthm-seq using 3 pre-defined bars
(let* ((bar1 '(q q q)) ; remember that these qs are just symbols for now
(bar2 '(e e q. e))
(bar3 '(s x 12)))
;; don't forget the time-signature
(make-rthm-seq (list 's1 (list (list (cons '(3 4) bar1) bar2 bar3 bar2)))))
;; now a rthm-seq palette with two sequences (re-)using the given bars
(let* ((bar1 '(q q q))
(bar2 '(e e q. e))
(bar3 '(s x 12))
(s1 (list (list (cons '(3 4) bar1) bar2 bar3 bar2)))
(s2 (list (list (cons '(3 4) bar2) bar1 bar3 bar2))))
(make-rsp 'test (list
(list 'rs1 s1)
(list 'rs2 s2))))
;;; now a slippery-chicken object using similar procedures
(let* ((bar1 '(q q q))
(bar2 '(e e q. e))
(bar3 '(s x 12)))
(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
;; things start getting a little cumbersome here, with all the calls to list
(list
(list 1 (list (list (cons '(3 4) bar1) bar2 bar3 bar2)))
(list 2 (list (list (cons '(3 4) bar2) bar1 bar3 bar2))))
:rthm-seq-map '((1 ((vc (1 2 1 2 1))))
(2 ((vc (1 1 2 1 2))))
(3 ((vc (1 1 2 2 2)))))))
;;; same as previous but increasing readability by using backquote-comma notation
(let* ((bar1 '(q q q))
(bar2 '(e e q. e))
(bar3 '(s x 12)))
(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 (,(list (cons '(3 4) bar1) bar2 bar3 bar2)))
(2 (,(list (cons '(3 4) bar2) bar1 bar3 bar2))))
:rthm-seq-map '((1 ((vc (1 2 1 2 1))))
(2 ((vc (1 1 2 1 2))))
(3 ((vc (1 1 2 2 2)))))))
- 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