patterned-arpeggio as a function, yay!
This commit is contained in:
parent
adb02840ba
commit
b07c84a2f7
|
@ -71,8 +71,8 @@
|
|||
:pattern (list 0 1 2 0 3)
|
||||
:note (pnary (lambda (a) (nth a (chord-notes :major-7th))) (pseq (pk :pattern))))
|
||||
(next-upto-n (pdef :initial-patterned) 20)
|
||||
(play :initial-patterned)
|
||||
(stop :initial-patterned)
|
||||
;; (play :initial-patterned)
|
||||
;; (stop :initial-patterned)
|
||||
|
||||
;; and now i want what? i want to do pnary? pfunc
|
||||
|
||||
|
@ -104,9 +104,68 @@
|
|||
:legato 0.5
|
||||
:octave 2
|
||||
:embed :with-patterned-changing-chords)
|
||||
(play :instrumented-play)
|
||||
(end :instrumented-play)
|
||||
;; (play :instrumented-play)
|
||||
;; (end :instrumented-play)
|
||||
|
||||
;; i guess next is making this pattern a function that takes patterns to provice chords, roots and pattrn
|
||||
;; then could use embed and set attributes in place
|
||||
;; this is actually fun
|
||||
|
||||
(defun patterned-arpeggio (chords roots patterns &optional (chord-duration 8) (events-in-chord 32))
|
||||
(parp
|
||||
;;; first part of parp is "base values" for each event whole second pattern will be played
|
||||
;;; so this pattern produces "settings for each phrase"
|
||||
(pbind :arpeggio-chord chords
|
||||
:chord-root roots
|
||||
:pattern patterns)
|
||||
;;; this patten would play our fully with settings values
|
||||
(pbind
|
||||
:note (pnary (lambda (chord-step chord chord-root)
|
||||
(+ chord-root (nth chord-step (chord-notes chord))))
|
||||
(pseq (pk :pattern))
|
||||
(pk :arpeggio-chord)
|
||||
(pk :chord-root))
|
||||
:dur (pdurstutter (pseq (list chord-duration) 1) events-in-chord))))
|
||||
|
||||
(pb :first-try-of-function
|
||||
:instrument :fmbass
|
||||
:legato 0.5
|
||||
:octave 2
|
||||
:embed (patterned-arpeggio
|
||||
(pseq (list :minor-6th :minor :minor-7th :minor))
|
||||
(pseq (list 0 3 2 6) 1)
|
||||
(list 0 1 2 1 2 1 2 0)))
|
||||
;; (play :first-try-of-function)
|
||||
;; (end :first-try-of-function)
|
||||
|
||||
;; taking progressions from
|
||||
;; https://en.wikipedia.org/wiki/List_of_chord_progressions
|
||||
|
||||
(pb :second-try-of-function
|
||||
:instrument :fmbass
|
||||
:legato 0.5
|
||||
:octave 2
|
||||
:embed (patterned-arpeggio
|
||||
(pseq (list :major :minor :major :major))
|
||||
(pseq (list 0 5 3 4) 1)
|
||||
(list 0 1 2 1 2 1 2 0)
|
||||
2 8))
|
||||
;; (play :second-try-of-function)
|
||||
;; (end :second-try-of-function)
|
||||
|
||||
;; andalusian cadence iv-III-II-I
|
||||
(pb :third-try-of-function
|
||||
;; :instrument :fmbass
|
||||
;; :instrument :strings
|
||||
:instrument :prophet5pwmstrings
|
||||
:legato 1
|
||||
:octave 5
|
||||
:embed (patterned-arpeggio
|
||||
(pseq (list :minor :major :major :major))
|
||||
(pseq (list 3 2 1 0) 1)
|
||||
(list 0 1 2 1 2 1 2 0)
|
||||
;; 2 16
|
||||
8 16
|
||||
))
|
||||
;; (play :third-try-of-function)
|
||||
;; (stop :third-try-of-function)
|
||||
|
|
Loading…
Reference in New Issue