Jump to content

JulioHerrlein

Members
  • Posts

    806
  • Joined

  • Last visited

Everything posted by JulioHerrlein

  1. Thanks a lot, Stephane. I'm going to try your function soon. The idea here is more about transforming a set of chords, instead of generating the chords. More about controlling the exact spacing of the voicings in a given progression. I'm getting some trouble with gen-chord3. When evaluating this: (gen-chord3 '(c4 eb4 g4) '((3 3 3 3) (3 5 7 9) (2 5 7 11))) I'm getting different results each time First Time: Second time: Others: And so on... Is there some random algorithym in this function ? When evaluating this: (make-chord-if-length '((q c4 e d4 e4 f4 h d4)(s a4 b4 a4 g4 h f4)(q c4 d4 h e4))) I'm getting different results each time? Is this correct ? 1st time eval: 2nd time eval: 3rd eval... Best, Julio
  2. How to apply different voicings over a chord progression Sometimes you have to spread the notes of a chord progression in a very specific way, specially in the case of sectional writing as in the big bands, for example, where specific voicings are used, commonly named as drop2, drop3, etc. All the voicings are based in the initial closed position: - DROP2 is obtained by dropping the 2nd voice an octave below, as shown below: - DROP3 is obtained by dropping the 3rd voice an octave below, as shown below: There are 24 types of voicings as shown in the image below. The rule is to not exceed the octave between two adjacent voices. VOICING TYPES From Combinatorial Harmony Book, avaiable at: https://www.melbay.com/Products/Default.aspx?bookid=30042BCDEB CLOSED, DROP2, DROP3, DROP2+4, DROP2+3 and DOUBLEDROP2+ HOW TO IMPLEMENT IN OPUSMODUS EXAMPLE ;;; SOME Seventh CHORDS TO USE (setf chords '((a4c4d4f4) (c5eb4f4gs4) (d5f4g4bb4) (cs5e4fs4a4) (e4f4a4c4) (fs4g4b4d4) (d4eb4g4bb3) (eb4e4gs4b3) (e4g4a4c4) (a4c5d5f4) (f4gs4bb4cs4) (d4f4g4bb3) (fs5g4b4d5) (b5c5e5g5) (a5bb4d5f5) (gs4a3cs4e4) (b4d4e4g4) (d5f4g4bb4) (e5g4a4c5) (eb5fs4gs4b4) (e4f4a4c4) (fs4g4b4d4) (d4eb4g4bb3) (eb4e4gs4b3))) Setting the Voicing Types: csd (Closed Position) dp2 (Drop 2) dp2 (Drop 3) dp2-4 (Drop 2+4) dp2-3 (Drop 2+3) ddp2-3 (Double Drop 2 + Drop 3) (setf csd '(0 0 0 0) dp2 '(0 -12 0 0) dp3 '(0 0 -12 0) dp2-4 '(0 -12 0 -12) dp2-3 '(0 -12 -12 0) ddp2-3 '(0 -24 -12 0)) Drop order to apply over the sequence ;;;DROP ORDER (setf droplist (flatten (list csd dp2 csd dp2-4))) Command to make the voicings over the original chord progression ;;;ABERTURAS (chordize-list (pitch-transpose-n droplist (pitch-melodize chords))) RESULT Not the expected result!!!! See the next correction!!! All the best ! Julio Herrlein An important correction: In order to produce the right voicings is it necessary to sort the notes before transposing, so the Command to make the voicings over the original chord progression is like this: VOICINGS (setf chordprogdrop (chordize-list (pitch-transpose-n droplist (sort-desc (pitch-melodize chordtrp-rpt))))) Now, the right result for the voicing order csd dp2 csd dp2-4
  3. Hello, Simple question: 1) How to specify in the articulation list for no displaying any articulation in the note without using "ord" ? 2) Is there some reset to "normal" articulation (without symbols) ? Best, Julio
  4. Thanks, Lasse ! Glad you liked ! I'm also learning a lot. Best, Julio
  5. 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))
  6. More precise, elegant and resourceful ! Thanks a lot, Janusz ! Best, Julio
  7. Thanks, André ! It works, but looks ugly. The absense of stems up and down make it illegible. Thanks a lot, Janusz but I don't know what happened, I got a lot of errors. Best, Julio
  8. Thank you, guys !! You are amazing !! But I got some errors... Janusz, on your 1st possibility I got this error: 80 > 80 > 80 > > Error: Unbound variable:  > While executing: ccl::toplevel-eval, in process Listener-1(7). > Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts. > If continued: Retry getting the value of . > Type :? for other options. 81 > On the 2nd possibility I got this error: 78 > 78 > 78 > > Error: Unbound variable:  > While executing: ccl::toplevel-eval, in process Listener-1(7). > Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts. > If continued: Retry getting the value of . > Type :? for other options. 79 > I don't know what happened Thanks again !! Best, Julio One thing COMMAND+E in the expression below works ok (setf bass '((-h. q g3) (e c4 bb3 q a3 e g3 f3 q eb3) (h. d3 fermata q c3) (q bb2 a2 g2 c3) (h. d3 fermata q d3) (q g3 e f3 eb3 d3 c3 q bb2) (q eb3 f3 gb3 fermata d3) (q g3 a3 e bb3 a3 g3 f3) (q eb3 f3 bb2 fermata bb3) (q a3 bb3 gb3 e g3 f3) (q e3 c3 f3 fermata f3) (q bb2 e c3 d3 q eb3 e d3 c3) (h d3 q g2 fermata))) BUT...... COMMAND + 1 (to make a snippet) give me this error: > Error: OMN Parse Error: fail > While executing: omn-to-ast, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options. 83 > So, I copied the tenor part and trasposed it -7 (just for test...) and got this error: 85 > 85 > 85 > > Error: Unbound variable:  > While executing: ccl::toplevel-eval, in process Listener-1(7). > Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts. > If continued: Retry getting the value of . > Type :? for other options. 86 >
  9. Dear All, Very clear question: HOW to make a piano reduction with multiple voices and rhythms ? Like a reduction of a string quartet poliphonic material with 4 voices: ALL RHTYHMS INDEPENDENT with their own pauses. With the typical arrangement of stems for voice separation: TREBLE CLEF - voice 1 stems up TREBLE CLEF - voice 2 stems down BASS CLEF - voice 3 stems up BASS CLEF - voice 4 stems down Any help ? Please, help ! I
  10. This is for generating some jazz licks in the style of the LINEAR EXPRESSIONS, by jazz guitarist PAT MARTINO. The rhythm slots of the example contain the same 16th value, but it can be worked out as Rhythmic Cells. I was testing straight 16th lines. https://www.amazon.com/Linear-Expressions-Pat-Martino/dp/1423460898/ref=sr_1_1?ie=UTF8&qid=1539901867&sr=8-1&keywords=linear+expression+martino ;;; PAT MARTINO LINEAR Expressions Lick Generator JAZZ IDIOMS (setf r0 '(s) r1 '(s s s s) r2 '(s s s s s s s s) r3 '(s s s s) r4 '(s s s s) r5 '(s s s s s s s s) r6 '(s s s s s s s s) r7 '(s s s s s s s s) r8 '(s s s s s s s s) r9 '(s s s s s s s s) r10 '(s s s s s s s s)) (setf p0 '(g3 a3 bb3 c4 cs4 d4 f4 d4) p1 '(e4 fs4 g4 a4 c5 a4 bb4 d5) p2 '(f5 a5 ab5 e5 g5 f5 e5 d5) p3 '(c5 a4 bb4 d5 a4 bb4 a4 g4) p4 '(a3 bb3 d4 f4 a4 bb4 a4 ab4) p5 '(g4 a4 bb4 c5 d5 f5 a5 c6) p6 '(bb5 d5 f5 a5 g5 gb5 f5 g5) p7 '(e5 f5 e5 d5 c5 a4 g4 a4) p8 '(d4 e4 fs4 a4 fs4 g4 a4 c5) p9 '(a4 bb4 d5 f5 a5 bb5 a5 ab5) p10 '(g5 f5 d5 ds5 e5 g5 bb5 d6)) (setf v0 '(f) v1 '(mp) v2 '(f) v3 '(pp) v4 '(p f mf) v5 '(fff) v6 '(fff) v7 '(mf) v8 '(p) v9 '(f) v10 '(ff)) (setf sec (gen-repeat 10 (rnd-unique 12 '(0 1 2 3 4 5 6 7 8 9 10) ))) (setf r-list (assemble-section 'r sec)) (setf p-list (assemble-section 'p sec)) (setf v-list (assemble-section 'v sec)) (setf phrases (make-omn :length r-list :pitch p-list :velocity v-list)) (def-score collage (:key-signature 'atonal :time-signature '(2 4) :tempo 144 :layout (piano-grand-layout 'piano)) (piano :omn phrases :channel 1 :sound 'gm :program 0) )
  11. I´m good in having ideas, but as coder... I´ll try in the summer vacancy ! Best, Julio I can try to code within the existent functions in OM
  12. Maybe a Kind of Substitute map function could be useful something like I did it to interval substitution, to transform interval ( 0 - 11) to interval classes (0 - 6) (replace-map '((-11 1) (-10 2) (-9 3) (-8 4) (-7 5) (7 -5) (8 -4) (9 -3)(10 -2)(11 -1)) '(1 2 3 4 5 6 7 8 9 10 11 12 13)) Maybe a kind of mapping to tonalities could be useful. Respell to tonality function or respell-to-collection '( pitch list)
  13. Hello, All The idea is to generate some improvised lines over the Giant Steps progression. Every time the code is evaluated, a different comping and improvisation is generated. In this first effort, the improvisation is generated by the arpeggios resultating from the voice-leading of the progression. After that, I want to code some superimpositions of other chord substitutions. This is something I came with after studying the Harmonic-Path Function ( through some example by Stephane Boussuge) I also got some Drums from Jazz Trio, by Janusz Podrazik. Below is the commented code and an mp3 showing the result. All the best, Julio gsteps_GEN2.mp3 ;; Giant Steps Progression provided as Harmonic Path. ;; Some chords are repeated (the chords that last more time). (setf harmpath '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7))) ;; Just the Roots from the chord progression: for building the bassline later. basshpath (pitch-demix 4 harmpath) ;; Taking out the rhythm information of the bassline OMN, ;; organizing sublist of 1 element for repeating the tones twice, ;; preparing for another rhythm purposes. basspitches (gen-repeat 6 (flatten (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (ambitus '(e1 g2) basshpath))))))) ;; Using the same harmonic path as a voice leading comping and repeating it ;; in the same way I did with the bass line (twice each chord). ;; Bass line and comping will have the same rhythm kicks. comping (gen-repeat '(2) (gen-divide 1 (flatten (omn :pitch (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))))) ;; MELODIZANDO HAR-PATH. Melodizing the same voice-leading of the comping ;; to get the arpeggios for soloing. melodia (flatten (pitch-melodize (chord-closest-path '(b3c4e4g4) '((h (b3 maj7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (bb3 7)) (h (eb3 maj7) (gb3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb3 maj7) (eb3 maj7)) (h (a3 m7) (d3 7)) (h (g3 maj7) (g3 maj7)) (h (cs3 m7) (fs3 7)) (h (b3 maj7) (b3 maj7)) (h (f3 m7) (bb3 7)) (h (eb maj7) (eb maj7)) (h (cs3 m7) (fs3 7)))))) ;; Repeating the melody list some times. gstepspitches (gen-repeat 6 (flatten (omn :pitch melodia))) ) ;; Defining and randomizing rhythms. (setf r1 (rnd-order '((s s s s -s -s -s -s))) r2 (rnd-order '((s s s s -s -s -s -s))) r3 (rnd-order '((s s s s -s -s -s -s))) r4 (rnd-order '((s s s s -s -s -s -s))) r5 (rnd-order '((s s s s -s -s -s -s))) r6 (rnd-order '((s s s s -s -s -s -s))) r7 (rnd-order '((s s s s -s -s -s -s))) r8 (rnd-order '((s s s s -s -s -s -s))) r9 (rnd-order '((s -s -s -s))) r9b (rnd-order '((s -s -s -s))) r10 '(s -s -s -s) r11 (rnd-order '((s s s -s))) r12 '(-s -s -s -s) rhy2 (flatten (apply-eval (rnd-order '((r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8 r1 r2 r3 r4 r5 r6 r7 r8))))) rhyinv (length-invert rhy2) bdbsch (gen-repeat 6 (flatten (apply-eval (rnd-order '((r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9 r10 r9 r10 r9b r9))))))) ;; Setting Up OMN for each instrument. (setf gssolo (make-omn :length rhy2 :pitch gstepspitches :velocity (rnd-order'(mf p f p ff mf))) bassline (make-omn :length bdbsch :pitch basspitches :velocity (rnd-order'(mf p f p ff mf))) pnocomp (make-omn :length bdbsch :pitch comping :velocity (rnd-order'(mf p f p ff mf))) ) ;;--------------------------------------------------------- ;; Some Drums ;; (From Janusz Jazz Trio, with some tweaks in the hats) ;;--------------------------------------------------------- (setf hh1 (length-span 8/4 '(-s gs2 ff))) ;(setf oh1 (length-span 8/4 '(-s - bb2 ff -))) ;(setf ch1 (length-span 8/4 '(s fs2 ff -))) (setf sn1 (length-span 8/4 '(-e d2 - - a2 - - s = q f2 e))) (setf bd1 (length-span 8/4 '(-s b1 ff e c2 = -e. e = -e. -s))) (setf hh (rnd-order (gen-repeat 18 (list hh1)))) ;(setf oh (rnd-order (gen-repeat 18 (list oh1)))) ;(setf ch (rnd-order (gen-repeat 18 (list ch1)))) (setf sn (pitch-figurate '(3 2) (rnd-order (gen-repeat 18 (list sn1))) :interval '(-1 -2 14))) (setf bd (rnd-order (gen-repeat 18 (list bd1)))) ;; ------- SCORE (adapted from Harmonic Path Study, Boussuge) (def-score giant-steps-vl-improv (:title "giant-steps-vl-improv" :composer "Julio Herrlein" :copyright "Copyright © 2018 HERRLEIN" :key-signature '(c maj) :time-signature '(4 4) :tempo 124 :ignore-velocity t :layout (list (xylophone-single-layout 'i1) (guitar-layout 'i2) (contrabass-layout 'i3))) (i1 :omn gssolo :channel 1 :sound 'gm :program 'Clarinet :volume 100) (i2 :omn pnocomp :channel 2 :sound 'gm :program 'Electric-Piano-1 :volume 80) (i3 :omn bassline :channel 4 :sound 'gm :program 'Electric-Bass-Finger :volume 100) (hh :omn hh :channel 10 :sound 'gm :program 0 :volume 70) ;(oh :omn oh) ;(ch :omn oh) (sn :omn sn) (bd :omn bd) )
  14. Dear Janusz, It would be great to have this function in the core functions of version 1.3 Best, Julio Dear Stephane, Can we use this function to add more than one interval to each note ? This can add one interval, but I'm refering to add also two intervals, forming a trichord. 1) So the interval list would look like this, for adding intervals: (add-interval-if-length '((q c4 d4 e4 f4 e g4 a4) (e f4 e4 q d4 c4 a4 g4 f4)) :interval-list '(5 4)) 2) And like this, to alternate beetween a major triad and a perfect fourth: (add-interval-if-length '((q c4 d4 e4 f4 e g4 a4) (e f4 e4 q d4 c4 a4 g4 f4)) :interval-list '((4 3) 5)) Is it possible ? Any suggestion ? Best, Julio
  15. I think the best idea is to test musical ideias from annotated scores. Here are an example of a parametric composition with step by step decisions documented. Hope it can help you. The Nigel Morgan book is also very useful as well as the tutoriais by Janusz here in the fórum. The best is read the book testing the code in Opusmodus at the same time. Best Julio
  16. Yes, the learning curve is high, but there are a lot of benefits in this way of thinking music, specially if You work with notated music. This is where Opusmodus fill the gap, making a Bridge between code, algorhythms and notation in a desktop work flow, where you can organize all your files and stuff without distractions. Best, Julio
  17. Wow!!!! The future version!!! This is cool! Best Julio
  18. Dear All, Stephane did this amazing and clear example (code below) of how to spread an harmonic progression over a predefined texture. This can be altered to any harmonic idiom. I did some test, using a chorale texture originated from a 12-tone row and also a more jazz-oriented chorale. THE QUESTION IS (For Stephane Boussuge) 1) How the harmonic rhythm is controlled here? In the example, the chord changes every half note. 2) How can I make the harmony changes at every quarter note ? 3) Can I use different rates of harmonic rhythms ? Best, Julio ;;; Classical Accompaniment Exemple ;;;--------------------------------------------------------- ;;; Parameters ;;;--------------------------------------------------------- ;;; Motif definition (setf mtf1 '((s c5 leg g5 leg e6 leg g5 c5 leg g5 leg e6 leg g5))) (setf mtf2 (pitch-transpose 4 mtf1)) (setf mtf3 '((-q e5))) (setf mtf4 '((-q g4c5))) (setf mtf5 '((q c2 -))) ;;; Chords definition (setf chords (library 'harmoprog1 'minor-4vx 'prog1)) ;;; Ostinati (setf ost1 (gen-repeat (length chords) mtf1)) (setf ost2 (gen-repeat (length chords) mtf2)) (setf ost3 (gen-repeat (length chords) mtf3)) (setf ost4 (gen-repeat (length chords) mtf4)) (setf ost5 (gen-repeat (length chords) mtf5)) ;;; Tonality-map series (setf tm-path (tonality-series chords)) ;;; Here we apply the map 'tm-path' into arpegio sequence. (setf ost1.map (tonality-map tm-path ost1)) (setf ost2.map (tonality-map tm-path ost2)) ;;; Here we apply our library chords into chord sequence. ;;; The harmonic-path preserves the voice leading. (setf ost3.map (harmonic-path chords ost3)) (setf ost4.map (harmonic-path chords ost4)) (setf ost5.map (harmonic-path chords ost5)) (setf violin1 (ambitus '(g3 c7) ost2.map)) (setf violin2 (ambitus '(g3 c6) ost1.map)) (setf viola (ambitus '(c3 e4) ost3.map)) (setf violoncello (ambitus-chord 12 (pitch-transpose -12 ost4.map))) (setf bass ost5.map) ;;;--------------------------------------------------------- ;;; Score and Layout ;;;--------------------------------------------------------- (def-score Classical-accomp (:title "Classical accompaniment example" :composer "S.Boussuge" :copyright "Copyright © 2018 s.boussuge" :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 80 :layout (bracket-group (violin-layout 'violin1 :name "Violin-1") (violin-layout 'violin2 :name "Violin-2") (viola-layout 'viola) (violoncello-layout 'violoncello) (contrabass-layout 'bass) ) ) (violin1 :omn violin1 :channel 1 :sound 'gm :program 'String-Ensemble-1 :volume 100 :pan 48 :controllers (91 '(68)) ) (violin2 :omn violin2 :channel 2 :sound 'gm :program 'String-Ensemble-1 :volume 100 :pan 48 :controllers (91 '(68)) ) (viola :omn viola :channel 3 :sound 'gm :program 'String-Ensemble-1 :volume 90 :pan 64 :controllers (91 '(68)) ) (violoncello :omn violoncello :channel 4 :sound 'gm :program 'String-Ensemble-1 :volume 90 :pan 80 :controllers (91 '(68)) ) (bass :omn bass :channel 5 :sound 'gm :program 'String-Ensemble-1 :volume 90 :pan 80 :controllers (91 '(68)) ) )
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy