Example 9.13. 2 Part Polyphony
(defparameter *part* (new fms:part :instr :piano :partid 'pno)) (defun polygen (voice len minp maxp) (process repeat len output (new fms:note :off (now) :voice voice :partid 'pno :note (between minp maxp) :dur 1/2) wait 1/2)) (events (list (polygen 1 20 60 80) (polygen 2 20 40 60)) "/tmp/fomus.ly" :parts *part* :view t)
Example 9.14. 2 Part Polyphony (FOMUS Chooses the Voice)
(defparameter *part* (new fms:part :instr '(:piano :simultlim 1) :partid 'pno)) (defun polygen (voice len minp maxp) (process repeat len output (new fms:note :off (now) :voice voice :partid 'pno :note (between minp maxp) :dur 1/2) wait 1/2)) (events (list (polygen '(1 2) 20 50 80) (polygen '(1 2) 20 40 70)) "/tmp/fomus.ly" :parts *part* :view t)
Example 9.15. 3 Part Polyphony
(defparameter *part* (new fms:part :instr '(:piano :simultlim 1) :partid 'pno)) (defun polygen (voice len minp maxp) (process repeat len output (new fms:note :off (now) :voice voice :partid 'pno :note (between minp maxp) :dur 1/2) wait 1/2)) (events (list (polygen '(1 2 3) 20 50 70) (polygen '(1 2 3) 20 50 70) (polygen '(1 2 3) 20 50 70)) "/tmp/fomus.ly" :parts *part* :view t)
Example 9.16. 6 Part Polyphony
(defparameter *parts* (list (new fms:part :name "Violin 1" :instr :violin :partid 'vlns :props '((:distr (v2 2) (v3 3) (v4 4) (v5 5) (v6 6)))) (new fms:part :name "Violin 2" :instr :violin :partid 'v2) (new fms:part :name "Violin 3" :instr :violin :partid 'v3) (new fms:part :name "Violin 4" :instr :violin :partid 'v4) (new fms:part :name "Violin 5" :instr :violin :partid 'v5) (new fms:part :name "Violin 6" :instr :violin :partid 'v6))) (defun polygen (voice len minp maxp) (process repeat len output (new fms:note :off (now) :voice voice :partid 'vlns :note (between minp maxp) :dur 1/2) wait 1/2)) (events (list (polygen '(1 2 3 4 5 6) 20 55 70) (polygen '(1 2 3 4 5 6) 20 60 75) (polygen '(1 2 3 4 5 6) 20 65 80) (polygen '(1 2 3 4 5 6) 20 70 85) (polygen '(1 2 3 4 5 6) 20 75 90) (polygen '(1 2 3 4 5 6) 20 80 95)) "/tmp/fomus.ly" :parts *parts* :quality 3 :view t)