Jump to content

opmo

Administrators
  • Posts

    2,894
  • Joined

  • Last visited

Posts posted by opmo

  1. (setf mat (flatten '((s d3 ffff -e. s f3 mf -q.. s f3 ffff -e.)
                         (s g3 -e. s f3 -e. q.. g3 -s))))
    
    (setf aug-length
          (loop for i in (omn :length mat)
                collect (if (length-restp i) i
                          (car (length-augmentation 4 (list i))))))
    
    (setf augmat
          (make-omn
           :length aug-length
           :pitch (omn :pitch mat)
           :velocity (omn :velocity mat)
           :articulation (omn :articulation mat)))
    
    (setf mat (pitch-transpose -12 augmat))
    => (q d2 ffff -e. q f2 mf -q.. q f2 ffff -e. q g2 -e. q f2 -e. w.. g2 -s)

     

  2. This can't be displayed in notation. How do you display 1/139 etc...

     

    (setf step 8)
    (setf den (gen-integer 144 88 step))
    => (144 136 128 120 112 104 96 88)
    
    (loop for i in den
          collect (/ 1 i))
    => (1/144 1/136 1/128 1/120 1/112 1/104 1/96 1/88)

     

    This ratios making no sense in notation, this is why we use tempo changes - rit. and accel.

  3. This style of code is hard to read and considered poor practice. It's advisable to use variables for individual expressions, especially when you're just starting out. Before stating that something isn't working, it's a good idea to study the function carefully and run some tests or experiments.

     

    Good forum etiquette suggests starting a new post if the previous issue has been resolved. Otherwise, we risk having a single, elongated conversation that strays from the original topic indicated by the post title.

  4. I would also highly recommend taking some time to study Common Lisp, particularly its powerful features for list manipulation. Understanding how to effectively handle lists will not only enhance your coding skills but also allow you to take full advantage of what the language has to offer.

  5. It this what you are looking for:

     

    (setf mat '((e f5 g5 a5 s gb5 f5 e e5 f5 g5 s e5 eb5)
                (e d5 e5 f5 s d5 db5 e c5 d5 e5 s c5 b4)
                (e bb4 c5 d5 s b4 bb4 e a4 bb4 c5 s a4 ab4)
                (e g4 a4 bb4 s g4 gb4 e f4 g4 a4 -e)))
          
    (loop for i in '(0 5 -2 3 8 1 6 -1 4 9 2 7)
          collect (pitch-transpose i mat))

     

  6. Each sublist with is own transposition value:

     

    (setf theme-tn (pitch-transpose 
                    '(0 5 -2 3)
                    '((e f5 g5 a5 s gb5 f5 e e5 f5 g5 s e5 eb5)
                      (e d5 e5 f5 s d5 db5 e c5 d5 e5 s c5 b4)
                      (e bb4 c5 d5 s b4 bb4 e a4 bb4 c5 s a4 ab4)
                      (e g4 a4 bb4 s g4 gb4 e f4 g4 a4 -e))))

     

    One transposition value for the entire sequence:

     

    (setf theme-tr1 (pitch-transpose 
                    6
                    '((e f5 g5 a5 s gb5 f5 e e5 f5 g5 s e5 eb5)
                      (e d5 e5 f5 s d5 db5 e c5 d5 e5 s c5 b4)
                      (e bb4 c5 d5 s b4 bb4 e a4 bb4 c5 s a4 ab4)
                      (e g4 a4 bb4 s g4 gb4 e f4 g4 a4 -e))))

     

  7. This example should help:
     

    (setf rh '((-s) (e f4e5 pp -s db5)
               (-s) (-s eb4 pp c4d5 -)
               (-s) (-s c4d5 pp eb4 -)
               (-s) (e db5 pp -s f4e5)
               (-s) (s gb4f5 p a5 -)
               (s d4ab4db5 p bb4 -) (-s a5 p gb4f5)
               (-s) (s b5 f gb4g5 -)
               (s a3bb4 f ab4 -) (s c4d5 f> eb4 -)
               (s db5 f> f4e5 -) (-s)
               (s gb4f5 p a5 d4ab4db5 bb4 -) (-s)
               (-s a5 pp gb4f5) (-s)))
    
    (setf lh '((-s) (-s b3 pp gb3g4 -)
               (-s) (e a2bb3 pp -s ab4)
               (-s) (e ab4 pp -s a2bb3)
               (-s) (-s gb3g4 pp b3 -)
               (-s) (-s e3eb4 p c3)
               (-s ab3d4g4 p db5) (s c3 p e3eb4 pp -)
               (-s) (-s f3e4 f db4)
               (-s eb4 f c4d5) (-s ab4 mp bb3a4)
               (-s g2gb3 mp b3) (-s)
               (-s e3eb4 p c3 ab3d4g4 db5) (-s)
               (s c3 pp e3eb4 -) (-s)))
    
    (setf time-events
          '((1 16 1) (4 16 1) (1 16 1) (4 16 1) (1 16 1)
            (4 16 1) (1 16 1) (4 16 1) (1 16 1) (3 16 3)
            (1 16 1) (3 16 4) (1 16 1) (5 16 1) (1 16 1)
            (3 16 1) (1 16 1)))
    
    (setf tempo-events
          '(("Sehr mäßig" e. 40 16)
            (:rit 40 26 1/64 2) (40 1)
            (:rit 40 26 1/64 3)))
    
    (def-score webern-op.27-1
        (:title "Variationen für Klavier Op.27, I"
         :subtitle "Fragment"
         :composer "Anton Webern"
         :copyright "Copyright © 1937 by Universal Edition"
         :key-signature 'atonal
         :time-signature time-events
         :tempo tempo-events
         :layout (piano-solo-layout 'rhand 'lhand))
      
      (rhand :omn rh :channel 1 :sound 'gm :program 0)
      (lhand :omn lh :channel 2)
      )

     

    with accelerando you do the opposite:
     

    (:accel 60 96 1/64 2)

     

    Example:

     

    (setf tempo
    '(("Mäßig" 60 :length 10/4)
      (:rit 60 40 1/64 2/4)
      (60 2/4)
      (:accel 60 96 1/64 2/4)
      ("heftig" 96 2/4)
      (:rit 96 60 1/64 1/4)
      ("wieder mäßig" 60 4/4)
      (:rit 60 44 1/64 2/4)
      (44 3/4)))

     

     

  8. 3.0.29111

     

    – New:

    • Display Commands List... - Developer shortcuts. You find the commands list window in the 'Help' menu.

     

    – Fixed:

    • Listener - removes selection before doing the evaluation form the editor.
    • snippet - no clef changes (better visualisation of the intervals direction).
    • Navigator - folders will not collapsed when changing Navigator directories (menu).

     

    – Documents:

    • Documents edit.
       

    image.png

     

    Happy coding,

    Janusz

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy