Function Examples
Functions, arguments, values and results
316 topics in this forum
-
Hello! The example below has been taking several minutes to compile, eventually crashing Opusmodus. Would someone be willing to look at the code and let me know what's causing this? Thank you so much! (setf pattern1 (length-augmentation 2'((-h. q g4) (q. g4 e e4 q e4 -q) (-h. q g4) (q. g4 e d4 q d4 -q) (-h. q e4) (q f4 g4 a4 b4) (h. g4 -q)))) (setf pattern1a (length-augmentation 3 '((-h. q g4) (q. g4 e e4 q e4 -q) (-h. q g4) (q. g4 e d4 q d4 -q)))) (setf scale '(c4 eb4 f4 g4 ab4)) (setf pattern1-scale (tonality-map '(scale :map octave :closest up) pattern1)) (setf pattern1a-scale (tonality-map '(scale :map octave :closest up) pattern1a)) (setf voic…
- 4 replies
- 1.7k views
- 1 follower
-
Hello, Friends Is there some function to convert this: (1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1) 3 2 1 2 2 5 1 to this: (3 2 1 2 2 5 1) Best ! Julio
- 2 replies
- 1.1k views
-
Hello, Friends I´m exploring this interesting counterpoint function. When I write the parameter for the keyword :harmony note for note everything works fine, but when I substitute the chords of the :harmony keyword with the content of the variable setf harmony 2 it won´t work, giving the following error: > Error: (harmony2) is not a tonality or a chord. > While executing: %make-tonality, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options. I´d like to use the :harmony keyword in a way that I can process the chords in other place (by MIDI Entry or genera…
- 14 replies
- 5k views
- 2 followers
-
Dear All, Recently, I used the function combination and got some strange result I did this (combination 3 '(0 1 2 3 4 5)) I got this result - 60 combinations (0 1 2) (0 1 3) (0 1 4) (0 1 5) (0 2 3) (0 2 4) (0 2 5) (0 3 4) (0 3 5) (0 4 5) (1 2 3) (1 2 4) (1 2 5) (1 3 4) (1 3 5) (1 4 5)(2 3 4) (2 3 5) (2 4 5) (3 4 5)(5 0 1) (5 0 2) (5 0 3) (5 0 4) (5 1 2) (5 1 3) (5 1 4) (5 2 3) (5 2 4) (5 3 4) ,(4 5 0) (4 5 1) (4 5 2) (4 5 3) (4 0 1) (4 0 2) (4 0 3) (4 1 2) (4 1 3) (4 2 3)(3 4 0) (3 4 1) (3 4 2) (3 5 0) (3 5 1) (3 5 2) (3 0 1) (3 0 2) (3 1 2) (2 3 0) (2 3 1) (2 4 0) (2 4 1) (2 5 0) (2 5 1) (2 0 1) (1 2 0) (1 3 0)…
- 6 replies
- 1.9k views
- 1 follower
-
Hi all, has anyone written a function that calculates the total duration of a score (including tempo changes and fermatas) in minutes and seconds? Achim
-
- 0 replies
- 931 views
- 1 follower
-
-
Hi, When I constrain the ambitus range to be smaller than an octave, I do not understand exactly on which axis the pitches are inverted, when I use :type :invert it is clear, but what does the default transpose type? Thanks! (setf range '((q c4 cs4 d4 ds4 e4 f4 fs4 g4 gs4 a4 bb4 b4 c5))) (setf amb2 (ambitus '(c4 a4) range )) (merge-voices range amb2)
-
- 1 reply
- 1.3k views
- 1 follower
-
-
Hi, How do I point :methods and :global-methods to my own def-unfold-set instead of the default one? (counterpoint patterns '(((- 2 3 -)) ((4 * * 6)) ((1 - - 2)) ((5 6 1 2))) :index 'voice :global-polyphony '((1 p) (2 o) (10 o) (11 o)) :iterate t :global-methods '((fl) (cl) (hn) (vc))) Thanks!
-
- 2 replies
- 1.4k views
- 1 follower
-
-
Hi, When I write functions and make use of setf's, I get the brown colored warning: Undeclared free variable This becomes a problem, when I'd like to put the function into the extensions folder. How can I remedy this? Thanks!
- 6 replies
- 2.2k views
- 2 followers
-
Dear All, The second half of trope 21 is showing a note repetition. (trope-hexachord 21) ((c4 b3 bb3 eb3g3a3) (d3fs3gs3 cs3f3 fs3)) The pitch-class fs3 appears twice, comprising a 5 note set (it should be an hexachord, a 6 note-set) (d3fs3gs3 cs3f3 fs3)) According to Sedivy (2011, pg 134) the trope 21 is shown below: In Sedivy´s book, this trope are shown starting in E, thus (pitch-transpose -8 (trope-hexachord 21)), thus ((e3 eb3 d3 g2b2cs3) (fs2bb2c3 f2a2 bb2)) There is a repetition of two Bb pitch classes in the second hexachord (pitch-transpose -8 (melodize (l…
- 8 replies
- 2.1k views
- 1 follower
-
Dear Friends, Please check this replace-stream function !! This is what I was searching for and trying to achieve for a long time !! It really worth to upgrade. I have some questions regarding this new tool: Here is the code, similar to the documentation. First, we have the Bach Chorale. Second, there are some original material that looks like this: V1 plays only E and F pitch classes V2 plays only C and D pitch classes VLA plays only Bb and G# pitch classes CELLO plays only Bb and Eb pitch classes For easy understanding of the point When I do the replace-stream, I.E., using the new…
- 6 replies
- 19.3k views
- 2 followers
-
Dear All, From the example below I suppose that choralis function applyes some voice-leading in the progression provided. Maybe to generate some more singable sequence ? (maybe not...) For example, here I provide my classic test-debuggin harmony: (setf chords2 (gen-trim 31 '(a3b3e4gs4 gs3eb4g4bb4 cs3a3b3e4 gs2f3bb3d4 gs2e3b3eb4 eb3b3cs4fs4 a2e3eb4b4 fs2cs3c4gs4 d3gs3b3g4 b3e4fs4a4 fs3cs4f4c5 b3cs4fs4bb4 g2d3cs4a4 g2fs3b3cs4 e2fs3g3d4 f2eb3bb3d4 b2g3a3d4 bb2gs3eb4g4 e3c4g4d5 cs3a3e4b4 gs3bb3eb4g4 fs3gs3cs4f4 fs2e3b3eb4 cs3a3b3e4 b2gs3cs4f4 eb3a3d4fs4 d3bb3f4c5 e3eb4gs4bb4 f3cs4gs4eb5 b2fs3f4cs5 eb3b3cs4fs4 eb3gs3b3g4 e3g3d4fs4 a2bb3eb4g4 d…
- 1 reply
- 1.6k views
- 1 follower
-
Dear All, Sometimes you are working on a very cluttered file with many setf variables that you need to evalate before starting. Is there a way to put a shortcut inside and .opmo score to evaluate a set of code in a different .opmo score, without having to move to the other document to evaluate it ? Best, Julio
- 2 replies
- 1.4k views
- 1 follower
-
Dear Friends, I think a good companion to the gen-divide option to count rests would be a function that counts the positive rhythm items (the positive value attacks, excluding the pauses). It would be great to calculate the size and to align rhythms and its groupings for later span processing of lists related to pitches (or any other use you might think). Is there already a function like this: GET-COUNT-ATTACKS (get-count-attacks '((1/8 7/8) (1/8 7/8) (1/4 1/12 1/12 1/12 3/16 5/16) (-3/8 1/8 1/4 -1/8 1/8))) would return: (2)(2)(7)(3) or maybe (2 2 7 3) in flatten version …
-
- 2 replies
- 1.4k views
-
-
Dear All, How can I get controlled seeds in a expression like this? (let ((r-lis nil)) (dotimes (i 4) (push (rnd-unique 5 '(1 2 3 4 5)) r-lis)) r-lis) This will result four different seeds (one for each loop iteration), like this: rnd-unique :seed 361914 rnd-unique :seed 275956 rnd-unique :seed 883737 rnd-unique :seed 46981 ((3 1 4 5 2) (4 2 1 5 3) (2 5 4 1 3) (1 3 5 4 2)) And this will result the same seed for all four iterations: (let ((r-lis nil)) (dotimes (i 4) (push (rnd-unique 5 '(1 2 3 4 5):seed 1) r-lis)) r-lis) Like this: rn…
- 2 replies
- 1.4k views
- 1 follower
-
Dear All, Is there a function for get all intervals of a row (or any list of integers or pitches) in relation to one note ? For example, given this 12 tone row: (a3 gs4 c4 d4 bb3 b3 fs4 f4 cs4 g4 ds4 e4) Get all intervals related to a4 ? The result should be: (-12 -1 -9 -7 -11 -10 -3 -4 -8 -2 -6 -5) This is for getting a resultant set of numbers related to a chromatic octave-module. Each order of the set result in a different set. Maybe can be a mapping function.
- 5 replies
- 1.9k views
- 1 follower
-
Suppose a density is defined by measuring the amount of information. Why does the first list having three pitches result in lower density than the second list comprising two pitches? (density-analysis '((c4 d4 g4) (d4 a4))) => (0.2916667 0.5833334) Thank you!
- 7 replies
- 2k views
- 1 follower
-
Dear friends, A cool idea to implement would be to have a gen-divide like function for dividing rhythm lists, filtering just the positive values, like this: (setf rhy '(q -q -e e e e q q -s s s s)) ;;;Standard gen divide (gen-divide 3 rhy) ;;result: (q -q -e) (e e e) (q q -s) (s s s) ;;; (gen-divide-attack 3 rhy) ;;;result (q -q -e e e) (e q q) (-s s s s) To me, would be very useful. All the best ! Julio
- 6 replies
- 2.2k views
- 1 follower
-
Dear all Is there some way to make a processing of accidentals in the make-omn expression or even later, in the PS expression ? Something like: bar #1 all sharps bar#2 all flats etc. I noticed that after many sucessive list processing, my original notes were altered. Thanks ! Best ! Julio
- 7 replies
- 2.3k views
- 1 follower
-
here is a short program (based on JOHNSON's writing... pascal-code found in www and modified) to generate TOM JOHNSON's series of numbers for "pascal's triangle ...". maybe interesting to play with the MODULO like JOHNSON did (mod 7)... try it! greetings andré ;;; SUB (defun pascal-next-row (a &key (johnson-modulo nil)) (loop :for q :in a :and p = 0 :then q :as s = (if (null johnson-modulo) (list (+ p q)) (list (mod (+ p q) johnson-modulo))) :nconc s :into a :finally (rplacd s (list 1)) (return a))) ;;; MAIN (defun pascal-tria…
- 1 reply
- 1.5k views
- 1 follower
-
Hi, What am I missing? (pitch-demix '(3 2) '(c3e4g5b6 d3f4a5c6 e3g4b5d6)) =>(e4 f4 g4) I would expect this: =>((e4 f4 g4)(g5 a5 b5)) thanks for an answer!
-
- 2 replies
- 1.3k views
- 1 follower
-
-
Dear All, I found a very interesting way to use the span function to my purposes of controlling the harmonic rhythm of my composition. But I need some help. Here is one example: I set pitch lists for each voice of my quartet. Here is an example of how the material is organized for each voice. Each voice for each chord is broken in 16 repeated notes and another 16 notes with some custom made melodic material. The example below corresponds to TWO chords of the harmony. PITCH MATERIAL LISTS The first 16 notes are repeating and the next 16 notes are melodic figures of the same harmony. This is done for all t…
- 29 replies
- 23.9k views
- 2 followers
-
Hi, it says in the doc of vector-to-velocity that the default is float values, but when I evaluate (setf vel (vector-to-velocity 0.1 0.9 (gen-integer 1 16))) =>(pppp pppp ppp pp pp p mp mp mf mf f ff ff fff ffff ffff) I get symbols, when I use (setf vel (vector-to-velocity 0.1 0.9 (gen-integer 1 16):type :float)) =>(0.1 0.15 0.21 0.26 0.31 0.37 0.42 0.47 0.53 0.58 0.63 0.69 0.74 0.79 0.85 0.9) everything is fine, just want to mention it. best ole
-
- 1 reply
- 1.2k views
- 1 follower
-
-
A faster way to pitch-demix. I found that this works faster than the pitch-demix function. Just to offer something... (setf chorale '(a3b3e4ab4 gs3ds4g4bb4 cs3a3b3e4)) (setf chordarray (build-array (sort-desc (melodize (mclist chorale))))) (setf size (get-count chorale)) (setf voice1 (get-array 0 0 size chordarray :direction 'down)) (setf voice2 (get-array 0 1 size chordarray :direction 'down)) (setf voice3 (get-array 0 2 size chordarray :direction 'down)) (setf voice4 (get-array 0 3 size chordarray :direction 'down)) (ps 'gm :sq (list (flatten (list '(q) voice1)) (flatten (list '(q) voice2)) (flatten (list '(q) voice…
-
- 0 replies
- 1.1k views
-
-
Dear Friends, I have this recurrent problem with lists... Please, help... ;;; I have this TWO lists (setf list1 '(v1rp0 v1rp1 v1rp2 v1rp3 v1rp4) (setf list2 '(melch1-0 melch1-1 melch1-2 melch1-3 melch1-4) ;;;AND ;;; I need a list like this (alternating the list) (v1rp0 melch1-0 v1rp1 melch1-1 v1rp2 melch1-2 v1rp3 melch1-3 v1rp4 melch1-4) How can I proceed ? Thanks a lot Best, Julio (a desperate quarantine composer) OBS. help in combining THREE lists are also greatly appreciated, as well as how to combine parts of the lists. Thank you... my brain is ruined for now (I´m doing so…
- 2 replies
- 1.6k views
- 1 follower
-
Dear All, It´is possible to initialize sublists all at once as setf variables ? To transform a list like this: ((c4 ds4 e4)(c4 d4 f4)(c4 d4 g4)(cs4 d4 e4)), automatically into a list of setf materials, like v1 = (c4 d4 e4) v2 = (c4 d4 f4) v3 = (c4 d4 g4) v4 = (cs4 d4 e4) OBS.: v1 can be any letter, like p1, p2 or maybe mat1, mat2, etc... Thank you
- 2 replies
- 1.4k views