# mapping integer?

## Recommended Posts

hi all,

what is the OPMO-function to map an integer-seq like (11 22 9 4 3 1 10 21 23 20 8 0 13 6 24 16 7 14 17 19 2 18 15 5 12) to a scale -> 0 has to be lowest pitch of the scale etc...

no problem to solve it via LISP-code, but what is the correct OPMO-function to map it on TONALITIES?

thanx

andré

##### Share on other sites

tonality-map ?

```(setf seq1 '(c4 cs4 d4 ds4 e4 f4 fs4 g4 gs4 a4 as4 b4))
(tonality-map '(major) seq1)
=> (c4 c4 d4 d4 e4 f4 f4 g4 a4 a4 a4 b4)```

##### Share on other sites

in LISP

```(loop for i in '(0 1 2 3 4 2 1 5 3 1)
collect (nth i (expand-tonality '(c4 messiaen-mode5))))```

##### Share on other sites

I love your loops, André !

Best,

Julio

##### Share on other sites

i coded a function now, that maps all integers to all TONALITIES, like i want it...

SORTING OLIVIER's MODI and going crazy

```

;;; SUB

(defun multiple-expand-tonality (&key startpitch octaves tonality)
(remove-duplicates ;remove is for "cutting" if there are too much pitches (OMN loops last octave!)
(loop repeat octaves
with pitch = startpitch
with cnt = 0

when (= cnt (length tonality))
do (setq cnt 0)

append (expand-tonality (list pitch (nth cnt tonality)))
do (incf cnt)
do (setq pitch (car (pitch-transpose 12 (list pitch)))))))

;;; MAIN

(defun integer-to-tonality (seq tonality &key (startpitch 'c4))
(progn
(if (not (pitchp (car tonality)))
(setf tonality (multiple-expand-tonality :startpitch startpitch
:octaves 8
:tonality tonality))
tonality)

(loop for i in seq
collect (nth i tonality))))

;;;;;;;;;;;;;

(setf seq (flatten (gen-sort  (rnd-order (gen-integer 24) :seed 49) :type 'selection)))

(def-score example-score
(:key-signature 'atonal
:time-signature '(4 4)
:tempo 90
:layout (piano-solo-layout 'rhand 'lhand))

(rhand :omn (make-omn :pitch (integer-to-tonality seq
'(messiaen-mode4
messiaen-mode5
messiaen-mode6)
:startpitch 'c4)

:length (gen-repeat (length seq) 't)))

(lhand :omn (make-omn :pitch (integer-to-tonality (x+b seq 3) ; transp integer-seq
'(messiaen-mode3
messiaen-mode1
messiaen-mode2)
:startpitch 'c2)

:length (gen-repeat (length seq) 't))))```

##### Share on other sites

With vector-map function, you can map anything:

`(vector-map (expand-tonality '(c4 messiaen-mode5)) '(0 1 2 3 4 2 1 5 3 1))`

SB.

##### Share on other sites

More praises and likes to you, guys !!

Best !

Julio

##### Share on other sites

thanks stephane! it seems that's the function i was looking for ... but not exaxtly... seems not to work "with integers larger then highest scale-pitch" (only in 1 octave?)

``` (vector-map (expand-tonality '(c4 messiaen-mode5)) '(0 12 13 14 1 2 3 4 2 1 5 3 1))
=> (c4 g4 b4 b4 c4 cs4 cs4 cs4 cs4 c4 f4 cs4 c4)```

with my function - the whole range possible, also with "mixed" toanlities

```(setf seq (flatten (gen-sort (rnd-order (gen-integer 24) :seed 49) :type 'selection)))

(integer-to-tonality seq '(messiaen-mode4
messiaen-mode5
messiaen-mode6)
:startpitch 'c4)

=> (fs5 c7 cs5 fs4 f4 cs4 f5 b6 cs7 as6 c5 c4 b5 gs4 d7 e6 b4 c6 f6 gs6 d4 fs6 d6 g4 g5 c4 c7 cs5 fs4 f4 cs4 f5 b6 cs7 as6 c5 fs5 b5 gs4 d7 e6 b4 c6 f6 gs6 d4 fs6 d6 g4 g5 c4 cs4 cs5 fs4 f4 c7 f5 b6 cs7 as6 c5 fs5 b5 gs4 d7 e6 b4 c6 f6 gs6 d4 fs6 d6 g4 g5 c4 cs4 d4 fs4 f4 c7 f5 b6 cs7 as6 c5 fs5 b5 gs4 d7 e6 b4 c6 f6 gs6 cs5 fs6 d6 g4 g5 c4 cs4 d4 f4 fs4 c7 f5 b6 cs7 as6 c5 fs5 b5 gs4 d7 e6 b4 c6 f6 gs6 cs5 fs6 d6 g4 g5 c4 cs4 d4 f4 fs4 g4 f5 b6 cs7 as6 c5 fs5 b5 gs4 d7 e6 b4 c6 f6 gs6 cs5 fs6 d6 c7 g5 c4 cs4 d4 f4 fs4 g4 gs4 b6 cs7 as6 c5 fs5 b5 f5 d7 e6 b4 c6 f6 gs6 cs5 fs6 d6 c7 g5 c4 cs4 d4 f4 fs4 g4 gs4 b4 cs7 as6 c5 fs5 b5 f5 d7 e6 b6 c6 f6 gs6 cs5 fs6 d6 c7 g5 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 as6 cs7 fs5 b5 f5 d7 e6 b6 c6 f6 gs6 cs5 fs6 d6 c7 g5 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 cs7 fs5 b5 f5 d7 e6 b6 c6 f6 gs6 as6 fs6 d6 c7 g5 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 b5 cs7 d7 e6 b6 c6 f6 gs6 as6 fs6 d6 c7 g5 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 cs7 d7 e6 b6 c6 f6 gs6 as6 fs6 d6 c7 b5 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 d7 e6 b6 c6 f6 gs6 as6 fs6 d6 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 e6 b6 d7 f6 gs6 as6 fs6 d6 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 b6 d7 f6 gs6 as6 fs6 e6 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 e6 d7 f6 gs6 as6 fs6 b6 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 e6 f6 d7 gs6 as6 fs6 b6 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 e6 f6 fs6 gs6 as6 d7 b6 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 e6 f6 fs6 gs6 as6 b6 d7 c7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 e6 f6 fs6 gs6 as6 b6 c7 d7 cs7 c4 cs4 d4 f4 fs4 g4 gs4 b4 c5 cs5 f5 fs5 g5 b5 c6 d6 e6 f6 fs6 gs6 as6 b6 c7 cs7 d7)```

##### Share on other sites

There is an internal function which expand any scale (a sequence) to a total octaves span with ambitus from -60 to 67.
I will make a document for it.

## 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.

×
×
• #### Browser

• Video Gallery

• Lessons