Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by AM

  1. ...technically, such pattern-match-things are - for my opinion - interesting when you write one value after the other (step by step with all paramters parallel), and then check all the time (every gen-cycle) the output on PATTERNS, and when there is a match you can change the gen-rules... data-structure with EVENTS like that... (defstruct event duration pitch velocity rhy reading_rate optional_data) (setf bot-1 (make-event)) ... and in every cycle you could write/GENERATE an EVENT (Excerpt) do (setf bot-1 (make-event :dura
  2. dear rangarajan i think the motif-map-function has a PATTERN-MATCH inside, but it "replaces the MATCH", (like in a contextual-rewrite), but perhaps i don't use the name/expression "pattern-match" in a wright/correct way... i'm more composer/musician then programmer :-) here's a very basic example for am SIMPLE/PURE PATTERN MATCH: a rnd-gen-value-list (to show how you could use it), with a PATTERN-MATCH-prog who scans it. the next value - after a complete match - will be changed into a rest... but you also could start a sub-function then who do what ever you want...? (w
  3. short question (i didn't read the whole documentation)... when i use/work with pattern-matching, i've done it with WILDCARDS ... is there any aspect of that in the motif-map function? or is a "ordinary pattern-matching-function" in OM? like that: pattern to search/replace '(0 1 ? 3) this is musically interesting, because it works with "fuzziness".... regards, andré
  4. thanx for this new functions!! motif-map is perfect to use for "rewrite-technques" are the tuplet/musicxml-bugs fixed now? regards, andré
  5. okay, i understand... i'm "not working" with '(q e q...), i'm always working with NUMBERS (with pitches too). it's easier to write/handle the values, easier to do my own specific code (and multipy, add... whatever) - only on "def-score" i'm changing the representation by generating OMN... regards, andré
  6. you could do it like this on "pure-LISP-level" (setf lengths '(1/4 2/8 3/8 4/4)) (loop for i in lengths with repl = (random (length lengths)) for cnt = 0 then (incf cnt) when (= cnt repl) collect (* i -1) else collect i) best wishes andré
  7. short question... when will the "tuplet-bugs" be fixed...it's not possible for me to work with this bug... thanx a lot andré
  8. it don't works!? no score-display > Error: OMN Parse Error: fail > While executing: omn-to-ast, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options.
  9. perhaps with a non-overlapping structure of the voices? and perhaps the tuplet-5/tuplet-3 will be shown as tuplet-15...
  10. ok, thanx! i see my "wishes" are a little bit special - but perhaps OPUSMODUS can do that (without ties... or...) andré example.sib
  11. hi all i would like to MERGE/FIT the following 3-layer-voices(-EXAMPLE) into a ONE-layer-voice (with complex rhythms) - is it possible in OPUSMODUS? thanx for help! andré EXAMPLE: (setf voices (merge-voices (make-omn :length (gen-length '(1 2 3 4 5 6 7 8) 1/20) :pitch '(c4) :velocity '(pppp ppp pp p)) (make-omn :length (gen-length '(1 2 3 4 5 6 7 8) 1/8) :pitch '(c5)
  12. more informations: bug (with the 1/20) only when i start with a pitch. when the first value is a rest everthing seems to be okay!
  13. interesting bug: have a look at the 1/20-layer (c6) -> midi sounds correct (!), notation is wrong ;;;;;;;;;;;;;;;;;;;; (setf duration1 '(8 5 3 2 3 5 8)) (setf duration2 '(8 5 3 2 3 5 8)) (setf duration3 '(8 5 3 2 3 5 8)) (setf voices (merge-voices (make-omn :length (gen-length duration1 1/20) :pitch '(c6)) (make-omn :length (gen-length duration2 1/32) :pitch '(b4)) (make-omn :length(gen-length duration3 1/8)
  14. thanx, but midi don't like such VALUES :-( - so it works only for notation (or sibelius/finale)... for the future it would be nice for my work (and perhaps interesting for other composers), when the time/rhythm-things could be more flexible - i think the biggest bounderies in opusmodus are the time/rhythm-things and it's notation (paper/pencil is the most flexible way, and i don't want to be a limited by software). if you work really "experimental" you want to map rhythm-values in a complexer way... for me it would be great and very nice, when it would be possible to n
  15. a solution: perhaps it's interesting for anyone (or as an example for OPMUSMODUS-implementation) - a simple function (programmed by a friend and myself) - not very smart but it (should) work(s) :-) greetings a. (defun time-sign-changes (durations rhys &key (complex-bars 'nil)) (if (equal complex-bars 'nil) (loop for i in durations for j in rhys with sum = 0 with last-j = (first durations) when (and (/= j last-j) (/= sum 0)) collect (list (numerator sum) (denominator sum) 1) into bag and do (setq sum 0) do (setq
  16. thanx for the anwser... first example: it's possible to do this, i can realize with "special-bars" like 2/3 or 5/20 - by a little (self-made) lisp-function - so it works...
  17. seems to be a bug... evaluate this: (make-omn :pitch '(c5 c3 c2 c3 c4) :length '(-2/12 2/12 -1/12 6/12 -1/12 3/12 1/12) :velocity '(mf)) after the 6/12 the next value -1/12 is shown as -1/8 in the score score
  18. when i evaluate this: (make-omn :pitch '(c5) :length '(3/12 -1/12 4/12 -1/20 3/20 1/20) :velocity '(mf)) the result is wrong (look at (3/12 -1/12 4/12).... but i would like to notate something like valeur ajoutée isn't it possible? thanx a.
  19. what's new/different in Opusmodus 1.1.18273 thanx a.
  20. thanx, that's the way it works a.
  21. little lisp-problem/question with &optionel / &key... here are two test-programs to explore keyword and optional paramters this test-program works (defun test1 (liste add &key (add-on/off)) (loop for i in liste when (equal add-on/off 'on) collect (+ i add) else collect i)) (test1 '(1 2 3 4 5) 100 :add-on/off 'on) this version with &optional don't work... why? (defun test2 (liste add &optional (x 10) &key (add-on/off)) (loop for i in liste w
  22. i will write a little function and post it at the forum later.
  23. yes, that's the way it will works... only one little "problem"... the pitch will be always different... so the search-pattern should be something like '(e ?) -> to '((acc ?) -> pitch sould be overtaken to (acc ?), i only want to replace the length-val to an acc..
  24. simple question, perhaps someone could help me. i like to replace some ordinary notes (example) with an "acciaccatura"? example: from... '((e c6 q. ab5 3e g5 f5 e5 q f5 -)) to... '((acc c6) q. ab5 3e g5 f5 e5 q f5 -) ; = replace e c6 with (acc c6) i think, its not complicated but i didn't found the OMN-solution. thanx for your help!! andré
  • Create New...

Important Information

Terms of Use Privacy Policy