Jump to content

Avner Dorman

  • Content Count

  • Joined

  • Last visited

About Avner Dorman

  • Rank
    Junior Member

Contact Methods

Profile Information

  • Gender
  • Location

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Maybe closest-path and keep chord-closest-path as the non strict version? either way - thank you so much!!!
  2. Hi Janusz, These look correct to me! I haven’t done the math, but I don’t see any voice leading issues. Thanks! Avner
  3. Yes - obviously you're right - that one is the best. So is there a way to implement that? I actually appreciate that chord-closest-path gives different options on different runs (it's quite creative ) but I would also like to have the option of a truly parsimonious voice leading function. Julio's solution seems to work, but I can't quite manage to make it into a function....and I don't know enough Python (and maybe not enough lisp) to easily convert Tymoczko's code to lisp. By the way - I love Opusmodus as well! Thanks Avner
  4. Hi Janusz, If I try this: (chord-closest-path '(b4g4e4c4) '(b4g4e4c4 c5a4e4f4 b4a4f4d4 b4g4e4d4)) It produces either or My question is why does it produce two variants and how can one make sure it always chooses the shortest path? To me it seems like the second option is the correct one since the total half steps between all the voices is 6 (b-c, g-f, c-a) and in the first the total half steps between the voices is 8. Thanks! Avner p.s. - if anyone's curious - Dmitri Tymoczko wrote a software that does minimal voice leading for music 21 in Python. It's available here - http://dmitri.mycpanel.princeton.edu/voiceleading_utilities.py
  5. Dear Julio, Thanks for sharing these codes. So I'm trying to understand if the following approach could work - it seems to work for your example (but not for every progression). (setf chordstovl2 '(b3eb5g3 cs6e7gs3 b4f5g6 f7e5c2 d4f7e4 gs7e2a8)) (defun voicelead (chords) (chord-closest-path (list (car chords)) chords)) (voicelead (ambitus '(c4 c5) chordstovl2)) but (voicelead (harmonic-progression '(0 3 6 2) '(c major) :size 4 :step 2 :relative nil :variant 'r)) can generate one of two options. The second one is obviously better since it uses a common tone. Even with ambitus-chord I'm not able to make it work consistently. If you have any thoughts I'd be happy to hear them. All the best, Avner
  6. Thanks! Now it's working for me too....
  7. Hi Janusz, Any idea why this stopped working? I've changed :map shift to :map step but it's still not working... thanks! Avner
  8. Hi Torsten, Would these work? (pitch-melodize '(c4e4g4)) => (c4 e4 g4) And (pitch-to-midi '(c4e4g4)) =>((60 64 67)) or (flatten (pitch-to-midi '(c4e4g4))) => (60 64 67) All the best, Avner
  9. Thanks so much!!! This is great! I wrote the following functions that automatically add the pitch class as text above each note. This is really useful for me when teaching set theory. I am sharing them in case anyone else needs something like this Also, I'd be curious to know how the text font might be modified. ;; convert pitch-classes to nums (defun pc-to-num (pitches) (substitute-map '(num0 num1 num2 num3 num4 num5 num6 num7 num8 num9 num10 num11) '(0 1 2 3 4 5 6 7 8 9 10 11) (modus (pitch-to-integer pitches)))) ;; interweave two lists (defun interweave (list1 list2) (if (null list1) list2 (cons (car list1) (interweave list2 (cdr list1))))) ;; add pcs as a num to each pitch (defun show-pcs (pitches) (interweave pitches (pc-to-num pitches))) ;; test (setf pitches '(c4 bb4 f4 eb4 fs4 d4 g4 b4 e4 a4 cs4 gs4)) (show-pcs pitches) Pitches with PCS.pdf Pitches.pdf
  10. Is there an easy way to add the pitch class as text above each note of the score? For example, add a '0' above any 'c' in a score?
  11. You're very welcome :-) music21 has so much to offer - I just wish there was an easy way to convert its tools and objects into opusmodus functions. I really enjoy the workflow of opusmodus and using lisp. Perhaps when opusmodus can read xml files directly into omn it would be easy to combine the two. All the best, Avner
  12. Thanks so much! :-) Perhaps it's too 'old school' for opusmodus - but I think it would be great to have something like this at some point (especially for teaching purposes) - http://web.mit.edu/music21/doc/moduleReference/moduleFiguredBassExamples.html Thanks again for the help with this.
  13. Thanks Stephane, I must say that I don't quite understand gen-chord3 - every time I evaluate the expression (gen-chord3 '(c4 eb4 g4) '((6 5) (5 3) (4 2))) I get a different result. Also, what I was hoping to do was to convert traditional figured bass (i.e., use steps in the key) into chords. Perhaps there isn't an easy way to accomplish this in opusmodus right now. Either way, would you mind explaining why gen-chord3 evaluates to different pitches every time? Thanks! Avner
  • Create New...