diff --git a/megra-event-base.lisp b/megra-event-base.lisp index 4fc79cc..24764c6 100644 --- a/megra-event-base.lisp +++ b/megra-event-base.lisp @@ -254,7 +254,10 @@ ',parent-keyword-parameter-names ',(mapcar #'cadr parent-keyword-parameters)) (print-tags (event-tags evt)) - (print-combi-fun (value-combine-function evt)))))))) + (print-combi-fun (value-combine-function evt))))) + ;; define event predicate for filters + (defun ,(read-from-string (concatenate 'string (symbol-name short-name) "-" (symbol-name 'p))) (event) + (typep event ',class-name ))))) ;; end event definition macro ... ;; another macro if you want to make an event available under a different diff --git a/megra-event-filters.lisp b/megra-event-filters.lisp index 9f356dd..69b3f08 100644 --- a/megra-event-filters.lisp +++ b/megra-event-filters.lisp @@ -3,17 +3,10 @@ ;; some default event filters (defmethod all-p ((e event) &key) t) -(defmethod transition-p ((e event) &key) - (typep e 'transition)) - (defun snare-p (event) (or (member 'snare (event-tags event)) (member 'sn (event-tags event)))) -(defun bd-p (event) - (or (member 'bassdrum (event-tags event)) - (member 'bd (event-tags event)))) - (defun ride-p (event) (member 'ride (event-tags event))) diff --git a/megra-playground.megra b/megra-playground.megra index 48ea38b..370d79f 100644 --- a/megra-playground.megra +++ b/megra-playground.megra @@ -8,11 +8,13 @@ (clear) +(typep (saw 100) 'saw-event) + (pring 'bass4 t) (event-source (growth 'bass4 0.3)) -x(pull-events (gethash 'bass-2 *chain-directory*)) +(pull-events (gethash 'bass-2 *chain-directory*)) (handle-events 0) @@ -26,17 +28,16 @@ x(pull-events (gethash 'bass-2 *chain-directory*)) (global-resources 30) -(chain 'bass-2 () - (exh 100 sn) - (cc 80 (lvl 0.0) :f #'sn-p) - (lim 'lvl 0.3 0.4) - (lmctrl 0.4 'loop 15 :lifespan 18) - ;;(probctrl 0.7 11 10 'triloop) +(s 'bass-2 () + (inh 50 sn) + (inh 50 bd) + ;;(lmctrl 0.4 'loop 15 :lifespan 18) + (probctrl 0.1 11 10 'triloop) (nuc 'bass4 (list - (bd '|909| :lp-dist 1.0) - (sn '|78| :rev 0.01) - (saw 100 :dur 70 :rel 60 :lp-dist 1.0 :lp-freq 500)) + (bd '|909| :lp-dist 0.0 :lvp 0.3) + (sn '|78| :rev 0.01 :lvl 0.3) + (saw 100 :dur 70 :rel 60 :lp-dist 1.0 :lp-freq 500 :lvl 0.3)) :gap 100 :reset t)) (s 'hat (:sync-to 'bass-2)