diff --git a/2022-09-03-small-time-more-synthdefs.lisp b/2022-09-03-small-time-more-synthdefs.lisp index 1a23d6c..0ee157c 100644 --- a/2022-09-03-small-time-more-synthdefs.lisp +++ b/2022-09-03-small-time-more-synthdefs.lisp @@ -1,10 +1,6 @@ (in-package #:cl-collider) ;; https://github.com/SCLOrkHub/SCLOrkSynths ;; https://github.com/SCLOrkHub/SCLOrkSynths/blob/master/SynthDefs/strings/violin.scd -(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) (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) @@ -20,8 +16,8 @@ (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 envelope))) - (out.ar out (pan2.ar snd-step-3 pan))))) + (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) @@ -31,9 +27,10 @@ :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 2) +:dur 1) ;; (play :foo-with-pluck-synth) ;; (end :foo-with-pluck-synth) ;; (stop :foo-with-pluck-synth) diff --git a/2022-09-04-more-synths-and-chord-progressions.lisp b/2022-09-04-more-synths-and-chord-progressions.lisp index 4f1d64f..7c5b979 100644 --- a/2022-09-04-more-synths-and-chord-progressions.lisp +++ b/2022-09-04-more-synths-and-chord-progressions.lisp @@ -236,9 +236,9 @@ :instrument :fmrhodes1 :octave 3 :degree (pseq (list 0 1 4 8 (prest 0) 0 2 4 7 4 2) 1)) -(play :hm-lallaa) -(end :hm-lallaa) -(stop :hm-lallaa) +;; (play :hm-lallaa) +;; (end :hm-lallaa) +;; (stop :hm-lallaa) ;; yup, that's a pause, cool ;; so, do I bring that stuff into a separate file? @@ -265,9 +265,9 @@ :base 2 :root 5 ) -(play :hm-chords-progression) -(end :hm-chords-progression) -(stop :hm-chords-progression) +;; (play :hm-chords-progression) +;; (end :hm-chords-progression) +;; (stop :hm-chords-progression) ;; so, what's a good way to use them? just wrap separately into #'CHORD-NOTES ;; maybe at least for now @@ -291,9 +291,9 @@ :base 2 :root 5 ) -(play :hm-chords-progress-em-g-am-c) -(end :hm-chords-progress-em-g-am-c) -(stop :hm-chords-progress-em-g-am-c) +;; (play :hm-chords-progress-em-g-am-c) +;; (end :hm-chords-progress-em-g-am-c) +;; (stop :hm-chords-progress-em-g-am-c) ;; Am – F – C – G (i – VI – III – VII) (pb :hm-chords-progress-am-f-c-g @@ -306,24 +306,27 @@ :base 2 :root 5 ) -(play :hm-chords-progress-am-f-c-g) -(end :hm-chords-progress-am-f-c-g) -(stop :hm-chords-progress-am-f-c-g) +;; (play :hm-chords-progress-am-f-c-g) +;; (end :hm-chords-progress-am-f-c-g) +;; (stop :hm-chords-progress-am-f-c-g) ;; IV V iii vi (from video on japan's favourite chord progression) ;; https://youtu.be/6aezSL_GvZA (pb :hm-chords-progress-golden-road - :instrument :strings + ;; :instrument :violin + :instrument :fmrhodes1 :octave 4 + :amp 0.2 :legato 1 ;; :degree (pseq (mapcar #'chord-notes (list :major :minor :maj7 :major)) 1) ; works, but can't insert (prest 0) among chords ;; :degree (pseq (list (chord :major) (chord :minor) (chord :maj7) (chord :major)) 1) ; doesn't seem to work :degree (pseq (list (nchord :major 3) (nchord :major 4) (nchord :minor 2) (nchord :minor 5) ) 1) ; doesn't seem to work + ;; :degree (pseq (list 1 2 3) 1) ; doesn't seem to work :dur (pseq (list 4 4 4 4 )) :root 0) -(play :hm-chords-progress-golden-road) -(end :hm-chords-progress-golden-road) -(stop :hm-chords-progress-golden-road) +;; (play :hm-chords-progress-golden-road) +;; (end :hm-chords-progress-golden-road) +;; (stop :hm-chords-progress-golden-road) ;; does it sound like in the video then? @@ -332,3 +335,11 @@ ;; - giving (note/chord) and rhythm to get form that single note ;; latter should be possible from defining a subpattern? with static note? + +;;; now, I'd like to use (render (pdef :your-pattern) "/path/to/output.wav" :dur 4) +;; for that I'd need to use more recent version than I get from quicklisp, so clone repo +quicklisp:*local-project-directories* +(ql:register-local-projects) +(ql:where-is-system :cl-patterns) ;; #P"/home/efim/quicklisp/local-projects/cl-patterns/" + +;; (render (pdef :hm-chords-progress-golden-road) "/tmp/chords-4.wav" :dur 16) diff --git a/attempt-at-setup.lisp b/attempt-at-setup.lisp index 207bf70..ae35a7d 100644 --- a/attempt-at-setup.lisp +++ b/attempt-at-setup.lisp @@ -8,6 +8,7 @@ (server-boot *s*) ; already in use +(ql:quickload :cl-patterns) (ql:quickload :cl-patterns/supercollider) ;; ...this will take care of loading cl-collider for you if it's not already loaded.