Jump to content

Opusmodus 1.2.21330


Recommended Posts

MIDI controller function:

 

gen-dynamic-controller omn-sequence &key scale loop

 

[Function]

 

Arguments and Values:

 

omn-sequence        omn-form sequence.

scale                         a floating point number from 0.1 to 2.0. The default is 1.0.

loop                      Nil or T. The T (true) will loop the scale list to the count

                                     of the lists in the sequence. The default is Nil.

 

Description:

 

The GEN-DYNAMIC-CONTROLLER function generates controller values from the omn-sequence dynamic symbols.

 

(setf omn

      '((h. eb4 pp tasto q g3 0<pp>0 ponte)

        (-e) (q gs4 fp tasto) (-s) (q a5 ffp)

        (-e) (q bb4 fffp) (-s) (q cs5 pf)

        (-s q. e5 fp -e.) (q cs5 p h. d5 pfp)

        (-q h. c5 pp) (h. gs3 0<ppp>0 ponte -e a4 p< tasto)

        (h. fs5 mp q bb3 0<pp>0 ponte)

        (q c5 p tasto h. e4 pfp) (-e)

        (q cs4 fp h d5 pp>pppp) (h. f4 pp>pppp)))

 

(gen-dynamic-controller omn)

=> ((36 3/4) (:asc-desc 0 36 1/256 1/4) (0 1/8) (80 1/64)

    (:desc 30 25 1/256 15/64) (0 1/16) (91 1/64)

    (:desc 47 25 1/256 15/64) (0 1/8) (102 1/64)

    (:desc 56 25 1/256 15/64) (0 1/16) (25 1/64)

    (:asc 30 80 1/256 15/64) (0 1/16) (80 1/64)

    (:desc 30 25 1/256 23/64) (0 3/16) (47 1/4)

    (:asc-desc 23 80 1/256 3/4) (0 1/4) (36 3/4)

    (:asc-desc 0 25 1/256 3/4) (0 1/8)

    (:asc 47 58 1/256 1/8) (58 3/4)

    (:asc-desc 0 36 1/256 1/4) (47 1/4)

    (:asc-desc 23 80 1/256 3/4) (0 1/8) (80 1/64)

    (:desc 30 25 1/256 15/64) (:desc 36 14 1/256 1/2)

    (:desc 36 14 1/256 3/4))

 

 This is the notation of the sequence, see above:

 

Screen Shot 2017-01-19 at 20.10.11.png

 

 

Audio:

Virtual Instrument: VSL: Violin Solo.

The dynamic controller values are sent to CC11: Expression 

 

 

 

 

Examples:

 

To scale up the controller values we set the :scale value higher than 1.0.  To scale down the controller values we set the :scale value lower than 1.0.

 

Here the scale value is 1.2:

 

(gen-dynamic-controller omn :scale 1.2)

=> ((43 3/4) (:asc-desc 0 43 1/256 1/4)

    (0 1/8) (96 1/64) (:desc 36 30 1/256 15/64)

    (0 1/16) (109 1/64) (:desc 56 30 1/256 15/64)

    (0 1/8) (122 1/64) (:desc 67 30 1/256 15/64)

    (0 1/16) (30 1/64) (:asc 36 96 1/256 15/64)

    (0 1/16) (96 1/64) (:desc 36 30 1/256 23/64)

    (0 3/16) (56 1/4) (:asc-desc 24 96 1/256 3/4)

    (0 1/4) (43 3/4) (:asc-desc 0 30 1/256 3/4)

    (0 1/8) (:asc 56 70 1/256 1/8) (70 3/4)

    (:asc-desc 0 43 1/256 1/4) (56 1/4)

    (:asc-desc 24 96 1/256 3/4) (0 1/8) (96 1/64)

    (:desc 36 30 1/256 15/64) (:desc 43 17 1/256 1/2)

    (:desc 43 17 1/256 3/4))

 

To add more control to the dynamic of the sequence we can set each bar (a list) with their own scale value.

In the example below the 4th value 1.0 will stay for all of the remaining bars (lists).

 

(gen-dynamic-controller omn :scale '(1.0 1.1 1.2 1.0))

 

Adding loop to the scale keyword we are looping the scale values to the count of the lists in the sequence:

 

(gen-dynamic-controller omn :scale '(1.0 1.1 1.2 1.0) :loop t)

 

;;;---------------------------------------------------------

;;; SCORE EXAMPLE

;;;---------------------------------------------------------

 

It is important to use the same omn-sequence data that you are using in the DEF-SCORE instrument instance.

 

(setf omn

      '((h. eb4 pp tasto q g3 0<pp>0 ponte)

        (-e) (q gs4 fp tasto) (-s) (q a5 ffp)

        (-e) (q bb4 fffp) (-s) (q cs5 pf)

        (-s q. e5 fp -e.) (q cs5 p h. d5 pfp)

        (-q h. c5 pp) (h. gs3 0<ppp>0 ponte -e a4 p< tasto)

        (h. fs5 mp q bb3 0<pp>0 ponte)

        (q c5 p tasto h. e4 pfp) (-e)

        (q cs4 fp h d5 pp>pppp) (h. f4 pp>pppp)))

 

GM sound set:

 

(def-score dynamic

           (:key-signature 'chromatic

            :time-signature (get-time-signature omn)

            :tempo 32

            :layout (violin-layout 'vln))

 

  (vln

   :omn omn

   :channel 1

   :sound 'gm

   :volume 127

   :program 'violin

   :controllers (11 (gen-dynamic-controller omn)))

  )

  

VSL sound set:

 

(def-score dynamic

           (:key-signature 'chromatic

            :time-signature (get-time-signature omn)

            :tempo 32

            :layout (violin-layout 'vln))

  

  (vln

   :omn omn

   :port 0

   :channel 1

   :sound 'vsl-violin-solo

   :volume 127

   :controllers (11 (gen-dynamic-controller omn)))

  )

 

---

best wishes,

Janusz

Link to comment
Share on other sites

  • opmo featured this topic
  • opmo unfeatured this topic
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy