![](https://opusmodus.com/forums/uploads/set_resources_33/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
rcadiz
Members-
Posts
25 -
Joined
-
Last visited
Contact Methods
- Website URL
Profile Information
-
Gender
Male
-
Location
Chile
-
Thanks Stephane! Your function is exactly what I need but it does not work in all cases and I am not sure why. I usually write materials this way, in a single list (setf mat '(h eb4 gs4)) (gen-ornament '((acc e c4 fs4)) mat :val '(h)) Your code does not work because it expects a list inside a list, it says it can't take the car of h. It is better to always write material inside a list? Why? Then I tried this (setf mat '((h eb4 gs4))) (gen-ornament '((acc e c4 fs4)) mat :val '(h)) But the code does not work either, I get this error: nil is illegal as a sequence start index. Then I tried with a longer phrase and it works fine (setf mat '((w d3 s eb3 w e3 s eb3 d f3 -h w fs3))) (gen-ornament '((acc e c4 fs4)) mat :val '(w)) But if I try a much longer material, it works but I can't notate the snipet with cmd-1, I get an error about some 1147 midi value and TIME_SIGNATURE_EVENT (setf mat '((w d3 s eb3 w e3 s eb3 d f3 -h w fs3 s e3 d3 f3 d e3 -h w d3 s fs3 w eb3 s e3 fs3 eb3 d3 f3 d fs3 -h w d3 s f3 w eb3 s e3 d d3 -h w eb3 s e3 f3 fs3 d g3 -h w e4 s f4 w gs3 s fs3 e4 gs3 fs3 f4 d g3 -h w gs3 s f4 w g3 s fs3 d e4 -h w f4 s fs3 e4 g3 d gs3 -h w fs3 s g3 w gs3 s e4 f4 f3 g3 eb4 d fs3 -h w e3 s g3 w fs3 s e3 d eb4 -h w f3 s fs3 eb4 f3 d e3 -h w g3 s eb4 w e3 s g3 f3 fs3 e3 f3 d fs3 -h w g3 s eb4 w a3 s fs4 d g4 -h w f4 s gs3 fs4 f4 d gs3 -h w g4 s a3 w f4 s g4 a3 gs3 fs4 g4 d gs3 -h w fs4 s a3 w f4 s gs3 d a3 -h w f4 s fs4 g4))) (gen-ornament '((acc e c4 fs4)) mat :val '(w)) I need to be able to use cmd-1 to check the output, but I don't understand what the problem is. Any help is much appreciated! Thanks!
-
Hi everyone, I am having a hard time trying to add appoggiaturas to selected length values on an omn sequence. Let's say I want to search for all whole durations and add an appoggiatura before this event. I have been trying these kind of solutions using dictum (setf mat '(w c4 stacc)) (dictum '( (:and w :apply (app e f4)) ) mat) (dictum '( (:and w :apply '(app e f4)) ) mat) (dictum '( (:and w :apply ((app e f4) w)) ) mat) (dictum '( (:and w :apply (app e f4 w)) ) mat) All of these fail. I get some error saying the sequenced-event :type nil :phrase (nil nil) is not of type ?event when accessing slot attribute. I don't think I understand how to use app or acc properly, at least in terms of dictum or patterns. I have also tried with length-map pattern-map with no luck. I have also tried to insert a ttrem between two half notes in an omn sequence for example and I encounter the same kind of errors. How can I search for a sequence of events inside dictum? I know how to use both app and ttrem when writing opusmodus expression manually, but not when replacing or finding patterns I suspect there is some basic issue of the language that I still do not understand. Many thanks for your help.
-
Function to merge two omn sequences with articulations
rcadiz replied to rcadiz's topic in Function Examples
Hi! Thanks for your help. However, I don't want to append two sequences, one after the other. Instead, I would like to merge them vertically, as merge-voices does. But that function, when applied to omn sequences that contain articulations, erases them. That's why I am looking for an alternative. -
update Function to change an event in an omn sequence into a rest
rcadiz replied to rcadiz's topic in Function Examples
Of course, now I understand what I was doing wrong. Thanks a lot for your help! Rodrigo Indeed, great function! Thanks so much! Rodrigo -
update Function to change an event in an omn sequence into a rest
rcadiz replied to rcadiz's topic in Function Examples
I found another case where it does not work, please see below (setf mat2 '(w. f3 p arp q g3 ff stacc+marc w. a3 p arp q c4 ff stacc+marc)) ;; Crashes ;; Error: In a call to length: t (of type boolean) is not of type sequence. (rnd-rest '(1) mat2 :omn t) -
update Function to change an event in an omn sequence into a rest
rcadiz replied to rcadiz's topic in Function Examples
This is great! Thanks! However, I am trying to understand better how to use this function. What I actually don't understand is the significance of the parameter n and why it must be an integer. If I set n to 1 it should erase only one note from the omn sequence, right? This is not what I am seeing. This is an example of what I mean. (setf mat '((5q e2 ff stacc+marc e4 mf e2 ff stacc+marc) (5q fs2 mf d4 fs2) (5q a2 mf c4 a2) (5q b2 mf a3 b2) (5q cs3 mf g3 cs3) (5q c4 mf stacc c4 stacc c4 stacc c4 stacc c4 stacc) (5q b2 mf a3 b2) (5q a2 mf c4 a2) (5q fs2 mf d4 fs2) (5q e2 ff stacc+marc e4 mf e2 ff stacc+marc) (5q f2 mf eb4 f2) (5q g2 mf cs4 g2) (5q bb2 mf bb3 bb2) (5q c3 mf gs3 c3) (5q eb3 mf fs3 eb3) (5q c3 mf gs3 c3) (5q bb2 mf bb3 bb2) (5q g2 mf cs4 g2) (5q f2 mf eb4 f2) (5q eb2 mf fs4 eb2) (5q fs2 mf d4 fs2) (5q b2 mf a3 b2) (5q cs3 mf g3 cs3) (5q a2 mf c4 a2) (5q e2 ff stacc+marc e4 mf e2 ff stacc+marc) (5q g2 mf cs4 g2) (5q c3 mf gs3 c3) (5q c4 mf stacc c4 stacc c4 stacc c4 stacc c4 stacc) (5q g2 mf cs4 g2) (5q eb2 mf fs4 eb2) (5q f2 mf eb4 f2) (5q bb2 mf bb3 bb2) (5q eb3 mf fs3 eb3) (5q bb2 mf bb3 bb2) (5q f2 mf eb4 f2) (5q fs2 mf d4 fs2) (5q b2 mf a3 b2) (5q cs3 mf g3 cs3) (5q a2 mf c4 a2) (5q e2 ff stacc+marc e4 mf e2 ff stacc+marc) (5q b2 mf a3 b2) (5q a2 mf c4 a2) (5q g2 mf cs4 g2) (5q c3 mf gs3 c3) (5q eb2 mf fs4 eb2) (5q bb2 mf bb3 bb2) (5q c4 mf stacc c4 stacc c4 stacc c4 stacc c4 stacc))) ;; Erases a lot of notes (rnd-rest '(1) mat :seed 1) ;; Even more notes (rnd-rest '(2) mat :seed 1) ;; Erases almost all notes (rnd-rest '(3) mat :seed 1) ;; Erases all but three notes (rnd-rest '(4) mat :seed 1) ;; Crashes (rnd-rest '(5) mat :seed 1) ;; Works great! (rnd-rest '(0.1) mat :seed 1) When n is 1, I get many notes erased from the sequence instead of only one. Perhaps this is because the omn expression is not flattened out? However, if that's the case this function should erase one note per each group of 5q, and that's not what I see. When n is 5 the function crashes, I guess that is because the length of each grouping has only 5 notes? Also, I can use decimals without any trouble at all and it works great, exactly what I had in mind. So, how should I interpret these results? Thanks!! -
Hi! Is there a function like merge-voices that would work for omn sequences with articulations? If I merge two sequences with merge-voices containing articulations they are lost in the merging process.
-
Hi Stephane, sorry to insist with this topic, but I could not find any reference to such a function. If I try to invoke this function I get an Undefined operator error. And there is nothing in the documentation. Could you please point me towards any example of the usage of this function? Many thanks!! Rodrigo
-
Thanks for the quick reply! I will look into the pattern-map function. But, with respect to dictum, how can I specify multiple conditions? For example a specific pitch and duration? Something like this? (:any (q c4) :apply stacc) I tried the above and does not work. Also, how could I detect repeated notes in dictum? So, for example, apply this not to any c4, but only to c4s that are repeated. Thanks! Rodrigo