opmo Posted November 17, 2016 Share Posted November 17, 2016 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))) (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)) (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)) (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)) 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)) _____________________________________________________________________ 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) 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. lviklund 1 Link to comment Share on other sites More sharing options...
Recommended Posts