;; Autogap ;; ;; Inserts volume on / off ;; (do (include "need20.cal") ; Require version 2.0 or higher of CAL (message "TIMEBASE = " TIMEBASE) (dword tickCtr From) (getTime tickCtr "Start time in ticks:") (dword endTime (+ tickCtr (+ tickCtr TIMEBASE))) (getTime endTime "End time in ticks:") (dword intervalOff TIMEBASE ) (getInt intervalOff "Off time in ticks:" 1 999999) (dword intervalOn TIMEBASE ) (getInt intervalOn "On time in ticks:" 1 999999) (int maxVol 127) (getInt maxVol "max. volume:" 1 127) (int accelOff 0) (getInt accelOff "ticks to accelerate off interval by:" 0 intervalOff) (int origIntervalOff intervalOff) (int origIntervalOn intervalOn) (int faster 1) (int skip 0) (pause "tickCtr = " tickCtr ", endTime=" endTime ",intervalOff = " intervalOff ", intervalOn = " intervalOn) (while ( < tickCtr endTime) (do (if (> 1 skip) (do (insert tickCtr 1 CONTROL 7 maxVol) ; (pause "ON: tickCtr = " tickCtr " and endTime = " endTime) (+= tickCtr intervalOn) (insert tickCtr 1 CONTROL 7 0) ; (pause "OFF: tickCtr = " tickCtr " and endTime = " endTime ", intervalOff =" intervalOff) (+= tickCtr intervalOff) ) ) (= skip 0) (if (< 0 faster) (do (if (< accelOff intervalOff) (do (-= intervalOff accelOff) (+= intervalOn accelOff) ) (do ; else start slowing down (set faster false) (= faster 0) (= skip 1) ) ) ) (do ; else slower (if (< intervalOff origIntervalOff) (do (+= intervalOff accelOff) (-= intervalOn accelOff) ) (do ; else start speeding up (set faster true) (= faster 1) (= skip 1) ) ) ) ) ) ) )