Jump to content

Different Voice for one note in a Chord

Recommended Posts

Hi everyone, this one should be pretty simple but I can't seem to figure it out yet.
I am trying to notate this (see attachment) first bar in OM.
So far I have this:

(h e3c4g4e5 f3f4a4d5 z^q g4 f4 h g3d4b4 c3c4e4c5 )

Which doesn't work yet, although it's close.
Additionally, I would love to use the same figured bass notation (with the brackets and everything).
I know how to use the text attribute for Instruments but it seems to map everything based on white-space between the text, maybe I'm missing something?

- Jor

Screen Shot 2019-02-13 at 11.34.28.png

Link to post
Share on other sites



(setf v1 '(h e5 d5 b4 c5))
(setf v2 '(h g4 a4 q g4 f4 h e4))
(setf v3 '(h c4 f4 d4 c4))
(setf v4 '(h e3 f3 g3 c3))

(def-score Cade
           (:key-signature 'chromatic
            :time-signature '(4 2)
            :tempo 80
            :ignore-time-signature t
            :ignore-tempo t
            :layout (piano-layout '(v1 v2) '(v3 v4)))
   :omn v1
   :channel 1
   :sound 'gm
   :program 0)
  (v2 :omn v2)
  (v3 :omn v3)
  (v4 :omn v4)

Screenshot 2019-02-13 at 12.52.15.png


Link to post
Share on other sites

Dear Jorvd,


Maybe this post can be useful.





Or maybe this. I did it for composing a String Quartet from a piano reduction.

It brings some ideas to work with harmony.




;;;HARMONY METHOD 2 ////////////////////////////////////////SEV CHORDS Basic Functions SETS///

;;SETS 7-35 - Major Scale

(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))
(setf F7M#11-5 (gen-rotate 2 (pcs-transpose -1 (pcs '4-8) :pitch)))

;;;Establishing a Progression

(setf chordprog (chordize (list Srm7 S7M Trm7 T7M Tam7 S7M)))

;; Some repetitions and transpositions from Harmonic functions

(setf chordtrp-rpt 
(pitch-transpose-repeat '((0) (1 2 3) (0 -1)) 
(chordize (list T7M S7M Trm7 T7M T7M T7M T7M T7M T7M T7M T7M T7M T7M T7M))))

;;; DEFINE DROP TYPES Position of chords

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 0 -12)
dp-24 '(-24 -24 -24 -24)
dp-ligeti '(-24 -24 24 24))

;;;DROP ORDER - Order of Positions

(setf droplist (flatten 
(list dp2-4 dp2 dp2-4 dp3 dp2)))

;;;MAKING THE Actual Voicings

(setf chordprogdrop (chordize-list
              (sort-desc (pitch-melodize chordtrp-rpt)))))

;;;Using the voicings for the final result

(setf chordprgtrp chordprogdrop)

;;; Choose how many repeats of the rhythm

(setf times 1)

;;;Transform the chords into separate voices

(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)))

;;; (OPTIONAL) Process AMBITUS Instrumental ou vocal////////////////////////////////////////

;(setf vozamb1 (ambitus '(c4 c5) voz1) vozamb2 (ambitus '(f3 c5) voz2) vozamb3 (ambitus '(g3 g4) voz3) vozamb4 (ambitus '(c2 e3) voz4))

;(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))

(setf vozamb1 voz1 vozamb2 voz2 vozamb3 voz3 vozamb4 voz4)


(setf homorhy (gen-repeat times '(q stacc -q e stacc q e stacc h h -s s pizz s pizz s pizz)) r1 homorhy r2 homorhy r3 homorhy r4 homorhy)(setf arthomo '(stacc stacc ord stacc ord ord leg leg ord))

(setf dynhomo '(f f mf mf p< f mp< < <))

;; THE DYNAMICS are a little crazy, but this is only to show the stuff

;;;outra possibilidade para homorritmo
;;;lista do ritmo e articulação basica

(setf ritrepeat '(-s s s s s -s s s e stacc e stacc -s s ord s s -s s s s e stacc e stacc h ord -s s s s -s s s s e stacc e stacc -e q. ord e stacc e stacc e -s s ord s s -s s -h -q s s -s s h -h))


(setf homorhy (gen-repeat times ritrepeat) r1 homorhy r2 homorhy r3 homorhy r4 homorhy)

;;;OMN ASSEMBLAGE da LINHA (for poliphony)

(setf vozomn1
 :length r1
 :pitch vozamb1
 :articulation arthomo
 :velocity dynhomo))

(setf vozomn2
 :length r2
 :pitch vozamb2
 :articulation arthomo
 :velocity dynhomo))

(setf vozomn3
 :length r3
 :pitch vozamb3
 :articulation arthomo
 :velocity dynhomo))

