Jump to content


  • Content Count

  • Joined

  • Last visited

About terekita

  • Rank
    Junior Member

Profile Information

  • Gender

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ah, looks like omn-merge-ties is my friend here...
  2. Hello, For various reasons, I need to start with rhythms defined in one time signature and remap them. I'm having trouble doing this because of what happens to ties when you use omn :length (though I realize they are being collected under :articulation). In this case, I'm taking bars of 4/4 regrouping into bars of 2/4. (setf myr '( (s s -s s -e s s -s s -e t t t t s s) (e e_q -h))) (setf tr (omn-to-time-signature myr '(2 4))) Now I take the result of the above and assign it to a new variable ( this would be the same as (setf foo tr) ): (setf foo '((s c4 c4 - c4 -e s c4 c4) (-s c4 -e t c4 c4 c4 c4 s s) (e c4 c4 tie q) (-h))) As you can see, there is a tie in the third bar. Now, how can I extract that rhythm so that I can apply to another set of pitches? If I do the following, I no longer have the tie represented in the rhythm: (omn :length foo) ;; results in ;; ((1/16 1/16 -1/16 1/16 -1/8 1/16 1/16) (-1/16 1/16 -1/8 1/32 1/32 1/32 1/32 1/16 1/16) (1/8 1/8 1/4) (-1/2)) ;; i.e., no tie in the third bar Also, if I try to span the rhythm onto another set of pitches, I again get a result that is missing the tie: (setf my-pitches '(c4 d4 e4)) (make-omn :length foo :pitch my-pitches) What I'd really love is to get back a list of lengths that is like my original list, just regrouped in new time signatures. So, ideally something like: (setf myr '( (s s -s s -e s s -s s -e t t t t s s) (e e_q -h))) ;; imaginary function (regroup-to-two-four myr) ;;would result in the following: ;; ((s s -s s -e s s)(-s s -e t t t t s s)(e e_q)(-h)) Finally, I should add that in a related problem, I need to extract the number of attacks in a bar after it has been regrouped. So, for this reason again, I need to figure out how to extract the rhythm while preserving ties and not re-attacking tied notes. I'd very appreciate and thank you kindly for any assistance in doing this. Thanks very much, Michael
  3. Hello, When I take the following: (setf lens '((e = = e tie)(e e e e))) (setf notes '((c4 d4 = d4)(d4 g4 = =))) and then call make-omn (make-omn :length lens :pitch notes) the tie at the end of the first bar is not preserved. Nor is it if I instead have the tie at the end of the first bar of the notes list (or at the end of the first bar in both lists). What is the proper way to construct an omn list from separate lengths and pitches such that ties are preserved? In this case I am trying to create the equivalent of the following: (setf test '((e c4 d4 = d4 tie)(e d4 g4 = =))) thanks very much, Michael
  4. fixed it: (let ((offset 20)) (tonality-map `(minor-pentatonic :root c0 :map step :rotate ,offset) pitch))
  5. Hello, So, this obviously works: (setf pitch (integer-to-pitch '(20 19 18 15))) (tonality-map '(minor-pentatonic :root c0 :map step :rotate 20) pitch) but this—passing in a variable to the :rotate key—doesn't. (Assuming because it's inside a quoted list?) (let ((offset 20)) (tonality-map '(minor-pentatonic :root c0 :map step :rotate offset) pitch)) I'd like to do something like the latter because I'd like to dynamically pass in changing values for :rotate. Any tips or suggestions? thanks for taking a look, Michael
  6. Thank you very much for the reply. I was trying to put the ':map step' in the tonality-map (as opposed to the tonality-series), and couldn't figure it out with the setup I have. In the case of the code above, is the final output the same whether :map step was placed in tonality-series or tonality-map? thanks
  7. Thank you very much for the reply, I will test that out! Cheers
  8. Hello, I'm trying to import Goldberg Variation No 26 into omn (to then process further), and I'm getting a bunch of fairly crazy rhythms (it certainly is a complicated midi file with ornaments, etc). I've tried both with the midi file included in the distro, and also with the attached. Essentially, I'd love to be able to see pretty much the same rhythms that I see when looking at these midi files in, say, Sibelius, once I export from omn. Anyone able to import that file successfully with respect to rhythmic notation (also, am I correct that there's no way to import musicxml into omn currently), and/or have any tips to offer? thanks very much, michael 988-v26.mid
  9. Hello, I'm a little confused about how to include the :map step tonality form in this example. I start with my tonality-series: (setf g-tonality (tonality-series '( (0 3 5 7 10)) :root '(8 11 4 7 0 4 11 4 7 0 3 8 0 7 0 4 11 4 8 3 8 0 7 0 8 3))) Next, I grab an omn list: (setf bomn1 '(#|1|# (q^e.. b4 q^e.. -e e^s. b4) #|2|# (q^e.. a4 q^e.. -e e^s. d5) #|3|# (q^e.. d5 q^e.. cs5 -e e^s. g4) #|4|# (e.^et g4 s^t e4 q^e.. fs4 -e e^s. a4) #|5|# (e.^et d4 s^t e4 q^e.. f4 -e e^s. g4) #|6|# (e.^et g4 s e4 d4 e. c4 -e e4) #|7|# (e. a3 s b3 q c4 -e d4) #|8|# (e. d4 s b3 q g3 -) #|9|# (e. g5 3e^t fs5 t e5 q d5 -e s b5 tie 3e tie 3t tie) #|10|# (3t b5 q a5 a5 -e s a5 tie 3e tie 3t tie) #|11|# (3t a5 q q g5 -e s g5 tie 3e tie 3t tie) #|12|# (3t g5 e. s e5 b4 e. a4 -e s g5 tie 3e tie 3t tie) #|13|# (3t g5 e. s e5 e5 e. fs5 -e s a5 tie 3e tie 3t tie) #|14|# (3t a5 e. b5 s fs5 fs5 e. g5 -e s g5 tie 3e tie 3t tie) #|15|# (3t g5 q q cs5 -e s a4 tie 3e tie 3t tie) #|16|# (3t a4 e. s e4 e4 e. fs4 -e -s -3e -3t) #|17|# (-3t e fs4 tie t - e4 - q fs4 -e s. d4 -3s) #|18|# (-3t e g4 tie t - a4 - a4 - e. b4 -e s. g5 -3s) #|19|# (-3t e. e5 s b5 q a5 -e s a5 tie 3e tie 3t tie) #|20|# (3t a5 e tie t - fs5 - q ds5 -e s. fs5 -3s) #|21|# (-3t e g5 tie t - fs5 - q e5 tie s. -t s g5 tie 3e tie 3t tie) #|22|# (3t g5 q q f5 -e s a5 tie 3e tie 3t tie) #|23|# (3t a5 e. s fs5 q ds5 -e s fs5 tie 3e tie 3t tie) #|24|# (3t fs5 e. s ds5 t e5 ds5 e. e5 -3e e3 fs3 g3 a3 t b3 tie) #|25|# (3t b3 e e4 -s gs4 e. a4 s b4 e c5 tie s tie 3e tie 3t tie) #|26|# (e c5 tie 3t -s fs4 e. g4 s a4 e b4 tie s tie 3e tie 3t tie) #|27|# (e b4 tie 3t -s e4 e. fs4 s g4 e. a4 3e g4 tie 3t tie) #|28|# (3t g4 3s fs4 tie fs4 3t g4 tie t 3e fs4 cs4 d4 e4 fs4 e4 fs4 g4 fs4 g4 3e^t a4 g4 a4 b4 g4 t a4 tie) #|29|# (3t a4 3s b4 tie b4 3t c5 tie t 3e b4 fs4 g4 a4 3e^t b4 a4 b4 c5 b4 c5 d5 c5 d5 e5 c5 t d5 tie) #|30|# (3t d5 3s e5 tie e5 3t f5 tie t 3e e5 b4 c5 d5 3e^t e5 d5 e5 fs5 e5 fs5 g5 fs5 g5 a5 fs5 t g5 tie) #|31|# (3t g5 3s a5 tie a5 3t b5 tie t 3e a5 fs5 g5 a5 b5 a5 b5 d6 c6 b5 a5 g5 fs5 e5 d5 t c5 tie) #|32|# (3t c5 3s b4 tie b4 3t a4 tie t 3e g4 fs4 g4 d4 s. b3))) And finally, do the tonality map: (setf mapped-g (omn-to-time-signature (tonality-map g-tonality bomn1 :time '(4/8 2/8 4/8 2/8 3/4 4/8 2/8 4/8 2/8 4/8 2/8 3/4 4/8 2/8 3/4 4/8 2/8 3/4 4/8 2/8 3/4 4/8 2/8 3/4 4/8 2/8) :loop t ) '(3 4))) Ok, all of that works, but I'd like to use :map step when I create the tonality-map, and I can't figure out where to put that. It seems like it wants to be part of a list with, in my example, g-tonality, but I'm not seeing quite how to do it. Any tips would be greatly appreciated. Thanks!, Michael
  10. excellent, thank you so much. I've really loved beginning to learn this environment, and I appreciate the assistance. cheers
  11. Thank you so much, that's very useful!!! cheers, Michael
  12. As I've played around I hit on this, which works if the repetition is always the same number (it would obviously be nice to do this with cycles of numbers, etc)...and of course, I continue to be sure there's some much easier way to do this that I don't know about yet... ;;this helper function returns a list of lists one level deep (defun remove-nested (lst) (if (endp lst) 'nil (append (car lst) (remove-nested (cdr lst))))) ;;x is number of repetitions per bar (defun repeat-omn (lst x) (remove-nested (mapcar #'(lambda (n) (gen-repeat x (list n))) lst))) (setf rrh (repeat-omn rh 3))
  13. Hello, newbie question: I'd like to take an omn list and simply repeat each measure 3 times. If I start with the following code: (setf r-transitions1 '((e (e 1)(-e 3)) (-e (e 3)(-e 1)))) (setf marked (gen-markov-from-transitions r-transitions1 :size 120)) ;;conform to timesignature in omn format (setf r1 (length-span (gen-repeat 20 '8/8) marked :omn t)) ;;define the time signatures (setf timesigs (get-time-signature r1)) ;;stream of pitches (setf pitches '(c4 eb4 f4 g4 bb4 c5 eb5)) (setf pitches (chord-interval-add '(12) pitches)) ;;by spanning r1 onto pitches, pitches will repeat as needed (setf pitches (span r1 pitches)) (setf rh (make-omn :length r1 :pitch pitches)) and then try something like: (setf rrh (gen-repeat 3 rh)) ;or (setf rrh (gen-repeat '(3) rh)) neither gives me what I'm looking for. However, I notice that if I evaluate (setf rrh (gen-repeat 3 (list (first rh)))) then I get the correct result for the first measure. Therefore, doing something like this gets me what I was looking for: (setf rrh (gen-divide 8 (flatten (mapcar #'(lambda (n) (gen-repeat 3 (list n))) rh)))) But surely there's a better/simpler way to repeat bars in omn format. If anyone has insights, I'd be most appreciative. thanks, Michael
  14. oops, sorry to have missed that, and thanks!
  15. Hello, I'm aware of pcs-analysis (which prints data), but I'm looking for a way to collect lists of Forte-style interval vectors into a data structure in order to query them for similarity and difference. Something like: (get-interval-vector '3-1) -> (2 1 0 0 0 0) Is there an easy way to do this? thanks, Michael
  • Create New...