Jump to content

opmo

Administrators
  • Posts

    2,903
  • Joined

  • Last visited

Everything posted by opmo

  1. New: additional keyword :map in TEXT-TO-PITCH, LETTER-TO-INTEGER and INTEGER-TO-LETTER. --------------------------------------------------- TEXT-TO-PITCH Example with a defined :map (setf map (gen-combine (make-alphabet) (gen-integer-step 0 26 '(1 -2 3 1)))) => ((a 0) (b 1) (c -1) (d 2) (e 3) (f 4) (g 2) (h 5) (i 6) (j 7) (k 5) (l 8) (m 9) (n 10) (o 8) (p 11) (q 12) (r 13) (s 11) (t 14) (u 15) (v 16) (w 14) (x 17) (y 18) (z 19)) (text-to-pitch '("To be, or not to be, that is the question") :map map) => ((d5 gs4) (cs4 eb4) (gs4 cs5) (bb4 gs4 d5) (d5 gs4) (cs4 eb4) (d5 f4 c4 d5) (fs4 b4) (d5 f4 eb4) (c5 eb5 eb4 b4 d5 fs4 gs4 bb4)) --------------------------------------------------- LETTER-TO-INTEGER (letter-to-integer '(a b c f g h) :map '((a 0) (b 6) (c 13) (f -11) (g -13) (h 2))) => (0 6 13 -11 -13 2) --------------------------------------------------- INTEGER-TO-LETTER (integer-to-letter '(0 1 2 5) :map '((0 a) (1 c) (2 e) (5 g))) => (a c e g) --------------------------------------------------- Fix to MAKE-OMN length-symbol conversion.
  2. Opusmodus 1.2.21986 fixed the bug.
  3. The bug is in the MAKE-OMN function - the conversion to ratios and back - which is not necessary here. I will have a look.
  4. Patrick please check your score the scale1 values are missing.
  5. All this like title, composer, footer etc... will be part of the version 2.0
  6. In OM we don't use double nested list. '(((h q) (h)) ((h. q) (h)) ((h. h) (h))) what is the purpose of this.
  7. The argument encode is mentioned now in 23 functions (documents) - version 1.2.21977
  8. With nested lists: (defun get-proportions (sequence &key abs) (do-verbose ("get-proportions") (flet ((get-proportions-l (sequence &key abs) (let* ((length (omn-length sequence)) (den (remove-duplicates (loop for i in length collect (denominator (abs i))) :from-end t))) (loop for i in length collect (if abs (* (abs i) (apply #'lcm den)) (* i (apply #'lcm den))))))) (if (listsp sequence) (loop for i in sequence collect (get-proportions-l i :abs abs)) (get-proportions-l sequence :abs abs))))) (get-proportions '(5q 5q 5q 5q 5q -e -s t t -q)) => (8 8 8 8 8 -20 -10 5 5 -40) (get-proportions '((-e -t t t t) (t t t t t -s. -q))) => ((-4 -1 1 1 1) (1 1 1 1 1 -3 -8))
  9. My question is what will happen if there are few matches in a sequence and not only one.
  10. (setf seq '(e c4 -e -q q d4 -q s q d4 c4 e. q d4 h. q)) (setf insert '(3q c4 d4 e4 c4 d4 e4 c4 d4 -3q)) (setf insert-span (get-span insert)) (setf match '(q d4 ?)) Your code returns: (e c4 mf -e -q 3q c4 d4 e4 c4 d4 e4 c4 d4 -3q q d4 mf q c4 mf e. c4 mf q d4 mf h. d4 mf q d4 mf) ?
  11. What will happen if there are few matches: (q d4 ?) (setf seq '(e c4 -e -q q d4 -q s q d4 c4 e. q d4 h. q)) (setf insert '(3q c4 d4 e4 c4 d4 e4 c4 d4 -3q))
  12. How we come to the length: -3q in the last list. this (the rest of the original seq): -q s c4 -e. q needs to be replaced, how?
  13. This example (above) is simple insert. I like you to explain this: (e c4 -e -q) (3q c4 d4 e4 c4 d4 e4 c4 d4) (-3q q c4) from where is the last list coming from?
  14. You need to explain the process a bit better. Should the span after the process stay of the original sequence? Is the insert (which it is) should complete the span with there own loop etc... All this is simple to code if the process is known :-) added 7 minutes later Your example: ;; seq (e c4 -e -q q c4 -q s c4 -e. q) ;; insert (3q c4 d4 e4 c4 d4 e4 c4 d4) ;; pattern-match (q c4) result in block (e c4 -e -q) (3q c4 d4 e4 c4 d4 e4 c4 d4) (-3q q c4) from where is the last list coming from?
  15. (setf map '(((q d4 ?) (3q c4 d4 e4 c4 d4 e4 c4 d4 -3q)))) (pattern-map map '(e c4 -e -q q d4 -q s c4 -e. -h. q)) => (e c4 -e -q 3q c4 d4 e4 c4 d4 e4 c4 d4 -3q s c4 -e. -h. q)
  16. I would advise to search the library, you might find thinks you never thought of
  17. opmo

    microtonality

    The support of microtonality, midi input (keyboard), xml to omn etc... will be part of the version 2.0
  18. SAMPLING-LIST function is missing :-)
  19. Added new keyword :type to TONALITY-MAP and TONALITY-SERIES function with three options: prime-form, normal-order and row. Examples: (setf seq2 (rnd-row :type :pitch :seed 345)) => (c4 d4 g4 f4 cs4 b4 gs4 e4 fs4 a4 bb4 eb4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type normal-order) seq2) => (a4 c4 fs4 eb4 b4 cs5 a5 d4 e4 b5 c5 cs4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type prime-form) seq2) => (c4 eb4 a4 fs4 d4 e5 c5 f4 g4 d5 eb5 e4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type row) seq2) => (c4 d4 b4 fs4 cs4 eb5 c5 e4 a4 cs5 d5 eb4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type normal-order :rotate 1) seq2) => (b4 cs4 a5 e4 c4 d5 b5 eb4 fs4 c5 cs5 d4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type prime-form :rotate 1) seq2) => (d4 e4 c5 g4 eb4 f5 d5 fs4 a4 eb5 e5 f4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type row :rotate 1) seq2) => (cs4 eb4 c5 a4 d4 e5 cs5 fs4 b4 d5 eb5 e4) Best wishes, JP
  20. Function name change: RANDOMIZE-OCTAVES is now RND-OCTAVES Optimisation: TONALITY-MAP To change the function name in all of your scores you can use the 'Search Files...' tool.
  21. opmo

    Dim al niente

    For now only this is possible. '(q a4 0< b4 p>0 -q)
  22. ((eb4 num3 f4 num5 gb4 num8 a4 num9 c4 num0) (bb4 num11 c4 num0 eb4 num3 e4 num4 f4 num5)) List of all attributes you find in the '4th Element - Attributes' document. Of course you can create your own attributes (articulations) as well, with ADD-TEXT-ATTRIBUTES function.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy