Jump to content

Featured Replies

Posted

Here is a small project to explore pitch-mapping.  There are some results but not the best ones yet.  If anyone has an idea on how to improve this I would really appreciate the advice.  What would be ideal as the result would be the same musical list (and notation) but with the transformed pitches.  As you can see from the result, there are many changes and the result is not clean but rather seriously garbled instead! :smile:

 

The goal is to remap the pitch content of the original with a new tonality-map.  Here is the beginning attempt.  A confusing element is the return of NIL when parsing :articulation from the original material.

 

;;; Pitch mapping project idea

;;; Original musical sequence:

(setf alto-flute-orig
'(
(-q e b4 -e (-app e eb4 f4) h. eb4 (-acc e f4 eb4 f4))


(-3q 3q b4 -3q (-app e eb4 f4) q eb4 (-acc e f4) h eb4 (-acc e f4 a4 b4))

(-q e f5 -e (-app e b4 ds5) a4 (-app e. g4) a4 t b4 a4 b4 -e (-app e eb5) e f5) 

((acc e b4 d5 ds5) q. c5 (acc s f5) e. b4 (acc e c5 d5 ds5) e. a4 (acc e b4 a4) e b4)

(-q e b4 (app e f4 a4 f4) e b4 t g4 a4 eb4 a4 q. b4 (-acc e f4 a4) h bb4 t bb4 c5)  

(-e. b4 -e (acc a4 b4) h bb4 (app e c5) q b4 (acc e d5 ds5 e5) q. b4 (app e f4 bb4) s c5)

(-e gs5 3s a4 d4 gs4 -e. bb4 tie q bb4 (3e b4 a4 b4 -e -e))

((acc e a4 b4 fs4) h c5 (acc e b4) q c5 (acc e ds5 e5 fs5) 3e b4 c5 fs4 q a4 tie q a4 tie e. a4 s bb4 a4 e b4)

(-e (acc e eb4) h f4 tie e. f4 s gb5 -e (acc eb5 f5) e e5 tie q e5 tie 3q e5 3q e5 3q f5 3q b4 -3q -3q)

((acc e bb4 b4) a4 (acc e bb4) h a4 (acc e bb4) e a4 s gs5 -s)
)
)

 

;;;
;;; Disassemble OMN: There are some errors here - in particular for :articulation which seems to return NIL

(disassemble-omn alto-flute-orig)
(setf pit (omn :pitch alto-flute-orig))
(setf len (omn :length alto-flute-orig))
;;; next line result is confusing - returns nil
(setf art (omn :articluation alto-flute-orig))
;;; next line returns a result
(setf artr (omn :rest-articulation alto-flute-orig))

 

;;; Create 12-tone mapping and pitch transformation of original

(setf map '(0 1 3 4 7 8 10 11 17 18 21))
(setf mapping (integer-to-pitch map))
(create-tonality 12T2 '(0 1 3 4 7 8 10 11 17 18 21))
(setf output (tonality-map '(12T2 :root c3 :fixed t) pit))

 

;;; Assemble the parameters into a new OMN with transformed pitches

(make-omn 
 :length len
 :pitch output
 :articulation art
 :rest-articulation artr
)

;;; The result is unsuable so far.  There are some things to iron-out here! :-)

  • Author

A bit more with another kind of confusing result:

 

;;;
(def-case fragments

(2 '(-q e b4 -e (-app e eb4 f4) h. eb4 (-acc e f4 eb4 f4)))

(3 '(-3q 3q b4 -3q (-app e eb4 f4) q eb4 (-acc e f4) h eb4 (-acc e f4 a4 b4)))

(4 '(-q e f5 -e (-app e b4 ds5) a4 (-app e. g4) a4 t b4 a4 b4 -e (-app e eb5) e f5))

(5 '((acc e b4 d5 ds5) q. c5 (acc s f5) e. b4 (acc e c5 d5 ds5) e. a4 (acc e b4 a4) e b4))

(6 '(-q e b4 (app e f4 a4 f4) e b4 t g4 a4 eb4 a4 q. b4 (-acc e f4 a4) h bb4 t bb4 c5)) 

(otherwise '(-e. b4 -e (acc a4 b4) h bb4 (app e c5) q b4 (acc e d5 ds5 e5) q. b4 (app e f4 bb4) s c5))) 


(setf v1 '(1 2 3 4 5 6))
(setf p1 (flatten (gen-eval 16 '(rnd-order v1))))
(setf p1_s (remove-duplicates p1))
(setf p1_out (fragments p1_s))

(setf mat (fragments '(2)))
(setf mat1 (pitch-transpose -12 (omn :pitch mat)))

(setf pit (omn :pitch mat))
(setf len (omn :length mat))
(setf art (omn :articulation mat))
(setf artr (omn :rest-articulation mat))

(make-omn
:pitch mat1
:length len
:articulation art
:rest-articulation artr
)

 

There is an notation result as a snippet but...as it is, it is not playable as a snippet.  

 

Error: division-by-zero detected
>        performing / on (1/16 0)
> While executing: ccl::divide-by-zero-error, in process Listener-2(7).

 

 

There are also some notational issues.

 

It seems that parsing articulation and the manner in which this is notated in OMN is part of the problem.  It may be better to consider composing out the small notes, the appoggiaturas and such with precise note values. (?).

 

Like this:

 

'(-q e b4 -e t eb4 f4 h. eb4 t f4 eb4 f4)
'(-q -3q 3q b4 -3q t e4 f4 q e4 t f4 h eb4 t f4 a4 b4)
'(-q f5  -e t b4 cs5 q. a4 t g4 e a4 tie t a4 b4 a4 b4 -e t eb5 e f5)
'(-e t b4 d5 ds5 q. c5 t f5 e. b4 tie t c5 d5 ds5 s a4 tie q a4 tie e a4 t b4 a4 s b4 -s)
'(-e b4 t f4 a4 f4 e b4 -e t g4 a4 eb4 a4 e b4 tie q b4 t f4 a4 h bb4 t bb4 c5 -e.)
'(b4 -e a4 b4 h bb4 t c5 q bb4 t d5 ds5 e5 q b4 tie e. b4 t f4 bb4 s c5 -e)
'(e gs5 3e a4 d5 gs4 e. bb4 tie h bb4)

  • Author

Thanks!  I will try, though not really sure how...yet...:smile:

  • Author

Super helpful...thanks, I will look into this editorial aspect.

Create an account or sign in to comment


Copyright © 2014-2025 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy