1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
-- https://learningmusic.ableton.com/make-melodies/love-will-tear-us-apart.html
let loveTears = "<<e4!3 [e4 fs4 e4@6]> [fs4@2 g4 fs4@2 e4 d4@2] [b3@7 <d4 fs3>] a3>"
-- How is this melody put together?
--
-- This melody uses only notes in the scale of D major. But the melody starts with a long E, creating a sense of tension against the implied key that continues throughout the whole song.
--
-- Notice the shape (or contour) of the melody. At the beginning, it moves up and down the scale by adjacent notes. But at the end, it leaps from B up to D and then down to A. This contrast between stepwise and leapwise motion helps to make the melody strong and memorable.
-- Try making some of your own melodies that also use a contrast between steps and leaps.
--
let lineTourDeFrance1 = "<[f3@2 bf3 c4 f4@3 d4] [f4 g4 c4 d4 f4@2 bf4@2] <af4 c5>@2>"
let lineTourDeFrance2 = "<[g3@2 c4 d4 g4@3 e4] [g4 a4 d4 e4 g4@2 c5@2] <bf4 [bf4@2 ef5 c5@13]>@2>"
-- The first and second phrases are identical, with the exception of the final note. In the first phrase, the last two notes descend from B♭ to A♭, while in the second phrase, they ascend from B♭ to C. You can hear this as a sort of "question and answer" relationship; the first phrase sounds somehow incomplete, while the second phrase sounds like it serves to resolve the first.
--
--
let praxis = "<[~ d5 d4 e4 g4 a4 b4 d4] [e4 g4 a4 b4 <e4 g4>@4]>"
-- Prestance
do
setcps (134/60/4)
let gF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gM = gMask . gMute
let gM2 = gMask . gMute2
let praxis = "<[~ d5 d4 e4 g4 a4 b4 d4] [e4 g4 a4 b4 <e4 g4>@4]>"
d1 $ gF1 $ gM
$ midiOn "^42" (<| "k k k k")
$ midiOff "^42" (<| "k . k(<0!3 1 0 1 3 3>,8,<0!3 6>)")
$ "[jazz,808bd:3]"
# midiG' "^78" 0 1.4
d2 $ gF1
$ midiOn "^43" (<| "~ c ~ c")
$ midiOff "^43" (<| "~ <~ c>")
$ "cp"
# note "-2"
# midiG' "^78" 0 1.8
d3 $ gF1 $ gM
$ midiOn "^75" (loopAt 2 . (>| "jungle_breaks:35"))
$ midiOn "^43" (off 0.5 (ply "<1!3 2>"))
-- $ chop 8
$ midiOff "^75" (slice 8 "<0 1 2 3 [0 1] [1 2] [1 2] [1 2]>")
$ loopAt 2
$ "break:20"
# midiG' "^79" 0 1.4
d4 $ gF2 $ gM2 $ note "<[a2@2 ~ ~ a2 b2 ~ <~!1 <b2 e2>>] <e2 g2>>"
# "FMRhodes1" # cut 4
# modIndex 5
# room 0.2
# delay 0.8
# delayfb "<0.1!3 0.65>"
# delayt 0.125
# crushbus 41 (range 16 2.5 "^53")
# midiG' "^81" 0 1.6
d6 $ gF3 $ gM2
$ mask "<f!12 t!4>"
$ note praxis
# "bassWarsaw"
# modIndex 5
# midiG' "^17" 0 1.4
# pan 0.3
d7 $ gF3 $ gM2
$ mask "<t(10,16)!8 f(10,16)!8>"
$ note (praxis + 36)
# "prophet5pwmStrings"
# pan 0.9
# midiG' "^18" 0 1.4
d8 $ gF3 $ gM2
$ mask "<f(10,16)!8 t(10,16)!8>"
$ juxBy 0.3 (mask "t(3,8) . t(12,16)" . (|+ note 12))
$ note (rev praxis)
# "moogBass"
# modIndex 5
# pan 0.9
# midiG' "^19" 0 1
do
let loveTears = "<<e4!3 [e4 fs4 e4@6]> [fs4@2 g4 fs4@2 e4 d4@2] [b3@7 <d4 fs3>] a3>"
setcps (148/60/4)
d1 $ "<k!7 [k k*2] [k*4]!8>" # "jazz"
d2 $ fast "<1!7 [1 4] 2!3 [2 4] 2!3 4>" "~ snare:55"
d3 $ "[~ hh]*4"
d4
$ note (loveTears
+ "[0,12]")
# "[FMRhodes1]"
# gain 1.4
# pan 0.8
d5
$ mask "<t!4 f!4> t!12"
$ rev
-- $ mask "<f!8 t!8>"
$ note (loveTears
+ "[24]")
# "[FMRhodes2]"
# gain 1.2
# room 0.4 # sz 0.4
# pan 0.3