bar-holder/section [ Classes ]
[ Top ] [ bar-holder ] [ Classes ]
NAME
section File: section.lsp Class Hierarchy: named-object -> linked-named-object -> bar-holder -> section Version: 1.0.0-beta2 Project: slippery chicken (algorithmic composition) Purpose: Implementation of section class which is simply a bar holder and recursive-assoc-list that contains (possibly subsections which contain) player-sections. Author: Michael Edwards: m@michael-edwards.org Creation date: 23rd March 2002 $$ Last modified: 21:47:20 Sun May 6 2012 BST SVN ID: $Id: section.lsp 1982 2012-05-24 15:35:54Z medward2 $
section/get-all-players [ Methods ]
[ Top ] [ section ] [ Methods ]
DESCRIPTION
Return a list of the IDs from all players in a section object. NB: When retrieving from a section within a slippery-chicken object, all players in the ensemble will be returned, as the slippery-chicken object will generate rest bars for players even when they're not active in a given section.
ARGUMENTS
- A section object.
RETURN VALUE
- A list of player IDs (symbols).
EXAMPLE
(let ((mini
(make-slippery-chicken
'+mini+
:ensemble '(((cl (b-flat-clarinet :midi-channel 1))
(hn (french-horn :midi-channel 2))
(vc (cello :midi-channel 3))))
:set-palette '((1 ((f3 g3 a3 b3 c4 d4 e4 f4 g4 a4 b4 c5))))
: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 ((cl (1 1 1 1 1))
(hn (1 1 1 1 1))
(vc (1 1 1 1 1))))
(2 ((cl (1 1 1 1 1))
(vc (1 1 1 1 1))))
(3 ((hn (1 1 1 1 1))
(vc (1 1 1 1 1))))))))
(print (get-all-players (get-section mini 1)))
(print (get-all-players (get-section mini 2)))
(print (get-all-players (get-section mini 3))))
=>
(CL HN VC)
(CL HN VC)
(CL HN VC)
SYNOPSIS
(defmethod get-all-players ((s section))
section/get-bar [ Methods ]
[ Top ] [ section ] [ Methods ]
DESCRIPTION
ARGUMENTS
OPTIONAL ARGUMENTS
RETURN VALUE
EXAMPLE
SYNOPSIS
(defmethod get-bar ((s section) bar-num &optional player)
section/get-sequenz [ Methods ]
[ Top ] [ section ] [ Methods ]
DESCRIPTION
Get the specified sequenz object from a given section object.
ARGUMENTS
- A section object. - The ID of the player from whose part the sequenz object is to be returned. - An integer that is the number of the sequence object to be returned from within the given section object. This number is 1-based.
RETURN VALUE
A sequenz object.
EXAMPLE
(let ((mini
(make-slippery-chicken
'+mini+
:ensemble '(((cl (b-flat-clarinet :midi-channel 1))
(vc (cello :midi-channel 2))))
: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))))
(2 ((((4 4) q e s s h))
:pitch-seq-palette ((1 2 3 4 5))))
(3 ((((4 4) e s s h q))
:pitch-seq-palette ((1 2 3 4 5)))))
:rthm-seq-map '((1 ((cl (1 1 1 1 1))
(vc (1 1 1 1 1))))
(2 ((cl (2 2 2 2 2))
(vc (2 2 2 2 2))))
(3 ((cl (3 3 3 3 3))
(vc (3 3 3 3 3))))))))
(get-sequenz (get-section mini 2) 'vc 2))
=>
SEQUENZ: pitch-curve: (1 2 3 4 5)
RTHM-SEQ: num-bars: 1
num-rhythms: 5
num-notes: 5
num-score-notes: 5
num-rests: 0
duration: 4.0
psp-inversions: NIL
marks: NIL
time-sigs-tag: NIL
handled-first-note-tie: NIL
(for brevity's sake, slots pitch-seq-palette and bars are not printed)
SCLIST: sclist-length: 3, bounds-alert: T, copy: T
LINKED-NAMED-OBJECT: previous: (1), this: (2), next: (3)
BAR-HOLDER:
start-bar: 7
end-bar: 7
num-bars: 1
start-time: 24.0
end-time: 28.0
start-time-qtrs: 24.0
end-time-qtrs: 28.0
num-notes (attacked notes, not tied): 5
num-score-notes (tied notes counted separately): 5
num-rests: 0
duration-qtrs: 4.0
duration: 4.0 (4.000)
SYNOPSIS
(defmethod get-sequenz ((s section) player seq-num) ; 1-based
section/has-subsections [ Methods ]
[ Top ] [ section ] [ Methods ]
DESCRIPTION
ARGUMENTS
OPTIONAL ARGUMENTS
RETURN VALUE
EXAMPLE
SYNOPSIS
(defmethod has-subsections ((s section))
section/num-sequenzes [ Methods ]
[ Top ] [ section ] [ Methods ]
DESCRIPTION
Get the number of sequenz objects in a given section object.
ARGUMENTS
- A section object.
RETURN VALUE
An integer that is the number of sequenz objects in the specified section object.
EXAMPLE
(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))))))))
(num-sequenzes (get-section mini 2)))
=> 5
SYNOPSIS
(defmethod num-sequenzes ((s section))
section/re-bar [ Methods ]
[ Top ] [ section ] [ Methods ]
DESCRIPTION
ARGUMENTS
OPTIONAL ARGUMENTS
RETURN VALUE
EXAMPLE
SYNOPSIS
(defmethod re-bar ((s section) &key start-bar end-bar (min-time-sig '(2 4)) verbose ;; could also be a beat rhythmic unit (auto-beam t))