(setf vozomn4
 :length r4
 :pitch vozamb4
 :articulation arthomo
 :velocity dynhomo))



;;; (OPTIONAL) Time Signature Sequences

(setf time-signatures '((2 4 1) (3 4 2) (4 4 1)))


;(setf time-signatures '((4 4)))

(def-score voices
           (:title "Piano-Red-4-Voices"
            :subtitle "Estudos Polifônicos"
            :composer "Julio-Herrlein"
            :key-signature 'atonal
            :time-signature time-signatures
            :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))


Link to post
Share on other sites

Thanks Janusz for the very straightforward example!


@Julio, looks like I'm in for an educational weekend! It seems like there's a lot of useful ideas in there.
I am currently building a library of functional progressions, I think the ideas you're showing will be incredibly valuable for that, thanks a lot!

Link to post
Share on other sites

Very nice, Jordv !

I'm very interested in Harmony. Let me know about your progress in this matter.

I did a book about set theory and harmony. If you play guitar, you gonna like it.

It have all the possible voicings with diagrams for guitarand much more, like

 hexatonics, voice leading, functional harmony, etc.

Here's the link




And another post related to it




All the Best,


Link to post
Share on other sites

Wow that is some stellar work, I do play guitar but I mainly compose on piano will send this along to my guitar playing friends, seems like a very valuable source.
I already had some new things to learn in the first few lines of your provided example so I had a productive day yesterday.
I have no doubt that you're familiar with these, but for others that might be interested, I found some useful tools for PCS analysis as well as a nice explanation on the subject.




Link to post
Share on other sites
  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Topics

    • By Stoney
      I've been playing around with Rangarajan's "Constraint Programming with Screamer" file, and ran across what looks like a bug.
      The program generates this chord sequence (which I assigned to chords-1):
      (setf chords-1 '((h. c3e3g3 ff -q) (h. d3f3a3 ff -q) (h. g3b3d4 ff -q) (h. a3c4e4 ff -q) (h. e3g3b3 ff -q) (h. g3b3d4 ff -q) (h. a3c4e4 ff -q) (h. c3e3g3 ff -q)))
      If I just cmd-1 on that, it displays and plays just fine. If I evaluate this, though:
      (ps 'gm :treble chords-1 :time-signature '(4 4) :tempo 120)
      I get this mess:

      It plays one chord (or rather, discord).
      This seems ok:
      (get-time-signature chords-1)
      => ((4 4 8))
      This looks ok:
      (disassemble-omn chords-1)
      => (:length ((3/4 -1/4) (3/4 -1/4) (3/4 -1/4) (3/4 -1/4) (3/4 -1/4) (3/4 -1/4) (3/4 -1/4) (3/4 -1/4)) :pitch ((c3e3g3) (d3f3a3) (g3b3d4) (a3c4e4) (e3g3b3) (g3b3d4) (a3c4e4) (c3e3g3)) :velocity ((ff) (ff) (ff) (ff) (ff) (ff) (ff) (ff)) :articulation ((-) (-) (-) (-) (-) (-) (-) (-)))
      What's going on here?
    • By NagyMusic
      I understand that the first argument value in the ambitus-chord function represents the outer-interval size measured by an integer or a list of integers. What does the second value in the size argument list affect when processing two [or more] chords, as illustrated in the example below? Is the second value affecting the second chord in the first list or both chords in the second list? Thank you!
      (ambitus-chord '(14 6) '((eb4c6 c4fs4 b4) (c4b4 b3eb5b3)))  
    • By etu
      Is there a way to reduce all of the note lengths equally, without editing each one individually in this snippet?  I suppose I could change the audition tempo to make it play faster, but I would really like to reduce the note lengths programmatically, if that's possible.
      (rnd-sample-seq 4 '( (h. b4 tie) (q b4 h a4 tie) (q a4 e b4 a4 q g4 tie) (h g4 e fs4 e4) (h fs4 -q) (-q h g4 tie) (q g4 e fs4 g4 q a4 tie) (h a4 e c5 b4) (h_e c5 e b4) (e c5 a4 h b4 tie) (q. b4 -e q g4 tie) (h. g4) (h. fs4) (e g4 a4 h b4 tie) (e b4 a4 b4 g4 q a4 tie) (h a4 q a4) (h. g4) (q g4 h fs4 tie) (q fs4 b4 e e4 fs4) (h. g4) (h. fs4 tie) (q fs4 h b4 tie) (h b4 q a4 tie) (h a4 e b4 a4) (h. g4) (e fs4 e4 h fs4) (-h q g4 tie) (h g4 e fs4 g4) (h. a4) (e c5 b4 h c5 tie) (e c5 b4 c5 a4 q b4 tie) (he b4 -e) (h. g4 tie) ))  
  • Create New...