small refactor of old notes and more arpeggios

This commit is contained in:
efim
2022-09-09 06:10:21 +00:00
parent 788c27c54b
commit 00515cd9df
21 changed files with 364 additions and 1 deletions

View File

@@ -0,0 +1,56 @@
(in-package #:cl-collider)
;; https://github.com/SCLOrkHub/SCLOrkSynths
;; https://github.com/SCLOrkHub/SCLOrkSynths/blob/master/SynthDefs/strings/violin.scd
(defsynth violin ((freq 440) (gate 1) (amp 1) (pan 0) (out 0) (att 0.1) (dec 0.1) (sus 0.5) (rel 0.1)
(vRate 4.6) (vDepth 0.02) (vAtt 0.15) (vRateVar 0.25) (vDepthVar 0.05)
(pwmVarRate 2) (pwmMin 0.7) (pwmMax 0.8) (pwmRate 5)
(bridgeFreq 2500) (scratchDepth 0.15))
(let* ((scratch (+ 1.025 (env-gen.kr (perc att (* 1.25 dec) scratchDepth))))
(envelope (env-gen.kr (adsr att dec sus rel) :gate gate :act :free))
(freq (vibrato.kr freq vRate vDepth (+ att dec) vAtt vRateVar vDepthVar))
(pwm-step-1 (range (sin-osc.kr pwmRate (rand.ir 0.0 1.0)) pwmMin pwmMax))
(pwm-step-2 (* pwm-step-1 (range (lf-noise2.kr pwmVarRate) 0.2 0.8)))
(snd-step-1 (var-saw.ar (*
(lag.kr freq)
(range (lf-pulse.ar (* freq 1.5)) (/ 1 scratch) scratch))))
(snd-step-2 (+ (* snd-step-1 0.7)
(bpf.ar snd-step-1 bridgeFreq 2 2)))
(snd-step-3 (* snd-step-2 amp envelope)))
(out.ar out (pan2.ar snd-step-3 pan))))
;; (synth :violin :freq 400)
;; (stop)
(in-package #:cl-patterns)
(pb :foo-with-pluck-synth
:instrument :violin
:play-quant 4
:decay 2
:att 0.07
:sus 0.8
:amp 0.1
:legato 1
:degree (pseq (list 0 1 2 3 4 5 6 7) 1)
:dur 1)
;; (play :foo-with-pluck-synth)
;; (end :foo-with-pluck-synth)
;; (stop :foo-with-pluck-synth)
;;
;; let's make it a simple gamma?
;; cool, and easy with the :degree (from pitch model http://doc.sccode.org/Tutorials/Streams-Patterns-Events5.html )
(pb :mary-had-a-little-lamb
:instrument :violin
:play-quant 16
:legato 1
:degree (pseq (list 6 5 4 5 6 6 6 5 5 5 6 6 6 6 5 4 5 6 6 6 6 5 5 6 5 4) 1)
:dur (pseq (list 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 4))
:scratchdepth (pseq (list 0.1 0 0 0))
:vdepth (pseq (list 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.06))
)
;; (play :mary-had-a-little-lamb)
;; (end :mary-had-a-little-lamb)
;; (stop :mary-had-a-little-lamb)
;; there has to be a better way to split the tacts
;; (render (pdef :mary-had-a-little-lamb) "/tmp/mary.wav" :dur 32)