Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by AM

  1. if you want to augm/dim the LENGTH of a special technique... you could use that... or extend it... (defun modify-length-of-a-technique (omn-list &key technique (factor 1) (modification 'augmentation)) (flatten (loop for i in (single-events omn-list) when (equal (car (omn :articulation i)) technique) collect (cond ((equal modification 'augmentation) (length-augmentation factor i)) ((equal modification 'diminution) (length-diminution factor i))) else collect i))) (modify-length-of-a-technique '(q d4 mf ponte e fs4 tasto -e. e g4 tasto q gs4 ponte) :technique 'ponte :factor 10 :modification 'augmentation) ;; also 'diminution
  2. a perfect listing, very clear and useful!
  3. ...except that makes you a fun and makes you happy - and that is just as important! added 10 minutes later so the question will be what can be better, which will be more exciting than what deep learning (or traditional algorithms) can produce. very fast then - in my opinion - the production becomes quite simple and well done, but this has nothing to do with art (if you want) - it will be the "imitation of art", also algorithmic tools pushing you in this direction - is it "music" or the simulation of "music"?. but as VON FOERSTER said: "the map is the territory"... counteracting (radical-constructivistic) the phrase "the map is not the territory"...
  4. critical thought about this: I think in the near future this will work through "deep learning". So it is questionable how useful it is to formalize such manual and traditional "activities", such "complex rules systems" in CODE. this question generally arises in areas that focus on imitating and executing existing styles. greetings andré
  5. you are brilliant! will it be part of the "official OM", or should i integrate it in my USER LIBRARY? regards andré
  6. the "STEP-TO"-idea could be used more common... with other parameters...welcome to extend/develop it... for mulidimensional/multiparametrical rnd-walks (first example)? :-) ;;; FUNCTION -> same as step-to-pitch (defun reading-list-by-steps (&key steps values start) (let ((pos (car (position-item start values)))) (append (list (nth pos values)) (loop for i in steps do (setf pos (+ pos i)) when (> pos (length values)) do (setf pos (+ 0 i)) collect (nth pos values))))) ;;; EXAMPLES ;;; rnd-walk all parameters (make-omn :length (reading-list-by-steps :steps (gen-walk 4 :start 1) :values '(1/32 2/32 3/32 4/32 5/32 6/32) :start 3/32) :pitch (reading-list-by-steps :steps (gen-walk 4 :start 2) :values (expand-tonality '(b3 messiaen-mode6)) :start 'ds4) :velocity (reading-list-by-steps :steps (gen-walk 4 :start 1) :values '(pppp ppp pp p mp mf f ff fff ffff) :start 'ppp) :articulation (reading-list-by-steps :steps (gen-walk 4 :start 1) :values '(ponte tasto spicc ord pizz snap) :start 'tasto)) ;;;; separeted examples (reading-list-by-steps :steps (gen-walk 4 :start 1) :values '(pppp ppp pp p mp mf f ff fff ffff) :start 'ppp) ;; => depends on rnd-walk values (reading-list-by-steps :steps '(1 1 -1 2 2 -1 1) :values '(a b c d e f g) :start 'b) ;; => (b c d c e g f g) (reading-list-by-steps :steps '(1 1 -1 2 2 -1 1) :values '(1/32 2/32 3/32 4/32 5/32 6/32) :start 3/32) ;; => (3/32 1/8 5/32 1/8 3/16 3/32 1/16 3/32) (reading-list-by-steps :steps '(1 1 -1 2 -1) :values '(ponte tasto spicc ord pizz snap) :start 'tasto) ;; => (tasto spicc ord spicc pizz ord)
  7. is it also possible to start at a specific pitch? (tonality-step '(c4 d4 e4 g4 a4 f4) '(1 1 -1 2 2 -1) :start 'e4)
  8. extended idea: would be nice to do it with chords => instead of a scale, a sequence with chords... thanx a lot for such a quick developing/implementation!!
  9. here is a little "sketched" function STEP-TO-PITCH , perhaps OM could further develop the function... ;;; FUNCTION (defun step-to-pitch (&key steps pitches start) (let ((pos (car (position-item start pitches)))) (append (list (nth pos pitches)) (loop for i in steps ;; setting pos by add the step to pos do (setf pos (+ pos i)) ;; when pitch-range to small then reset to lowest pitch+step ;; could be a more intelligent solution when (> pos (length pitches)) do (setf pos (+ 0 i)) collect (nth pos pitches))))) ;;; EXAMPLES (step-to-pitch :steps '(1 1 -1 2 2 -1) :pitches '(c4 d4 e4 f4 g4 a4) :start 'c4) ;; => (c4 d4 e4 d4 f4 a4 g4) (step-to-pitch :steps '(1 1 -1 2 2 -1) :pitches (expand-tonality '(c4 chromatic)) :start 'c4) ;; => (c4 cs4 d4 cs4 ds4 f4 e4) (step-to-pitch :steps '(1 1 -1 2 2 -1 5) :pitches (expand-tonality '(c4 messiaen-mode6)) :start 'c4) ;; => (c4 d4 e4 d4 f4 gs4 fs4 gs4)
  10. STEP-TO-PITCH - function ...perhaps OM could implement such a STEP-TO-PITCH function (in a more professional programming way)? ...in that way it's simple to map any/same GESTALT(S) on any/different (pitch-)MEDIAS (like pitchfields/spectral/whatelse). ...would be the shortest way to "project" (certainly in varèse-way) for example ALL MY DUCKS to whole-tone-/minor/messiane-x or on a inclined plane "pseudo-code" for this non-sense-example: -> (setf intervals (pitch-to-interval pitches-all-my-ducks)) -> (step-to-pitch intervals :tonality 'messiaen5) added 3 minutes later @stephane but - as i know - with tonality-map there sometimes "strange results" because it don't works by steps... -> look at: (tonality-map '(major) '(c4 cs4 d4 ds4 e4 f4 fs4 g4 gs4 a4 as4 b4)) => (c4 c4 d4 d4 e4 f4 f4 g4 a4 a4 a4 b4) the GESTALT-transformation makes more sense by this STEP-concept
  11. this is probably a misunderstanding... intervals in a sense of STEPS, not as second/third/... as steps in a predefined/organized pitch/frequency-space... ;;; like that (defun interval-projection-on-pitchfield (&key pitchfield intervals (base 0)) (let ((integers (pitch-to-integer (interval-to-pitch intervals))) (base-0-integers) (centering) (pos)) (setq base-0-integers (loop for i in integers collect (+ (abs (find-min integers)) i))) (setq centering (if (evenp (find-max base-0-integers)) (/ (find-max base-0-integers) 2) (/ (1+ (find-max base-0-integers)) 2))) (loop for i in base-0-integers do (setq pos (+ i (* -1 centering) base)) when (< pos 0) do (setq pos 0) when (> pos (1- (length pitchfield))) do (setq pos (1- (length pitchfield))) collect (nth pos pitchfield)))) (interval-projection-on-pitchfield :pitchfield (expand-tonality '(c3 chromatic)) :intervals '(1 -1 2 -1 -1 -1) :base 4) ;;; => (ds3 e3 ds3 f3 e3 ds3 d3) (interval-projection-on-pitchfield :pitchfield (expand-tonality '(c3 whole-tone)) :intervals '(1 -1 2 -1 -1 -1) :base 4) ;;; => (fs3 gs3 fs3 as3 gs3 fs3 e3) (interval-projection-on-pitchfield :pitchfield (expand-tonality '(c3 major)) :intervals '(1 -1 2 -1 -1 -1) :base 4) ;;; => (f3 g3 f3 a3 g3 f3 e3) (interval-projection-on-pitchfield :pitchfield (expand-tonality '(c3 chromatic-permuted-diatonic-dorian-mixed)) :intervals '(1 -1 2 -1 -1 -1) :base 4) ;;; => (e3 f3 e3 g3 f3 e3 d3)
  12. i'm not sure -> but interval-to-pitch works on "chromatic" only!? and not on other TONALITIES...?
  13. short question... is there a function in OM to map an interval-list directly on a TONALITY or a SIEVE? in a way that the intervals are like steps? ..i coded that alreday for myself, but perhaps there is an OM-solution for such things? nonsense-example: (setf intervallist '(1 1 0 -2)) (setf pitches '(c4 e4 g4 b4)) => :start 'c4 => result: '(c4 e4 g4 g4 c4) thanx andré
  14. my wish for SINGLE-EVENTS would be to add user-defined "informations" to an event -> like voice-number, oder instrument, or....
  15. an other solution... same result... greetings andré ;;; by using SINGLE-EVENTS -> my preferred tool (defun alt-add-3rd-quarter (omn-list) (loop for i in (single-events omn-list) when (equal (first i) 'q) append (omn-replace :pitch (chord-interval-add '(4) (list (second i))) i) else append i)) (alt-add-3rd-quarter '(e c4 p d4 q e4 f stacc e f4 p a4 q g4 f stacc)) => (e c4 p e d4 p q e4gs4 f stacc e f4 p e a4 p q g4b4 f stacc)
  16. greetings andré (pitch-to-interval (expand-tonality '(c5 messiaen-mode4))) ; => (1 1 3 1 1 1 3) (pitch-to-interval (expand-tonality '(c5 messiaen-mode5))) ; => (1 1 3 1 1 1 3) -> should be (1 4 1 1 4 1)
  17. have a look -> missing slur/tie (i don't kno the correct expression) between bar1 and bar2... greetings andré p.s. i will post the troubles/bugs here in "SOURCE CODE", okay? (setf mat1-pitches '(a4 g4 eb4 f4 a4 b4)) (setf mat1-durations '(-7 23 -7 5 11 7 -5 11 17)) (setf mat1-lengths (gen-length mat1-durations 1/20)) (setf omn (make-omn :pitch mat1-pitches :length mat1-lengths :velocity '(p)))
  18. for me also... would be nice "to split screens" (composer, score etc...) to work/see it on different windows/screens regards andré
  19. AM


    i see, it was a bad example... but perhaps it will be possible to display grace notes in a tuplets in the future?
  20. AM


    i see, it's okay for THIS case! but for other rnd-generated-rhythm-structures it don't work... ...to insert something like (app - gs4) ... in cases like '(w_5h. f5 pppp ord (app - gs4) 5q g5 ppp ord) the (app - ...)-solution also don't work properly but thanx andré
  21. dear janusz this XML-layout is strange - when i try to inserting appoggiaturas or acciaccaturas in sequences with tuplets example: '(5q fs3 pppp ord -5d.q 5q d4 ppp ord -q 5h g4 ff ord (app e e4 fs4 gs4 f4) 5q e4 ppp ord -5q 5q b4 ff ord 5q a4 ff ord -5d.. 5q fs4 ppp ord (app e e4 fs4 gs4 f4) 5q e4 ppp ord -5ddq 5q fs4 ppp ord -5w.. 5q gs4 ppp ord -5h 5q f4 ff ord 5q eb4 ff ord -5h. 5q g4 ff ord -5w -5q 5w e5 pppp ord) also like that with 1/12 etc... thanx andré
  • Create New...