I often use the metronome for percussion and effects. using delay and panning, reverb, pitch change,..
I use a bunch of CAL scripts to add notes (qtr,... on the one, every other measure, on the 1/2,....), delete notes (every other, 5 of 8, 13 of 20,...), change duration, note value,....
and the i copy the track and move for timing changes, send to session drummer, dropzone, DP,...
The script below has options to add different types of notes: remove/add the semi-colons as needed. Save to different names.
this script puts in short midi notes. used it recently to send to DP violins and then a delay and panning.
as written it will add short duration notes 4 to a measure (on the qtr), for 10 minutes, at 960 ticks. the midi notes are 10 ticks, so they are not easy to see.
a bunch of the lines are commented and do nothing, used for other scripts. accumulation of debris is the way of all successful DNA.
copy to a notepad and save as "insert qrt notes.cal"
Then, create a midi track, and run this cal script:
(do
;; initialize variables
(dword LengthSpace 2)
(dword LengthSecond 1)
(dword TimeNow 0)
(dword TimeTotal 0)
(dword TimeEnd 0)
(dword BeatsPM 0)
(dword TicksPQ 0)
(int ChannelNumber 0)
;;;;;; set known variables
;;
;; (getInt ChannelNumber "ChannelNumber: " 0 15)
;;
;; set default values
(= TimeNow 0)
(= TimeTotal 10)
(= TimeEnd 0)
(= BeatsPM 120)
(= TicksPQ 960)
(- ChannelNumber 6)
;;
;; convert time to ticks
(= TimeEnd (* BeatsPM TicksPQ))
;; (pause "TimeEnd " TimeEnd)
;;
(= TimeEnd (* TimeEnd TimeTotal))
;; (pause "TimeEnd " TimeEnd)
;;
;;LENGTHs change SECONDS to ticks
;;
;; (= LengthSecond (* (* LengthSecond TicksPQ) (/ BeatsPM 60)))
;; (pause "LengthSecond " LengthSecond)
;;
;; (= LengthSpace (* (* LengthSpace TicksPQ) (/ BeatsPM 60)))
;; (pause "LengthSpace " LengthSpace)
;;
(= TimeNow 0) ;; 1st time through loop
(do
(while (< TimeNow TimeEnd)
(do
(insert TimeNow ChannelNumber NOTE 52 127 10)
;;(insert TimeNow ChannelNumber NOTE 64 127 1000)
;; (insert TimeNow ChannelNumber NOTE 76 127 1000)
;; (= TimeNow (+ TimeNow (+ LengthSecond LengthSpace)))
;; (= TimeNow (+ TimeNow 480)) ;; eighth notes
(= TimeNow (+ TimeNow 960)) ;; qtr notes
;; (= TimeNow (+ TimeNow 3840)) ;; on the one
;; (= TimeNow (+ TimeNow 7680)) ;; on the one of every other measure
;;
;; (pause "TimeNow " TimeNow )
;;
)
)
)
)