Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by AM

  1. i know i'm not a programmer, but it probably makes sense to be able to enter both variants/formats for some functions, but not for others...
  2. you have to put the bar-numbers into a list... i makes sense in my opinion - perhaps you want to "find" more then one bar... (find-bar '(1 2) mat) => ((c4 db4 ab4 f4 g4 bb4) (a4 eb4 b4 e4 d4 gb4))
  3. dear all here's a function (revised, should work correct now) to work with rotations - based on the work of karel goeyvaerts (defun goeyvaerts-rotation* (&key pitches static-pitches generations goeyvaerts-transpose-interval (direction 'up) low-border high-border correction-interval) (let ((pitches (filter-remove (pitch-to-midi static-pitches)
  4. violà... now it works fine - OPMO could integrate it.... it's easier than i thought: a single index-series is read from the r-i and only this one is used! similar to LACHEMANN, only he determines this index-series himself (for that i coded this simple row-permutation-function)... greetings a. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; SUB (defun row-permutation (n row rules &key (one-based nil)) (let* ((rules (if (equal one-based t) (mapcar '1- rules)
  5. row-permutation (with rule) for n-generations (defun row-permutation (n row rules &key (one-based nil)) (let ((rules (if (equal one-based t) (mapcar '1- rules) rules))) (loop repeat n collect (setf row (position-filter rules row))))) (row-permutation 5 '(a4 c5 cs5 g4 eb5 gs4 e5 d5 f4 b4 bb4 fs4) '(0 1 6 5 2 3 7 8 11 9 4 10)) => ((a4 gs4 eb5 c5 cs5 e5 d5 bb4 f4 g4 b4) (a4 e5 cs5 gs4 eb5 d5 bb4 b4 f4 c5 g4) (a4 d5 eb5 e5 cs5 bb4 b4 g4 f4 gs4 c5) (a4 bb4 cs5 d5 eb5 b4 g4 c5 f4 e5 gs4) (a4 b4 eb5 bb4 cs5 g4 c5 gs4 f4 d5 e5)) (row-perm
  6. thanks, julio... could you have a quick look to the function? and to the article from didier.... perhaps you see my mistake (or the mistake in the article) subito ? barraqué described the mechanism and it seems easy to code it. but where is the mistake with more then 3 gens? perhaps didier has an idea?
  7. thanks, julio...!!! if i got it right, it works like this: 1. take a basic row 2. the r-i of the basic row 3. read the positions of all pitches of the r-i within the basic row 4. apply this positionlist to r-i => outout is : ordre 0 => basic row ordre 1 => r-i ordre 2 => proliferante 1 = more or less ONE GEN of production ... so the question could be: is ordre 1 the new basic row, or proliferante 1 ... to produce the next GEN? here is some code to check it...
  8. i tried to program it briefly for several generations, but I didn't quite get it - something i do not understand.... so i got wrong outputs after 3 generations... maybe OPMO would like to CODE this? this is my new version... but when i have i look to the barraqué-examples (order 0 - x)... there is a different output after 3 gens... Ordre 0: C Ab G Db E D Bb Eb B F Gb A (c5 ab4 g4 db5 e4 d4 bb4 eb4 b4 f4 fs4 a4) Ordre 1: A C Db G Eb Ab E D F B Bb Gb (a4 c5 cs5 g4 eb5 gs4 e5 d5 f4 b4 bb4 fs4) Ordre 2: Gb A G Db D C Eb Ab B F E Bb (fs4 a4 g
  9. thank you for the LINKS, i will read the papers! greetings andré
  10. thanx, dear julio. the "serialists" often have suitable concepts for formalization greetings andré
  11. one other interesting approach could be, to use l-systems on a "higher level"... (a lot of work to this is already made in OPENMUSIC) a sequence like '(a b a c a d a a b a e ...) ;; as a "nonsense-l-system-example-seq" could be used as a seq for FUNCTIONS... means: an input/omn-seq would be transformed by an l-system-function-sequence, for example... a = rotate pitches and lengths b = invert pitches c = sample-seq pitches d = change velocities so you could work with more complex input-gestalts... and when you are doing this on a seco
  12. Das Wachstumprinzip von L-Systemen in der Musik von Hanspeter Kyburz - PDF Kostenfreier Download DOCPLAYER.ORG Hochschule für Musik Hanns Eisler Abteilung D Charlottenstr Berlin Masterarbeit Das Wachstumprinzip von L-Systemen in der Musik von Hanspeter Kyburz Eres Holz 30. April 2012 Inhaltsverzeichnis
  13. here a function... to barraqué's techniques (defun serie-proliferantes (row) (let* ((ri_row (pitch-invert (gen-retrograde row))) (row (loop for z in (loop for x in (pitch-to-midi ri_row) collect (or (position x (pitch-to-midi row)) (position (- x 12) (pitch-to-midi row)) (position (+ x 12) (pitch-to-midi row)))) collect (nth z ri_row)))) row
  14. that's the way, precisely! thanks, dear janusz! (but seems to be too complex for notation...) (gen-length-constant '(2 1 3) (gen-length-constant '(2 1 3) 1)) => ((1/9 1/18 1/6) (1/18 1/36 1/12) (1/6 1/12 1/4)) "Nested tuplets would solve the problem of notation." I would feel like in heaven i see the approach for "rhythmic-level", it's different...
  15. hm, i think it's not, or i'm fundamentally wrong.... => (e 3e 3q_3q 3e 3e 3q 3h 3q q) when you have a look to the first three values (first 2 1 3 -figure): '(e 3e 3q_3q) => (1/8 1/24 1/6) => 3/24 1/24 4/24 => 3 1 4 ...so the proportions have changed...?
  16. great new functions, thanks!! ....but a little question EXAMPLE 1: (rhythmic-level '(0 1) '(2 1 3) 3) => LEVEL 1 correct EXAMPLE 2: (rhythmic-level '(0 1) '(2 1 3) 1) => LEVEL 1 incorrect is it possible to do this "correct" (values not rounded)? mathematically not a big thing... but perhaps with notation by musicXML? "tuplet in a tuplet" - in contemporary music it' very common to write such things thanx andré
  17. when you do BOULEZ, you should also do GOEYVAERTS... found some old function...
  18. perhaps some (old) hocket-function... ?
  19. for my current project i have to CONVERT/MAP pitches/lengths/velocity or MIDI into a binary sequence. so i coded this simple FUNCTION... feel free to use/adapt.... greetings andré ;; SUB (defun fill-to-x-bit (listseq &key (bitlength 7)) (loop for i in listseq when (< (length i) bitlength) collect (append (gen-repeat (- bitlength (length i)) 0) i) else collect i)) ;; MAIN (defun convert-to-binary (alist &key (parameter 'pitch) (length-resolution 127) (velocity-resolution 12) (pitch-resolution ni
  20. i'm very interested in!! thx to you JULIO!!! strukturnetz is not a piece, it's "a kind of technique" he used you could read about it here: https://www.amazon.de/Differenzen-Poststrukturalistische-Beispiel-Lachenmann-Ferneyhough/dp/3931264157 listen here... the STRUKTURNETZ is also "notated" in the score (on top)
  21. like that? should work... it "loops" x-times (depends on length of seeds-list) and collect the rhythms... (setf seeds (vector-round 1 100 (gen-white-noise 8 :seed 13))) (setf rhythm (loop for i in seeds collect (euclidean-rhythm 16 4 16 's :type 2 :seed i))) perhaps there is an OPMO-solution, this is LISP
  22. would be interesting. it has quite some (distant?) aspects of LACHENMANN's "strukturnetz", and could be nice to work in such an direction...
  23. dear ole i have no "preseted" soundsets for my work... in my current "sketch" i'm using/something something like this.. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (add-text-attributes '(e-bow "e-bow") '(harm-I "harm-1") '(harm-II "harm-II") '(harm-III "harm-III") '(harm-IV "harm-IV") '(harm-V "harm-V") '(harm-VI "harm-VI")) (def-sound-set gm-guitar :programs (:group guitar ord 0 bartok-pizz 1 tap 2 ponte 3 harm-I 4 harm-II
  24. or... (loop for x from 7 downto 1 for y from 1 to 7 collect (list x 3 y))
  • Create New...

Important Information

Terms of Use Privacy Policy