October 10, 201510 yr Hi,In Symbolic Composer (SCOM), there is a mechanism to keep the tonality (scale) and symbols separately and combine them to form actual pitches. Is something like that possible in Opusmodus?Regards,Rangarajan
October 10, 201510 yr you can have a look to the function TONALITY-MAP in opusmodus documentation. You can also find some example here on my blog (but, sorry, in French...): http://opusmodus.com/forums/blogs/entry/25-quelques-bases-concernant-lusage-du-système-de-tonalité-dopusmodus/ SB.
October 12, 201510 yr Author Hi Stephane,I looked at tonality-map as you suggested. It is a powerful function, but it is not clear that it matches my requirement. I need to generate a set of pitches within a given scale. And if I change the scale, the pitches must change too. This was straightforward in SCOM. Are there any examples where something like this is done in opusmodus (sorry, I can't follow French)? Another related question: how do I access the different built in scales? A search for "tonality" gives a result that has the names of all tonalities, but I do not know how to use them.Thanks for your help.Regards,Rangarajan
October 12, 201510 yr Hi Rangarajan, you can apply a tonality to some pitches like this: (setf my-pitches '(c4 d4 e4 f4 a4 g4 e5 d5 c5 b5 g5)) (setf my-pitches-mapped (tonality-map '(acoustic-scale) my-pitches)) ;; apply more than one tonality on several lists of pitches (setf my-pitches2 (gen-repeat 8 '((c4 d4 f4 e4 a4 d5 c5 g5) (f5 e5 c5 a4 g4 d4 e4 c4)))) ;; create a serie of tonality changes (setf my-scales-path (tonality-series '(acoustic-scale lydian dorian messiaen-mode3 ) :root '(d4 f4 e4 a4))) (setf my-pitch-mapped2 (tonality-map my-scales-path my-pitches2)) ;; it works also directly with OMN (setf some-omn-stuff (make-omn :pitch (integer-to-pitch (rnd-number 8 0 16)) :length (gen-tuplet 1 1 '? '? 'w '(3 7 5 6 4 11)) :velocity '((pp) (f) (mf) (mp)) :articulation '((stacc) (nil) (marc) (nil)) )) (setf omn-stuff-remapped (tonality-map my-scales-path some-omn-stuff)) ;; it is just a very small example ;; but the tonality-map and tonality-series functions ;; have lot of more possibility, really. It is a whole universe of possibility. ;; You can have a look to the docs of both of this functions. Cheers Stéphane
October 14, 201510 yr Author Hi Stephane, Thanks very much for the detailed example. I am looking for functionality as follows: (tonality-map '(major :root c4) '(0 1 2 3)) => (c4 d4 e4 f4) (tonality-map '(natural-minor :root c4) '(0 1 2 3)) => (c4 d4 eb4 f4) At present TONALITY-MAP works only with absolute pitches (as I understand). I think it would be useful to apply it on integer sequence as I have outlined. Is there a way to do the above at present? Regards, Rangarajan
October 14, 201510 yr Here it is: (setf pitch (integer-to-pitch '(0 1 2 3))) (tonality-map '(major :root c4 :shift t) pitch) => (c4 d4 e4 f4) (tonality-map '(natural-minor :root c4 :shift t) pitch) => (c4 d4 eb4 f4)
Create an account or sign in to comment