I'm looking for a method/function which changes the velocity only for notes that are repeating.
In other words, if I have a sequence like this:
'(c4 eb4 g4 ab4 ab4 ab4 d4 eb4) I would like to be able to create a crescendo/decrescendo or set a custom velocity for just the Ab notes.
In the past I've customised a Pattern Matching function from Stephane to change the velocity for specific note lengths:
(defun velocity-map-omn (map omn &key (otherwise '-)) (do-verbose ("velocity-map-omn") (let ((plist (disassemble-omn omn))) (setf (getf plist :velocity) (pattern-map map (getf plist :length) :otherwise otherwise :swallow t)) (apply 'make-omn plist)))) And I think this should be very close to what I want, however, I have no idea how to tell OM to process repeating notes only.
Is there anyone who already has a function like this or can steer me in the right direction? Hope this makes sense, any help is very welcome!
i'm a excited beginner with OM!
Just exploring and modifying the turotials.
What would be a good approach to sort the notes which are generated from the snippet below to, say, a scale.
In other words: The outoot below is chromatic. How can i turn it into a scale, eg. d-phrygian)
(setf size 60) (setf vector (gen-sine size 1 '(0.5 0.4 0.3 0.6) :modulation (gen-sine size 1 0.3 :phase 180))) (setf pitchvec (vector-to-pitch '(g1 g6) vector))