Jump to content

Opusmodus 1.2.20920


Recommended Posts

New:

 

ambitus-field range sequence &key section exclude omn

 

[Function]

 

Arguments and Values:

 

range                                  an integer (low high), a pitch symbol (low high) or instrument-name.

sequence                           a list or lists of pitches or omn sequence.

section            an integer or list of integers. Selected list or lists to process.

                                             The default is NIL.

exclude            an integer or list of integers. Excluded list or lists from process.

                                             The default is NIL.

omn                                      NIL or T. If true force OMN style output. The default is NIL.

 

Description:

 

The AMBITUS-FIELD function can be used to compress or expand the field of a given series of pitches to a specific range (ambitus). 

 

(ambitus-field '(0 24) '(c4 d4 e4 f4 g4 a4 b4))

=> (c4 e4 a4 b4 eb5 gs5 c6)

 

(ambitus-field 'violin '(c4 d4 e4 f4 g4 a4 b4))

=> (g3 e4 c5 f5 d6 bb6 g7)

 

Examples:

 

(setf omn

      '((h e4f5 p c5a4) (h b3d3 gs4eb2fs3) (h bb2g5cs5 gs4d4eb2)

        (w bb2 mp) (h g3f4cs5 p c5) (h fs5a5b3 e4b3) (h bb2)

        (w e2eb4) (h c5cs6 a5) (h f4g3 gs4d3) (h fs5 bb2fs5g3)

        (h d3e5eb4 gs4) (h a2c6 f2) (h b0 cs6c5) (h gs4d3)))

 

Screen Shot 2016-11-17 at 11.59.22.png

 

(ambitus-field '(-6 12) omn)

=> ((h fs3c5 p f4cs4) (h fs4cs4 p c5fs3eb4) (h a3c5a4 p g4e4fs3)

    (w bb2 mp) (h fs3e4c5 p b4) (h bb4c5fs3 p bb3fs3) (h bb2 p)

    (w fs3c5 p) (h fs3c5 p fs4) (h a4b3 p c5fs3) (h c5 p fs3c5b3)

    (h fs3c5eb4 p fs4) (h gs3c5 p fs3) (h fs3 p c5gs4) (h c5fs3 p))

 

Screen Shot 2016-11-17 at 12.01.59.png

 

(ambitus-field '(-6 0) omn)

=> ((h fs3c4 p bb3gs3) (h bb3gs3 p c4fs3a3) (h g3c4b3 p bb3a3fs3)

    (w bb2 mp) (h fs3a3c4 p c4) (h b3c4fs3 p g3fs3) (h bb2 p)

    (w fs3c4 p) (h fs3c4 p bb3) (h b3gs3 p c4fs3) (h c4 p fs3c4gs3)

    (h fs3c4a3 p bb3) (h g3c4 p fs3) (h fs3 p c4b3) (h c4fs3 p))

 

Screen Shot 2016-11-17 at 12.02.43.png

 

 

(ambitus-field '(-24 36) omn)

=> ((h c2c7 p cs5b3) (h f5b3 p c7c2g4) (h bb2c7eb6 p gs5bb4c2)

    (w bb2 mp) (h c2a4c7 p a6) (h e6c7c2 p d3c2) (h bb2 p)

    (w c2c7 p) (h c2c7 p fs5) (h d6f3 p c7c2) (h c7 p c2c7f3)

    (h c2c7fs4 p fs5) (h fs2c7 p c2) (h c2 p c7b5) (h c7c2 p))

 

Screen Shot 2016-11-17 at 12.03.15.png

 

With field series:

 

(ambitus-field '((-5 16) (-4 17) (-3 18) (-1 19)

                 (1 22) (6 26) (12 32) (12 32)

                 (12 32) (6 26) (1 22) (-1 19)) omn)

 

=> ((h g3e5 p gs4eb4) (h bb4e4 p f5gs3g4) (h cs4fs5eb5 p c5a4a3)

    (w bb2 mp) (h cs4cs5bb5 p a5) (h b5d6fs4 p b4fs4) (h bb2 p)

    (w c5gs6 p) (h c5gs6 p d6) (h b5c5 p d6fs4) (h bb5 p cs4bb5g4)

    (h b3g5a4 p cs5) (h a3e5 p g3) (h gs3 p f5cs5) (h fs5a3 p))

 

Screen Shot 2016-11-17 at 12.43.52.png

 

_____________________________________________________________________

 

AMBITUS is working with range series now:

 

(setf range

      (gen-ambitus-series

       '(-30 42)

       (vector-smooth 0.2 (gen-white-noise 15 :seed 23))

       (vector-smooth 0.2 (gen-white-noise 15 :seed 24))))

=> ((8 27) (8 27) (-3 13) (-11 5) (17 42) (14 24)

    (25 42) (-7 24) (-30 0) (-30 -15) (-11 -5)

    (16 26) (21 28) (3 39) (-16 29))

 

(ambitus range omn)

 

Screen Shot 2016-11-17 at 16.13.33.png

 

 

AMBITUS-SERIES function is not part of the system anymore.

Use AMBITUS function instead.

 

_____________________________________________________________________

 

integer-normalize integers min max low high

 

[Function]

 

Arguments and Values:

 

integers            a list or lists of integers.

min                a number

max                a number

low                a number

high                a number

 

Description:

 

The INTEGER-NORMALIZE function normalizes a list of integers into min-max range to the low-high range.

 

(integer-normalize '(1 3 5 7) 0 24 0 36)

=> (2 4 8 10)

 

Example:

 

(integer-normalize '(1 2 5 3 4 7 3) 0 24 0 46)

=> (2 4 10 6 8 13 6)

 

(integer-normalize '(3 (4 7 3)) 0 24 12 46)

=> (16 (18 22 16))

 

(integer-normalize '(3 (4 7 3)) 0 45 12 46)

=> (14 (15 17 14))

 

(integer-to-pitch

 (integer-normalize '((1 2 5 3) (4 7 3)) 0 24 0 46))

=> ((d4 e4 bb4 fs4) (gs4 cs5 fs4))

 

_____________________________________________________________________

 

More optimisation and minor bug fixes.

 

In the Score Examples/Piano documents you will find a short score 'Fields.opmo' which demonstrate the new AMBITUS-FIELD function.

Link to post
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.

Guest
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