Everything posted by o_e
-
play polytempo -> code/examples
Can you please examine the midi file, maybe its a bug in my DAW? I've tried it also with quicktime player (7), there is also only one voice.. Edit: MIDI Player X also plays only one voice (the second as in the screenshot below). Thanks! tempomodulation.mid
-
play polytempo -> code/examples
Thank you! As the time-signature is 1/4 now, there is a change in the tempo definition necessary: (setf tempo (mclist (gen-integer 160 10) (gen-repeat 150 1))) then the two instrument's start and end together as it should be.. Can't wait for the score-player doc, any chance the midi export function can work correctly? It is cumbersome to record the midi-stream.. Anyway thanks a lot for this!! best ole PS I do not understand why this: (mapcar 'list (gen-integer 110 60)(gen-repeat 50 '1)) ==>((110 1) (109 1) (108 1) (107 1) (106 1) (105 1) (104 1) (103 1) (102 1) (101 1) (100 1) (99 1) (98 1) (97 1) (96 1) (95 1) (94 1) (93 1) (92 1) (91 1) (90 1) (89 1) (88 1) (87 1) (86 1) (85 1) (84 1) (83 1) (82 1) (81 1) (80 1) (79 1) (78 1) (77 1) (76 1) (75 1) (74 1) (73 1) (72 1) (71 1) (70 1) (69 1) (68 1) (67 1) (66 1) (65 1) (64 1) (63 1) (62 1) (61 1)) (mapcar 'list (gen-integer 60 110)(gen-repeat 50 '1)) ==>((60 1) (61 1) (62 1) (63 1) (64 1) (65 1) (66 1) (67 1) (68 1) (69 1) (70 1) (71 1) (72 1) (73 1) (74 1) (75 1) (76 1) (77 1) (78 1) (79 1) (80 1) (81 1) (82 1) (83 1) (84 1) (85 1) (86 1) (87 1) (88 1) (89 1) (90 1) (91 1) (92 1) (93 1) (94 1) (95 1) (96 1) (97 1) (98 1) (99 1) (100 1) (101 1) (102 1) (103 1) (104 1) (105 1) (106 1) (107 1) (108 1) (109 1))gives a different result than this: (gen-integer 110 60) ==>(110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60) (gen-integer 60 110) ==>(60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110)
-
play polytempo -> code/examples
I made a simple example to show how it works. You have to set the port and the midi channels to your needs. What I don't get is why the two voices of different length, any explanation is welcome.. The OM MIDI-Export function does not work here, so you have to record the MIDI-Stream in your DAW. Enjoy! (setf pattern (gen-repeat 50 '(s e4 fs4 b4 cs5 d5 fs4 e4 cs5 b4 fs4 d5 cs5))) (defun play-tempo-stream (&key (inst1 nil) (inst2 nil) (port "OM-VE1") (tempo-curve 60)) (def-score stream (:key-signature 'chromatic :time-signature '(3 4) :tempo tempo-curve :layout (list (bracket-group (treble-layout 'inst1) (treble-layout 'inst2)))) (inst1 :omn inst1 :port port :channel 1 :pan 20) (inst2 :omn inst2 :port port :channel 7 :pan 20)) (score-player 'stream)) (progn (play-tempo-stream :inst1 pattern :tempo-curve (mapcar 'list (gen-integer 110 60)(gen-repeat 50 '1)) :port 0) (play-tempo-stream :inst2 pattern :tempo-curve (mapcar 'list (gen-integer 61 111)(gen-repeat 50 '1)) :port 0)) Flextempo.mp3 flextempo.mid
-
play polytempo -> code/examples
Hi, I was fiddeling around with your code below, but I don't get it, can you please explain a little more how it works, when I test it the tempo of instrument1 to 4 are still in the same tempo (inside one play-tempo-stream (), when I try the play-tempo-streams at the same time, it throws me an error. Can you please provide a simple Conlon-Nancarro-ish 2 voice example or something to work along? Thanks in advance! best ole Edit: I get it to work with a fresh morning head, thanks for sharing the code!
-
error / merge-voices
I just tried it out of curiosity and get a strange result: voice1 voice2 (merge-voices voice1 voice2) Edit: ok, now I've used (also) (omn-to-time-signature voice1 '(4 4)) and it did work fine!
-
some functions
Something similar, only valid for the given octave, but taking the length into account and can handle pitch repetitions and list of lists, no negative/inversed function though: (defun mute-pitch-event (pch omnlist) (let* ((pos (position-item pch (omn :pitch (flatten omnlist)))) (poslen (position-filter pos (omn :length (flatten omnlist)))) (new (position-replace pos (mapcar #'(lambda (x)(* -1 x)) poslen) (omn :length (flatten omnlist))))) (if (some #'listp omnlist) (gen-divide (mapcar 'length (omn :pitch omnlist)) (make-omn :length new :pitch (omn :pitch (flatten omnlist)) :swallow t)) (make-omn :length new :pitch (omn :pitch omnlist) :swallow t)))) ;;;;-testing-;;;;; (setf test '(t c4 mf cs4 d4 eb4 e eb4 e4 f4 fs4 q g4 s gs4 a4 bb4 b4)) (mute-pitch-event 'eb4 test)
-
midi-to-omn
Thanks a lot!
-
midi-to-omn
I can't figure it out how it works, it gives strange results here (see screeshot), I need some assistance.. Thanks! (midi-to-omn "~/Opusmodus/Media/MIDI/Bach/bach-gv-aria.mid" :instrument 1) gives what is seen on the screenshot
-
shortcut(s) for plotting not working here (solved!)
Yes, I am aware of this.. Just solved it, there was another app in the backgground runnig (which allows multiple clipboards) who did use this shortcuts, I changed them there and now they are working fine in OM.
-
"partial" ties?
I don't understand exactly what you want to achive? The following code does what you want, it just have a little graphic glitch: (setf voice1 '(s c3 e b2 s_s bb2 e. bb2 tie -q)) (setf voice2 '(-q -q bb2gb2)) (merge-voices voice1 voice2) When the Gb is transposed an octave lower you can see it clearly: (setf voice1 '(s c3 e b2 s_s bb2 e. bb2 tie -q)) (setf voice2 '(-q -q bb2gb1)) (merge-voices voice1 voice2)
-
shortcut(s) for plotting not working here (solved!)
Hi, I've try to use the shortcuts for plotting snippets, it's control+1-8, right? That does not work here, am I missing something..? Thanks& Happy New Year!
-
List Segmentation
too late 🙂 (setf pitches '(c4 d4 e4 f4 g4 a4 b4 c5)) (setf seq (make-omn :pitch (gen-divide (gen-integer 1 4) pitches) :length '(1/16) :velocity '(f) :articulation '(stacc) :span :pitch))
-
Bug on file icons
Hi Julio, Unfortunatly I can not reproduce your problem. No issues here, latest 2.2 OM All the best& stay healthy ole
-
Remove Ties?
I wrote a function myself, not sure if it is acceptable for Janusz 🙂 hth (defun remove-tie (y) "tests if it is a single list or a list of lists,then remove ties" (if (car (mapcar #'listp y)) (loop for x in y for z = (remove 'tie x) for a = (remove 'tie+tie z) collect a) (remove 'tie+tie (remove 'tie y)))) Edit: I think this only removes ties between bars as I remember correctly..
-
Counterpoint Question - use of variable for harmony keyword
-
how to use ties correct
Thanks! There is one more thing I don't get, pitch-transpose seems to change the rhytm somehow or do I miss again something : (setf rhy '(e e_3q 3q 3q_e e_3q_3q 3q)) ;also tried ratios- same result (setf pit (span rhy line2)) (setf pit2 (make-omn :length rhy :pitch pit)) (setf pit2a (pitch-transpose 2 pit2))
-
how to use ties correct
Superb! Thanks a lot!!
-
how to use ties correct
Hi, What I want is the first pict: What I get, when I use this: (setf rhy '(e e 3q = = tie e e)) is seen in the second pict, what am I missing? Ok, I found the solution, writing 3q 3q 3q instead of 3q = = But then I stumbeled over the next problem, how can I use span with such tied rhymths? What I want is this: what I get with span is this: (setf line '(( c4 d4 e4 f4)( g4 a4))) (setf rhy '(e e tie 3q 3q 3q tie e e tie 3q tie 3q 3q)) (setf pit (span rhy line)) (make-omn :length rhy :pitch pit)
-
ambitus
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)
-
counterpoint function
Thanks for the quick answer! It's all in the doc- file but I overlooked it 🙂
-
counterpoint function
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!
-
error warning: Undeclared free variable
Thanks for you efforts of completely rewriting the function! This will serve me well as a model of how to use let*..!
-
error warning: Undeclared free variable
I've tried to get an overview of which pitches are used how many times in a stem: (plot-pcs-distr '((q c3 c3 d4 f5)(e fs2 fs2 fs2 fs2 fs2 gs4))) ==>((0 2) (1 0) (2 1) (3 0) (4 0) (5 1) (6 5) (7 0) (8 1) (9 0) (10 0) (11 0)) so I can see at a glance there are 2 c's, zero cis's, one d and so forth.. and the plot:
-
error warning: Undeclared free variable
Here is what I've hacked together, thanks for looking into it: (defun plot-pcs-distr (x) (progn (setf c (list (count '0 (flatten (get-pcs x))))) (setf cs (list (count '1 (flatten (get-pcs x))))) (setf d (list (count '2 (flatten (get-pcs x))))) (setf ds (list (count '3 (flatten (get-pcs x))))) (setf e (list (count '4 (flatten (get-pcs x))))) (setf f (list (count '5 (flatten (get-pcs x))))) (setf fs (list (count '6 (flatten (get-pcs x))))) (setf g (list (count '7 (flatten (get-pcs x))))) (setf gs (list (count '8 (flatten (get-pcs x))))) (setf a (list (count '9 (flatten (get-pcs x))))) (setf bb (list (count '10 (flatten (get-pcs x))))) (setf b (list (count '11 (flatten (get-pcs x))))) (setf all (append c cs d ds e f fs g gs a bb b)) (setf liste (loop for x in all for y in '(c cis d dis e f fis g gis a bes b) collect (list x y))) (sort liste #'< :key #'first) (setf liste-plot (loop for i in all for j in '(0 1 2 3 4 5 6 7 8 9 10 11) collect (list j i))) (xy-plot liste-plot :join-points t :point-radius 2 :style :fill :point-style :square) ))
-
error warning: Undeclared free variable
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!