• entries
5
10
• views
5,204

# Short example of tendency masking

1,244 views

Tendency masking is first described by the composer G.M. Koenig.

It is a random selection between two envelope based boundaries.

I have tried to reproduce here this technique for pitch and length selection in a very simple way.

```;;; First, boundary description
(setf highb (gen-palindrome '(6 6 6 7 8 8 9 10 10 11 12 13 14 15 16 16 16)))
(setf lowb (gen-palindrome '(6 6 6 5 4 4 3 3 3 2 2 2 2 1 1 1 1)))

;;; Plotting
(list-plot (list highb lowb) :join-points t)

;;; Random pitch selection between boundary
(setf pitch (integer-to-pitch
(mapcar (lambda (x y) (rnd-range x y)) highb lowb)))

;;; Random length selection between boundary
(setf len  (vector-to-length
'1/16
1 8
(mapcar (lambda(x y) (rnd-range x y)) highb lowb)))

;;; OMN Assembly
(setf phrase (make-omn
:pitch pitch
:length len))```

SB.

Thank you for this Stephane!  I find it quite interesting!

Thank you Stephane! How would it be possible to use it as a filter of an already existing set of pitches and replace the out-of-boundary values with pauses?

```;;; First, boundary description
(setf amb (gen-ambitus-series '(-30 42)
(vector-smooth 0.2 (gen-white-noise 12 :seed 23))
(vector-smooth 0.2 (gen-white-noise 12 :seed 24))))

;;; Generating the pitch set for apply filtering on it.

(setf some-mat (make-omn
:pitch (rnd-sample 256 (make-scale 'c2 48))
:length (euclidean-rhythm (gen-repeat 32 12)
1 12 's :type 2)
))

;; Filtering
(setf p1 (mapcar (lambda(x) (ambitus-filter x some-mat)) amb)) ```

SB.

## Join the conversation

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

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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

×
×

• Lessons