By
JulioHerrlein
Dear All,
I'm trying to find a suitable workflow to make my choices easier.
One idea was to compose over a piano reduction, for easier manipulation.
Here's a way of doing that, with comments.
The MIDI FILE output is like this. I did NO EDITIONS at all in Musescore.This is the video of the MIDI output.
The XML output is the piano reduction.
Very convenient !
Best,
Julio
str_4tet_opusmodus.mov
;;;SEV CHORDS Basic Functions
;;;Harmonic Functions/Sets List
(setf Srm7 (pcs-transpose 9 (pcs '4-26) :pitch))
(setf S7M (pcs-transpose 4 (pcs '4-20) :pitch))
(setf Trm7 (pcs-transpose 4 (pcs '4-26) :pitch))
(setf T7M (pcs-transpose -1 (pcs '4-20) :pitch))
(setf Tam7 (pcs-transpose 11 (pcs '4-26) :pitch))
(setf D7 (pcs-transpose 11 (pcs '4-27b) :pitch))
(setf hd (pcs-transpose 9 (pcs '4-27) :pitch))
;;;Estabilishing a Basic Progressions
(setf chordprog (chordize (list Srm7 S7M Trm7 T7M Tam7 S7M)))
;;;Repeating and transposing the progression
(setf chordtrp-rpt (pitch-transpose-repeat '((0 3 5 4) (0 2 -2 -1) (0 5 1 -2) (7 12 10 -3)) chordprog))
;;; Making suitable voicings to the progression
(setf chordprogdrop (chordize-list
(pitch-transpose-n
'(0 -12 0 0)
(pitch-melodize chordtrp-rpt))))
;;;Using these dropped chords as the source
(setf chordprgtrp chordprogdrop)
;;;Opcionally with more Voice-Leading, with a smooth transition between the chords
;(setf chordprgtrp (chord-closest-path (car chordprogdrop) (gen-divide 4 chordprogdrop)))
;;;Counting the number of chords to make rhythm repetitions
;(setf times (get-count (get-count chordprgtrp)))
;;;Optionally setting manually the repetitions
(setf times 24)
;;;Eachnote assigned to a voice
(setf voz1 (flatten (pitch-demix 1 chordprgtrp)))
(setf voz2 (flatten (pitch-demix 2 chordprgtrp)))
(setf voz3 (flatten (pitch-demix 3 chordprgtrp)))
(setf voz4 (flatten (pitch-demix 4 chordprgtrp)))
;;;optionally processing the ambitus of the voices
;(setf vozamb1 (ambitus '(c4 c5) voz1) vozamb2 (ambitus '(f3 c5) voz2) vozamb3 (ambitus '(g3 g4) voz3) vozamb4 (ambitus '(c2 e3) voz4))
;;; Or setting to instrument's ranges
;(setf vozamb1 (ambitus (ambitus-instrument 'flute) voz1)vozamb2 (ambitus (ambitus-instrument 'oboe) voz2) vozamb3 (ambitus (ambitus-instrument 'clarinet) voz3) vozamb4 (ambitus (ambitus-instrument 'bassoon) voz4))
;;;or just using the resulting drops as given
(setf vozamb1 voz1 vozamb2 voz2 vozamb3 voz3 vozamb4 voz4)
;;;RIT
;;;one rhythm to all (for checking the "chorale" writing)
;(setf r1 (gen-repeat times '(q)) r2 (gen-repeat times '(q)) r3 (gen-repeat times '(q)) r4 (gen-repeat times '(q)))
;;;Doing an homorhythmic section (all instruments play the same rhythms
(setf homorhy (gen-repeat times '(q -q e q e h h -s s s s))
r1 homorhy
r2 homorhy
r3 homorhy
r4 homorhy)
;;; Articulation for the homorhytm
(setf arthomo '(ten stacc ord stacc ord ord leg leg ord))
;;;OMN ASSEMBLAGE of the Lines
(setf vozomn1
(make-omn
:length r1
:pitch vozamb1
:articulation arthomo
:velocity (rnd-order'(p))))
(setf vozomn2
(make-omn
:length r2
:pitch vozamb2
:articulation arthomo
:velocity (rnd-order'(p))))
(setf vozomn3
(make-omn
:length r3
:pitch vozamb3
:articulation arthomo
:velocity (rnd-order'(pp))))
(setf vozomn4
(make-omn
:length r4
:pitch vozamb4
:articulation arthomo
:velocity (rnd-order'(pp))))
;;;---------------------------------------------------------
;;; SCORE
;;;----------------------------------------------------------
(def-score voices
(:title "Piano-Red-4-Voices"
:subtitle "Estudos Polifônicos"
:composer "Julio-Herrlein"
:key-signature 'atonal
:time-signature '(4 4)
:tempo '("Meditativo" q 60)
:layout (piano-solo-layout '(pno-rh1 pno-rh2) '(pno-lh pno-lh2)))
(pno-rh1 :omn vozomn1 :channel 1 :sound 'gm :program 'Violin :volume 100)
(pno-rh2 :omn vozomn2 :channel 2 :sound 'gm :program 'Violin :volume 70)
(pno-lh :omn vozomn3 :channel 3 :sound 'gm :program 'Viola :volume 80)
(pno-lh2 :omn vozomn4 :channel 4 :sound 'gm :program 'Cello :volume 80))