Everything posted by AM
-
alternative binary-layer function
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))))))) (element-layer (list '(1 0 0 1 1 0 0 1 0 0 0 0) '(0 2 3 0 4 5 0 6 0 7 8 0) '(11 12 13 14 15 16 17)) :rnd nil) => (1 11 2 1 1 3 12 1 4 5 13 6) ;;; hierarchic: every 0's will be replaced by the values from the next/sub-list...
-
testing in opusmodus: videoplayer
testing videoplayer in OPMO.mov whitenoise.mov
-
integer to attribute
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)) => (pizz arco ponte molto-ponte stacc stacc+pizz)
-
Patrick Mimran. Extension folder , user function question
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...)
-
Patrick Mimran. Extension folder , user function question
-
Change Velocity Repeating Notes
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
-
Change Velocity Repeating Notes
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é
-
Change Velocity Repeating Notes
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 '(p mp mf f ff)) ;=> (e c4 ppppp e d4 p e d4 mp e e4 ppppp e f4 ppppp e d4 mf e d4 f e g4 ppppp e b4 ppppp e d4 ff e d4 ppppp e d4 p e d4 mp) ;; if there are more 'd4's then velocity-values, -> it starts again with first velocity-value (= cycle)
-
articulation with audulus 3
okay, then it seems to be a AUDULUS- or MOD-SYNTH-"problem". (audulus is only for simulation, real mod-synth for live) thanks!
-
articulation with audulus 3
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é
-
reduce note lengths in a list programmatically?
(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))
-
reduce note lengths in a list programmatically?
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."
-
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é
-
maxmsp and lisp?
i received the following message from julien vincenot for maxmsp+lisp greetings andré
-
How to snap notes into a scale?
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é
-
How to snap notes into a scale?
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é
-
Bizarre hanging on function gen-sieve (probably loop)
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
-
texting in live-coding ...an idea
;;; ...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) ((l ł) 11) (m 12) ((n ñ ń) 13) ((o ò ó ô õ ö) 14) (p 15) (q 16) (r 17) ((s ś ß) 18) (t 19) ((u ù ú û ü) 20) (v 21) (w 22) (x 23) ((y ý ÿ) 24) ((z ż ź) 25))) ;;; 1) open/write a .txt-file ;;; 2) define your path (inside the loop) ;;; 3) start the loop ;;; 4) write/change your .txt, and SAVE it ;;; => every 2 seconds it will be read by the code (loop repeat 60 do (progn (print (progn (setf x (string-to-list (let ((in (open "/Users/meierandre/Desktop/test.txt"))) ;; use your own path!! (read-line in)))) (text-map *map-integer1* (loop for i in x append (explode i))))) (print x)) do (sleep 2)) ;;; every 2 seconds the loop is reading your .txt, change variable x and PRINT it for this example i used PRINT (so you see what is happening), but you could also "rewrite" a variable inside your sound-live-coding-CODE/FUNCTION Bildschirmvideo aufnehmen 2019-11-02 um 23.16.58.mov
-
length-divide: ensuring that all possibly matching notes are split
> We have started work on microtonality 🙂
- lisp / special divide - help needed
-
lisp / special divide - help needed
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))
-
lsystem - extension idea
thank you!
-
lsystem - extension idea
thanks, torsten! i know hanspeter kyburz (i almost studied with him 😀 - and because of him i started working with algorithms) and i know some of his works (CELLS / PARTS / ....). if you have the article of ERES HOLZ as pdf, would be nice (the link seems to be dead)... only some short thoughts - not on an scientific research level 😉 isn't it - in general - a question about complexity and information? and complexity/information changes when you are changing/crossing the MEDIA. that means: from algorithms/code/mathematics to sound/music or visuals... also the complexity itself changes, it's like transforming... "the complexities" are different - the manifestation of it. so it's quite simple - and you feel so important and intelligent and "arty" 😉 - when you TAKE a really advanced mathematical/algorithmic grammar/process as a TOOL, ...but in accoustic perception the result could be quite "noise", because the musical complexity is different and depends - in my opinion - a lot on "how you map these things", on which musical parameters and objects, in which dimensions... of course, it's also interesting to use such things - like algorithms - in a way of "creative misunderstanding" (as i think ferneyhough once mentioned in different context), but we should be aware of the GAPS: algorithmic complexity - effective complexity. what do you think? greetings andré HEINZ VON FöRSTER had some really good thoughts on such things - in an abstract way... here is an article.... disorder:order.pdf and an article from DAVID GALANTER... Galanter_2003_What is Generative Art Complexity theory as a context for art theory.pdf
- Triggering event - anonymous functions (like in Javascript)
-
lsystem - extension idea
thank you, torsten! 🙂 (at the moment, I'm thinking about what the GAP is between visual visual l-systems (images, you see the whole "gestalt") and acoustic ones (which more has to do with the PROCESS in time, musical grammar...). the handling / perception / .... is a completely different one)