Jump to content

How may i retrieve modes from libraries

Recommended Posts

With Plist

(library 'metrons-middle-eastern '8-metrons 'Ghuriyaneh)


With in OMN (no quotes) list.
(library metrons-middle-eastern 8-metrons Ghuriyaneh)


Expand library
(expand-libraries '(library metrons-middle-eastern 8-metrons Ghuriyaneh))


Generate lengths
(gen-length (library 'metrons-middle-eastern '8-metrons nil :random 10) '(s))
(gen-length (library 'metrons-lib '24-metrons nil :random 10) '(s))


Link to comment
Share on other sites


(library 'modes 'major 'major)
=> major

(expand-libraries '(library modes major major))
=> major
I stumbled over the same problem: How can I retrieve the mode pitches from a library?
When I evaluate the given examples they return only the name of the mode but I want e.g. (c4 d4 e4 f4 g4 a4 b4). 
I assume I have to enter a starting pitch and make a call :pitch, but how 
exactly does it work ? 
Link to comment
Share on other sites

In Opusmodus Scores examples folder, you have a score named: Using Modes Library.


i provide it here for quicker reference:

;;; Using modes library example

;; Vector generation
(setf vector (vector-smooth 0.31 (gen-white-noise 128)))

;; Transform vector values in pitches
(setf pch1 (vector-to-pitch '(c4 e5) vector))
(setf pch2 (gen-rotate 6 pch1)) 
(setf pch3 (gen-rotate 12 pch1))
(setf pch4 (gen-rotate 18 pch1))

;; Number of bars
(setf size 24)

;; Pick some random modes in modes library
;; based on mode-struct list.
(setf mod-struct-list
       (gen-trim size (vector-round 1 4 vector))))

(setf modes-list
      (library 'modes 'messiaen nil
               :collect mod-struct-list))

;; Choice of fundamentals for modal path from vector
(setf fund (vector-map '(d4 e4 f4 g4 a4) vector))

;; Modal path
(setf path (tonality-series modes-list :root fund))

;; Rythmic structures generation
(setf number-of-rythmic-motives 3)

(setf rylist (binary-length-map 
               number-of-rythmic-motives 12 2 12) 'e))

;; Rhythmic rotation and add rest
(setf r1 (length-rest-weight '(3 1) (rnd-sample size rylist)))
(setf r2 (gen-rotate -1 r1))
(setf r3 (gen-rotate -2 r1))
(setf r4 (gen-rotate -3 r1))

;; Velocity from vector
(setf master-vel (mclist (vector-to-velocity 'p 'f vector)))

;; Articulation from vector with rotation on each voices
(setf artbase (vector-map 
               '((leg) (stacc) (marc) (ten))
               (gen-trim size vector)))

(setf art1 artbase)
(setf art2 (gen-rotate -1 artbase))
(setf art3 (gen-rotate -2 artbase))
(setf art4 (gen-rotate -3 artbase))

;; OMN assembly
(setf omn1 (make-omn 
            :pitch pch1
            :length r1
            :velocity master-vel
            :articulation art1))

(setf omn2 (make-omn 
            :pitch pch2
            :length r2
            :velocity master-vel
            :articulation art2))

(setf omn3 (make-omn 
            :pitch pch3
            :length r3
            :velocity master-vel
            :articulation art3))

(setf omn4 (make-omn 
            :pitch pch4
            :length r4
            :velocity master-vel
            :articulation art4))

;; Apply harmonic path
(setf oh1 (tonality-map path omn1)) 
(setf oh2 (tonality-map path omn2))
(setf oh3 (tonality-map path omn3))
(setf oh4 (tonality-map path omn4))

;; Ambitus control
(setf p1 (ambitus '(g4 c6) oh1))
(setf p2 (ambitus '(c4 c5) oh2))
(setf p3 (ambitus '(c3 a4) oh3))
(setf p4 (ambitus '(c2 c3) oh4))

;;; -------------------- SCORE
(def-score modes-lib
            :key-signature '(c maj)
            :time-signature '(12 8)
            :title "Modes-lib-example"
            :composer "S.Boussuge"
            :copyright "Copyright © 2014 S.Boussuge"
            :tempo '(q. 92)
            :layout (bracket-group
                     (flute-layout 'flute)
                     (oboe-layout 'oboe)
                     (clarinet-layout 'clarinet)
                     (bassoon-layout 'bassoon))

 :omn p1
 :channel 1
 :sound 'gm
 :program 'flute)

 :omn p2
 :channel 2
 :program 'oboe)

 :omn p3
 :channel 3
 :program 'clarinet)

 :omn p4
 :channel 4
 :program 'bassoon)


Link to comment
Share on other sites

Thanks for the example.

What I'am looking for ist how to transform the content of  (:section messiaen messiaen-mode1 'messiaen-mode1) into something like 

(c4 d4 e4 fs4 gs4 bb4) to see if this is meant by 'messian-mode1, I know by chance what messiaen mode1 presumably is but I'am lost about  (:section peruvian peruvian-pentatonic1 'peruvian-pentatonic1) for example..



Link to comment
Share on other sites

Which document I should read?

I read already modes.opmo and library.opmo and Using Modes Library.opmo (with Stephane pasted me in the forum)..

none of these files answer my simple question:

When I evaluate

(library 'slonimsky 'tritone 's10d)
=> (c5 b4 gs4 fs4 f4 d4)


(library 'modes 'pentatonic 'pentatonic)
=> pentatonic
..instead of pitches. Can someone please give a simple example how one can get pitches from the modes library- than I probably can explore it further myself
Link to comment
Share on other sites

The output you get is correct.

s1u = '(c4 cs4 fs4 g4)

(def-library slonimsky
   (:section tritone
              s1u '(c4 cs4 fs4 g4)
              s1d '(c5 g4 fs4 cs4)
              s2u '(c4 d4 fs4 gs4)
              s2d '(c5 gs4 fs4 d4)
              s3u '(c4 e4 fs4 as4)
              s3d '(c5 as4 fs4 e4) 

In modes library acoustic-scale = acoustic-scale.

Modes library is made for TONALITY-MAP or TONALIT-SERIES functions.

(def-library modes
  (:section acoustic
            acoustic-scale 'acoustic-scale
            anhemitonic-hexatonic 'anhemitonic-hexatonic
            heptonia-seconda 'heptonia-seconda
            modus-conjunctus 'modus-conjunctus
            protus-authentus 'protus-authentus
            pelog 'pelog
            pyramid-hexatonic 'pyramid-hexatonic
            symmetrical-decatonic 'symmetrical-decatonic
            synthetic-mixture-s5 'synthetic-mixture-s5)

Opusmodus version 1.0.15710 allows you to do what you are looking for:

(expand-chord-name (library 'modes 'pentatonic 'pentatonic) :type :pitch)
=> (c4 d4 f4 g4 a4)

(expand-chord-name (library 'modes 'messiaen 'messiaen-mode1) :type :pitch)
=> (c4 d4 e4 fs4 gs4 bb4)


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use Privacy Policy