Jump to content

Recommended Posts

Posted

Here's a small function from my toolbox i use very often for adding articulation on already generated OMN material.

 

Also useful for adding legato slurs.

 

Link to video example:

 

 

;;; =============================================
;;; ARTICULATION-MAP-OMN
;;; AJOUTE DES ARTICULATIONS SUR DES LISTES OMN
;;; BASÉES SUR DU PATTERN MATCHING.
;;; =============================================

(defun articulation-map-omn (map omn &key (otherwise '-))
  (do-verbose
      ("articulation-map-omn")
    (let ((plist (disassemble-omn omn)))
      (setf (getf plist :articulation)
            (pattern-map map (getf plist :length) :otherwise otherwise :swallow t))
      (apply 'make-omn plist))))

#| USAGE
(setf mat '((q c4 p d4 e e4 f4 s g4 f a4 g4 f4 q e4)
            (e d4 mp c4 s d4 e4 f4 e4 q d4 e c4 b3)
            (h a3 f -h)))

(setf prules '(((s s s) (leg leg leg))
               ((s s) (leg leg))
               ((s e) (- -))
               ((s q) (- stacc))
               ((q) (stacc))
               ((e) (-))))

(setf out (articulation-map-omn prules mat))
|#

SB.

Join the conversation

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

Guest
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.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy