Stéphane Boussuge

Composer / Concert Pianos Technician

Score114 Script

Score script for piece "Score 114"

Voici le script Opusmodus de ma pièce "Score 114" montrant un usage possible d'Opusmodus pour la composition.


Utility Library definition
Definition d'une bibliothèque d'accords qui serviront pour la composition.


(def-library bozaccords1
(:section 4-sons-c
bz4-c0 'c4cs4f4g4
bz4-c1 'c4d4fs4gs4
bz4-c2 'c4ds4g4a4
bz4-c3 'c4e4gs4as4
bz4-c4 'c4f4a4b4
bz4-c5 'c4fs4as4c5
bz4-c6 'c4g4b4cs5
bz4-c7 'c4gs4c5d5
bz4-c8 'c4a4cs5ds5
)
)

Utility function
Definition d'une fonction générant des hauteurs aléatoires qui ne seront pas directement employées dans la pièce mais qui serviront
à créer des contours mélodiques.


(defun rnd-pitch (n int-low int-high &key seed)
(do-verbose
("rnd-pitch")
(rnd-seed seed)
(integer-to-pitch (rnd n :low int-low :high int-high :seed (seed)))))


Parametres

L'idée ici va consister à utiliser un vecteur de tensions qui va piloter toute la pièce:

(setf size 64)

Size given for future mapping of the tendency vector on rhythms and articulations lists of 8 items longs.
(setf struct-scale 8)

Definition of a structural path for the entire piece
based on tendency
Definition du vecteur basée sur une description de tendances:


