Search the Community
Showing results for tags 'articulation'.
Found 7 results
OLD VSL Gig Files articulations
JulioHerrlein posted a topic in Library SetupDear Friends, Very basic question: I use some old VSL sample .gig files with gplayer. I really like this libraries and the way it sounds. The combination patches alternate sounds via keyswitches in the lower range of keyboard (or the upper range in some instruments). Something like: C normal sound C# pizz D marcato etc Can I use this keyswitches in the OMN lingo, without having to send the midi note itself to activate the keyswitch, something like: (marcato e c4 d4 s legato fs4 g4 cs5 eb5 ) Opusmodus will send the keyswitches as a hidden midi note in the expression ? All the best, Julio
EAIP posted a topic in Support & TroubleshootingI've been away from OM for a while, and now I am preparing some examples for teaching. For some reason this simple example won't playback staccato properly (Snippet > Audition and Notation). What am I missing here? The notation shows the staccato markings. (make-omn :length (gen-repeat 20 'q) :pitch (integer-to-pitch '(0 2 5 7 10)) :velocity '(mp) :attribute '(- - stacc) :span :length )
OMN articulation Customization
JulioHerrlein posted a topic in OMN LingoDear Friends, In a previous post (link below) there is a great description on how to configure old vsl gig versions. There is a place where you can configure the relation between the OMN articulation command with the correspondent keyswitch. QUESTIONS: 1) Let´s say I invent a new articulation in a custom sample library, for example "nail-scrape" for indicating the violin player to scrape the string with his/her nail. In this case, I need this OMN expression to: a) apear in the score notation and b) change the corresponding keyswitch. 2) In the case of the OMN expression "long", I configured it to change to the crescendo/diminuendo long samples in VSL, but this does not appear in the notation. This is great, because I don´t need it to be specified in the notation, since the long note values are enough, I just need the keyswitch. So there is the two scenarios: 1) CASE 1: OMN change keyswitch AND appear on the score 1) CASE 1: OMN change keyswitch AND DO NOT appear on the score The articulation expression syntax is a kind of yellow/brown word in the OMN code. Only articulation related words appear as an assignable articulation for this kind of use. FINALLY, THE GREAT QUESTION: How can I create my CUSTOM articulation OMN expression, like the "nail-scrape" example, so that this articulation can be customized also as appearing or not appearing in the score ? This can be really useful for expanded techniques in special scores with special sample libraries or even with scores based on customized samples, or new instruments. All the best ! Julio Herrlein :group omn stacc (:key c1 :key c1 cc1 40) stacs (:key c1 :key c1 cc1 25) ord (:key eb1 cc1 5) portato (:key cs1 cc1 5) sfz (:key e1 :key e1 cc1 25) cres (:key f1 :key f1 cc1 25) marc (:key e1 cc1 64) spicc (:key c1 cc1 120) leg (:key d1 :key d1 cc1 40) tasto (:key cs2 :key cs1 cc1 40) leg+tasto (:key cs2 :key cs1 cc1 40) tasto+leg (:key cs2 :key cs1 cc1 40)
Resetting Articulations and Dynamics to none
JulioHerrlein posted a topic in OMN LingoHello, Simple question: 1) How to specify in the articulation list for no displaying any articulation in the note without using "ord" ? 2) Is there some reset to "normal" articulation (without symbols) ? Best, Julio
AM posted a topic in User Extensions Source Codei didn't find a OM-library-solution for this kind of thing, so i coded it... if you want to REPLACE the articulation of some specific pitches. perhaps all 'd4 sould be PONTE... you could use this. it was necessary to code it like that, because otherwise you get in trouble with the empty parameter-slots... should work fine greetings andré ;;; SUBFUNCTIONS (defun eliminate-nil (alist) (loop for i in alist when (not (null i)) collect i)) (defun complete-event-slots (omn-list) (let ((omn-art (omn :articulation (single-events (flatten omn-list))))) (single-events (omn-replace :articulation (flatten (eliminate-nil (loop for i in omn-art for cnt = 0 then (incf cnt) when (equal (car i) '-) collect (nth (1- cnt) omn-art) else collect i))) omn-list)))) ;(complete-event-slots '(5q a4 ff pizz 5q e3 -e 5q a4 f)) ;;; MAIN FUNCTION (defun replace-articulation-of-a-pitch (omn-list &key pitches articulation (chance 1.0)) (loop for i in (complete-event-slots (flatten omn-list)) when (and (member (car (omn :pitch i)) pitches) (prob? chance)) append (omn-component-replace i (list articulation)) else append i)) ;;; EXAMPLE (replace-articulation-of-a-pitch '(5q a4 ff pizz 5q e3 p -q 5q d4 pizz) :pitches '(a4 d4) :articulation 'ponte :chance 1.0) -> (5q a4 ff ponte 5q e3 p pizz -q 5q d4 p ponte)
Sometimes we generate some flow of pitch and lengths that we assemble later into OMN material, It can be tiedous to add manually the articulations particularly the "leg" omn instruction, and it can sometimes be useful to have a technique for automated implementation of part of these task, who it will be always possible to edit more precisely thereafter. Below a possible technique based on the recognition and association of patterns of lengths values with articulation instructions. At first, we define a stream of lengths for our phrase: (setf len '(1/8 1/8 1/16 1/16 -1/16 1/8 1/8 1/8 1/8)) and we generate with the help of the function substitute-motif some articulations based on motivic lengths patterns. The substitute-motif will search for motives and will replace this motives by other (in that case, replace by motives of articulation instructions) If the function doesn't find some corresponding motives, it will use the :otherwise clause. (setf artic (substitute-motif '((1/8 1/8)(1/16)) '((leg -)(stacc)) len :otherwise '-)) ;=> (leg - stacc stacc - leg - leg -) We have to process this output now with the function gen-swallow for "swallow" the item corresponding to rest values. (setf artic.swallow (gen-swallow len artic)) => (leg - stacc stacc leg - leg -) Finally, we assemble all the parameters into an OMN stream with the make-omn function: (setf omn (make-omn :pitch '((c4 d4 e4 f4 g4)) :length len :velocity '((f)) :articulation artic.swallow)) Here's a complementary score example: ;;; Length defintion based on euclidean algorithm (setf basery (euclidean-rhythm (rnd-sample 16 '(16 18 24)) 4 16 '1/16 :type 2)) ;;; Apply the search and substitute process on each of the sublists ;;; with mapcar function (setf artic (mapcar (lambda(x) (substitute-motif '((1/16 1/16 1/16 1/16)(1/16 1/16 1/16)(1/16 1/16)(1/8 1/8) (1/4)(1/8) ) ;old '((leg leg leg -)(- - -)(leg -)(leg -) (stacc)(stacc) ) ;new x :otherwise '- )) basery)) ;;;Cleaning with gen-swallow (setf artic.swa (gen-swallow basery artic)) ;;; Pitch generation based on white noise (setf pch (vector-to-pitch '(g3 c5) (gen-white-noise 64))) ;;; Parameters assembly (setf p1.omn (make-omn :pitch pch :length basery :velocity '((f)) :articulation artic.swa )) ;;; Get the times signatures (setf ts (get-time-signature p1.omn)) ;;; Score definition (def-score solo ( :title "solo" :composer "S.Boussuge" :key-signature 'chromatic :time-signature ts :tempo 108 :layout (violin-layout 'violon) ) (violon :omn p1.omn :channel 1 :sound 'gm :program 'violin) ) SB.
Articulations - post processing
Stephane Boussuge posted a topic in OMN LingoHi, often when we generate articulation and particularly legato articulation with functions like LENGTH-MAP, the legato slur could finished on marc or stacc notes like that: a possible way for improve this could be to use a post processing of LENGTH-MAP outputs with a MOTIF-MAP function: Attached to this post, a work in progress, Flux for ensemble, as an example of a possible use "in context" of this technique. Have a good day. SB. Flux-Extrait.pdf flux1.mp3 Flux1-02.opmo