Jump to content
Sign in to follow this  
AM

changing pan in every event

Recommended Posts

dear all

 

is there a possibility to change the PAN in every EVENT?

1)

like '((q c4 mp pan-30) (e c3 pp pan100))  

would be interesting for LIVE-CODING

is there something predifined? like it will come up with microtonality/tuning

 

2)

and why does it work with simple-midi-sound (a list in :pan) and not with a player like conTimbre (there is something i don't understand with midi/players/etc)?

 

thanx for a  hint

andré

 

an example:

(setf omn '((5q c4 5q 5q 5q 5q 5q 5q 5q) 
            (-q)
            (e e e e e) 
            (-q)
            (7q 7q)
            (3q 3q) 
            (-q)
            (5q 5q 5q) 
            (7q 7q) 
            (3q 3q 3q 3q) 
            (e e) 
            (-q)
            (3q 3q 3q 3q 3q) 
            (e e e e e)))

;;;

(def-score signature
           (:title "signature"
                   :key-signature 'atonal   
                   :time-signature '(4 4) 
                   :tempo 60)
  (instr
   ;:port 0 
   :omn (omn-replace :velocity (pick-norepeat 100 '(pppp ppppp ppp ppp pp p)) (length-diminution 4 (gen-repeat 10 omn)))
   :tuning (gen-white-noise 100 :scale 0.1)
   :pan '(1 1 1 1 1 1 1 1 10 30 1 1 1 100 100 80 77 15 100 100 100)
   :channel 1
   :sound 'gm-trumpet))
 

 

Share this post


Link to post
Share on other sites

The PAN is changing on every event:

(def-score pan-test
           (:key-signature 'atonal   
            :time-signature '(4 4) 
            :tempo 60)
  (instr
   :omn '(q c4 d4 e4 f4 g4 a4 b4)
   :tuning '(.5 .33 0 -.5 0 .5 0 0)
   :pan '(1 127 1 127 1 127 64)
   :channel 1
   :program 'violin
   :sound 'gm))

If the conTimbre is not changing the PAN on every event then there is a bug in conTimbre midi listener.

Share this post


Link to post
Share on other sites

"then there is a bug in conTimbre midi listener"... okay i will tell thomas hummel

 

thanks

Share this post


Link to post
Share on other sites

Example with time PAN:

(def-score pan-test2
           (:key-signature 'atonal   
            :time-signature '(4 4) 
            :tempo 60)
  (instr
   :omn '(h c4 d4 e4 f4 g4 a4 b4)
   :tuning '(.5 .33 0 -.5 0 .5 0 0)
   :pan (gen-controller 7/4 (gen-sine 12 7 1) :time '(1/8 1/4 1/8 1/16))
   :channel 1
   :program 'violin
   :sound 'gm))

or

(def-score pan-test3
           (:key-signature 'atonal   
            :time-signature '(4 4) 
            :tempo 60)
  (instr
   :omn '(h c4 d4 e4 f4 g4 a4 b4)
   :tuning '(.5 .33 0 -.5 0 .5 0 0)
   :pan '((:desc-asc 127 0 1/32 2)
          (:asc 34 127 1/32 2) (127 1) (0 1))
   :channel 1
   :program 'violin
   :sound 'gm))

 

Tell Thomas Kummel to make a Kontakt player version.

Share this post


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.

Sign in to follow this  

  • Similar Topics

    • By AM
      greetings
      andré
       
      ;;; --------------------------------------------------------------------------------------------------- ;;; because i'm working with numbered-events (to have some more control) i has to code ;;; a specific tranposition-function, which is transposing on specific spans/positions ;;; --------------------------------------------------------------------------------------------------- ;;; SUB (defun and-span (n a b) (and (>= n a) (<= n b))) ;;; MAIN (defun transpose-on-event-number (omn-list &key positions/transpose-list) (loop for i in (single-events omn-list) for cnt = 0 then (incf cnt) with position-list = (loop for x in positions/transpose-list collect (car x)) with transpose-list = (loop for y in positions/transpose-list collect (rest y)) with cnt2 = 0 when (and (and-span cnt (car (nth cnt2 position-list)) (cadr (nth cnt2 position-list))) (not (length-restp (car (omn :length i))))) collect (pitch-transpose-n (nth cnt2 transpose-list) i) else collect i when (and (= cnt (cadr (nth cnt2 position-list))) (< cnt (cadar (last position-list)))) do (incf cnt2))) ;;; ZERO-based (like in lisp) (transpose-on-event-number '(q g4 -q q g4 g4 g4 g4 g4 g4 g4 g4) :positions/transpose-list '(((0 5) 1) ((6 7) -3) ((8 9) 12))) => ((q gs4 mf) (-q) (q gs4 mf) (q gs4 mf) (q gs4 mf) (q gs4 mf) (q e4 mf) (q e4 mf) (q g5 mf) (q g5 mf))  
    • By AM
      the same idea with INSERT/REPLACE
       
      (defun replace-on-event-number (omn-list &key position/list (type 'replace) (output nil)) (progn (setf omn-list (loop for i in (single-events omn-list) for cnt = 0 then (incf cnt) with position-list = (loop for x in position/list collect (car x)) with list = (loop for y in position/list collect (rest y)) with cnt2 = 0 when (= cnt (nth cnt2 position-list)) collect (cond ((equal type 'replace) (if (listp (nth cnt2 list)) (flatten (nth cnt2 list)) (nth cnt2 list))) ((equal type 'add) (list i (nth cnt2 list)))) else collect i when (and (= cnt (nth cnt2 position-list)) (< cnt (car (last position-list)))) do (incf cnt2))) (if (equal output 'flatten) (flatten omn-list) omn-list))) ;;; EXAMPLES REPLACE (replace-on-event-number '(q g4 -q q g4 g4 g4 -q g4 g4 g4 g4) :position/list '((1 (q g5d5)) (5 -q)) :type 'replace) => ((q g4 mf) (q g5d5) (q g4 mf) (q g4 mf) (q g4 mf) (-q) (q g4 mf) (q g4 mf) (q g4 mf) (q g4 mf)) (replace-on-event-number '(q g4 -q q g4 g4 g4 -q g4 g4 g4 g4) :position/list '((1 (q g5d5)) (5 -q)) :type 'replace :output 'flatten) => (q g4 mf q g5d5 q g4 mf q g4 mf q g4 mf -q q g4 mf q g4 mf q g4 mf q g4 mf) ;;; EXAMPLES ADD (replace-on-event-number '(q g4 -q q g4 g4 g4 -q g4 g4 g4 g4) :position/list '((1 -e.) (5 -w)) :type 'add :output nil) => ((q g4 mf) ((-q) (-e.)) (q g4 mf) (q g4 mf) (q g4 mf) ((-q) (-w)) (q g4 mf) (q g4 mf) (q g4 mf) (q g4 mf)) (replace-on-event-number '(q g4 -q q g4 g4 g4 -q g4 g4 g4 g4) :position/list '((1 (w g6 ffff)) (5 -w)) :type 'add :output 'flatten) => (q g4 mf -q w g6 ffff q g4 mf q g4 mf q g4 mf -q -w q g4 mf q g4 mf q g4 mf q g4 mf) ;;;;  
    • By torstenanders
      How is it possible to change the MIDI output channel of an instrument? For example, when writing for organ, you have two staffs for the right and left hand, but hands can change manuals, and this is best represented by different MIDI channels. Is there a way to define articulations that result in changing the MIDI channel?
       
      Thanks!
       
      Best,
      Torsten
×
×
  • Create New...