Jump to content

AM

Members
  • Content Count

    598
  • Joined

  • Last visited

Everything posted by AM

  1. here is a sketch for an alternative "binary-(or element-)layer-FUNCTION (defun element-layer (lists &key (rnd nil)) (let ((lists (if (null rnd) lists (rnd-order lists :list t)))) (car (last (loop for x in (rest lists) with list = (car lists) collect (setf list (loop for i in list with cnt = 0 when (equal i 0) collect (nth cnt x) and do (incf cnt) else collect i)))))))
  2. testing videoplayer in OPMO.mov whitenoise.mov
  3. you want to map some integers (in your case pc..) to attributes? like that? (position-filter '(0 1 2 3 4 5) '(pizz arco ponte molto-ponte stacc stacc+pizz ten+arco ten+molto-ponte)) => (pizz arco ponte molto-ponte stacc stacc+pizz) (position-filter (pcs '6-Z10) '(pizz arco ponte molto-ponte stacc stacc+pizz ten+arco ten+molto-ponte)) => (pizz arco molto-ponte stacc stacc+pizz ten+molto-ponte) or in pure CCL (loop for i in '(0 1 2 3 4 5) with attr-list = '(pizz arco ponte molto-ponte stacc stacc+pizz ten+arco ten+molto-ponte) collect (nth i attr-list)) => (piz
  4. i've made different user folders... named: user editing user pattern matching .... ...or you could put all in the same... (i realized for my work, that most of the time i'm using a "coded function" only for a specific project/work. so i stopped it to put all special functions into my user library. now, i have the functions only in my project workspace...)
  5. in german... https://www.amazon.de/Programmieren-COMMON-LISP-Otto-Mayer/dp/3860257102 (but without LOOP) https://www.tutorialspoint.com/lisp/index.htm https://lisptips.com https://www.youtube.com/channel/UCMV8p6Lb-bd6UZtTc_QD4zA
  6. you're welcome!! i think for specific solutions it helps a lot to learn some LISP-basics (loops/conditionals/car/cons/...), then you have the possibility to make your own additional functions/libraries in OPMO. and OPMO is really great for such things!! greetings andré
  7. like that..?... some code... greetings andré (defun replace-velocities-in-a-seq (omn-list &key pitch velocity-list) (flatten (loop with cnt = 0 for i in (single-events omn-list) when (equal (cadr i) pitch) collect (omn-replace :velocity (nth cnt velocity-list) i) and do (incf cnt) else collect i when (> cnt (length velocity-list)) do (setf cnt 0)))) (replace-velocities-in-a-seq '(e c4 ppppp d4 d4 e4 f4 d4 d4 g4 b4 d4 d4 d4 d4) :pitch 'd4 :velocity-list
  8. okay, then it seems to be a AUDULUS- or MOD-SYNTH-"problem". (audulus is only for simulation, real mod-synth for live) thanks!
  9. dear janusz at the moment i'm working with AUDULUS 3 and OPMO, work's fine. but there are some problems with the articulation. is it possible that in ord. there is a little "overlapping" between two notes? in this case AUDULUS don't "recognize" a change of velocity etc... with stacc it works fine (but with a gap). is there a "non-overlapping"-articulation with almost no gap between the notes? thanks andré
  10. (setf scale '(c4 d4 e4 f4 g4 a4)) (setf scale (omn-replace :length 'e scale)) ;; or (make-omn :pitch '(c4 d4 e4 f4 g4 a4) :length '(e q e e s t))
  11. you could use LENGTH-MODIFY "LENGTH-MODIFY will modify a series of lengths by adding, subtracting, multiplying or dividing them with a list of duration values. If the count argument is not given to LENGTH-MODIFY then the count is chosen at random."
  12. really interesting, janusz!! great!!! i will like DENSITY
  13. AM

    maxmsp and lisp?

    for my needs it's not necessary to use opusmodus in MAX. for me it's just easier to code LISP then in other languages (i need no library) i will not do algorithmic comp... there, i will simply manage my "real-time/virtual-conducting/modular-form THING" from the POLYTEMPO-NETWORK in ONE language (lisp)... (i also found a solution for me without MAX, lisp only. a bit steam-punky, but works will be my next ensemble piece) thanx to you! andré
  14. AM

    maxmsp and lisp?

    i received the following message from julien vincenot for maxmsp+lisp greetings andré
  15. it could work like this... because of the RANGE of the "chromatic mapping of your gen-sin", you have to set :root d3, otherwise you will get pitches like "a-1", which is not possible. so you have to shift your root to d3. (tonality-map '(phrygian :root d3) pitchvec) i never used <tonality-map> before, i just read the documentation of the function - so it's quiet simple greetings andré
  16. you could do it like this, check the function TONALITY-MAP (pitch-transpose 2 (tonality-map '(phrygian :map step) pitchvec)) but mapping on (other) tonalities could be musically a bit tricky - perhaps you have to "eliminate some pitch repetitions" (has to do with quantification), or sometimes you have some troubles with the ambitus (that's the reason why i added <pitch-transpose>)... but perhaps there are some other solutions...? greetings andré
  17. a speculation... example 1: because the SUM is 0!! so it will never go up to 'e6 example 2: sum is 1, it will work
  18. ;;; ...an idea ;;; how to import some TEXT and translate it to integer-sequences to use this data ;;; for LIVE-CODING. also possible without .txt, but i tried to IMPORT it. perhaps ;;; in your live-coding session a friend of you is writing the text in a different ;;; location and you could share it (the path) via CLOUD :-D ;;; i know, this kind of data... is not very smart, but a little bit steam-punky :-) (defparameter *map-integer1* '(((a à á â ã ä å æ ą) 0) (b 1) ((c ç ć) 2) (d 3) ((e è é ê ë ę) 4) (f 5) (g 6) (h 7) ((i ì î ï) 8) (j 9) (k 10)
  19. LISP... any solution? i want to DIVIDE a seq into sublists -> when it's asc into a list, "rest" into single-listed values - thanx a lot for some help ;;; input (divide* '(14 12 3 13 15 8 4 10 17 2 16 0 1 6 7 5 11 9)) ;;; output => ((14) (12) (3 13 15) (8) (4 10 17) (2 16) (0 1 6 7) (5 11) (9))
×
×
  • Create New...