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)
|
:pattern (list 0 1 2 0 3)
|
||||||
:note (pnary (lambda (a) (nth a (chord-notes :major-7th))) (pseq (pk :pattern))))
|
:note (pnary (lambda (a) (nth a (chord-notes :major-7th))) (pseq (pk :pattern))))
|
||||||
(next-upto-n (pdef :initial-patterned) 20)
|
(next-upto-n (pdef :initial-patterned) 20)
|
||||||
(play :initial-patterned)
|
;; (play :initial-patterned)
|
||||||
(stop :initial-patterned)
|
;; (stop :initial-patterned)
|
||||||
|
|
||||||
;; and now i want what? i want to do pnary? pfunc
|
;; and now i want what? i want to do pnary? pfunc
|
||||||
|
|
||||||
|
@ -104,9 +104,68 @@
|
||||||
:legato 0.5
|
:legato 0.5
|
||||||
:octave 2
|
:octave 2
|
||||||
:embed :with-patterned-changing-chords)
|
:embed :with-patterned-changing-chords)
|
||||||
(play :instrumented-play)
|
;; (play :instrumented-play)
|
||||||
(end :instrumented-play)
|
;; (end :instrumented-play)
|
||||||
|
|
||||||
;; i guess next is making this pattern a function that takes patterns to provice chords, roots and pattrn
|
;; 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
|
;; then could use embed and set attributes in place
|
||||||
;; this is actually fun
|
;; 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