Jump to content
  1. lviklund


  • Similar Topics

    • By EAIP
      I am working on a table for harmonics on the theorbo.
      Is there a way to mark strings with numbers higher than 5?
      Or perhaps a way to add your custom roman numeral?
      By the way, I am still on 1.2.23260, maybe there are more options in 1.3 regarding custom markings?
      Kind Regards,
    • By Deb76
      Somewhat stupid question but I do not find a function that would allow me to reorder a sequence of pitches.
      Let me explain, on a forum where Messiaen's limited transposition modes are discussed, I wanted to show that with Opumodus we could very easily analyze the modes and recreate them. I have no problem with those who are in total symmetry and divisible by two, but if I take the mode 3: (c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4), using the function pitch-transpose-start I get in the end the mode but according to the postponement of the intervallic structure on c4 d4 ab4 is => ((c4 e4 gs4) (d4 fs4 bb4) (eb4 g4 b4)). I tried to reorder with the function pcs-normal-order the mode is reordered but with however the c4 in last position: (d4 eb4 e4 fs4 g4 gs4 bb4 b4 c4). Now, I suppose there is a function that makes it possible to obtain the right disposition. What is it ?
      (setf modmessiaen3 '(c4 d4 eb4 e4 gb4 g4 ab4 bb4 b4)) (setf SIMessiaenMod3 (pitch-to-interval modmessiaen3)) ; =>  (2 1 1 2 1 1 2 1) (setf mod3divide (gen-divide 3 modmessiaen3)) (setf firstmodmessiaen3 (filter-first 3 modmessiaen3)) (setf report3 '(c4 e4 ab4)) (setf rep3 (gen-repeat 3 (list report3))) (setf pch3 (modus (flatten (pitch-transpose-start firstmodmessiaen3 rep3)))) (setf MessiaenMod3 (pcs-normal-order pch3 :pitch)) (setf SIMessiaenMod3a (pitch-to-interval MessiaenMod3)) ; => (1 1 2 1 1 2 1 -11) (setf mod3chordsM (melodize '((c4eb4gb4) (d4gb4bb4) (eb4gb4bb4) (e4g4b4) (gb4bb4db5) (g4b4d5) (ab4b4d5) (bb4gb5) (b4d5gb5)))) (setf analysechords3 (pcs-analysis (integer-to-pitch (modus mod3chordsM))))  
      In particular, this distorts the analysis of the interstellar structure of mode 3:
      of (2 1 1 2 1 1 2 1) I get (1 1 2 1 1 2 1 -11)
      Besides, there is probably a more efficient script than the one I tried?
      PS : In fact, I realize that the function pcs-normal-order is not adapted at all according to the modes.
    • By AM
      ;;; --------------------------------------------------------------------------------------------------- ;;; because i'm working with numbered-events (to have some more control) i has to code ;;; a specific tranposition-function, which is transposing on specific spans/positions ;;; --------------------------------------------------------------------------------------------------- ;;; SUB (defun and-span (n a b) (and (>= n a) (<= n b))) ;;; MAIN (defun transpose-on-event-number (omn-list &key positions/transpose-list) (loop for i in (single-events omn-list) for cnt = 0 then (incf cnt) with position-list = (loop for x in positions/transpose-list collect (car x)) with transpose-list = (loop for y in positions/transpose-list collect (rest y)) with cnt2 = 0 when (and (and-span cnt (car (nth cnt2 position-list)) (cadr (nth cnt2 position-list))) (not (length-restp (car (omn :length i))))) collect (pitch-transpose-n (nth cnt2 transpose-list) i) else collect i when (and (= cnt (cadr (nth cnt2 position-list))) (< cnt (cadar (last position-list)))) do (incf cnt2))) ;;; ZERO-based (like in lisp) (transpose-on-event-number '(q g4 -q q g4 g4 g4 g4 g4 g4 g4 g4) :positions/transpose-list '(((0 5) 1) ((6 7) -3) ((8 9) 12))) => ((q gs4 mf) (-q) (q gs4 mf) (q gs4 mf) (q gs4 mf) (q gs4 mf) (q e4 mf) (q e4 mf) (q g5 mf) (q g5 mf))  
  • Create New...