(setf struct (vector-round
1
struct-scale
(gen-tendency size '(0.1 0.5 0.3 0.7 0.4 0.9 0.5 0.2))))


Voici le résultat sous forme graphique:

Score114-TebdencyGraph

Harmonic material from already defined library
Création de "champs de hauteurs" basés sur les accords précédemment définis. (bibliothèque)


(setf pfields (library 'bozaccords1 '4-sons-c nil :random size))

Harmonic path creation
Création du cheminement harmonique


(setf path (tonality-series pfields))


Resolution for harmonic rhythm
Définition d'un rythme harmonique pour l'application de ce cheminement harmonique


(setf reso '(h h h q q))



Instrumentation
Violon


(setf violin.struct struct)

Generate the 8 rhythmics patterns for the violin
Génération de 8 motifs rythmiques pour le violon



(setf violin.baselen (gen-tuplet 1 1 'm '? 'w '(2 2 4 4 8 8 16 16)))

Mapping the tendency vector on this list
Application du vecteur de structure sur cette liste, organisant ainsi
les rythmes en fonction du vecteur global de structure.



(setf violin.len (vector-map violin.baselen violin.struct))

Generate a melodic contour for violin
Génération d'un contour mélodique



(setf violin.ct (gen-divide 4 (rnd-pitch 64 -3 24)))

Global velocity


(setf violin.vel '((mf)))

List of articulation
Préparation d'une liste d'articulations
qui seront à leur tour mise en correspondance avec le vecteur de structure globale


(setf violin.base-art '((-)
(-)
(pizz)
(arco - - - - - -)
(-)
(stacc)
(ord - - - - -)
(ord - - - -)))

Mapping the tendency vector on this list
Mise en correspondance articulations/vecteur structurel


(setf violin.art (vector-map violin.base-art violin.struct))


OMN assembly
Assemblage des différents paramètres de la partie violon


(setf violin.omn (ambitus
'violin
(tonality-map
path
(make-omn
:pitch violin.ct
:length violin.len
:velocity violin.vel
:articulation violin.art
)
:resolution reso :loop t)))

Same techniques used for the other instruments of the piece.
La même technique est employée pour les autres instruments de la pièce.
Clarinette


(setf clarinet.struct struct)
(setf clarinet.baselen (gen-tuplet 1 1 'm '? 'w '(2 2 2 4 4 8 8 8 )))
(setf clarinet.len (vector-map clarinet.baselen clarinet.struct))

(setf clarinet.ct (gen-divide 4 (rnd-pitch 64 8 24)))
(setf clarinet.vel '((mf)))
(setf clarinet.base-art '((-)
(-)
(-)
(stacc)
(-)
(stacc)
(-)
(-)))
(setf clarinet.art (vector-map clarinet.base-art clarinet.struct))
(setf clarinet.omn (ambitus
'(d4 g5)
(tonality-map
path
(make-omn
:pitch clarinet.ct
:length clarinet.len
:velocity clarinet.vel
:articulation clarinet.art
)
:resolution reso :loop t)))

Violoncelle


(setf cello.struct struct)
(setf cello.baselen (gen-tuplet 1 1 'm '? 'w '(2 2 2 4 4 8 8 8 )))
(setf cello.len (vector-map cello.baselen cello.struct))

(setf cello.ct (gen-divide 4 (rnd-pitch 64 -24 4)))
(setf cello.vel '((mf)))
(setf cello.base-art '((-)
(-)
(pizz)
(arco - - - - - -)
(-)
(stacc)
(arco - - - - -)
(arco - - - -)))
(setf cello.art (vector-map cello.base-art cello.struct))
(setf cello.omn (ambitus
'(c2 g4)
(tonality-map
path
(make-omn
:pitch cello.ct
:length cello.len
:velocity cello.vel
:articulation cello.art
)
:resolution reso :loop t)))

Piano main droite


(setf pmd.struct struct)
(setf pmd.baselen (gen-tuplet 1 1 'm '? 'w '(2 2 4 4 4 8 8 8)))
(setf pmd.len (vector-map pmd.baselen pmd.struct))

(setf pmd.ct (chordize-to-length
1 1 3
'(3 2)
'(1/2 1/4)
(gen-divide 8 (rnd-pitch 64 0 24))
pmd.len))
(setf pmd.vel '((mf)))
(setf pmd.base-art '((-)(-)))
(setf pmd.art (vector-map pmd.base-art pmd.struct))
(setf pmd.omn (ambitus
'(c4 g6)
(tonality-map
path
(make-omn
:pitch pmd.ct
:length pmd.len
:velocity pmd.vel
:articulation pmd.art
)
:resolution reso :loop t)))

Piano main gauche


(setf pmg.struct struct)
(setf pmg.baselen (gen-tuplet 1 1 'm '? 'w '(1 1 2 2 4 4 8 8)))
(setf pmg.len (vector-map pmg.baselen pmg.struct))

(setf pmg.ct (chordize-to-length
1 1 3
'(3 2)
'(1/2 1/4)
(gen-divide 8 (rnd-pitch 64 0 24))
pmg.len))
(setf pmg.vel '((mf)))
(setf pmg.base-art '((-)(-)))
(setf pmg.art (vector-map pmg.base-art pmg.struct))
(setf pmg.omn (ambitus
'(c2 g3)
(tonality-map
path
(make-omn
:pitch pmg.ct
:length pmg.len
:velocity pmg.vel
:articulation pmg.art
)
:resolution reso :loop t)))


(setf violin violin.omn)
(setf clarinet clarinet.omn)
(setf violoncello cello.omn)
(setf piano-rh pmd.omn)
(setf piano-lh pmg.omn)



Mute/Play based on Euclidean rhythms
Système Joue/pause basé sur une génération de rythmes euclidiens


(do-timeline2
'(violin clarinet violoncello piano-rh piano-lh)
(gen-binary-euclidean 5 size (/ size 2) size)
'(gen-pause x) :resolution '(q h) :loop t)



Score and Layout
Définition et affichage de la partition




(def-score Score114
(:title "Score 114"
:composer "S.Boussuge"
:copyright "Copyright © 2016 S.Boussuge"
:key-signature 'chromatic
:time-signature '((1 1 1 1) 4)
:tempo 100
:layout (list
(violin-layout 'violin-solo)
(clarinet-layout 'clarinet)
(violoncello-layout 'violoncello-solo)
(piano-layout 'piano-rh 'piano-lh)))

(violin-solo
:omn violin
:channel 14
:sound 'gm
:program 'violin
:volume 100
:pan 16
:controllers (91 '(48))
)

(clarinet
:omn clarinet
:channel 3
:sound 'gm
:program 'clarinet
:volume 95
:pan 60
:controllers (91 '(57))
)

(violoncello-solo
:omn violoncello
:channel 15
:sound 'gm
:program 'cello
:volume 90
:pan 95
:controllers (91 '(60))
)

(piano-rh
:omn piano-rh
:channel 7
:sound 'gm
:program 'acoustic-grand-piano
:volume 100
:pan 64
:controllers (91 '(60))
)

(piano-lh
:omn piano-lh
:channel 8
:sound 'gm
:program 'acoustic-grand-piano
:volume 100
:pan 64
:controllers (91 '(60))
)
)

Export au format XML pour être édité dans Sibelius (éditeur de partitions)


(compile-score 'Score114 :output :musicxml :file "Score114")

Premiere page de la composition:

Score114-image_0001