
Content Count
598 
Joined

Last visited
Content Type
Forums
Calendar
Store
Tutorials
Member Map
Videos
Everything posted by AM

i didn't find a OMlibrarysolution for this kind of thing, so i coded it... if you want to REPLACE the articulation of some specific pitches. perhaps all 'd4 sould be PONTE... you could use this. it was necessary to code it like that, because otherwise you get in trouble with the empty parameterslots... should work fine greetings andré ;;; SUBFUNCTIONS (defun eliminatenil (alist) (loop for i in alist when (not (null i)) collect i)) (defun completeeventslots (omnlist) (let ((omnart (omn :articulation (singleevents (flatten omnlist))))) (singleevents (omnreplace :articulation (flatten (eliminatenil (loop for i in omnart for cnt = 0 then (incf cnt) when (equal (car i) ') collect (nth (1 cnt) omnart) else collect i))) omnlist)))) ;(completeeventslots '(5q a4 ff pizz 5q e3 e 5q a4 f)) ;;; MAIN FUNCTION (defun replacearticulationofapitch (omnlist &key pitches articulation (chance 1.0)) (loop for i in (completeeventslots (flatten omnlist)) when (and (member (car (omn :pitch i)) pitches) (prob? chance)) append (omncomponentreplace i (list articulation)) else append i)) ;;; EXAMPLE (replacearticulationofapitch '(5q a4 ff pizz 5q e3 p q 5q d4 pizz) :pitches '(a4 d4) :articulation 'ponte :chance 1.0) > (5q a4 ff ponte 5q e3 p pizz q 5q d4 p ponte)

function for (string)harmonics / flagolets?
AM replied to AM's topic in User Extensions Source Code
okay, but the "evaluation"process (perhaps transpose note 2 octaves down and add pitch in a disctance of a fourth) must/could be done in LISP!? 
hi all does anybody already coded a FUNCTION to replace stringpitches by natural or artificial harmonics? is the specific notehead in OM (for the artificials)? would/could be very practical... perhaps if you have fast phrases in a large ambitus... the function  if it would be very well coded  could search for the nearest/closest fingering... greetings andré

yes, i know  i love to code a lot of things myself, and at the moment i'm not very virtuous in it. but I have found a solution  without rebuilding my big programs. with (pprintlastscore) i can read and save the OMN, after evaluating and exporting xml/midi. so you were right, janusz, the solution was in the SYSTEM FUNCTIONS thanx for help  torsten, stéphane & janusz

thank you, torsten  the problem is, that i'm working with my own random/pickfunctions which don't work with SEED  so, that's my fault/problem

hi all is there a possibility to SAVE my output  the OMNlists  (rndgenerated structures) in a seperate file? that by EVALUATION the OMNlists will be written in a sepeart/newgenerated file? ...so that i have not to reimport it via MIDI (makes a lot of strange rhythms) thanks for help andré

very interested in version 2.0  features/release?

like this?

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
hi brian, i modified shortly the code, now you could do what you want... "steptopitch" will test now what the tonalityinput is ... if tonality = pitches > then use this scale, othwerwise > "expand the scale" (defun mapinfinityseries (&key seq start tonality) (steptopitch :steps (integertointerval (resetseq seq)) :pitches (if (pitchp (car tonality)) tonality (multipleexpandtonality :startpitch 'c0 :octaves 7 :tonality tonality)) :start start)) (mapinfinityseries :seq '(0 1 3 2 1 2 1) :start 'fs4 :tonality (makescale 'c2 49 :alt '(1 2 1 1))) (mapinfinityseries :seq '(0 1 3 2 1 2 1 2 2 3 3 1 1 1 1 2 2) :start 'g4 :tonality '(major)) (mapinfinityseries :seq '(0 1 3 2 1 2 1 2 2 3 3 1 1 1 1 2 2) :start 'fs4 :tonality '(messiaenmode1 messiaenmode2 messiaenmode3)) 1) do it with library... like '(major) or (messiaenmode1) or what else 2) do ith with a pitchsequence like your '(makescale 'c2 49 :alt '(1 2 1 1)) > just REPLACE mapinfinityseries by the new functionversion > ...the only thing you have to look at it: your startpitch has to be part of your scale! 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
janusz, is this possible directly via "infinityseries"? greetings andré 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
violà... bit more organized... a) now you could copy the SUBFUNCTIONS+MAINFUNCTION into: extensions > user library. in that way all the functions will be loaded automatically, and it is not necessary to EVALUATE them before using... but it's useful to document it... b) otherwise... all this functions in your workspace/opmofile... (like you are donig it wright now) ;;; SUBFUNCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun steptopitch (&key steps pitches start) (let ((pos (car (positionitem 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 pitchrange to small then reset to lowest pitch+step ;; could be a more intelligent solution when (or (>= pos (length pitches)) (< pos 0)) do (setf pos 0);(+ 0 i)) collect (nth pos pitches))))) (defun multipleexpandtonality (&key startpitch octaves tonality) (removeduplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!) (loop repeat octaves with pitch = startpitch with cnt = 0 when (= cnt (length tonality)) do (setq cnt 0) append (expandtonality (list pitch (nth cnt tonality))) do (incf cnt) do (setq pitch (car (pitchtranspose 12 (list pitch))))))) (defun resetseq (seq) (let ((n (abs (findmin seq)))) (loop for i in seq collect (+ n i)))) ;;; MAINFUNCTION (defun mapinfinityseries (&key seq start tonality) (steptopitch :steps (integertointerval (resetseq seq)) :pitches (multipleexpandtonality :startpitch 'c0 :octaves 7 :tonality tonality) :start start)) ;;; EXAMPLES OF USE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (setf inflist (infinityseries 128 '(1 0))) (mapinfinityseries :seq inflist :start 'g4 :tonality '(major)) (mapinfinityseries :seq inflist :start 'gs3 :tonality '(messiaenmode6)) 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
i will write you a "merged"function, takes not a lot of time, then it looks smarter :) do you know how to use USER LIBRARY? very usefull  take a look... then you could import and use it like an ordinary OPMOfunction 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
is this correct? i think it is  not smartcoded but it works  you could merge the functions into ONE (sorry for my english). perhaps there is an OPMOlibrarysolution, but i don't know it... greetings (defun steptopitch (&key steps pitches start) (let ((pos (car (positionitem 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 pitchrange to small then reset to lowest pitch+step ;; could be a more intelligent solution when (or (>= pos (length pitches)) (< pos 0)) do (setf pos 0);(+ 0 i)) collect (nth pos pitches))))) (defun multipleexpandtonality (&key startpitch octaves tonality) (removeduplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!) (loop repeat octaves with pitch = startpitch with cnt = 0 when (= cnt (length tonality)) do (setq cnt 0) append (expandtonality (list pitch (nth cnt tonality))) do (incf cnt) do (setq pitch (car (pitchtranspose 12 (list pitch))))))) (defun resetseq (seq) (let ((n (abs (findmin seq)))) (loop for i in seq collect (+ n i)))) (steptopitch :steps (integertointerval (resetseq '(0 1 1 2 1 0 2 3 1 2 0 1 2 1 3 4 1 0 2 3 0 1 1 2 2 3 1 0 3 2 4 5 1 2 0 1 2 1 3 4 0 1 1 2 1 0 2 3 2 1 3 4 1 2 0 1 3 4 2 1 4 3 5 6))) :pitches (multipleexpandtonality :startpitch 'c0 :octaves 7 :tonality '(major)) :start 'g4) 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
but YOUR steps are not the same from the webarchiveexample > in the webexample it's from G in Cmajor, steps are > 1 2 > YOU are starting with steps > 0 1 1 2 ... ??? but, i have no idea about this infinitythings, i only MAP your SEQ to MAJORscale... in the way you asked for (i think), so perhaps you have to rethink the MAINthing? best wishes andré added 6 minutes later you have to think different  these are NOT steps, these is a INTEGERTOPITCH thing... perhaps mixed with tonalitymap  but haven't time for that at the moment, sorry 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
dear brian your pitchrange is too small for the stepsum... if you want to use it you have to enlarge your pitchrange. i've now done a small change  so you don' t have an error > stepstack will now be set to 0, if pitches are lower or higher then your pitchrange, but in this case you don't have exact results mapping the STEPS so, enlarge your pitchrange > perhaps with my "multipleexpand..."function > EXAMPLE 2 (defun steptopitch (&key steps pitches start) (let ((pos (car (positionitem 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 pitchrange to small then reset to lowest pitch+step ;; could be a more intelligent solution when (or (>= pos (length pitches)) (< pos 0)) do (setf pos 0);(+ 0 i)) collect (nth pos pitches))))) ;;; EXAMPLE 1 (steptopitch :steps '(0 1 1 2 1 0 2 3 1 2 0 1 2 1 3 4 1 0 2 3 0 1 1 2 2 3 1 0 3 2 4 5 1 2 0 1 2 1 3 4 0 1 1 2 1 0 2 3 2 1 3 4 1 2 0 1 3 4 2 1 4 3 5 6) :pitches '(c3 d3 e3 f3 g3 a3 b3 c4 d4 e4 f4 g4 a4 b4 c5 d5 e5 f5 g5 a5 b5 c6) :start 'g4) ;;; here a function which enlarges TONALITIES OVER Xocavtes ;;; so, that's easier then to type :9 (defun multipleexpandtonality (&key startpitch octaves tonality) (removeduplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!) (loop repeat octaves with pitch = startpitch with cnt = 0 when (= cnt (length tonality)) do (setq cnt 0) append (expandtonality (list pitch (nth cnt tonality))) do (incf cnt) do (setq pitch (car (pitchtranspose 12 (list pitch))))))) (multipleexpandtonality :startpitch 'c1 :octaves 6 :tonality '(major)) ;;; EXAMPLE 2 (steptopitch :steps '(0 1 1 2 1 0 2 3 1 2 0 1 2 1 3 4 1 0 2 3 0 1 1 2 2 3 1 0 3 2 4 5 1 2 0 1 2 1 3 4 0 1 1 2 1 0 2 3 2 1 3 4 1 2 0 1 3 4 2 1 4 3 5 6) :pitches (multipleexpandtonality :startpitch 'c0 :octaves 7 :tonality '(major)) :start 'g4) 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

code Infinityseries applied to scales/modes
AM replied to BrianCope's topic in Support & Troubleshooting
here are some solutions: user or OPMOdefined greetings andré 20 replies

 inifityseries
 scales

(and 1 more)
Tagged with:

Opusmodus on a Windows Machine (using VMWare)
AM replied to Wim Dijkgraaf's topic in Suggestions & Ideas
evaluate this, and check out the mididestinationsfunction > shows you the ports (mididestinations) 
But in this way: (setf binrow '(0 2 5 7 8 11)) (genbinaryrow 12 '(binrow)) What am I missing ? just do it like that: (setf binrow '(0 2 5 7 8 11)) (genbinaryrow 12 binrow) ;; your "binrow" is now a variable with a LIST as value ;; when you are writing '(binrow) it will be a LIST with the VALUE binrow (and not the values of "binrow")

editomn update: 'dynamic' arguments supported
AM replied to torstenanders's topic in Function Examples
really great, torsten! thanks a lot!!! greetings andré 
something like this? don't know if it's like this... you want to project a chord on these "filtered pitches"? (setf lengths '(1/2 1/16 7/16 1/8 3/8 3/16 5/16 1/4 1/4 5/16 3/16)) (setf pitches '(g5 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 fs4 a4 g4 gs4 e4 b4 a4 fs4 b4 e4 d4 cs5 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 f4 bb4 gs4 g4)) (setf chordintervals '(3 1 2 2)) (makeomn :length lengths :pitch (loop for i in (append (list 0) (cumulativesums (loop for k in lengths collect (/ k 1/16)))) append (chordize (intervaltopitch chordintervals :start (nth i pitches)))))

you're welcome :) greetings andré

like that? (setf lengths '(1/2 1/16 7/16 1/8 3/8 3/16 5/16 1/4 1/4 5/16 3/16)) (setf pitches '(g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 fs4 a4 g4 gs4 e4 b4 a4 fs4 b4 e4 d4 cs5 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 f4 bb4 gs4 g4)) ;;; get the pitches (loop for i in (append (list 0) (cumulativesums (loop for k in lengths collect (/ k 1/16)))) collect (nth i pitches)) ;;; a function which generates OMNformat (defun superimpose (lengths pitches) (makeomn :length lengths :pitch (loop for i in (append (list 0) (cumulativesums (loop for k in lengths collect (/ k 1/16)))) collect (nth i pitches)))) ;;; evaluate > OMN output (superimpose '(1/2 1/16 7/16 1/8 3/8 3/16 5/16 1/4 1/4 5/16 3/16) '(g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 fs4 a4 g4 gs4 a4 fs4 e4 b4 g4 gs4 fs4 a4 gs4 g4 f4 bb4 a4 fs4 e4 b4 fs4 a4 g4 gs4 e4 b4 a4 fs4 b4 e4 d4 cs5 gs4 g4 f4 bb4 g4 gs4 fs4 a4 f4 bb4 gs4 g4 bb4 f4 eb4 c5 g4 gs4 fs4 a4 gs4 g4 f4 bb4 fs4 a4 g4 gs4 a4 fs4 e4 b4 f4 bb4 gs4 g4))

Help with Processing Live Weather Data in Opusmodus
AM replied to hujairi's topic in Score and Notation
would be also interesting for me/my work! greetings andré 
i would only need the "FUNCTION" who starts the midiplay and the function which EVALUATEs (quasi the function behind the shortcuts) thanx

question (from a nonprogrammer): is there a possibility (a way) to evaluate and/or starttoplay with a delay (of xseconds) in opusmodus/lisp? would be interesting in the context of using POLYTEMPO NETWORK http://polytempo.zhdk.ch (virtual conductor) and LIVEevaluation/play of an algorithm (and playing it live by an eplayer) on/with a specific (delay)time. could be something like: "do evaluate algorithm" "do play it in 21.543 seconds" any ideas or solutions? thanx for help andré