obx830.lsp Version 1.00 29 April 2005 AuthorSteven Jones Contact jones57@swbell.net include the word "nyquist" in subject line The contents of this file are released under the terms of the GNU General Public License. See the file LICENSE.txt A Ring modulation effect after Oberheim Matrix-1000 patch 8.30
function
(obx830:mono step dur [:i][:attack][:bw][:t1][:t2][:tab) Ring modulation effect after Oberheim Matrix-1000 patch 8.30 step - Step. MIDI key number. dur - Flonum. Tones duration in seconds. :i - Flonum. Modulation index, Controls osc sweep depth, default 1.00 :attack - Flonum. Attack time, default 4.00 seconds :bw - Flonum. Filter bandwidth, default 200 Hz. :t1 - Flonum. Initial tremolo frequency, default 0.001 Hz :t2 - Flonum. Final tremolo frequency, default 30 Hz :tab - Wtab. Carrier wave table, default *saw-16* return - Sound.
wrapper
(obx830 plist dur [:arpeg][:pos][:comp][:i][:attack][:bw][:t1][:t2][:tab) Ring modulation effect after Oberheim Matrix-1000 patch 8.30 plist - List | flonum. The MIDI note(s) to play dur - Flonum. Tones duration in seconds. :arpeg - Flonum. Arpeggio interval, default 0 seconds. :pos - Flonum | sound. Pan position, 0 <= pos <= 1, default 0.5 :comp - Flonum | Symbol. Amplitude compensation. See definst.lsp :i - Flonum. Modulation index, Controls osc sweep depth, default 1.00 :attack - Flonum. Attack time, default 4.00 seconds :bw - Flonum. Filter bandwidth, default 200 Hz. :t1 - Flonum. Initial tremolo frequency, default 0.001 Hz :t2 - Flonum. Final tremolo frequency, default 30 Hz :tab - Wtab. Carrier wave table, default *saw-16* return - Sound vector
;; obx830.lsp ;; Version 1.00 29 April 2005 ;; AuthorSteven Jones ;; ;; Contact jones57@swbell.net include the word "nyquist" in subject line ;; ;; The contents of this file are released under the terms of the GNU General ;; Public License. See the file LICENSE.txt ;; ;; A Ring modulation effect after Oberheim Matrix-1000 patch 8.30 ;; (require 'definst) (require 'xmix) (require 'xenvelope) (require 'saw-16) (require 'hpn) (provide 'obx830) (current-file "obx830") ;; Amplitude modulation effect ;; asig - Sound. Source signal. ;; f1 - Flonum. Initial LFO frequency. ;; f2 - Flonum. Final LFO frequency. ;; dur - Flonum. Duration in seconds. ;; return - Sound. ;; (defun obx830:tremolo (asig f1 f2 dur) (let (envsig floor eamp) (setf floor (min f1 f2)) (setf eamp (abs (- f2 f1))) (setf envsig (ramp dur)) (mult asig (xmix (fmlfo (sum floor (scale eamp envsig))) (rgate dur 1) envsig)))) ;; @doc function obx830:mono ;; (obx830:mono step dur [:i][:attack][:bw][:t1][:t2][:tab) ;; Ring modulation effect after Oberheim Matrix-1000 patch 8.30 ;; ;; step - Step. MIDI key number. ;; dur - Flonum. Tones duration in seconds. ;; :i - Flonum. Modulation index, Controls osc sweep depth, default 1.00 ;; :attack - Flonum. Attack time, default 4.00 seconds ;; :bw - Flonum. Filter bandwidth, default 200 Hz. ;; :t1 - Flonum. Initial tremolo frequency, default 0.001 Hz ;; :t2 - Flonum. Final tremolo frequency, default 30 Hz ;; :tab - Wtab. Carrier wave table, default *saw-16* ;; return - Sound. ;; (defun obx830:mono (step dur &key i attack bw t1 t2 tab) (let (hz decay hold ampenv fmenv hpenv bw) (setf hz (step-to-hz step)) (setf i (or i 1.000)) (setf attack (or attack 4.00)) (setf decay (max 0 (- dur attack))) (setf bw (or bw 200)) (setf t1 (or t1 0.001)) (setf t2 (or t2 30)) (setf tab (or tab *saw-16*)) (setf hold (+ attack decay)) (setf ampenv (xasd attack 0 decay)) (setf fmenv (iramp hold)) (setf hpenv (ramp hold)) (mult (reson (obx830:tremolo (amosc step (fmosc step (scale (* hz i) fmenv)) tab) t1 t2 hold) (sum hz (scale (* 16 hz) hpenv)) bw 1) ampenv))) ;; @doc wrapper obx830 ;; (obx830 plist dur [:arpeg][:pos][:comp][:i][:attack][:bw][:t1][:t2][:tab) ;; Ring modulation effect after Oberheim Matrix-1000 patch 8.30 ;; ;; plist - List | flonum. The MIDI note(s) to play ;; dur - Flonum. Tones duration in seconds. ;; :arpeg - Flonum. Arpeggio interval, default 0 seconds. ;; :pos - Flonum | sound. Pan position, 0 <= pos <= 1, default 0.5 ;; :comp - Flonum | Symbol. Amplitude compensation. See definst.lsp ;; :i - Flonum. Modulation index, Controls osc sweep depth, default 1.00 ;; :attack - Flonum. Attack time, default 4.00 seconds ;; :bw - Flonum. Filter bandwidth, default 200 Hz. ;; :t1 - Flonum. Initial tremolo frequency, default 0.001 Hz ;; :t2 - Flonum. Final tremolo frequency, default 30 Hz ;; :tab - Wtab. Carrier wave table, default *saw-16* ;; return - Sound vector ;; (defwrapper obx830 #'obx830:mono)