@hraness/dawg 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +126 -0
- package/DAWG.md +655 -141
- package/README.md +27 -25
- package/core/autotune.ts +1119 -0
- package/core/chords.ts +759 -23
- package/core/clips.ts +499 -0
- package/core/diff.ts +182 -99
- package/core/expression.ts +158 -6
- package/core/fx.ts +354 -32
- package/core/granular.ts +91 -0
- package/core/instruments.ts +180 -0
- package/core/keys.ts +573 -4
- package/core/loop.ts +5 -0
- package/core/lyrics.ts +297 -0
- package/core/master.ts +3 -3
- package/core/resonators.ts +306 -4
- package/core/routing.ts +165 -0
- package/core/score.ts +1181 -16
- package/core/sdk/eval-child.ts +7 -2
- package/core/sdk/eval.ts +35 -6
- package/core/sdk/print.ts +354 -6
- package/core/sdk/sync-lyrics.ts +49 -0
- package/core/sdk/v1.ts +3160 -69
- package/core/sections.ts +298 -24
- package/core/sing.ts +815 -0
- package/core/strings.ts +237 -2
- package/core/style-provenance.ts +80 -0
- package/core/styles/africa-mena-southasia.ts +2893 -0
- package/core/styles/americas.ts +3810 -0
- package/core/styles/art.ts +4993 -0
- package/core/styles/base.ts +123 -0
- package/core/styles/cycles.ts +106 -0
- package/core/styles/electronic.ts +2723 -0
- package/core/styles/europe-asia-pacific.ts +2838 -0
- package/core/styles/excerpt.ts +29 -0
- package/core/styles/gamelan.ts +283 -0
- package/core/styles/generate.ts +2199 -0
- package/core/styles/index.ts +515 -0
- package/core/styles/parts.ts +106 -0
- package/core/styles/pop.ts +3189 -0
- package/core/styles/rock.ts +2993 -0
- package/core/styles/roots.ts +4175 -0
- package/core/styles/schema.ts +429 -0
- package/core/styles/taxonomy.ts +940 -0
- package/core/styles/validate.ts +528 -0
- package/core/tempo.ts +32 -2
- package/core/tuning.ts +19 -3
- package/core/vocoder.ts +524 -0
- package/core/winds.ts +652 -0
- package/guides/agent.md +29 -0
- package/guides/arrange.md +30 -0
- package/guides/audition.md +20 -14
- package/guides/automation.md +12 -6
- package/guides/chords.md +16 -14
- package/guides/effects.md +17 -15
- package/guides/faders.md +20 -16
- package/guides/files.md +13 -9
- package/guides/getting-started.md +15 -11
- package/guides/keys.md +19 -15
- package/guides/media.md +17 -12
- package/guides/mix.md +12 -6
- package/guides/music.md +23 -8
- package/guides/notes.md +15 -9
- package/guides/performance.md +15 -10
- package/guides/play.md +21 -13
- package/guides/project.md +25 -8
- package/guides/providers.md +20 -14
- package/guides/resample.md +32 -0
- package/guides/rhythm.md +17 -13
- package/guides/sessions.md +17 -7
- package/guides/show-me.md +31 -0
- package/guides/sound.md +25 -9
- package/guides/sounds.md +15 -12
- package/guides/styles.md +31 -0
- package/guides/tempo.md +15 -10
- package/guides/tracks.md +15 -10
- package/guides/tuning.md +32 -0
- package/guides/voice.md +31 -0
- package/guides/web-search.md +18 -8
- package/native/prebuilt/darwin-arm64/libdawg_sink.dylib +0 -0
- package/native/prebuilt/darwin-x64/libdawg_sink.dylib +0 -0
- package/native/prebuilt/linux-arm64/libdawg_sink.so +0 -0
- package/native/prebuilt/linux-x64/libdawg_sink.so +0 -0
- package/native/prebuilt/manifest.json +21 -0
- package/package.json +5 -2
- package/src/agent/agent.ts +131 -13
- package/src/agent/calibration-tools.ts +53 -0
- package/src/agent/chord-tools.ts +153 -1
- package/src/agent/clip-tools.ts +453 -0
- package/src/agent/command-agent.ts +369 -0
- package/src/agent/drum-tools.ts +2 -2
- package/src/agent/expression-tools.ts +91 -0
- package/src/agent/gateway.ts +246 -60
- package/src/agent/models.ts +53 -12
- package/src/agent/ops.ts +15 -1
- package/src/agent/pack-tools.ts +1 -1
- package/src/agent/planner.ts +13 -0
- package/src/agent/portable-schema.ts +80 -0
- package/src/agent/preview-tool.ts +5 -1
- package/src/agent/provider.ts +22 -8
- package/src/agent/resample-tool.ts +131 -0
- package/src/agent/rhythm-tools.ts +1 -1
- package/src/agent/section-tools.ts +1 -1
- package/src/agent/show-me.ts +497 -0
- package/src/agent/steer.ts +15 -0
- package/src/agent/style-tools.ts +217 -0
- package/src/agent/tool-error.ts +12 -0
- package/src/agent/tools.ts +307 -37
- package/src/agent/usage.ts +2 -2
- package/src/agent/voice-tools.ts +925 -0
- package/src/agent/xcb-agent.ts +16 -6
- package/src/argv.ts +38 -0
- package/src/audio/analysis.ts +253 -0
- package/src/audio/arrange.ts +58 -3
- package/src/audio/autotune-engine.ts +101 -0
- package/src/audio/autotune.ts +640 -0
- package/src/audio/clips.ts +240 -0
- package/src/audio/doctor.ts +86 -0
- package/src/audio/dsp/bandbank.ts +138 -0
- package/src/audio/dsp/envelope.ts +171 -0
- package/src/audio/dsp/follow.ts +120 -0
- package/src/audio/dsp/formant.ts +427 -0
- package/src/audio/dsp/glottal.ts +243 -0
- package/src/audio/dsp/interp.ts +7 -2
- package/src/audio/dsp/lpc.ts +50 -0
- package/src/audio/dsp/periodicity.ts +59 -0
- package/src/audio/dsp/pitch.ts +995 -0
- package/src/audio/dsp/psola.ts +199 -0
- package/src/audio/dsp/shift.ts +256 -0
- package/src/audio/effects/chain.ts +21 -4
- package/src/audio/effects/common.ts +57 -0
- package/src/audio/effects/convolution.ts +113 -5
- package/src/audio/effects/filter.ts +48 -69
- package/src/audio/effects/formant.ts +263 -0
- package/src/audio/effects/gaze.ts +354 -0
- package/src/audio/engine.ts +206 -33
- package/src/audio/fit.ts +80 -3
- package/src/audio/granular.ts +352 -21
- package/src/audio/instrument-check.ts +67 -47
- package/src/audio/instruments.ts +36 -3
- package/src/audio/keys/calibration.ts +56 -0
- package/src/audio/keys/electric.ts +427 -0
- package/src/audio/keys/engine.ts +156 -20
- package/src/audio/keys/organ.ts +1335 -0
- package/src/audio/keys/piano.ts +72 -8
- package/src/audio/keys/sympathetic.ts +127 -0
- package/src/audio/kits.ts +135 -6
- package/src/audio/live-worker.ts +3 -1
- package/src/audio/live.ts +247 -26
- package/src/audio/native.ts +615 -0
- package/src/audio/preview.ts +45 -3
- package/src/audio/render-worker.ts +2 -0
- package/src/audio/renderer.ts +2 -0
- package/src/audio/resample.ts +286 -0
- package/src/audio/resonators.ts +10 -2
- package/src/audio/sampler.ts +252 -24
- package/src/audio/samples.ts +46 -3
- package/src/audio/sing/analysis.ts +193 -0
- package/src/audio/sing/engine.ts +949 -0
- package/src/audio/strings/body.ts +29 -16
- package/src/audio/strings/bow.ts +699 -0
- package/src/audio/strings/engine.ts +274 -22
- package/src/audio/strings/measure.test-helpers.ts +2 -0
- package/src/audio/synth/oscillators.ts +31 -21
- package/src/audio/synth/voice.ts +34 -1
- package/src/audio/vocoder/bank.ts +314 -0
- package/src/audio/vocoder/carrier.ts +165 -0
- package/src/audio/vocoder/control.ts +68 -0
- package/src/audio/vocoder/detect.ts +50 -0
- package/src/audio/vocoder/index.ts +304 -0
- package/src/audio/vocoder/talkbox.ts +143 -0
- package/src/audio/wav.ts +608 -85
- package/src/audio/winds/engine.ts +306 -0
- package/src/audio/winds/filters.ts +153 -0
- package/src/audio/winds/pitch.ts +104 -0
- package/src/audio/winds/trim.ts +104 -0
- package/src/audio/winds/trims.ts +917 -0
- package/src/audio/winds/trims1.ts +297 -0
- package/src/audio/winds/voice.ts +492 -0
- package/src/auth/cli.ts +38 -36
- package/src/auth/credentials.ts +30 -1
- package/src/auth/login.ts +15 -9
- package/src/auth/tui.ts +19 -10
- package/src/commands/arrange.ts +44 -29
- package/src/commands/autotune.ts +421 -0
- package/src/commands/calibration.ts +74 -0
- package/src/commands/clips.ts +887 -0
- package/src/commands/drums.ts +3 -2
- package/src/commands/edit.ts +11 -4
- package/src/commands/expression.ts +104 -23
- package/src/commands/formant.ts +221 -0
- package/src/commands/fx.ts +105 -33
- package/src/commands/grammar.ts +558 -0
- package/src/commands/granular.ts +7 -2
- package/src/commands/help.ts +652 -339
- package/src/commands/history.ts +18 -0
- package/src/commands/keys.ts +293 -17
- package/src/commands/modal.ts +67 -4
- package/src/commands/music.ts +1 -1
- package/src/commands/nearest.ts +53 -0
- package/src/commands/pack.ts +9 -2
- package/src/commands/param-range.ts +56 -0
- package/src/commands/parses.ts +130 -0
- package/src/commands/progression.ts +170 -0
- package/src/commands/resample.ts +281 -0
- package/src/commands/rhythm.ts +3 -0
- package/src/commands/rig.ts +8 -25
- package/src/commands/sample.ts +49 -2
- package/src/commands/shift.ts +119 -0
- package/src/commands/sing.ts +478 -0
- package/src/commands/string.ts +28 -2
- package/src/commands/strum.ts +485 -0
- package/src/commands/style.ts +415 -0
- package/src/commands/time.ts +6 -3
- package/src/commands/tuning.ts +3 -3
- package/src/commands/vocal-pitch.ts +616 -0
- package/src/commands/vocal.ts +147 -0
- package/src/commands/vocoder.ts +627 -0
- package/src/commands/wind.ts +244 -0
- package/src/fs/durable.ts +50 -0
- package/src/lang/glossary.ts +493 -0
- package/src/launch-args.ts +163 -0
- package/src/main.ts +1521 -255
- package/src/media/cli.ts +20 -3
- package/src/media/import.ts +3 -1
- package/src/project/check.ts +26 -3
- package/src/project/clip-pins.ts +72 -0
- package/src/project/init.ts +23 -8
- package/src/project/sync.ts +418 -86
- package/src/render.ts +36 -1
- package/src/session/daemon.ts +3 -0
- package/src/session/meta.ts +14 -0
- package/src/session/origin.ts +154 -0
- package/src/session/port.ts +22 -4
- package/src/session/presence.ts +50 -7
- package/src/session/protocol.ts +5 -1
- package/src/session/rebase.ts +18 -5
- package/src/session/receipt.ts +258 -0
- package/src/session/store.ts +65 -43
- package/src/tui/arrange-menu.ts +65 -31
- package/src/tui/audition.ts +1 -1
- package/src/tui/euclid.ts +18 -13
- package/src/tui/fader.ts +228 -41
- package/src/tui/granular-menu.ts +2 -4
- package/src/tui/menu-clips.ts +297 -0
- package/src/tui/menu-time.ts +20 -13
- package/src/tui/menu-voice.ts +405 -0
- package/src/tui/menu.ts +1377 -193
- package/src/tui/modal-menu.ts +38 -11
- package/src/tui/performance-menu.ts +46 -1
- package/src/tui/play-chords.ts +108 -5
- package/src/tui/play-mode.ts +16 -1
- package/src/tui/play-session.ts +81 -16
- package/src/tui/sing-menu.ts +278 -0
- package/src/tui/style-menu.ts +104 -0
- package/src/tui/vocoder-menu.ts +244 -0
- package/src/tui/wind-menu.ts +144 -0
- package/src/version.ts +8 -0
- package/src/web/fetch.ts +115 -29
- package/tui/activity.ts +180 -9
- package/tui/app.ts +274 -40
- package/tui/clip-row.ts +132 -0
- package/tui/delight.ts +144 -0
- package/tui/drawer.ts +70 -22
- package/tui/frame-gate.ts +76 -0
- package/tui/grammar.ts +112 -63
- package/tui/guide.ts +42 -4
- package/tui/highway.ts +269 -25
- package/tui/hints.ts +192 -0
- package/tui/input.ts +60 -9
- package/tui/keys.ts +1 -1
- package/tui/play-strip.ts +68 -14
- package/tui/prompt.ts +1 -1
- package/tui/screen.ts +144 -14
- package/tui/theme.ts +27 -0
|
@@ -0,0 +1,4175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jazz, blues, soul, gospel, country and North American folk (quality-08
|
|
3
|
+
* family `roots`). `bebop` is the worked Western leaf: swung eighths at a
|
|
4
|
+
* measured 1.6–2.2 ratio, ride and hi-hat on 2 and 4, a walking bass that
|
|
5
|
+
* lands a chord tone on every downbeat with chromatic approaches, ii–V
|
|
6
|
+
* chains with sevenths throughout and a chromatic eighth-note line.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { grid, intervals, kitRoles, maybe, role } from "./parts.ts";
|
|
10
|
+
import { card, type StyleCard } from "./schema.ts";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The ride cymbal's spang-a-lang in swung eighths: 1, 2 &, 3, 4 & (the
|
|
14
|
+
* kit's open hat stands in for the ride, which it lacks).
|
|
15
|
+
*/
|
|
16
|
+
const SWING_RIDE = grid("x.xxx.xx");
|
|
17
|
+
/**
|
|
18
|
+
* The 12-bar blues as dominant sevenths in any mode: `I[7]` is a dominant
|
|
19
|
+
* seventh on the tonic whether the key is minor (blues scale) or
|
|
20
|
+
* mixolydian, so IV is never a major seventh.
|
|
21
|
+
*/
|
|
22
|
+
const D = (numeral: string) => `${numeral}[7]`;
|
|
23
|
+
export const BLUES_FORM: readonly string[] = Object.freeze(
|
|
24
|
+
["I", "I", "I", "I", "IV", "IV", "I", "I", "V", "IV", "I", "V"].map(D),
|
|
25
|
+
);
|
|
26
|
+
/** Quick-change: IV in bar 2. */
|
|
27
|
+
export const QUICK_CHANGE_FORM: readonly string[] = Object.freeze(
|
|
28
|
+
["I", "IV", "I", "I", "IV", "IV", "I", "I", "V", "IV", "I", "V"].map(D),
|
|
29
|
+
);
|
|
30
|
+
/** Final chorus: V-IV-I-I, the turnaround resolved. */
|
|
31
|
+
export const ENDING_FORM: readonly string[] = Object.freeze(
|
|
32
|
+
["I", "I", "I", "I", "IV", "IV", "I", "I", "V", "IV", "I", "I"].map(D),
|
|
33
|
+
);
|
|
34
|
+
/** Eight-bar blues: I-V-IV-IV-I-V-I-V. */
|
|
35
|
+
export const EIGHT_BAR_BLUES: readonly string[] = Object.freeze(
|
|
36
|
+
["I", "V", "IV", "IV", "I", "V", "I", "V"].map(D),
|
|
37
|
+
);
|
|
38
|
+
/** Son clave 3-2 over one 4/4 bar of sixteenths: 0, 3, 6 | 10, 12. */
|
|
39
|
+
export const SON_CLAVE = grid("x..x..x...x.x...");
|
|
40
|
+
/** Bossa clave: the son clave's last stroke pushed a sixteenth late. */
|
|
41
|
+
export const BOSSA_CLAVE = grid("x..x..x...x..x..");
|
|
42
|
+
/** Tresillo 3+3+2 twice per bar. */
|
|
43
|
+
export const TRESILLO = grid("x..x..x.x..x..x.");
|
|
44
|
+
|
|
45
|
+
export const ROOTS_CARDS: readonly StyleCard[] = Object.freeze([
|
|
46
|
+
card({
|
|
47
|
+
id: "jazz",
|
|
48
|
+
abstract: true,
|
|
49
|
+
summary:
|
|
50
|
+
"swung eighths, sevenths on every chord, ii-V motion, walking bass",
|
|
51
|
+
tempo: { bpm: [80, 260], typical: 160 },
|
|
52
|
+
groove: {
|
|
53
|
+
subdivision: 2,
|
|
54
|
+
swingRatio: [1.5, 2.2],
|
|
55
|
+
velocity: [0.8, 1],
|
|
56
|
+
humanize: { timingMs: 8, velocity: 0.08 },
|
|
57
|
+
},
|
|
58
|
+
rhythm: {
|
|
59
|
+
onsets: {
|
|
60
|
+
kick: grid("x......."),
|
|
61
|
+
snare: grid("..1...1."),
|
|
62
|
+
hat: grid("..x...x."),
|
|
63
|
+
},
|
|
64
|
+
fills: { every: 8, density: [0.2, 0.4] },
|
|
65
|
+
},
|
|
66
|
+
harmony: {
|
|
67
|
+
presets: [
|
|
68
|
+
["ii-v-i", 0.5],
|
|
69
|
+
["turnaround", 0.3],
|
|
70
|
+
["minor-ii-v", 0.2],
|
|
71
|
+
],
|
|
72
|
+
chain: {
|
|
73
|
+
I: [
|
|
74
|
+
["vi", 1.5],
|
|
75
|
+
["ii", 2],
|
|
76
|
+
["V7/ii", 1],
|
|
77
|
+
["IV", 1],
|
|
78
|
+
],
|
|
79
|
+
Imaj7: [
|
|
80
|
+
["vi7", 1.5],
|
|
81
|
+
["ii7", 2],
|
|
82
|
+
["V7/ii", 1],
|
|
83
|
+
],
|
|
84
|
+
vi7: [
|
|
85
|
+
["ii7", 3],
|
|
86
|
+
["V7/ii", 1],
|
|
87
|
+
],
|
|
88
|
+
vi: [["ii7", 3]],
|
|
89
|
+
"V7/ii": [["ii7", 3]],
|
|
90
|
+
ii: [["V7", 3]],
|
|
91
|
+
ii7: [
|
|
92
|
+
["V7", 3],
|
|
93
|
+
["bII7", 0.6],
|
|
94
|
+
],
|
|
95
|
+
bII7: [["Imaj7", 3]],
|
|
96
|
+
iv: [
|
|
97
|
+
["I", 2],
|
|
98
|
+
["V7", 1],
|
|
99
|
+
],
|
|
100
|
+
IV: [
|
|
101
|
+
["iv", 1],
|
|
102
|
+
["V7", 1],
|
|
103
|
+
["iii7", 1],
|
|
104
|
+
],
|
|
105
|
+
iii7: [
|
|
106
|
+
["vi7", 2],
|
|
107
|
+
["V7/ii", 1],
|
|
108
|
+
],
|
|
109
|
+
V7: [
|
|
110
|
+
["Imaj7", 3],
|
|
111
|
+
["vi7", 0.5],
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
sources: { presets: 1, chain: 2 },
|
|
115
|
+
cadences: [
|
|
116
|
+
["ii-V-I", 0.7],
|
|
117
|
+
["V-I", 0.3],
|
|
118
|
+
],
|
|
119
|
+
rhythm: [
|
|
120
|
+
[1, 0.6],
|
|
121
|
+
[2, 0.4],
|
|
122
|
+
],
|
|
123
|
+
sevenths: 0.95,
|
|
124
|
+
voicing: {
|
|
125
|
+
types: [
|
|
126
|
+
["shell", 0.4],
|
|
127
|
+
["open", 0.4],
|
|
128
|
+
["quartal", 0.2],
|
|
129
|
+
],
|
|
130
|
+
range: [50, 74],
|
|
131
|
+
notes: [3, 4],
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
melody: {
|
|
135
|
+
contour: [
|
|
136
|
+
["wave", 0.5],
|
|
137
|
+
["descending", 0.3],
|
|
138
|
+
["arch", 0.2],
|
|
139
|
+
],
|
|
140
|
+
ambitus: [9, 17],
|
|
141
|
+
intervals: intervals(5, 2.5, 0.8, 0.3),
|
|
142
|
+
chordToneRate: 0.6,
|
|
143
|
+
density: [2, 4],
|
|
144
|
+
repetition: 0.25,
|
|
145
|
+
},
|
|
146
|
+
bass: {
|
|
147
|
+
behaviour: [["walking", 1]],
|
|
148
|
+
range: [28, 50],
|
|
149
|
+
onsets: grid("x.x.x.x."),
|
|
150
|
+
walk: { chordToneOnOne: 0.95, chromaticApproach: 0.35 },
|
|
151
|
+
},
|
|
152
|
+
form: {
|
|
153
|
+
plans: [[["intro", "verse", "chorus", "chorus", "verse"], 1]],
|
|
154
|
+
archetype: "head-solos-head",
|
|
155
|
+
},
|
|
156
|
+
texture: {
|
|
157
|
+
roles: {
|
|
158
|
+
kick: role("drums"),
|
|
159
|
+
snare: role("drums"),
|
|
160
|
+
hat: role("drums"),
|
|
161
|
+
bass: role("contrabass"),
|
|
162
|
+
chords: role("piano", "rhodes:0.4", "hammond:0.2"),
|
|
163
|
+
lead: role("sax", "trumpet:0.6", "vibes:0.3", "piano:0.3"),
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
expression: {
|
|
167
|
+
dynamics: [0.4, 0.9],
|
|
168
|
+
articulation: {
|
|
169
|
+
lead: [
|
|
170
|
+
["legato", 0.6],
|
|
171
|
+
["accent", 0.2],
|
|
172
|
+
["ghost", 0.2],
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
mix: {
|
|
177
|
+
levels: {
|
|
178
|
+
kick: -8,
|
|
179
|
+
snare: -8,
|
|
180
|
+
hat: -6,
|
|
181
|
+
bass: -2,
|
|
182
|
+
chords: -6,
|
|
183
|
+
lead: 0,
|
|
184
|
+
},
|
|
185
|
+
space: 0.35,
|
|
186
|
+
},
|
|
187
|
+
}),
|
|
188
|
+
card({
|
|
189
|
+
id: "early-jazz",
|
|
190
|
+
abstract: true,
|
|
191
|
+
summary:
|
|
192
|
+
"two-beat feel, collective polyphony, tuba or slap bass, ragtime harmony",
|
|
193
|
+
tempo: { bpm: [100, 220], typical: 170 },
|
|
194
|
+
bass: {
|
|
195
|
+
behaviour: [
|
|
196
|
+
["root-fifth", 0.7],
|
|
197
|
+
["walking", 0.3],
|
|
198
|
+
],
|
|
199
|
+
onsets: grid("x...x..."),
|
|
200
|
+
},
|
|
201
|
+
texture: {
|
|
202
|
+
kind: "polyphonic",
|
|
203
|
+
roles: {
|
|
204
|
+
bass: role("tuba", "contrabass:0.6"),
|
|
205
|
+
lead: role("trumpet", "clarinet:0.6"),
|
|
206
|
+
counter: role("clarinet", "trombone:0.6"),
|
|
207
|
+
chords: role("piano", "banjo:0.6"),
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
}),
|
|
211
|
+
card({
|
|
212
|
+
id: "swing-era",
|
|
213
|
+
abstract: true,
|
|
214
|
+
summary:
|
|
215
|
+
"big-band four-on-the-floor swing, riff sections, brass and reed shout",
|
|
216
|
+
groove: { swingRatio: [1.6, 2.2] },
|
|
217
|
+
rhythm: { onsets: { kick: grid("x.x.x.x.") } },
|
|
218
|
+
texture: {
|
|
219
|
+
roles: {
|
|
220
|
+
chords: role("horn", "piano:0.5"),
|
|
221
|
+
counter: maybe("trombone", "sax:0.6"),
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
}),
|
|
225
|
+
card({
|
|
226
|
+
id: "modern-jazz",
|
|
227
|
+
abstract: true,
|
|
228
|
+
summary: "small combo, ride cymbal time, extended chords, improvised lines",
|
|
229
|
+
// Ride spang-a-lang over the foot hi-hat on 2 and 4.
|
|
230
|
+
rhythm: { onsets: { openhat: SWING_RIDE } },
|
|
231
|
+
texture: { roles: { openhat: role("drums") } },
|
|
232
|
+
mix: { levels: { openhat: -9 } },
|
|
233
|
+
}),
|
|
234
|
+
card({
|
|
235
|
+
id: "bebop",
|
|
236
|
+
summary: "fast swung eighths, ii-V chains, chromatic lines, walking bass",
|
|
237
|
+
seedSalt: 1942,
|
|
238
|
+
tempo: { bpm: [200, 320], typical: 250 },
|
|
239
|
+
groove: {
|
|
240
|
+
swingRatio: [1.6, 2.0],
|
|
241
|
+
microtiming: [0, 0.02],
|
|
242
|
+
roleOffset: { bass: -0.01 },
|
|
243
|
+
},
|
|
244
|
+
rhythm: {
|
|
245
|
+
onsets: {
|
|
246
|
+
hat: grid("..x...x."),
|
|
247
|
+
kick: grid("1...1..."),
|
|
248
|
+
snare: grid("...1..2."),
|
|
249
|
+
},
|
|
250
|
+
locks: [{ kind: "avoid", a: "kick", b: "snare" }],
|
|
251
|
+
},
|
|
252
|
+
harmony: {
|
|
253
|
+
presets: [
|
|
254
|
+
["ii-v-i", 0.6],
|
|
255
|
+
["turnaround", 0.4],
|
|
256
|
+
],
|
|
257
|
+
sources: { presets: 1, chain: 3 },
|
|
258
|
+
rhythm: [
|
|
259
|
+
[2, 0.7],
|
|
260
|
+
[1, 0.3],
|
|
261
|
+
],
|
|
262
|
+
sevenths: 1,
|
|
263
|
+
voicing: {
|
|
264
|
+
types: [
|
|
265
|
+
["shell", 0.6],
|
|
266
|
+
["open", 0.4],
|
|
267
|
+
],
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
melody: {
|
|
271
|
+
density: [3, 4],
|
|
272
|
+
ambitus: [12, 19],
|
|
273
|
+
intervals: intervals(6, 2.5, 0.6, 0.1),
|
|
274
|
+
chordToneRate: 0.55,
|
|
275
|
+
contour: [
|
|
276
|
+
["descending", 0.5],
|
|
277
|
+
["wave", 0.5],
|
|
278
|
+
],
|
|
279
|
+
phraseBars: [
|
|
280
|
+
[2, 0.5],
|
|
281
|
+
[4, 0.5],
|
|
282
|
+
],
|
|
283
|
+
},
|
|
284
|
+
bass: { walk: { chordToneOnOne: 1, chromaticApproach: 0.45 } },
|
|
285
|
+
texture: {
|
|
286
|
+
roles: {
|
|
287
|
+
lead: role("sax", "trumpet:0.7", "alto:0.5"),
|
|
288
|
+
chords: role("piano"),
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
}),
|
|
292
|
+
card({
|
|
293
|
+
id: "avant-jazz",
|
|
294
|
+
abstract: true,
|
|
295
|
+
summary: "free time and harmony: clusters, pedal points, wide intervals",
|
|
296
|
+
harmony: { model: "modal" },
|
|
297
|
+
melody: { intervals: intervals(2, 2, 2, 0.3), chordToneRate: 0.3 },
|
|
298
|
+
bass: {
|
|
299
|
+
behaviour: [
|
|
300
|
+
["pedal", 0.4],
|
|
301
|
+
["walking", 0.6],
|
|
302
|
+
],
|
|
303
|
+
},
|
|
304
|
+
}),
|
|
305
|
+
card({
|
|
306
|
+
id: "jazz-fusion-family",
|
|
307
|
+
abstract: true,
|
|
308
|
+
summary:
|
|
309
|
+
"straight sixteenths, modal vamps, electric keys and bass, odd meters",
|
|
310
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
311
|
+
meter: {
|
|
312
|
+
signatures: [
|
|
313
|
+
["4/4", 0.7],
|
|
314
|
+
["7/8", 0.15],
|
|
315
|
+
["5/4", 0.15],
|
|
316
|
+
],
|
|
317
|
+
},
|
|
318
|
+
harmony: { model: "modal" },
|
|
319
|
+
rhythm: {
|
|
320
|
+
onsets: {
|
|
321
|
+
kick: grid("x.....x...x....."),
|
|
322
|
+
snare: grid("....x.......x..."),
|
|
323
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
bass: {
|
|
327
|
+
behaviour: [
|
|
328
|
+
["ostinato", 0.6],
|
|
329
|
+
["arpeggio", 0.4],
|
|
330
|
+
],
|
|
331
|
+
onsets: grid("x..x..x...x.x..."),
|
|
332
|
+
},
|
|
333
|
+
texture: {
|
|
334
|
+
roles: { bass: role("ebass"), chords: role("rhodes", "hammond:0.4") },
|
|
335
|
+
},
|
|
336
|
+
}),
|
|
337
|
+
card({
|
|
338
|
+
id: "blues",
|
|
339
|
+
abstract: true,
|
|
340
|
+
summary:
|
|
341
|
+
"12-bar I7-IV7-V7 form, shuffle triplets, blue thirds and sevenths",
|
|
342
|
+
tempo: { bpm: [60, 150], typical: 96 },
|
|
343
|
+
meter: {
|
|
344
|
+
signatures: [
|
|
345
|
+
["4/4", 0.7],
|
|
346
|
+
["12/8", 0.3],
|
|
347
|
+
],
|
|
348
|
+
hypermeter: [[12, 1]],
|
|
349
|
+
},
|
|
350
|
+
groove: { subdivision: 2, swingRatio: [1.8, 2.1] },
|
|
351
|
+
rhythm: {
|
|
352
|
+
onsets: {
|
|
353
|
+
kick: grid("x...x..."),
|
|
354
|
+
snare: grid("..x...x."),
|
|
355
|
+
hat: grid("x.x.x.x."),
|
|
356
|
+
},
|
|
357
|
+
},
|
|
358
|
+
pitch: {
|
|
359
|
+
scales: [
|
|
360
|
+
["blues", 0.6],
|
|
361
|
+
["mixolydian", 0.4],
|
|
362
|
+
],
|
|
363
|
+
},
|
|
364
|
+
harmony: {
|
|
365
|
+
forms: [
|
|
366
|
+
[BLUES_FORM, 0.6],
|
|
367
|
+
[QUICK_CHANGE_FORM, 0.4],
|
|
368
|
+
],
|
|
369
|
+
// The rare non-form chorus is a turnaround or I-bVII-IV vamp, never a
|
|
370
|
+
// pop axis loop.
|
|
371
|
+
presets: [
|
|
372
|
+
["turnaround", 0.5],
|
|
373
|
+
["mixolydian-rock", 0.5],
|
|
374
|
+
],
|
|
375
|
+
sources: { forms: 3, presets: 0.2 },
|
|
376
|
+
sevenths: 1,
|
|
377
|
+
rhythm: [[1, 1]],
|
|
378
|
+
},
|
|
379
|
+
melody: {
|
|
380
|
+
chordToneRate: 0.5,
|
|
381
|
+
intervals: intervals(4, 3, 0.8, 0.8),
|
|
382
|
+
repetition: 0.6,
|
|
383
|
+
},
|
|
384
|
+
bass: {
|
|
385
|
+
behaviour: [
|
|
386
|
+
["walking", 0.5],
|
|
387
|
+
["root-fifth", 0.5],
|
|
388
|
+
],
|
|
389
|
+
onsets: grid("x.x.x.x."),
|
|
390
|
+
},
|
|
391
|
+
texture: {
|
|
392
|
+
roles: {
|
|
393
|
+
chords: role("electric", "piano:0.6"),
|
|
394
|
+
lead: role("electric", "sax:0.4"),
|
|
395
|
+
},
|
|
396
|
+
},
|
|
397
|
+
}),
|
|
398
|
+
card({
|
|
399
|
+
id: "acoustic-blues",
|
|
400
|
+
abstract: true,
|
|
401
|
+
summary: "solo guitar or piano, irregular bar lengths, bent thirds, no kit",
|
|
402
|
+
texture: {
|
|
403
|
+
roles: {
|
|
404
|
+
kick: null,
|
|
405
|
+
snare: null,
|
|
406
|
+
hat: null,
|
|
407
|
+
chords: role("steel", "piano:0.4"),
|
|
408
|
+
lead: role("steel", "whistle:0.2"),
|
|
409
|
+
},
|
|
410
|
+
},
|
|
411
|
+
}),
|
|
412
|
+
card({
|
|
413
|
+
id: "urban-blues",
|
|
414
|
+
abstract: true,
|
|
415
|
+
summary:
|
|
416
|
+
"electric band blues: shuffle kit, amplified guitar lead, horn riffs",
|
|
417
|
+
texture: { roles: { lead: role("electric"), bass: role("ebass") } },
|
|
418
|
+
}),
|
|
419
|
+
card({
|
|
420
|
+
id: "rnb-soul",
|
|
421
|
+
abstract: true,
|
|
422
|
+
summary: "backbeat on 2 and 4, gospel-derived chords, call and response",
|
|
423
|
+
tempo: { bpm: [70, 120], typical: 96 },
|
|
424
|
+
pitch: {
|
|
425
|
+
scales: [
|
|
426
|
+
["major", 0.4],
|
|
427
|
+
["dorian", 0.3],
|
|
428
|
+
["minor", 0.3],
|
|
429
|
+
],
|
|
430
|
+
},
|
|
431
|
+
harmony: {
|
|
432
|
+
presets: [
|
|
433
|
+
["turnaround", 0.4],
|
|
434
|
+
["dorian-vamp", 0.3],
|
|
435
|
+
["ii-v-i", 0.3],
|
|
436
|
+
],
|
|
437
|
+
sevenths: 0.7,
|
|
438
|
+
},
|
|
439
|
+
bass: {
|
|
440
|
+
behaviour: [
|
|
441
|
+
["arpeggio", 0.5],
|
|
442
|
+
["root-fifth", 0.5],
|
|
443
|
+
],
|
|
444
|
+
onsets: grid("x.....x...x.x..."),
|
|
445
|
+
},
|
|
446
|
+
texture: {
|
|
447
|
+
roles: {
|
|
448
|
+
chords: role("epiano", "hammond:0.5", "piano:0.4"),
|
|
449
|
+
bass: role("ebass", "motown:0.6"),
|
|
450
|
+
lead: role("sing", "sax:0.4"),
|
|
451
|
+
},
|
|
452
|
+
},
|
|
453
|
+
}),
|
|
454
|
+
card({
|
|
455
|
+
id: "rhythm-and-blues",
|
|
456
|
+
abstract: true,
|
|
457
|
+
summary: "jump and shuffle R&B: triplet swing, honking sax, boogie bass",
|
|
458
|
+
groove: { subdivision: 2, swingRatio: [1.7, 2.1] },
|
|
459
|
+
bass: { behaviour: [["arpeggio", 1]] },
|
|
460
|
+
}),
|
|
461
|
+
card({
|
|
462
|
+
id: "soul",
|
|
463
|
+
abstract: true,
|
|
464
|
+
summary: "straight eighths backbeat, horn section, I-IV and ii-V vamps",
|
|
465
|
+
}),
|
|
466
|
+
card({
|
|
467
|
+
id: "modern-rnb",
|
|
468
|
+
abstract: true,
|
|
469
|
+
summary:
|
|
470
|
+
"programmed drums, extended chords, sparse sub bass, melismatic lead",
|
|
471
|
+
rhythm: {
|
|
472
|
+
onsets: { kick: grid("x......x..x....."), hat: grid("x.x.x.x.x.x.x.x.") },
|
|
473
|
+
},
|
|
474
|
+
texture: {
|
|
475
|
+
roles: { kick: role("drums"), bass: role("bass", "ebass:0.4") },
|
|
476
|
+
},
|
|
477
|
+
}),
|
|
478
|
+
card({
|
|
479
|
+
id: "funk",
|
|
480
|
+
abstract: true,
|
|
481
|
+
summary: "the one: downbeat-heavy sixteenth grooves, dominant-ninth vamps",
|
|
482
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
483
|
+
pitch: {
|
|
484
|
+
scales: [
|
|
485
|
+
["dorian", 0.5],
|
|
486
|
+
["mixolydian", 0.5],
|
|
487
|
+
],
|
|
488
|
+
},
|
|
489
|
+
harmony: { model: "modal", sevenths: 0.9 },
|
|
490
|
+
rhythm: {
|
|
491
|
+
onsets: {
|
|
492
|
+
kick: grid("x.....x.x.....x."),
|
|
493
|
+
snare: grid("....x..1.1..x..."),
|
|
494
|
+
hat: grid("xxxxxxxxxxxxxxxx"),
|
|
495
|
+
},
|
|
496
|
+
},
|
|
497
|
+
bass: { behaviour: [["ostinato", 1]], onsets: grid("x..x..x.x.1..x.1") },
|
|
498
|
+
texture: { roles: { chords: role("funk", "clav:0.6") } },
|
|
499
|
+
}),
|
|
500
|
+
card({
|
|
501
|
+
id: "gospel-sacred",
|
|
502
|
+
abstract: true,
|
|
503
|
+
summary: "church harmony: plagal IV-I, passing diminished chords, choir",
|
|
504
|
+
harmony: {
|
|
505
|
+
cadences: [
|
|
506
|
+
["IV-I", 0.5],
|
|
507
|
+
["V-I", 0.5],
|
|
508
|
+
],
|
|
509
|
+
sevenths: 0.6,
|
|
510
|
+
},
|
|
511
|
+
groove: { subdivision: 2, swingRatio: [1, 1.8] },
|
|
512
|
+
texture: {
|
|
513
|
+
roles: {
|
|
514
|
+
chords: role("hammond", "piano:0.7"),
|
|
515
|
+
lead: role("choir", "sing:0.6"),
|
|
516
|
+
},
|
|
517
|
+
},
|
|
518
|
+
}),
|
|
519
|
+
card({
|
|
520
|
+
id: "country",
|
|
521
|
+
abstract: true,
|
|
522
|
+
summary:
|
|
523
|
+
"boom-chick two-beat, I-IV-V in major, root-fifth bass, twang leads",
|
|
524
|
+
tempo: { bpm: [80, 170], typical: 112 },
|
|
525
|
+
pitch: {
|
|
526
|
+
scales: [
|
|
527
|
+
["major", 0.8],
|
|
528
|
+
["mixolydian", 0.2],
|
|
529
|
+
],
|
|
530
|
+
},
|
|
531
|
+
harmony: {
|
|
532
|
+
presets: [
|
|
533
|
+
["fifties", 0.3],
|
|
534
|
+
["axis", 0.3],
|
|
535
|
+
["mixolydian-rock", 0.4],
|
|
536
|
+
],
|
|
537
|
+
sevenths: 0.1,
|
|
538
|
+
},
|
|
539
|
+
rhythm: {
|
|
540
|
+
onsets: {
|
|
541
|
+
kick: grid("x.......x......."),
|
|
542
|
+
snare: grid("....x.......x..."),
|
|
543
|
+
},
|
|
544
|
+
},
|
|
545
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x.......x.......") },
|
|
546
|
+
texture: {
|
|
547
|
+
roles: {
|
|
548
|
+
chords: role("acoustic"),
|
|
549
|
+
lead: role("fiddle", "electric:0.6", "banjo:0.4"),
|
|
550
|
+
},
|
|
551
|
+
},
|
|
552
|
+
}),
|
|
553
|
+
card({
|
|
554
|
+
id: "north-american-folk",
|
|
555
|
+
abstract: true,
|
|
556
|
+
summary:
|
|
557
|
+
"strophic song, diatonic modes, acoustic strings, little or no kit",
|
|
558
|
+
pitch: {
|
|
559
|
+
scales: [
|
|
560
|
+
["major", 0.5],
|
|
561
|
+
["mixolydian", 0.25],
|
|
562
|
+
["dorian", 0.25],
|
|
563
|
+
],
|
|
564
|
+
},
|
|
565
|
+
harmony: { sevenths: 0 },
|
|
566
|
+
texture: {
|
|
567
|
+
roles: {
|
|
568
|
+
kick: null,
|
|
569
|
+
snare: null,
|
|
570
|
+
hat: null,
|
|
571
|
+
chords: role("acoustic", "banjo:0.5"),
|
|
572
|
+
lead: role("fiddle", "whistle:0.4"),
|
|
573
|
+
},
|
|
574
|
+
},
|
|
575
|
+
form: {
|
|
576
|
+
plans: [[["verse", "verse", "chorus", "verse", "chorus"], 1]],
|
|
577
|
+
archetype: "strophic",
|
|
578
|
+
},
|
|
579
|
+
}),
|
|
580
|
+
// -------------------------------------------------------------------------
|
|
581
|
+
// Jazz leaves. References: Mark Levine, "The Jazz Theory Book" (1995);
|
|
582
|
+
// Gunther Schuller, "Early Jazz" (1968) and "The Swing Era" (1989).
|
|
583
|
+
card({
|
|
584
|
+
id: "ragtime",
|
|
585
|
+
summary:
|
|
586
|
+
"ragtime: straight 2/4 march bass (oom-pah), syncopated right-hand cakewalk figure, secondary dominants, multi-strain AABBACCDD",
|
|
587
|
+
seedSalt: 1899,
|
|
588
|
+
meter: { signatures: [["2/4", 1]], hypermeter: [[8, 1]] },
|
|
589
|
+
tempo: { bpm: [70, 110], typical: 88 },
|
|
590
|
+
groove: { subdivision: 4, swingRatio: [1, 1.05] },
|
|
591
|
+
rhythm: {
|
|
592
|
+
onsets: { kick: null, snare: null, hat: null, chords: grid("..x...x.") },
|
|
593
|
+
},
|
|
594
|
+
harmony: {
|
|
595
|
+
presets: [
|
|
596
|
+
["fifties", 0.4],
|
|
597
|
+
["turnaround", 0.6],
|
|
598
|
+
],
|
|
599
|
+
chain: {
|
|
600
|
+
I: [
|
|
601
|
+
["VI7", 2],
|
|
602
|
+
["IV", 1],
|
|
603
|
+
["V7", 1],
|
|
604
|
+
],
|
|
605
|
+
VI7: [["II7", 3]],
|
|
606
|
+
II7: [["V7", 3]],
|
|
607
|
+
IV: [
|
|
608
|
+
["#ivo7", 1],
|
|
609
|
+
["V7", 1],
|
|
610
|
+
],
|
|
611
|
+
"#ivo7": [["I", 3]],
|
|
612
|
+
V7: [["I", 3]],
|
|
613
|
+
},
|
|
614
|
+
sources: { presets: 1, chain: 3 },
|
|
615
|
+
cadences: [["V-I", 1]],
|
|
616
|
+
rhythm: [[1, 1]],
|
|
617
|
+
sevenths: 0.3,
|
|
618
|
+
voicing: { types: [["close", 1]], range: [55, 76], notes: [3, 4] },
|
|
619
|
+
},
|
|
620
|
+
melody: {
|
|
621
|
+
density: [3, 4],
|
|
622
|
+
intervals: intervals(4, 3, 1.5, 0.5),
|
|
623
|
+
chordToneRate: 0.75,
|
|
624
|
+
contour: [
|
|
625
|
+
["arch", 0.6],
|
|
626
|
+
["wave", 0.4],
|
|
627
|
+
],
|
|
628
|
+
repetition: 0.6,
|
|
629
|
+
},
|
|
630
|
+
bass: {
|
|
631
|
+
behaviour: [
|
|
632
|
+
["octave", 0.6],
|
|
633
|
+
["root-fifth", 0.4],
|
|
634
|
+
],
|
|
635
|
+
onsets: grid("x...x..."),
|
|
636
|
+
},
|
|
637
|
+
form: {
|
|
638
|
+
plans: [[["verse", "verse", "chorus", "chorus", "verse"], 1]],
|
|
639
|
+
archetype: "multi-strain rag",
|
|
640
|
+
},
|
|
641
|
+
texture: {
|
|
642
|
+
kind: "homophonic",
|
|
643
|
+
roles: {
|
|
644
|
+
bass: role("piano"),
|
|
645
|
+
chords: role("piano", "honkytonk:0.5"),
|
|
646
|
+
lead: role("piano", "honkytonk:0.4"),
|
|
647
|
+
counter: null,
|
|
648
|
+
},
|
|
649
|
+
},
|
|
650
|
+
}),
|
|
651
|
+
card({
|
|
652
|
+
id: "new-orleans-jazz",
|
|
653
|
+
summary:
|
|
654
|
+
"New Orleans: two-beat with Spanish-tinge tresillo bass, collective improvisation (trumpet lead, clarinet obbligato, trombone tailgate)",
|
|
655
|
+
seedSalt: 1917,
|
|
656
|
+
tempo: { bpm: [90, 200], typical: 150 },
|
|
657
|
+
rhythm: {
|
|
658
|
+
onsets: {
|
|
659
|
+
kick: grid("x...x..."),
|
|
660
|
+
snare: grid("..x...x."),
|
|
661
|
+
hat: grid("x.x.x.x."),
|
|
662
|
+
},
|
|
663
|
+
},
|
|
664
|
+
harmony: {
|
|
665
|
+
presets: [
|
|
666
|
+
["fifties", 0.3],
|
|
667
|
+
["turnaround", 0.7],
|
|
668
|
+
],
|
|
669
|
+
sevenths: 0.5,
|
|
670
|
+
rhythm: [[1, 1]],
|
|
671
|
+
voicing: { types: [["close", 1]] },
|
|
672
|
+
},
|
|
673
|
+
melody: { chordToneRate: 0.75, density: [2, 3] },
|
|
674
|
+
form: { archetype: "head-ensemble-choruses" },
|
|
675
|
+
}),
|
|
676
|
+
card({
|
|
677
|
+
id: "chicago-jazz",
|
|
678
|
+
summary:
|
|
679
|
+
"Chicago style: four-to-the-bar replaces two-beat, string bass walks, solo choruses over 32-bar song form, driving hi-hat",
|
|
680
|
+
seedSalt: 1927,
|
|
681
|
+
tempo: { bpm: [140, 230], typical: 180 },
|
|
682
|
+
rhythm: { onsets: { kick: grid("x.x.x.x."), hat: grid("..x...x.") } },
|
|
683
|
+
bass: {
|
|
684
|
+
behaviour: [
|
|
685
|
+
["walking", 0.7],
|
|
686
|
+
["root-fifth", 0.3],
|
|
687
|
+
],
|
|
688
|
+
},
|
|
689
|
+
texture: {
|
|
690
|
+
roles: {
|
|
691
|
+
bass: role("contrabass", "tuba:0.3"),
|
|
692
|
+
chords: role("piano", "banjo:0.4"),
|
|
693
|
+
lead: role("trumpet", "clarinet:0.5", "sax:0.5"),
|
|
694
|
+
},
|
|
695
|
+
},
|
|
696
|
+
form: { archetype: "aaba" },
|
|
697
|
+
}),
|
|
698
|
+
card({
|
|
699
|
+
id: "stride",
|
|
700
|
+
summary:
|
|
701
|
+
"stride piano: left hand leaps bass note on 1 and 3 to mid-register chord on 2 and 4, right-hand runs over ragtime harmony",
|
|
702
|
+
seedSalt: 1921,
|
|
703
|
+
tempo: { bpm: [120, 250], typical: 180 },
|
|
704
|
+
groove: { swingRatio: [1.3, 1.8] },
|
|
705
|
+
rhythm: {
|
|
706
|
+
onsets: { kick: null, snare: null, hat: null, chords: grid("..x...x.") },
|
|
707
|
+
},
|
|
708
|
+
harmony: {
|
|
709
|
+
presets: [["turnaround", 1]],
|
|
710
|
+
rhythm: [[1, 1]],
|
|
711
|
+
sevenths: 0.6,
|
|
712
|
+
voicing: { types: [["close", 1]], range: [52, 70], notes: [3, 4] },
|
|
713
|
+
},
|
|
714
|
+
bass: {
|
|
715
|
+
behaviour: [
|
|
716
|
+
["octave", 0.5],
|
|
717
|
+
["root-fifth", 0.5],
|
|
718
|
+
],
|
|
719
|
+
onsets: grid("x...x..."),
|
|
720
|
+
range: [28, 48],
|
|
721
|
+
},
|
|
722
|
+
melody: { density: [3, 4], chordToneRate: 0.7 },
|
|
723
|
+
texture: {
|
|
724
|
+
kind: "homophonic",
|
|
725
|
+
roles: {
|
|
726
|
+
bass: role("piano"),
|
|
727
|
+
chords: role("piano", "upright:0.5"),
|
|
728
|
+
lead: role("piano"),
|
|
729
|
+
counter: null,
|
|
730
|
+
},
|
|
731
|
+
},
|
|
732
|
+
}),
|
|
733
|
+
card({
|
|
734
|
+
id: "big-band-swing",
|
|
735
|
+
summary:
|
|
736
|
+
"big band: four-on-the-floor swing, saxes vs brass riff call and response, shout chorus, 32-bar AABA, ii-V turnarounds",
|
|
737
|
+
seedSalt: 1935,
|
|
738
|
+
tempo: { bpm: [120, 240], typical: 160 },
|
|
739
|
+
rhythm: {
|
|
740
|
+
onsets: {
|
|
741
|
+
kick: grid("x.x.x.x."),
|
|
742
|
+
snare: grid("..1...1."),
|
|
743
|
+
hat: grid("x.xxx.xx"),
|
|
744
|
+
},
|
|
745
|
+
},
|
|
746
|
+
bass: { behaviour: [["walking", 1]] },
|
|
747
|
+
texture: {
|
|
748
|
+
roles: {
|
|
749
|
+
chords: role("horn", "trombone:0.6"),
|
|
750
|
+
counter: role("sax", "altosax:0.6"),
|
|
751
|
+
lead: role("trumpet", "sax:0.4"),
|
|
752
|
+
},
|
|
753
|
+
},
|
|
754
|
+
form: {
|
|
755
|
+
plans: [
|
|
756
|
+
[["intro", "verse", "verse", "bridge", "verse", "chorus", "outro"], 1],
|
|
757
|
+
],
|
|
758
|
+
archetype: "aaba",
|
|
759
|
+
},
|
|
760
|
+
mix: { space: 0.4 },
|
|
761
|
+
}),
|
|
762
|
+
card({
|
|
763
|
+
id: "kansas-city-jazz",
|
|
764
|
+
summary:
|
|
765
|
+
"Kansas City: riff-based head arrangements over 12-bar blues, light four-four pulse, hi-hat time, relaxed hard swing",
|
|
766
|
+
seedSalt: 1936,
|
|
767
|
+
tempo: { bpm: [130, 240], typical: 170 },
|
|
768
|
+
meter: { hypermeter: [[12, 1]] },
|
|
769
|
+
pitch: {
|
|
770
|
+
scales: [
|
|
771
|
+
["mixolydian", 0.6],
|
|
772
|
+
["blues", 0.4],
|
|
773
|
+
],
|
|
774
|
+
},
|
|
775
|
+
harmony: {
|
|
776
|
+
forms: [[BLUES_FORM, 1]],
|
|
777
|
+
sources: { forms: 3, presets: 0.5 },
|
|
778
|
+
rhythm: [[1, 1]],
|
|
779
|
+
},
|
|
780
|
+
melody: {
|
|
781
|
+
repetition: 0.8,
|
|
782
|
+
phraseBars: [
|
|
783
|
+
[2, 0.6],
|
|
784
|
+
[4, 0.4],
|
|
785
|
+
],
|
|
786
|
+
},
|
|
787
|
+
bass: { behaviour: [["walking", 1]] },
|
|
788
|
+
rhythm: { onsets: { hat: grid("..x...x.") } },
|
|
789
|
+
form: { archetype: "12-bar riff" },
|
|
790
|
+
}),
|
|
791
|
+
card({
|
|
792
|
+
id: "gypsy-jazz",
|
|
793
|
+
summary:
|
|
794
|
+
"gypsy jazz: la pompe rhythm guitar on every beat (2 and 4 accented), no kit, harmonic-minor and minor-sixth color, violin and guitar arpeggio runs",
|
|
795
|
+
seedSalt: 1934,
|
|
796
|
+
tempo: { bpm: [120, 280], typical: 200 },
|
|
797
|
+
groove: { swingRatio: [1.4, 1.8] },
|
|
798
|
+
pitch: {
|
|
799
|
+
scales: [
|
|
800
|
+
["harmonic-minor", 0.5],
|
|
801
|
+
["major", 0.5],
|
|
802
|
+
],
|
|
803
|
+
},
|
|
804
|
+
rhythm: {
|
|
805
|
+
onsets: {
|
|
806
|
+
kick: null,
|
|
807
|
+
snare: null,
|
|
808
|
+
hat: null,
|
|
809
|
+
chords: grid("x.x.x.x."),
|
|
810
|
+
},
|
|
811
|
+
},
|
|
812
|
+
harmony: {
|
|
813
|
+
presets: [
|
|
814
|
+
["minor-ii-v", 0.5],
|
|
815
|
+
["turnaround", 0.5],
|
|
816
|
+
],
|
|
817
|
+
rhythm: [[1, 1]],
|
|
818
|
+
voicing: { types: [["close", 1]], range: [52, 72], notes: [3, 4] },
|
|
819
|
+
},
|
|
820
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
821
|
+
melody: { density: [3, 4], intervals: intervals(4, 4, 0.8, 0.2) },
|
|
822
|
+
texture: {
|
|
823
|
+
kind: "homophonic",
|
|
824
|
+
roles: {
|
|
825
|
+
bass: role("contrabass"),
|
|
826
|
+
chords: role("acoustic"),
|
|
827
|
+
lead: role("violin", "acoustic:0.7"),
|
|
828
|
+
counter: null,
|
|
829
|
+
},
|
|
830
|
+
},
|
|
831
|
+
}),
|
|
832
|
+
card({
|
|
833
|
+
id: "vocal-jazz",
|
|
834
|
+
summary:
|
|
835
|
+
"vocal standards: 32-bar AABA song form, ballad to medium swing, ii-V-I with tritone subs, brushes, lyrical stepwise line",
|
|
836
|
+
seedSalt: 1950,
|
|
837
|
+
tempo: { bpm: [60, 180], typical: 110 },
|
|
838
|
+
rhythm: { onsets: { snare: grid("..2...2."), kick: grid("x.......") } },
|
|
839
|
+
melody: {
|
|
840
|
+
intervals: intervals(5, 2, 0.6, 0.6),
|
|
841
|
+
density: [1, 2],
|
|
842
|
+
chordToneRate: 0.7,
|
|
843
|
+
contour: [["arch", 1]],
|
|
844
|
+
repetition: 0.5,
|
|
845
|
+
},
|
|
846
|
+
texture: {
|
|
847
|
+
roles: {
|
|
848
|
+
lead: role("sing"),
|
|
849
|
+
chords: role("piano", "acoustic:0.4"),
|
|
850
|
+
counter: maybe("sax", "trumpet:0.5"),
|
|
851
|
+
},
|
|
852
|
+
},
|
|
853
|
+
form: {
|
|
854
|
+
plans: [[["intro", "verse", "verse", "bridge", "verse", "outro"], 1]],
|
|
855
|
+
archetype: "aaba",
|
|
856
|
+
},
|
|
857
|
+
}),
|
|
858
|
+
card({
|
|
859
|
+
id: "cool-jazz",
|
|
860
|
+
summary:
|
|
861
|
+
"cool jazz: relaxed tempos, light swing, counterpoint between horns, soft dynamics, chamber voicings, lydian and major-seventh color",
|
|
862
|
+
seedSalt: 1949,
|
|
863
|
+
tempo: { bpm: [92, 150], typical: 118 },
|
|
864
|
+
groove: { swingRatio: [1.4, 1.7] },
|
|
865
|
+
// Brushes (Chico Hamilton, Larry Bunker with Mulligan and Baker): a
|
|
866
|
+
// swept snare on every beat, the bass drum silent, no spang-a-lang.
|
|
867
|
+
rhythm: {
|
|
868
|
+
onsets: {
|
|
869
|
+
kick: null,
|
|
870
|
+
snare: grid("6.6.6.6."),
|
|
871
|
+
openhat: null,
|
|
872
|
+
hat: grid("..x...x."),
|
|
873
|
+
},
|
|
874
|
+
},
|
|
875
|
+
pitch: {
|
|
876
|
+
scales: [
|
|
877
|
+
["major", 0.6],
|
|
878
|
+
["lydian", 0.4],
|
|
879
|
+
],
|
|
880
|
+
},
|
|
881
|
+
melody: {
|
|
882
|
+
intervals: intervals(5, 3, 0.6, 0.4),
|
|
883
|
+
density: [2, 3],
|
|
884
|
+
contour: [
|
|
885
|
+
["arch", 0.6],
|
|
886
|
+
["wave", 0.4],
|
|
887
|
+
],
|
|
888
|
+
},
|
|
889
|
+
texture: {
|
|
890
|
+
kind: "polyphonic",
|
|
891
|
+
roles: {
|
|
892
|
+
lead: role("altosax", "trumpet:0.6"),
|
|
893
|
+
counter: role("barisax", "trombone:0.5", "horn:0.4"),
|
|
894
|
+
chords: role("piano", "acoustic:0.3"),
|
|
895
|
+
kick: null,
|
|
896
|
+
openhat: null,
|
|
897
|
+
},
|
|
898
|
+
},
|
|
899
|
+
expression: { dynamics: [0.3, 0.7] },
|
|
900
|
+
}),
|
|
901
|
+
card({
|
|
902
|
+
id: "hard-bop",
|
|
903
|
+
summary:
|
|
904
|
+
"hard bop: bebop vocabulary with blues and gospel inflection, minor ii-V, trumpet and tenor unison heads, hard-swinging ride and snare comping",
|
|
905
|
+
seedSalt: 1955,
|
|
906
|
+
// Medium "hard-swinging" tempos, slower than bebop; minor keys and the
|
|
907
|
+
// blues scale carry the gospel and blues inflection.
|
|
908
|
+
tempo: { bpm: [120, 190], typical: 160 },
|
|
909
|
+
pitch: {
|
|
910
|
+
scales: [
|
|
911
|
+
["minor", 0.45],
|
|
912
|
+
["dorian", 0.3],
|
|
913
|
+
["blues", 0.25],
|
|
914
|
+
],
|
|
915
|
+
},
|
|
916
|
+
harmony: {
|
|
917
|
+
presets: [
|
|
918
|
+
["minor-ii-v", 0.5],
|
|
919
|
+
["ii-v-i", 0.5],
|
|
920
|
+
],
|
|
921
|
+
},
|
|
922
|
+
melody: { density: [2, 4], intervals: intervals(5, 3, 0.8, 0.2) },
|
|
923
|
+
// Blakey: a rimshot on 4 and press-roll pickups into the next chorus.
|
|
924
|
+
rhythm: { onsets: { snare: grid("..2..1x."), kick: grid("x...1...") } },
|
|
925
|
+
texture: {
|
|
926
|
+
roles: {
|
|
927
|
+
lead: role("trumpet", "sax:0.8"),
|
|
928
|
+
counter: maybe("sax"),
|
|
929
|
+
},
|
|
930
|
+
},
|
|
931
|
+
}),
|
|
932
|
+
card({
|
|
933
|
+
id: "soul-jazz",
|
|
934
|
+
summary:
|
|
935
|
+
"soul jazz: Hammond organ trio, bluesy dorian vamps, gospel plagal turns, groove-locked straight-to-light swing backbeat",
|
|
936
|
+
seedSalt: 1959,
|
|
937
|
+
tempo: { bpm: [80, 150], typical: 110 },
|
|
938
|
+
groove: { swingRatio: [1.3, 1.7] },
|
|
939
|
+
pitch: {
|
|
940
|
+
scales: [
|
|
941
|
+
["dorian", 0.5],
|
|
942
|
+
["blues", 0.5],
|
|
943
|
+
],
|
|
944
|
+
},
|
|
945
|
+
harmony: {
|
|
946
|
+
presets: [["dorian-vamp", 1]],
|
|
947
|
+
forms: [[BLUES_FORM, 1]],
|
|
948
|
+
sources: { presets: 1, forms: 1, chain: 0 },
|
|
949
|
+
rhythm: [[1, 1]],
|
|
950
|
+
},
|
|
951
|
+
rhythm: { onsets: { snare: grid("..x...x."), kick: grid("x...x...") } },
|
|
952
|
+
bass: {
|
|
953
|
+
behaviour: [
|
|
954
|
+
["walking", 0.6],
|
|
955
|
+
["root-fifth", 0.4],
|
|
956
|
+
],
|
|
957
|
+
},
|
|
958
|
+
texture: {
|
|
959
|
+
roles: {
|
|
960
|
+
chords: role("hammond", "jazzorgan:0.6"),
|
|
961
|
+
bass: role("jazzorgan", "contrabass:0.5"),
|
|
962
|
+
lead: role("sax", "electric:0.6"),
|
|
963
|
+
},
|
|
964
|
+
},
|
|
965
|
+
}),
|
|
966
|
+
card({
|
|
967
|
+
id: "modal-jazz",
|
|
968
|
+
summary:
|
|
969
|
+
"modal jazz: few chords held 8-16 bars, dorian mode, quartal (fourths) voicings, pedal-point bass, scalar improvisation over the mode",
|
|
970
|
+
seedSalt: 1959,
|
|
971
|
+
tempo: { bpm: [120, 200], typical: 150 },
|
|
972
|
+
// "So What" in 4/4; "My Favorite Things" and "Afro Blue" in a 3/4 or
|
|
973
|
+
// 6/8 waltz under Elvin Jones's triplet cross-rhythms.
|
|
974
|
+
meter: {
|
|
975
|
+
signatures: [
|
|
976
|
+
["4/4", 0.5],
|
|
977
|
+
["3/4", 0.5],
|
|
978
|
+
],
|
|
979
|
+
},
|
|
980
|
+
// Elvin Jones: bass drum and snare answering the ride across the beat.
|
|
981
|
+
rhythm: { onsets: { kick: grid("x..3..3."), snare: grid(".3..3..3") } },
|
|
982
|
+
pitch: {
|
|
983
|
+
scales: [
|
|
984
|
+
["dorian", 0.7],
|
|
985
|
+
["mixolydian", 0.15],
|
|
986
|
+
["lydian", 0.15],
|
|
987
|
+
],
|
|
988
|
+
},
|
|
989
|
+
harmony: {
|
|
990
|
+
model: "modal",
|
|
991
|
+
rhythm: [
|
|
992
|
+
[0.25, 0.6],
|
|
993
|
+
[0.5, 0.4],
|
|
994
|
+
],
|
|
995
|
+
sevenths: 0.5,
|
|
996
|
+
voicing: { types: [["quartal", 1]], notes: [3, 5] },
|
|
997
|
+
},
|
|
998
|
+
melody: { chordToneRate: 0.4, intervals: intervals(5, 2, 1.2, 0.2) },
|
|
999
|
+
// McCoy Tyner's left-hand fifths and Jimmy Garrison's tonic pedal.
|
|
1000
|
+
bass: {
|
|
1001
|
+
behaviour: [
|
|
1002
|
+
["pedal", 0.6],
|
|
1003
|
+
["walking", 0.4],
|
|
1004
|
+
],
|
|
1005
|
+
onsets: grid("x.....x."),
|
|
1006
|
+
},
|
|
1007
|
+
}),
|
|
1008
|
+
card({
|
|
1009
|
+
id: "post-bop",
|
|
1010
|
+
summary:
|
|
1011
|
+
"post-bop: open forms, non-functional chord motion (constant-structure, chromatic mediants), sus and slash chords, interactive time",
|
|
1012
|
+
seedSalt: 1965,
|
|
1013
|
+
tempo: { bpm: [140, 280], typical: 200 },
|
|
1014
|
+
// Tony Williams's hi-hat on all four beats under the ride.
|
|
1015
|
+
rhythm: { onsets: { hat: grid("x.x.x.x."), kick: grid("1..1..1.") } },
|
|
1016
|
+
harmony: {
|
|
1017
|
+
chain: {
|
|
1018
|
+
Imaj7: [
|
|
1019
|
+
["bIIImaj7", 1],
|
|
1020
|
+
["bVImaj7", 1],
|
|
1021
|
+
["ii7", 1],
|
|
1022
|
+
],
|
|
1023
|
+
bIIImaj7: [
|
|
1024
|
+
["bVImaj7", 1],
|
|
1025
|
+
["ii7", 1],
|
|
1026
|
+
],
|
|
1027
|
+
bVImaj7: [
|
|
1028
|
+
["bII7", 1],
|
|
1029
|
+
["V7", 1],
|
|
1030
|
+
],
|
|
1031
|
+
bII7: [["Imaj7", 2]],
|
|
1032
|
+
ii7: [
|
|
1033
|
+
["V7", 2],
|
|
1034
|
+
["bII7", 1],
|
|
1035
|
+
],
|
|
1036
|
+
V7: [
|
|
1037
|
+
["Imaj7", 2],
|
|
1038
|
+
["bVImaj7", 1],
|
|
1039
|
+
],
|
|
1040
|
+
},
|
|
1041
|
+
sources: { presets: 0.5, chain: 3 },
|
|
1042
|
+
voicing: {
|
|
1043
|
+
types: [
|
|
1044
|
+
["quartal", 0.5],
|
|
1045
|
+
["open", 0.5],
|
|
1046
|
+
],
|
|
1047
|
+
},
|
|
1048
|
+
},
|
|
1049
|
+
melody: { intervals: intervals(4, 3, 1.4, 0.2) },
|
|
1050
|
+
}),
|
|
1051
|
+
card({
|
|
1052
|
+
id: "third-stream",
|
|
1053
|
+
summary:
|
|
1054
|
+
"third stream: classical forms and orchestration fused with jazz swing, through-composed counterpoint, French horn and strings",
|
|
1055
|
+
seedSalt: 1957,
|
|
1056
|
+
tempo: { bpm: [60, 120], typical: 88 },
|
|
1057
|
+
groove: { swingRatio: [1.2, 1.6] },
|
|
1058
|
+
// Orchestral: no kick or snare backbeat, only a soft ride and foot hat.
|
|
1059
|
+
rhythm: { onsets: { kick: null, snare: null } },
|
|
1060
|
+
texture: {
|
|
1061
|
+
kind: "polyphonic",
|
|
1062
|
+
roles: {
|
|
1063
|
+
kick: null,
|
|
1064
|
+
snare: null,
|
|
1065
|
+
chords: role("strings", "horn:0.6"),
|
|
1066
|
+
lead: role("clarinet", "horn:0.5", "altosax:0.5"),
|
|
1067
|
+
counter: role("cello", "bassoon:0.5"),
|
|
1068
|
+
},
|
|
1069
|
+
},
|
|
1070
|
+
form: {
|
|
1071
|
+
plans: [[["intro", "verse", "bridge", "verse", "outro"], 1]],
|
|
1072
|
+
archetype: "through-composed",
|
|
1073
|
+
},
|
|
1074
|
+
}),
|
|
1075
|
+
card({
|
|
1076
|
+
id: "chamber-jazz",
|
|
1077
|
+
summary:
|
|
1078
|
+
"chamber and ECM jazz: rubato-leaning even eighths, open fifths and sus voicings, lydian and aeolian modes, space and long reverb",
|
|
1079
|
+
seedSalt: 1971,
|
|
1080
|
+
tempo: { bpm: [56, 100], typical: 76 },
|
|
1081
|
+
meter: {
|
|
1082
|
+
signatures: [
|
|
1083
|
+
["4/4", 0.6],
|
|
1084
|
+
["3/4", 0.4],
|
|
1085
|
+
],
|
|
1086
|
+
},
|
|
1087
|
+
groove: { swingRatio: [1, 1.15] },
|
|
1088
|
+
pitch: {
|
|
1089
|
+
scales: [
|
|
1090
|
+
["lydian", 0.4],
|
|
1091
|
+
["minor", 0.3],
|
|
1092
|
+
["dorian", 0.3],
|
|
1093
|
+
],
|
|
1094
|
+
},
|
|
1095
|
+
harmony: {
|
|
1096
|
+
model: "modal",
|
|
1097
|
+
rhythm: [[0.5, 1]],
|
|
1098
|
+
voicing: {
|
|
1099
|
+
types: [
|
|
1100
|
+
["open", 0.6],
|
|
1101
|
+
["quartal", 0.4],
|
|
1102
|
+
],
|
|
1103
|
+
},
|
|
1104
|
+
},
|
|
1105
|
+
rhythm: {
|
|
1106
|
+
// Cymbal washes on the downbeat, not ride time.
|
|
1107
|
+
onsets: {
|
|
1108
|
+
kick: grid("x......."),
|
|
1109
|
+
snare: null,
|
|
1110
|
+
hat: grid("x.2.x.2."),
|
|
1111
|
+
openhat: grid("x...2..."),
|
|
1112
|
+
},
|
|
1113
|
+
},
|
|
1114
|
+
bass: {
|
|
1115
|
+
behaviour: [
|
|
1116
|
+
["pedal", 0.5],
|
|
1117
|
+
["root", 0.5],
|
|
1118
|
+
],
|
|
1119
|
+
onsets: grid("x...2..."),
|
|
1120
|
+
},
|
|
1121
|
+
melody: { density: [1, 2], contour: [["arch", 1]] },
|
|
1122
|
+
texture: { roles: { lead: role("sax", "piano:0.6", "acoustic:0.4") } },
|
|
1123
|
+
expression: { dynamics: [0.25, 0.65] },
|
|
1124
|
+
mix: { space: 0.6 },
|
|
1125
|
+
}),
|
|
1126
|
+
card({
|
|
1127
|
+
id: "contemporary-jazz",
|
|
1128
|
+
summary:
|
|
1129
|
+
"contemporary jazz: straight-eighth and swing hybrid grooves, reharmonised standards, upper-structure triads, odd-meter vamps",
|
|
1130
|
+
seedSalt: 1990,
|
|
1131
|
+
tempo: { bpm: [90, 200], typical: 130 },
|
|
1132
|
+
meter: {
|
|
1133
|
+
signatures: [
|
|
1134
|
+
["4/4", 0.7],
|
|
1135
|
+
["7/4", 0.15],
|
|
1136
|
+
["5/4", 0.15],
|
|
1137
|
+
],
|
|
1138
|
+
},
|
|
1139
|
+
// Even eighths in sixteenth-note subdivision (Brian Blade, Mehldau
|
|
1140
|
+
// trio): a displaced kick and cross-stick rather than ride swing.
|
|
1141
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
1142
|
+
rhythm: {
|
|
1143
|
+
onsets: {
|
|
1144
|
+
kick: grid("x.....x.....x..."),
|
|
1145
|
+
snare: grid("...2..x.....2.x."),
|
|
1146
|
+
hat: grid("x...x...x...x..."),
|
|
1147
|
+
openhat: grid("x.x.x.x.x.x.x.x."),
|
|
1148
|
+
},
|
|
1149
|
+
},
|
|
1150
|
+
harmony: {
|
|
1151
|
+
voicing: {
|
|
1152
|
+
types: [
|
|
1153
|
+
["open", 0.5],
|
|
1154
|
+
["quartal", 0.5],
|
|
1155
|
+
],
|
|
1156
|
+
},
|
|
1157
|
+
},
|
|
1158
|
+
}),
|
|
1159
|
+
card({
|
|
1160
|
+
id: "uk-jazz",
|
|
1161
|
+
summary:
|
|
1162
|
+
"UK jazz new wave: straight sixteenth broken-beat and Afrobeat grooves, dorian vamps, tuba or synth bass, sax-led riff heads",
|
|
1163
|
+
seedSalt: 2016,
|
|
1164
|
+
tempo: { bpm: [95, 130], typical: 112 },
|
|
1165
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
1166
|
+
pitch: {
|
|
1167
|
+
scales: [
|
|
1168
|
+
["dorian", 0.6],
|
|
1169
|
+
["minor", 0.4],
|
|
1170
|
+
],
|
|
1171
|
+
},
|
|
1172
|
+
harmony: {
|
|
1173
|
+
model: "modal",
|
|
1174
|
+
rhythm: [
|
|
1175
|
+
[0.5, 0.6],
|
|
1176
|
+
[1, 0.4],
|
|
1177
|
+
],
|
|
1178
|
+
},
|
|
1179
|
+
rhythm: {
|
|
1180
|
+
onsets: {
|
|
1181
|
+
kick: grid("x.....x...x..2.."),
|
|
1182
|
+
snare: grid("....x..2....x..."),
|
|
1183
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
1184
|
+
openhat: null,
|
|
1185
|
+
},
|
|
1186
|
+
},
|
|
1187
|
+
bass: { behaviour: [["ostinato", 1]], onsets: grid("x..x..x...x.x...") },
|
|
1188
|
+
texture: {
|
|
1189
|
+
roles: {
|
|
1190
|
+
bass: role("tuba", "ebass:0.6"),
|
|
1191
|
+
chords: role("rhodes", "piano:0.4"),
|
|
1192
|
+
lead: role("sax", "trumpet:0.5"),
|
|
1193
|
+
},
|
|
1194
|
+
},
|
|
1195
|
+
}),
|
|
1196
|
+
card({
|
|
1197
|
+
id: "free-jazz",
|
|
1198
|
+
summary:
|
|
1199
|
+
"free jazz: no fixed changes, pulse rather than meter, atonal and chromatic intervals, collective improvisation, energy-driven dynamics",
|
|
1200
|
+
seedSalt: 1960,
|
|
1201
|
+
tempo: { bpm: [100, 260], typical: 180 },
|
|
1202
|
+
groove: {
|
|
1203
|
+
swingRatio: [1, 1.6],
|
|
1204
|
+
humanize: { timingMs: 20, velocity: 0.15 },
|
|
1205
|
+
},
|
|
1206
|
+
pitch: {
|
|
1207
|
+
scales: [
|
|
1208
|
+
["minor", 0.5],
|
|
1209
|
+
["phrygian", 0.25],
|
|
1210
|
+
["locrian", 0.25],
|
|
1211
|
+
],
|
|
1212
|
+
},
|
|
1213
|
+
harmony: {
|
|
1214
|
+
rhythm: [
|
|
1215
|
+
[1, 0.5],
|
|
1216
|
+
[0.5, 0.5],
|
|
1217
|
+
],
|
|
1218
|
+
voicing: { types: [["quartal", 1]] },
|
|
1219
|
+
},
|
|
1220
|
+
melody: {
|
|
1221
|
+
intervals: intervals(2, 2, 3, 0.2),
|
|
1222
|
+
density: [2, 4],
|
|
1223
|
+
chordToneRate: 0.2,
|
|
1224
|
+
},
|
|
1225
|
+
rhythm: {
|
|
1226
|
+
onsets: {
|
|
1227
|
+
kick: grid("1.2.1..2"),
|
|
1228
|
+
snare: grid(".2.3.2.3"),
|
|
1229
|
+
hat: grid("x.5.x.5."),
|
|
1230
|
+
},
|
|
1231
|
+
},
|
|
1232
|
+
texture: {
|
|
1233
|
+
kind: "polyphonic",
|
|
1234
|
+
roles: {
|
|
1235
|
+
lead: role("sax", "altosax:0.6"),
|
|
1236
|
+
counter: role("trumpet", "bassclarinet:0.5"),
|
|
1237
|
+
},
|
|
1238
|
+
},
|
|
1239
|
+
expression: { dynamics: [0.3, 1] },
|
|
1240
|
+
}),
|
|
1241
|
+
card({
|
|
1242
|
+
id: "avant-garde-jazz",
|
|
1243
|
+
summary:
|
|
1244
|
+
"avant-garde jazz: composed structures with open sections, extended techniques, symmetric and whole-tone colors, sparse percussion",
|
|
1245
|
+
seedSalt: 1964,
|
|
1246
|
+
tempo: { bpm: [60, 200], typical: 120 },
|
|
1247
|
+
groove: { swingRatio: [1, 1.5] },
|
|
1248
|
+
pitch: {
|
|
1249
|
+
scales: [
|
|
1250
|
+
["lydian", 0.4],
|
|
1251
|
+
["locrian", 0.3],
|
|
1252
|
+
["phrygian", 0.3],
|
|
1253
|
+
],
|
|
1254
|
+
},
|
|
1255
|
+
melody: {
|
|
1256
|
+
intervals: intervals(2, 2, 2.5, 0.4),
|
|
1257
|
+
chordToneRate: 0.3,
|
|
1258
|
+
density: [1, 3],
|
|
1259
|
+
},
|
|
1260
|
+
rhythm: {
|
|
1261
|
+
onsets: {
|
|
1262
|
+
kick: grid("1......."),
|
|
1263
|
+
snare: grid("..2...2."),
|
|
1264
|
+
hat: grid("x.2.x.2."),
|
|
1265
|
+
},
|
|
1266
|
+
},
|
|
1267
|
+
texture: {
|
|
1268
|
+
kind: "polyphonic",
|
|
1269
|
+
roles: {
|
|
1270
|
+
lead: role("bassclarinet", "sax:0.6"),
|
|
1271
|
+
counter: role("prepared", "vibes:0.5"),
|
|
1272
|
+
},
|
|
1273
|
+
},
|
|
1274
|
+
}),
|
|
1275
|
+
card({
|
|
1276
|
+
id: "spiritual-jazz",
|
|
1277
|
+
summary:
|
|
1278
|
+
"spiritual jazz: modal drone on one chord, pedal-point ostinato bass, harp and piano washes, rubato rising to ecstatic swing",
|
|
1279
|
+
seedSalt: 1965,
|
|
1280
|
+
tempo: { bpm: [70, 160], typical: 110 },
|
|
1281
|
+
pitch: {
|
|
1282
|
+
scales: [
|
|
1283
|
+
["dorian", 0.5],
|
|
1284
|
+
["mixolydian", 0.3],
|
|
1285
|
+
["phrygian", 0.2],
|
|
1286
|
+
],
|
|
1287
|
+
},
|
|
1288
|
+
harmony: {
|
|
1289
|
+
model: "modal",
|
|
1290
|
+
rhythm: [[0.25, 1]],
|
|
1291
|
+
voicing: { types: [["quartal", 1]] },
|
|
1292
|
+
},
|
|
1293
|
+
bass: {
|
|
1294
|
+
behaviour: [
|
|
1295
|
+
["ostinato", 0.6],
|
|
1296
|
+
["pedal", 0.4],
|
|
1297
|
+
],
|
|
1298
|
+
onsets: grid("x..x..x."),
|
|
1299
|
+
},
|
|
1300
|
+
texture: {
|
|
1301
|
+
roles: {
|
|
1302
|
+
chords: role("harp", "piano:0.6"),
|
|
1303
|
+
lead: role("sax", "flute:0.5"),
|
|
1304
|
+
bell: maybe("bell"),
|
|
1305
|
+
},
|
|
1306
|
+
},
|
|
1307
|
+
rhythm: { onsets: { bell: grid("x...x...") } },
|
|
1308
|
+
mix: { space: 0.55 },
|
|
1309
|
+
}),
|
|
1310
|
+
card({
|
|
1311
|
+
id: "dark-jazz",
|
|
1312
|
+
summary:
|
|
1313
|
+
"dark jazz: slow noir tempos, minor and phrygian harmony, brushed kit, muted trumpet over low drones and doom-laden pads",
|
|
1314
|
+
seedSalt: 1994,
|
|
1315
|
+
tempo: { bpm: [55, 90], typical: 70 },
|
|
1316
|
+
groove: { swingRatio: [1.3, 1.7] },
|
|
1317
|
+
pitch: {
|
|
1318
|
+
scales: [
|
|
1319
|
+
["minor", 0.6],
|
|
1320
|
+
["phrygian", 0.4],
|
|
1321
|
+
],
|
|
1322
|
+
},
|
|
1323
|
+
harmony: {
|
|
1324
|
+
presets: [["minor-ii-v", 1]],
|
|
1325
|
+
rhythm: [[0.5, 1]],
|
|
1326
|
+
voicing: { types: [["open", 1]] },
|
|
1327
|
+
},
|
|
1328
|
+
rhythm: {
|
|
1329
|
+
onsets: {
|
|
1330
|
+
kick: grid("x......."),
|
|
1331
|
+
snare: grid("..2...x."),
|
|
1332
|
+
hat: grid("..x...x."),
|
|
1333
|
+
},
|
|
1334
|
+
},
|
|
1335
|
+
bass: {
|
|
1336
|
+
behaviour: [
|
|
1337
|
+
["walking", 0.4],
|
|
1338
|
+
["root", 0.6],
|
|
1339
|
+
],
|
|
1340
|
+
onsets: grid("x...x..."),
|
|
1341
|
+
},
|
|
1342
|
+
melody: { density: [1, 2] },
|
|
1343
|
+
texture: {
|
|
1344
|
+
roles: {
|
|
1345
|
+
lead: role("harmon", "sax:0.6"),
|
|
1346
|
+
chords: role("rhodes", "piano:0.5"),
|
|
1347
|
+
pad: maybe("strings"),
|
|
1348
|
+
},
|
|
1349
|
+
},
|
|
1350
|
+
mix: { space: 0.6 },
|
|
1351
|
+
}),
|
|
1352
|
+
card({
|
|
1353
|
+
id: "jazz-fusion",
|
|
1354
|
+
summary:
|
|
1355
|
+
"jazz fusion: rock-funk straight sixteenths, odd meters (7/8, 5/4), modal vamps with lydian and mixolydian color, distorted guitar and synth leads",
|
|
1356
|
+
seedSalt: 1970,
|
|
1357
|
+
tempo: { bpm: [100, 180], typical: 130 },
|
|
1358
|
+
pitch: {
|
|
1359
|
+
scales: [
|
|
1360
|
+
["mixolydian", 0.4],
|
|
1361
|
+
["dorian", 0.3],
|
|
1362
|
+
["lydian", 0.3],
|
|
1363
|
+
],
|
|
1364
|
+
},
|
|
1365
|
+
harmony: {
|
|
1366
|
+
rhythm: [
|
|
1367
|
+
[0.5, 0.6],
|
|
1368
|
+
[1, 0.4],
|
|
1369
|
+
],
|
|
1370
|
+
voicing: {
|
|
1371
|
+
types: [
|
|
1372
|
+
["quartal", 0.5],
|
|
1373
|
+
["open", 0.5],
|
|
1374
|
+
],
|
|
1375
|
+
},
|
|
1376
|
+
},
|
|
1377
|
+
melody: { density: [3, 4], intervals: intervals(5, 3, 1, 0.2) },
|
|
1378
|
+
texture: {
|
|
1379
|
+
roles: {
|
|
1380
|
+
lead: role("electric@lead", "saw:0.5"),
|
|
1381
|
+
chords: role("rhodes", "saw:0.3"),
|
|
1382
|
+
},
|
|
1383
|
+
},
|
|
1384
|
+
}),
|
|
1385
|
+
card({
|
|
1386
|
+
id: "jazz-funk",
|
|
1387
|
+
summary:
|
|
1388
|
+
"jazz-funk: syncopated sixteenth funk groove on the one, dominant-ninth and minor-eleventh vamps, slap or finger bass ostinato, electric piano",
|
|
1389
|
+
seedSalt: 1973,
|
|
1390
|
+
tempo: { bpm: [90, 120], typical: 104 },
|
|
1391
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1392
|
+
pitch: {
|
|
1393
|
+
scales: [
|
|
1394
|
+
["dorian", 0.6],
|
|
1395
|
+
["mixolydian", 0.4],
|
|
1396
|
+
],
|
|
1397
|
+
},
|
|
1398
|
+
rhythm: {
|
|
1399
|
+
onsets: {
|
|
1400
|
+
kick: grid("x.....x.x.....x."),
|
|
1401
|
+
snare: grid("....x..2.2..x..."),
|
|
1402
|
+
hat: grid("xxxxxxxxxxxxxxxx"),
|
|
1403
|
+
},
|
|
1404
|
+
},
|
|
1405
|
+
bass: { onsets: grid("x..x..x.x.2..x.2") },
|
|
1406
|
+
texture: {
|
|
1407
|
+
roles: {
|
|
1408
|
+
bass: role("slap", "ebass:0.6"),
|
|
1409
|
+
chords: role("rhodes", "clav:0.5"),
|
|
1410
|
+
},
|
|
1411
|
+
},
|
|
1412
|
+
}),
|
|
1413
|
+
card({
|
|
1414
|
+
id: "smooth-jazz",
|
|
1415
|
+
summary:
|
|
1416
|
+
"smooth jazz: mid-tempo straight sixteenths, major-ninth and sus chords, IV-V-iii-vi ballad motion, soprano or alto sax lead, polished mix",
|
|
1417
|
+
seedSalt: 1987,
|
|
1418
|
+
tempo: { bpm: [80, 110], typical: 92 },
|
|
1419
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1420
|
+
pitch: {
|
|
1421
|
+
scales: [
|
|
1422
|
+
["major", 0.7],
|
|
1423
|
+
["lydian", 0.3],
|
|
1424
|
+
],
|
|
1425
|
+
},
|
|
1426
|
+
harmony: {
|
|
1427
|
+
model: "functional",
|
|
1428
|
+
presets: [
|
|
1429
|
+
["axis", 0.4],
|
|
1430
|
+
["turnaround", 0.6],
|
|
1431
|
+
],
|
|
1432
|
+
sources: { presets: 1, chain: 1 },
|
|
1433
|
+
sevenths: 0.9,
|
|
1434
|
+
rhythm: [
|
|
1435
|
+
[1, 0.6],
|
|
1436
|
+
[0.5, 0.4],
|
|
1437
|
+
],
|
|
1438
|
+
},
|
|
1439
|
+
rhythm: {
|
|
1440
|
+
onsets: {
|
|
1441
|
+
kick: grid("x.....x...x....."),
|
|
1442
|
+
snare: grid("....x.......x..."),
|
|
1443
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
1444
|
+
},
|
|
1445
|
+
},
|
|
1446
|
+
bass: {
|
|
1447
|
+
behaviour: [
|
|
1448
|
+
["root-fifth", 0.5],
|
|
1449
|
+
["arpeggio", 0.5],
|
|
1450
|
+
],
|
|
1451
|
+
onsets: grid("x.....x...x.x..."),
|
|
1452
|
+
},
|
|
1453
|
+
melody: { density: [1, 2], intervals: intervals(5, 3, 0.6, 0.6) },
|
|
1454
|
+
texture: {
|
|
1455
|
+
roles: {
|
|
1456
|
+
lead: role("altosax", "sax:0.6"),
|
|
1457
|
+
chords: role("rhodes", "epiano:0.6"),
|
|
1458
|
+
},
|
|
1459
|
+
},
|
|
1460
|
+
mix: { space: 0.45, loudness: "streaming" },
|
|
1461
|
+
}),
|
|
1462
|
+
card({
|
|
1463
|
+
id: "acid-jazz",
|
|
1464
|
+
summary:
|
|
1465
|
+
"acid jazz: funk and soul-jazz grooves over breakbeat drums, dorian minor-seventh vamps, Hammond and wah guitar, light sixteenth swing",
|
|
1466
|
+
seedSalt: 1988,
|
|
1467
|
+
tempo: { bpm: [95, 120], typical: 108 },
|
|
1468
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1469
|
+
groove: { swingRatio: [1.1, 1.3] },
|
|
1470
|
+
pitch: {
|
|
1471
|
+
scales: [
|
|
1472
|
+
["dorian", 0.8],
|
|
1473
|
+
["minor", 0.2],
|
|
1474
|
+
],
|
|
1475
|
+
},
|
|
1476
|
+
rhythm: {
|
|
1477
|
+
onsets: {
|
|
1478
|
+
kick: grid("x.........x..2.."),
|
|
1479
|
+
snare: grid("....x..2.2..x..."),
|
|
1480
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
1481
|
+
},
|
|
1482
|
+
},
|
|
1483
|
+
texture: {
|
|
1484
|
+
roles: {
|
|
1485
|
+
chords: role("hammond", "funk:0.5"),
|
|
1486
|
+
lead: role("sax", "electric@wah:0.5"),
|
|
1487
|
+
},
|
|
1488
|
+
},
|
|
1489
|
+
}),
|
|
1490
|
+
card({
|
|
1491
|
+
id: "nu-jazz",
|
|
1492
|
+
summary:
|
|
1493
|
+
"nu jazz: electronic production with jazz harmony, programmed broken beats or house pulse, minor-ninth chord loops, sampled-feel horns",
|
|
1494
|
+
seedSalt: 1998,
|
|
1495
|
+
tempo: { bpm: [95, 125], typical: 118 },
|
|
1496
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1497
|
+
pitch: {
|
|
1498
|
+
scales: [
|
|
1499
|
+
["dorian", 0.5],
|
|
1500
|
+
["minor", 0.5],
|
|
1501
|
+
],
|
|
1502
|
+
},
|
|
1503
|
+
harmony: { rhythm: [[0.5, 1]] },
|
|
1504
|
+
rhythm: {
|
|
1505
|
+
onsets: {
|
|
1506
|
+
kick: grid("x...x...x...x..."),
|
|
1507
|
+
snare: grid("....x.......x..."),
|
|
1508
|
+
hat: grid("..x...x...x...x."),
|
|
1509
|
+
},
|
|
1510
|
+
},
|
|
1511
|
+
texture: {
|
|
1512
|
+
roles: {
|
|
1513
|
+
...kitRoles("electro"),
|
|
1514
|
+
chords: role("rhodes", "keys:0.4"),
|
|
1515
|
+
bass: role("bass", "ebass:0.4"),
|
|
1516
|
+
lead: role("trumpet", "flute:0.4"),
|
|
1517
|
+
},
|
|
1518
|
+
},
|
|
1519
|
+
}),
|
|
1520
|
+
card({
|
|
1521
|
+
id: "afro-cuban-jazz",
|
|
1522
|
+
summary:
|
|
1523
|
+
"Afro-Cuban jazz: son clave 3-2 (0,3,6,10,12 of 16) on the bell, tumbao bass anticipating beat 3 and 4, piano montuno, bebop horns over cascara",
|
|
1524
|
+
seedSalt: 1947,
|
|
1525
|
+
tempo: { bpm: [150, 240], typical: 190 },
|
|
1526
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1527
|
+
groove: { swingRatio: [1, 1.05] },
|
|
1528
|
+
pitch: {
|
|
1529
|
+
scales: [
|
|
1530
|
+
["minor", 0.5],
|
|
1531
|
+
["major", 0.5],
|
|
1532
|
+
],
|
|
1533
|
+
},
|
|
1534
|
+
harmony: {
|
|
1535
|
+
model: "functional",
|
|
1536
|
+
presets: [
|
|
1537
|
+
["minor-ii-v", 0.5],
|
|
1538
|
+
["ii-v-i", 0.5],
|
|
1539
|
+
],
|
|
1540
|
+
sources: { presets: 1, chain: 1 },
|
|
1541
|
+
rhythm: [
|
|
1542
|
+
[1, 0.5],
|
|
1543
|
+
[0.5, 0.5],
|
|
1544
|
+
],
|
|
1545
|
+
},
|
|
1546
|
+
rhythm: {
|
|
1547
|
+
onsets: {
|
|
1548
|
+
bell: SON_CLAVE,
|
|
1549
|
+
perc: grid("...x..x....x..x."),
|
|
1550
|
+
kick: grid("......x.....x..."),
|
|
1551
|
+
snare: null,
|
|
1552
|
+
hat: grid("x.xx.x.xx.x.x.x."),
|
|
1553
|
+
chords: grid("x.x..x.x..x..x.x"),
|
|
1554
|
+
},
|
|
1555
|
+
locks: [],
|
|
1556
|
+
},
|
|
1557
|
+
bass: {
|
|
1558
|
+
behaviour: [["root-fifth", 1]],
|
|
1559
|
+
onsets: grid("......x.....x..."),
|
|
1560
|
+
kickLock: 0,
|
|
1561
|
+
},
|
|
1562
|
+
texture: {
|
|
1563
|
+
roles: {
|
|
1564
|
+
bell: role("drums"),
|
|
1565
|
+
perc: role("drums"),
|
|
1566
|
+
chords: role("piano"),
|
|
1567
|
+
lead: role("trumpet", "sax:0.7"),
|
|
1568
|
+
counter: maybe("trombone"),
|
|
1569
|
+
},
|
|
1570
|
+
},
|
|
1571
|
+
}),
|
|
1572
|
+
card({
|
|
1573
|
+
id: "latin-jazz",
|
|
1574
|
+
summary:
|
|
1575
|
+
"Brazilian and pan-Latin jazz: bossa nova clave (0,3,6,10,13 of 16) on rim, surdo-like bass on 1 and 3, nylon guitar batida, ii-V with altered dominants",
|
|
1576
|
+
seedSalt: 1962,
|
|
1577
|
+
tempo: { bpm: [110, 160], typical: 132 },
|
|
1578
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1579
|
+
groove: { swingRatio: [1, 1.05] },
|
|
1580
|
+
pitch: {
|
|
1581
|
+
scales: [
|
|
1582
|
+
["major", 0.6],
|
|
1583
|
+
["minor", 0.4],
|
|
1584
|
+
],
|
|
1585
|
+
},
|
|
1586
|
+
harmony: {
|
|
1587
|
+
model: "functional",
|
|
1588
|
+
presets: [
|
|
1589
|
+
["ii-v-i", 0.5],
|
|
1590
|
+
["turnaround", 0.5],
|
|
1591
|
+
],
|
|
1592
|
+
sources: { presets: 1, chain: 2 },
|
|
1593
|
+
rhythm: [
|
|
1594
|
+
[1, 0.5],
|
|
1595
|
+
[0.5, 0.5],
|
|
1596
|
+
],
|
|
1597
|
+
voicing: {
|
|
1598
|
+
types: [
|
|
1599
|
+
["shell", 0.4],
|
|
1600
|
+
["close", 0.6],
|
|
1601
|
+
],
|
|
1602
|
+
range: [52, 72],
|
|
1603
|
+
},
|
|
1604
|
+
},
|
|
1605
|
+
rhythm: {
|
|
1606
|
+
onsets: {
|
|
1607
|
+
bell: BOSSA_CLAVE,
|
|
1608
|
+
kick: grid("x.....x.x.....x."),
|
|
1609
|
+
snare: null,
|
|
1610
|
+
hat: grid("xxxxxxxxxxxxxxxx"),
|
|
1611
|
+
chords: grid("x..x..x...x..x.."),
|
|
1612
|
+
},
|
|
1613
|
+
},
|
|
1614
|
+
bass: {
|
|
1615
|
+
behaviour: [["root-fifth", 1]],
|
|
1616
|
+
onsets: grid("x.....x.x.....x."),
|
|
1617
|
+
kickLock: 0.8,
|
|
1618
|
+
},
|
|
1619
|
+
melody: { density: [1, 2], intervals: intervals(5, 3, 0.6, 0.6) },
|
|
1620
|
+
texture: {
|
|
1621
|
+
roles: {
|
|
1622
|
+
bell: role("drums"),
|
|
1623
|
+
bass: role("contrabass", "ebass:0.5"),
|
|
1624
|
+
chords: role("nylon"),
|
|
1625
|
+
lead: role("flute", "sax:0.6", "sing:0.6"),
|
|
1626
|
+
},
|
|
1627
|
+
},
|
|
1628
|
+
}),
|
|
1629
|
+
// -------------------------------------------------------------------------
|
|
1630
|
+
// Blues leaves. References: Jeff Todd Titon, "Early Downhome Blues" (1977);
|
|
1631
|
+
// David Evans, "Big Road Blues" (1982); Peter Silvester, "A Left Hand Like
|
|
1632
|
+
// God" (1988, piano blues and boogie-woogie).
|
|
1633
|
+
card({
|
|
1634
|
+
id: "delta-blues",
|
|
1635
|
+
summary:
|
|
1636
|
+
"Delta blues: solo bottleneck guitar, drone on the tonic, AAB couplet over 12 bars, blue third bent toward the major, heavy triplet shuffle, one-chord stretches",
|
|
1637
|
+
seedSalt: 1930,
|
|
1638
|
+
tempo: { bpm: [60, 104], typical: 78 },
|
|
1639
|
+
groove: { swingRatio: [1.9, 2.2] },
|
|
1640
|
+
pitch: {
|
|
1641
|
+
scales: [
|
|
1642
|
+
["blues", 0.7],
|
|
1643
|
+
["minor-pentatonic", 0.3],
|
|
1644
|
+
],
|
|
1645
|
+
},
|
|
1646
|
+
harmony: { forms: [[BLUES_FORM, 1]], sources: { forms: 1 } },
|
|
1647
|
+
bass: {
|
|
1648
|
+
behaviour: [
|
|
1649
|
+
["pedal", 0.6],
|
|
1650
|
+
["root", 0.4],
|
|
1651
|
+
],
|
|
1652
|
+
onsets: grid("x.x.x.x."),
|
|
1653
|
+
},
|
|
1654
|
+
melody: {
|
|
1655
|
+
density: [1, 2],
|
|
1656
|
+
repetition: 0.7,
|
|
1657
|
+
contour: [
|
|
1658
|
+
["descending", 0.7],
|
|
1659
|
+
["arch", 0.3],
|
|
1660
|
+
],
|
|
1661
|
+
},
|
|
1662
|
+
texture: {
|
|
1663
|
+
roles: {
|
|
1664
|
+
bass: role("steel"),
|
|
1665
|
+
chords: role("steel"),
|
|
1666
|
+
lead: role("steel@glide", "sing:0.5"),
|
|
1667
|
+
},
|
|
1668
|
+
},
|
|
1669
|
+
form: { archetype: "12-bar" },
|
|
1670
|
+
}),
|
|
1671
|
+
card({
|
|
1672
|
+
id: "piedmont-blues",
|
|
1673
|
+
summary:
|
|
1674
|
+
"Piedmont blues: ragtime-derived alternating-thumb fingerpicking (bass on every beat, root and fifth), syncopated treble, major-leaning I-VI7-II7-V7 circle",
|
|
1675
|
+
seedSalt: 1928,
|
|
1676
|
+
tempo: { bpm: [90, 140], typical: 112 },
|
|
1677
|
+
groove: { subdivision: 4, swingRatio: [1.2, 1.5] },
|
|
1678
|
+
pitch: {
|
|
1679
|
+
scales: [
|
|
1680
|
+
["major-blues", 0.6],
|
|
1681
|
+
["major-pentatonic", 0.4],
|
|
1682
|
+
],
|
|
1683
|
+
},
|
|
1684
|
+
harmony: {
|
|
1685
|
+
forms: [[BLUES_FORM, 0.5]],
|
|
1686
|
+
presets: [["turnaround", 0.5]],
|
|
1687
|
+
sources: { forms: 1, presets: 1 },
|
|
1688
|
+
},
|
|
1689
|
+
bass: {
|
|
1690
|
+
behaviour: [["root-fifth", 1]],
|
|
1691
|
+
onsets: grid("x...x...x...x..."),
|
|
1692
|
+
},
|
|
1693
|
+
rhythm: { onsets: { chords: grid("..x...x.x.x...x.") } },
|
|
1694
|
+
texture: {
|
|
1695
|
+
roles: {
|
|
1696
|
+
bass: role("steel"),
|
|
1697
|
+
chords: role("steel"),
|
|
1698
|
+
lead: role("steel", "sing:0.4"),
|
|
1699
|
+
},
|
|
1700
|
+
},
|
|
1701
|
+
}),
|
|
1702
|
+
card({
|
|
1703
|
+
id: "texas-blues",
|
|
1704
|
+
summary:
|
|
1705
|
+
"Texas blues: free single-note lines over a steady thumbed bass, looser bar counts, minor-pentatonic runs, relaxed swing with jazz-inflected ninths",
|
|
1706
|
+
seedSalt: 1926,
|
|
1707
|
+
tempo: { bpm: [84, 132], typical: 104 },
|
|
1708
|
+
groove: { swingRatio: [1.6, 1.9] },
|
|
1709
|
+
// Lightnin' Hopkins and Blind Lemon Jefferson: a monotonic thumb on
|
|
1710
|
+
// every beat under free treble runs.
|
|
1711
|
+
bass: { behaviour: [["root", 1]], onsets: grid("x.x.x.x.") },
|
|
1712
|
+
pitch: {
|
|
1713
|
+
scales: [
|
|
1714
|
+
["blues", 0.5],
|
|
1715
|
+
["minor-pentatonic", 0.5],
|
|
1716
|
+
],
|
|
1717
|
+
},
|
|
1718
|
+
melody: { density: [2, 3], intervals: intervals(5, 3, 1, 0.4) },
|
|
1719
|
+
texture: {
|
|
1720
|
+
roles: {
|
|
1721
|
+
bass: role("steel"),
|
|
1722
|
+
chords: role("steel"),
|
|
1723
|
+
lead: role("steel", "sing:0.4"),
|
|
1724
|
+
},
|
|
1725
|
+
},
|
|
1726
|
+
}),
|
|
1727
|
+
card({
|
|
1728
|
+
id: "hill-country-blues",
|
|
1729
|
+
summary:
|
|
1730
|
+
"hill country blues: one-chord trance groove on a tonic drone, repetitive riff ostinato, fife-and-drum polyrhythm, droning straight-ish eighths",
|
|
1731
|
+
seedSalt: 1959,
|
|
1732
|
+
tempo: { bpm: [90, 130], typical: 108 },
|
|
1733
|
+
groove: { swingRatio: [1.2, 1.5] },
|
|
1734
|
+
pitch: {
|
|
1735
|
+
scales: [
|
|
1736
|
+
["minor-pentatonic", 0.6],
|
|
1737
|
+
["blues", 0.4],
|
|
1738
|
+
],
|
|
1739
|
+
},
|
|
1740
|
+
harmony: {
|
|
1741
|
+
model: "modal",
|
|
1742
|
+
forms: null,
|
|
1743
|
+
presets: null,
|
|
1744
|
+
sources: null,
|
|
1745
|
+
rhythm: [[4, 1]],
|
|
1746
|
+
},
|
|
1747
|
+
bass: {
|
|
1748
|
+
behaviour: [
|
|
1749
|
+
["ostinato", 0.7],
|
|
1750
|
+
["pedal", 0.3],
|
|
1751
|
+
],
|
|
1752
|
+
onsets: grid("x.xx..x."),
|
|
1753
|
+
},
|
|
1754
|
+
rhythm: {
|
|
1755
|
+
onsets: {
|
|
1756
|
+
kick: grid("x...x.x."),
|
|
1757
|
+
snare: grid("..x...x."),
|
|
1758
|
+
hat: null,
|
|
1759
|
+
},
|
|
1760
|
+
},
|
|
1761
|
+
melody: { repetition: 0.8, density: [2, 2] },
|
|
1762
|
+
texture: {
|
|
1763
|
+
roles: {
|
|
1764
|
+
kick: role("drums"),
|
|
1765
|
+
snare: maybe("drums"),
|
|
1766
|
+
bass: role("electric"),
|
|
1767
|
+
chords: role("electric@crunch"),
|
|
1768
|
+
lead: role("electric@crunch", "sing:0.4"),
|
|
1769
|
+
},
|
|
1770
|
+
},
|
|
1771
|
+
form: { archetype: "one-chord vamp" },
|
|
1772
|
+
}),
|
|
1773
|
+
card({
|
|
1774
|
+
id: "memphis-blues",
|
|
1775
|
+
summary:
|
|
1776
|
+
"Memphis blues: early string-band and jug-band blues of the Mid-South, sixteen-bar and twelve-bar strophes, guitar and harp duets, brisk two-beat",
|
|
1777
|
+
seedSalt: 1927,
|
|
1778
|
+
tempo: { bpm: [104, 150], typical: 124 },
|
|
1779
|
+
groove: { swingRatio: [1.5, 1.8] },
|
|
1780
|
+
pitch: {
|
|
1781
|
+
scales: [
|
|
1782
|
+
["major-blues", 0.7],
|
|
1783
|
+
["blues", 0.3],
|
|
1784
|
+
],
|
|
1785
|
+
},
|
|
1786
|
+
// String-band strum on every beat over the two-beat bass.
|
|
1787
|
+
rhythm: { onsets: { chords: grid("x.x.x.x.") } },
|
|
1788
|
+
harmony: {
|
|
1789
|
+
forms: [
|
|
1790
|
+
[BLUES_FORM, 0.6],
|
|
1791
|
+
[EIGHT_BAR_BLUES, 0.4],
|
|
1792
|
+
],
|
|
1793
|
+
},
|
|
1794
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
1795
|
+
texture: {
|
|
1796
|
+
roles: {
|
|
1797
|
+
bass: role("steel"),
|
|
1798
|
+
chords: role("steel", "banjo:0.4"),
|
|
1799
|
+
lead: role("reeds", "steel:0.6"),
|
|
1800
|
+
},
|
|
1801
|
+
},
|
|
1802
|
+
}),
|
|
1803
|
+
card({
|
|
1804
|
+
id: "jug-band",
|
|
1805
|
+
summary:
|
|
1806
|
+
"jug band: tuba-like jug on root and fifth two-beat, washboard sixteenth scrape, kazoo and banjo, ragtime circle I-VI7-II7-V7",
|
|
1807
|
+
seedSalt: 1925,
|
|
1808
|
+
tempo: { bpm: [110, 170], typical: 140 },
|
|
1809
|
+
groove: { swingRatio: [1.4, 1.8] },
|
|
1810
|
+
pitch: {
|
|
1811
|
+
scales: [
|
|
1812
|
+
["major", 0.6],
|
|
1813
|
+
["major-blues", 0.4],
|
|
1814
|
+
],
|
|
1815
|
+
},
|
|
1816
|
+
harmony: {
|
|
1817
|
+
presets: [["turnaround", 1]],
|
|
1818
|
+
forms: [[BLUES_FORM, 1]],
|
|
1819
|
+
sources: { presets: 1, forms: 1 },
|
|
1820
|
+
},
|
|
1821
|
+
rhythm: { onsets: { shaker: grid("xxxxxxxx") } },
|
|
1822
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
1823
|
+
texture: {
|
|
1824
|
+
roles: {
|
|
1825
|
+
shaker: role("drums"),
|
|
1826
|
+
bass: role("tuba"),
|
|
1827
|
+
chords: role("banjo", "steel:0.5"),
|
|
1828
|
+
lead: role("reeds", "whistle:0.4"),
|
|
1829
|
+
},
|
|
1830
|
+
},
|
|
1831
|
+
}),
|
|
1832
|
+
card({
|
|
1833
|
+
id: "classic-female-blues",
|
|
1834
|
+
summary:
|
|
1835
|
+
"classic vaudeville blues: singer fronting a small jazz band, stride-like piano, cornet obbligato answering each vocal line (call and response), 12-bar and 16-bar strophes",
|
|
1836
|
+
seedSalt: 1923,
|
|
1837
|
+
tempo: { bpm: [64, 104], typical: 80 },
|
|
1838
|
+
groove: { swingRatio: [1.5, 1.8] },
|
|
1839
|
+
pitch: {
|
|
1840
|
+
scales: [
|
|
1841
|
+
["major-blues", 0.7],
|
|
1842
|
+
["blues", 0.3],
|
|
1843
|
+
],
|
|
1844
|
+
},
|
|
1845
|
+
// Stride "oom-pah": bass on 1 and 3, piano chords on 2 and 4.
|
|
1846
|
+
rhythm: { onsets: { chords: grid("..x...x.") } },
|
|
1847
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
1848
|
+
texture: {
|
|
1849
|
+
roles: {
|
|
1850
|
+
kick: null,
|
|
1851
|
+
snare: null,
|
|
1852
|
+
hat: null,
|
|
1853
|
+
bass: role("tuba", "contrabass:0.6"),
|
|
1854
|
+
chords: role("honkytonk", "upright:0.6"),
|
|
1855
|
+
lead: role("sing"),
|
|
1856
|
+
counter: role("trumpet", "clarinet:0.5"),
|
|
1857
|
+
},
|
|
1858
|
+
},
|
|
1859
|
+
}),
|
|
1860
|
+
card({
|
|
1861
|
+
id: "piano-blues",
|
|
1862
|
+
summary:
|
|
1863
|
+
"barrelhouse piano blues: rolling left-hand root-fifth-sixth figure, right-hand tremolos and crushed blue-note grace tones, 12-bar shuffle",
|
|
1864
|
+
seedSalt: 1929,
|
|
1865
|
+
tempo: { bpm: [70, 130], typical: 100 },
|
|
1866
|
+
bass: { behaviour: [["arpeggio", 1]], onsets: grid("x.x.x.x.") },
|
|
1867
|
+
rhythm: { onsets: { chords: grid("..x...x.") } },
|
|
1868
|
+
texture: {
|
|
1869
|
+
roles: {
|
|
1870
|
+
kick: null,
|
|
1871
|
+
snare: null,
|
|
1872
|
+
hat: null,
|
|
1873
|
+
bass: role("honkytonk", "upright:0.5"),
|
|
1874
|
+
chords: role("honkytonk", "upright:0.5"),
|
|
1875
|
+
lead: role("honkytonk", "upright:0.5"),
|
|
1876
|
+
},
|
|
1877
|
+
},
|
|
1878
|
+
}),
|
|
1879
|
+
card({
|
|
1880
|
+
id: "boogie-woogie",
|
|
1881
|
+
summary:
|
|
1882
|
+
"boogie-woogie: ostinato left hand of eight-to-the-bar broken octaves and walking 1-3-5-6-b7 patterns, right-hand riffs and tremolos, fast 12-bar",
|
|
1883
|
+
seedSalt: 1938,
|
|
1884
|
+
tempo: { bpm: [140, 200], typical: 168 },
|
|
1885
|
+
groove: { swingRatio: [1.5, 1.9] },
|
|
1886
|
+
harmony: { forms: [[BLUES_FORM, 1]], sources: { forms: 1 } },
|
|
1887
|
+
// Eight to the bar, always: a walking line would fall back to quarters.
|
|
1888
|
+
bass: { behaviour: [["ostinato", 1]], onsets: grid("xxxxxxxx") },
|
|
1889
|
+
melody: { density: [2, 3], repetition: 0.7 },
|
|
1890
|
+
texture: {
|
|
1891
|
+
roles: {
|
|
1892
|
+
kick: null,
|
|
1893
|
+
snare: null,
|
|
1894
|
+
hat: null,
|
|
1895
|
+
bass: role("honkytonk", "grand:0.5"),
|
|
1896
|
+
chords: role("honkytonk", "grand:0.5"),
|
|
1897
|
+
lead: role("honkytonk", "grand:0.5"),
|
|
1898
|
+
},
|
|
1899
|
+
},
|
|
1900
|
+
}),
|
|
1901
|
+
card({
|
|
1902
|
+
id: "jump-blues",
|
|
1903
|
+
summary:
|
|
1904
|
+
"jump blues: up-tempo shuffle, walking or boogie bass, riffing horn section answering a shouted vocal, snare backbeat on 2 and 4, honking tenor solo",
|
|
1905
|
+
seedSalt: 1946,
|
|
1906
|
+
tempo: { bpm: [150, 210], typical: 176 },
|
|
1907
|
+
bass: {
|
|
1908
|
+
behaviour: [
|
|
1909
|
+
["walking", 0.6],
|
|
1910
|
+
["ostinato", 0.4],
|
|
1911
|
+
],
|
|
1912
|
+
onsets: grid("x.x.x.x."),
|
|
1913
|
+
},
|
|
1914
|
+
texture: {
|
|
1915
|
+
roles: {
|
|
1916
|
+
bass: role("contrabass", "ebass:0.4"),
|
|
1917
|
+
chords: role("piano", "honkytonk:0.5"),
|
|
1918
|
+
lead: role("sax", "sing:0.6"),
|
|
1919
|
+
counter: role("trumpet", "trombone:0.6", "barisax:0.4"),
|
|
1920
|
+
},
|
|
1921
|
+
},
|
|
1922
|
+
}),
|
|
1923
|
+
card({
|
|
1924
|
+
id: "chicago-blues",
|
|
1925
|
+
summary:
|
|
1926
|
+
"Chicago blues: amplified electric band, slow-medium shuffle, quick-change 12-bar, guitar and amplified-harp call and response, root-fifth-sixth shuffle bass",
|
|
1927
|
+
seedSalt: 1950,
|
|
1928
|
+
tempo: { bpm: [84, 128], typical: 100 },
|
|
1929
|
+
// Shuffle in 4/4: the 12/8 slow blues belongs to the soul-blues ballad.
|
|
1930
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1931
|
+
groove: { swingRatio: [1.9, 2.2] },
|
|
1932
|
+
harmony: {
|
|
1933
|
+
forms: [
|
|
1934
|
+
[QUICK_CHANGE_FORM, 0.6],
|
|
1935
|
+
[BLUES_FORM, 0.4],
|
|
1936
|
+
],
|
|
1937
|
+
},
|
|
1938
|
+
// Root-fifth-sixth shuffle line, eight to the bar.
|
|
1939
|
+
bass: { behaviour: [["arpeggio", 1]], onsets: grid("xxxxxxxx") },
|
|
1940
|
+
rhythm: {
|
|
1941
|
+
onsets: {
|
|
1942
|
+
kick: grid("x.x.x.x."),
|
|
1943
|
+
snare: grid("..x...x."),
|
|
1944
|
+
hat: grid("xxxxxxxx"),
|
|
1945
|
+
},
|
|
1946
|
+
},
|
|
1947
|
+
texture: {
|
|
1948
|
+
roles: {
|
|
1949
|
+
chords: role("electric@crunch", "piano:0.5"),
|
|
1950
|
+
lead: role("electric@crunch", "reeds:0.5"),
|
|
1951
|
+
counter: maybe("reeds"),
|
|
1952
|
+
},
|
|
1953
|
+
},
|
|
1954
|
+
}),
|
|
1955
|
+
card({
|
|
1956
|
+
id: "louisiana-blues",
|
|
1957
|
+
summary:
|
|
1958
|
+
"Louisiana swamp blues: slow laid-back shuffle, tremolo-soaked guitar, reverb-heavy sparse arrangement, harp fills, minor-pentatonic phrasing",
|
|
1959
|
+
seedSalt: 1957,
|
|
1960
|
+
tempo: { bpm: [60, 92], typical: 72 },
|
|
1961
|
+
// Slim Harpo and Lightnin' Slim: a slow 12/8 swamp drag, the backbeat on
|
|
1962
|
+
// a rim click, kick only on the downbeat.
|
|
1963
|
+
meter: { signatures: [["12/8", 1]] },
|
|
1964
|
+
rhythm: {
|
|
1965
|
+
onsets: {
|
|
1966
|
+
kick: grid("x......."),
|
|
1967
|
+
snare: null,
|
|
1968
|
+
rim: grid("..x...x."),
|
|
1969
|
+
hat: grid("x.x.x.x."),
|
|
1970
|
+
},
|
|
1971
|
+
},
|
|
1972
|
+
bass: { behaviour: [["root", 1]], onsets: grid("x...x...") },
|
|
1973
|
+
pitch: {
|
|
1974
|
+
scales: [
|
|
1975
|
+
["blues", 0.6],
|
|
1976
|
+
["minor-pentatonic", 0.4],
|
|
1977
|
+
],
|
|
1978
|
+
},
|
|
1979
|
+
melody: { density: [1, 2] },
|
|
1980
|
+
texture: {
|
|
1981
|
+
roles: {
|
|
1982
|
+
snare: null,
|
|
1983
|
+
rim: role("drums"),
|
|
1984
|
+
chords: role("electric@clean"),
|
|
1985
|
+
lead: role("electric@clean", "reeds:0.5"),
|
|
1986
|
+
},
|
|
1987
|
+
},
|
|
1988
|
+
mix: { space: 0.6, fx: { chords: { tremolo: "pulse" } } },
|
|
1989
|
+
}),
|
|
1990
|
+
card({
|
|
1991
|
+
id: "west-coast-blues",
|
|
1992
|
+
summary:
|
|
1993
|
+
"West Coast blues: jazz-inflected urbane blues, ninth and thirteenth chords, smooth swing, horn pads, single-note guitar lines with bebop passing tones",
|
|
1994
|
+
seedSalt: 1947,
|
|
1995
|
+
tempo: { bpm: [100, 150], typical: 120 },
|
|
1996
|
+
meter: { signatures: [["4/4", 1]] },
|
|
1997
|
+
groove: { swingRatio: [1.5, 1.8] },
|
|
1998
|
+
// T-Bone Walker's jazz rhythm section: ride time over a walking bass and
|
|
1999
|
+
// foot hat on 2 and 4, a light feathered kick.
|
|
2000
|
+
rhythm: {
|
|
2001
|
+
onsets: {
|
|
2002
|
+
kick: grid("2.2.2.2."),
|
|
2003
|
+
snare: grid("..1...x."),
|
|
2004
|
+
hat: grid("..x...x."),
|
|
2005
|
+
openhat: SWING_RIDE,
|
|
2006
|
+
},
|
|
2007
|
+
},
|
|
2008
|
+
bass: { behaviour: [["walking", 1]] },
|
|
2009
|
+
pitch: {
|
|
2010
|
+
scales: [
|
|
2011
|
+
["blues", 0.4],
|
|
2012
|
+
["mixolydian", 0.6],
|
|
2013
|
+
],
|
|
2014
|
+
},
|
|
2015
|
+
harmony: {
|
|
2016
|
+
voicing: {
|
|
2017
|
+
types: [
|
|
2018
|
+
["shell", 0.5],
|
|
2019
|
+
["open", 0.5],
|
|
2020
|
+
],
|
|
2021
|
+
},
|
|
2022
|
+
},
|
|
2023
|
+
melody: { chordToneRate: 0.6, intervals: intervals(6, 3, 0.7, 0.3) },
|
|
2024
|
+
texture: {
|
|
2025
|
+
roles: {
|
|
2026
|
+
openhat: role("drums"),
|
|
2027
|
+
chords: role("piano", "electric@clean:0.6"),
|
|
2028
|
+
lead: role("electric@clean"),
|
|
2029
|
+
pad: maybe("sax", "trumpet:0.6"),
|
|
2030
|
+
},
|
|
2031
|
+
},
|
|
2032
|
+
}),
|
|
2033
|
+
card({
|
|
2034
|
+
id: "soul-blues",
|
|
2035
|
+
summary:
|
|
2036
|
+
"soul blues: blues form with gospel-soul production, straight-eighth backbeat, organ pads, horn stabs, melismatic vocal over minor-pentatonic guitar fills",
|
|
2037
|
+
seedSalt: 1969,
|
|
2038
|
+
tempo: { bpm: [64, 100], typical: 80 },
|
|
2039
|
+
// Malaco and Hi Records: straight sixteenths, the soul kick figure and a
|
|
2040
|
+
// hard backbeat, not a shuffle.
|
|
2041
|
+
meter: { signatures: [["4/4", 1]] },
|
|
2042
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
2043
|
+
rhythm: {
|
|
2044
|
+
onsets: {
|
|
2045
|
+
kick: grid("x.....x.x......."),
|
|
2046
|
+
snare: grid("....x.......x..."),
|
|
2047
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2048
|
+
},
|
|
2049
|
+
},
|
|
2050
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x.....x.x....x..") },
|
|
2051
|
+
harmony: {
|
|
2052
|
+
sources: { forms: 1, presets: 1 },
|
|
2053
|
+
presets: [["turnaround", 1]],
|
|
2054
|
+
},
|
|
2055
|
+
texture: {
|
|
2056
|
+
roles: {
|
|
2057
|
+
chords: role("hammond", "epiano:0.5"),
|
|
2058
|
+
lead: role("sing", "electric@clean:0.6"),
|
|
2059
|
+
counter: maybe("trumpet", "sax:0.6"),
|
|
2060
|
+
},
|
|
2061
|
+
},
|
|
2062
|
+
}),
|
|
2063
|
+
card({
|
|
2064
|
+
id: "modern-electric-blues",
|
|
2065
|
+
summary:
|
|
2066
|
+
"modern electric blues: overdriven guitar lead, power-trio texture, rock backbeat with blues shuffle or straight eighths, sustained bends and long solos",
|
|
2067
|
+
seedSalt: 1985,
|
|
2068
|
+
tempo: { bpm: [110, 160], typical: 128 },
|
|
2069
|
+
meter: { signatures: [["4/4", 1]] },
|
|
2070
|
+
groove: { swingRatio: [1, 1.9] },
|
|
2071
|
+
// Power-trio drive: rock kick on 1, the and of 2 and 3, crash-ride
|
|
2072
|
+
// eighths and a hard 2 and 4.
|
|
2073
|
+
rhythm: {
|
|
2074
|
+
onsets: {
|
|
2075
|
+
kick: grid("x..xx..."),
|
|
2076
|
+
snare: grid("..x...x."),
|
|
2077
|
+
hat: grid("xxxxxxxx"),
|
|
2078
|
+
},
|
|
2079
|
+
},
|
|
2080
|
+
bass: { behaviour: [["root", 1]], onsets: grid("xxxxxxxx") },
|
|
2081
|
+
pitch: {
|
|
2082
|
+
scales: [
|
|
2083
|
+
["blues", 0.6],
|
|
2084
|
+
["minor-pentatonic", 0.4],
|
|
2085
|
+
],
|
|
2086
|
+
},
|
|
2087
|
+
harmony: {
|
|
2088
|
+
voicing: {
|
|
2089
|
+
types: [
|
|
2090
|
+
["power", 0.5],
|
|
2091
|
+
["close", 0.5],
|
|
2092
|
+
],
|
|
2093
|
+
},
|
|
2094
|
+
},
|
|
2095
|
+
melody: { density: [2, 3] },
|
|
2096
|
+
texture: {
|
|
2097
|
+
roles: {
|
|
2098
|
+
chords: role("electric@crunch"),
|
|
2099
|
+
lead: role("electric@lead", "electric@fuzz:0.4"),
|
|
2100
|
+
},
|
|
2101
|
+
},
|
|
2102
|
+
}),
|
|
2103
|
+
// -------------------------------------------------------------------------
|
|
2104
|
+
// R&B, soul and funk leaves. References: Rob Bowman, "Soulsville, U.S.A."
|
|
2105
|
+
// (1997); Anne Danielsen, "Presence and Pleasure: The Funk Grooves of James
|
|
2106
|
+
// Brown and Parliament" (2006); Allan Slutsky, "Standing in the Shadows of
|
|
2107
|
+
// Motown" (1989).
|
|
2108
|
+
card({
|
|
2109
|
+
id: "classic-rnb",
|
|
2110
|
+
summary:
|
|
2111
|
+
"classic rhythm and blues: shuffle backbeat on 2 and 4, 12-bar and I-vi-IV-V forms, boogie arpeggio bass, honking tenor sax answering the vocal",
|
|
2112
|
+
seedSalt: 1949,
|
|
2113
|
+
tempo: { bpm: [90, 160], typical: 120 },
|
|
2114
|
+
harmony: {
|
|
2115
|
+
forms: [[BLUES_FORM, 1]],
|
|
2116
|
+
presets: [["fifties", 1]],
|
|
2117
|
+
sources: { forms: 1, presets: 1 },
|
|
2118
|
+
},
|
|
2119
|
+
rhythm: { onsets: { snare: grid("..x...x."), kick: grid("x...x...") } },
|
|
2120
|
+
texture: {
|
|
2121
|
+
roles: {
|
|
2122
|
+
...kitRoles("acoustic"),
|
|
2123
|
+
chords: role("piano", "honkytonk:0.5"),
|
|
2124
|
+
lead: role("sing"),
|
|
2125
|
+
counter: role("sax", "barisax:0.4"),
|
|
2126
|
+
},
|
|
2127
|
+
},
|
|
2128
|
+
}),
|
|
2129
|
+
card({
|
|
2130
|
+
id: "doo-wop",
|
|
2131
|
+
summary:
|
|
2132
|
+
"doo-wop: the I-vi-IV-V fifties progression, 12/8 triplet ballad pulse, vocal-group nonsense-syllable backing pads, bass voice on roots",
|
|
2133
|
+
seedSalt: 1954,
|
|
2134
|
+
tempo: { bpm: [60, 130], typical: 76 },
|
|
2135
|
+
meter: {
|
|
2136
|
+
signatures: [
|
|
2137
|
+
["12/8", 0.6],
|
|
2138
|
+
["4/4", 0.4],
|
|
2139
|
+
],
|
|
2140
|
+
hypermeter: [[4, 1]],
|
|
2141
|
+
},
|
|
2142
|
+
groove: { subdivision: 2, swingRatio: [1.8, 2.1] },
|
|
2143
|
+
pitch: { scales: [["major", 1]] },
|
|
2144
|
+
harmony: {
|
|
2145
|
+
presets: [["fifties", 1]],
|
|
2146
|
+
sevenths: 0.2,
|
|
2147
|
+
cadences: [["V-I", 1]],
|
|
2148
|
+
},
|
|
2149
|
+
bass: {
|
|
2150
|
+
behaviour: [
|
|
2151
|
+
["root", 0.6],
|
|
2152
|
+
["arpeggio", 0.4],
|
|
2153
|
+
],
|
|
2154
|
+
},
|
|
2155
|
+
rhythm: { onsets: { chords: grid("x.x.x.x.") } },
|
|
2156
|
+
texture: {
|
|
2157
|
+
roles: {
|
|
2158
|
+
...kitRoles("acoustic"),
|
|
2159
|
+
chords: role("ooh", "piano:0.4"),
|
|
2160
|
+
bass: role("contrabass", "aah:0.3"),
|
|
2161
|
+
lead: role("sing"),
|
|
2162
|
+
pad: maybe("aah"),
|
|
2163
|
+
},
|
|
2164
|
+
},
|
|
2165
|
+
}),
|
|
2166
|
+
card({
|
|
2167
|
+
id: "new-orleans-rnb",
|
|
2168
|
+
summary:
|
|
2169
|
+
"New Orleans R&B: second-line rumba-boogie piano, tresillo bass (3+3+2), parade-drum snare, horns, I-IV-V in major",
|
|
2170
|
+
seedSalt: 1952,
|
|
2171
|
+
tempo: { bpm: [100, 160], typical: 128 },
|
|
2172
|
+
groove: { subdivision: 4, swingRatio: [1.2, 1.5] },
|
|
2173
|
+
pitch: {
|
|
2174
|
+
scales: [
|
|
2175
|
+
["major", 0.6],
|
|
2176
|
+
["mixolydian", 0.4],
|
|
2177
|
+
],
|
|
2178
|
+
},
|
|
2179
|
+
harmony: {
|
|
2180
|
+
forms: [[BLUES_FORM, 1]],
|
|
2181
|
+
presets: [["fifties", 1]],
|
|
2182
|
+
sources: { forms: 1, presets: 1 },
|
|
2183
|
+
},
|
|
2184
|
+
rhythm: {
|
|
2185
|
+
onsets: {
|
|
2186
|
+
kick: grid("x..x..x.x..x..x."),
|
|
2187
|
+
snare: grid("....x..1....x.1."),
|
|
2188
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2189
|
+
},
|
|
2190
|
+
},
|
|
2191
|
+
bass: { behaviour: [["arpeggio", 1]], onsets: TRESILLO },
|
|
2192
|
+
texture: {
|
|
2193
|
+
roles: {
|
|
2194
|
+
...kitRoles("acoustic"),
|
|
2195
|
+
chords: role("honkytonk", "upright:0.6"),
|
|
2196
|
+
lead: role("sing", "sax:0.5"),
|
|
2197
|
+
counter: maybe("trumpet", "trombone:0.6"),
|
|
2198
|
+
},
|
|
2199
|
+
},
|
|
2200
|
+
}),
|
|
2201
|
+
card({
|
|
2202
|
+
id: "southern-soul",
|
|
2203
|
+
summary:
|
|
2204
|
+
"Southern soul: lazy behind-the-beat snare on 2 and 4, gospel organ, unison horn stabs, I-IV vamps and 6/8 ballads, sparse Memphis rhythm section",
|
|
2205
|
+
seedSalt: 1965,
|
|
2206
|
+
tempo: { bpm: [60, 120], typical: 92 },
|
|
2207
|
+
pitch: {
|
|
2208
|
+
scales: [
|
|
2209
|
+
["major", 0.5],
|
|
2210
|
+
["mixolydian", 0.5],
|
|
2211
|
+
],
|
|
2212
|
+
},
|
|
2213
|
+
harmony: {
|
|
2214
|
+
presets: [
|
|
2215
|
+
["mixolydian-rock", 0.4],
|
|
2216
|
+
["fifties", 0.3],
|
|
2217
|
+
["turnaround", 0.3],
|
|
2218
|
+
],
|
|
2219
|
+
sevenths: 0.4,
|
|
2220
|
+
},
|
|
2221
|
+
groove: { roleOffset: { snare: 0.12 } },
|
|
2222
|
+
rhythm: {
|
|
2223
|
+
onsets: {
|
|
2224
|
+
kick: grid("x.....x.x......."),
|
|
2225
|
+
snare: grid("....x.......x..."),
|
|
2226
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2227
|
+
counter: grid("....x.......x..."),
|
|
2228
|
+
},
|
|
2229
|
+
},
|
|
2230
|
+
texture: {
|
|
2231
|
+
roles: {
|
|
2232
|
+
...kitRoles("acoustic"),
|
|
2233
|
+
chords: role("hammond", "electric@clean:0.6"),
|
|
2234
|
+
bass: role("ebass"),
|
|
2235
|
+
lead: role("sing"),
|
|
2236
|
+
counter: role("trumpet", "sax:0.8"),
|
|
2237
|
+
},
|
|
2238
|
+
},
|
|
2239
|
+
}),
|
|
2240
|
+
card({
|
|
2241
|
+
id: "motown",
|
|
2242
|
+
summary:
|
|
2243
|
+
"Motown: four-on-the-floor snare and tambourine on every beat, melodic syncopated bass with chromatic approaches, I-vi-ii-V and ii-V changes, vibes and strings",
|
|
2244
|
+
seedSalt: 1964,
|
|
2245
|
+
tempo: { bpm: [110, 140], typical: 124 },
|
|
2246
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
2247
|
+
pitch: {
|
|
2248
|
+
scales: [
|
|
2249
|
+
["major", 0.8],
|
|
2250
|
+
["minor", 0.2],
|
|
2251
|
+
],
|
|
2252
|
+
},
|
|
2253
|
+
harmony: {
|
|
2254
|
+
presets: [
|
|
2255
|
+
["turnaround", 0.5],
|
|
2256
|
+
["ii-v-i", 0.3],
|
|
2257
|
+
["axis", 0.2],
|
|
2258
|
+
],
|
|
2259
|
+
sevenths: 0.4,
|
|
2260
|
+
},
|
|
2261
|
+
rhythm: {
|
|
2262
|
+
onsets: {
|
|
2263
|
+
kick: grid("x...x...x...x..."),
|
|
2264
|
+
snare: grid("x...x...x...x..."),
|
|
2265
|
+
shaker: grid("x...x...x...x..."),
|
|
2266
|
+
hat: grid("..x...x...x...x."),
|
|
2267
|
+
},
|
|
2268
|
+
},
|
|
2269
|
+
bass: {
|
|
2270
|
+
behaviour: [
|
|
2271
|
+
["walking", 0.5],
|
|
2272
|
+
["arpeggio", 0.5],
|
|
2273
|
+
],
|
|
2274
|
+
onsets: grid("x..x..x.x.x..x.x"),
|
|
2275
|
+
walk: { chordToneOnOne: 1, chromaticApproach: 0.5 },
|
|
2276
|
+
},
|
|
2277
|
+
texture: {
|
|
2278
|
+
roles: {
|
|
2279
|
+
...kitRoles("acoustic"),
|
|
2280
|
+
shaker: role("drums"),
|
|
2281
|
+
chords: role("piano", "electric@clean:0.5"),
|
|
2282
|
+
bass: role("motown"),
|
|
2283
|
+
lead: role("sing"),
|
|
2284
|
+
pad: maybe("strings", "vibes:0.5"),
|
|
2285
|
+
},
|
|
2286
|
+
},
|
|
2287
|
+
}),
|
|
2288
|
+
card({
|
|
2289
|
+
id: "chicago-soul",
|
|
2290
|
+
summary:
|
|
2291
|
+
"Chicago soul: light mid-tempo backbeat, gospel-group vocal harmony, falsetto lead, Latin-tinged percussion, brassy arrangements with major-seventh color",
|
|
2292
|
+
seedSalt: 1963,
|
|
2293
|
+
tempo: { bpm: [90, 120], typical: 104 },
|
|
2294
|
+
pitch: { scales: [["major", 1]] },
|
|
2295
|
+
harmony: {
|
|
2296
|
+
presets: [
|
|
2297
|
+
["turnaround", 0.5],
|
|
2298
|
+
["axis", 0.5],
|
|
2299
|
+
],
|
|
2300
|
+
sevenths: 0.6,
|
|
2301
|
+
},
|
|
2302
|
+
rhythm: { onsets: { perc: grid("..x...x...x...x.") } },
|
|
2303
|
+
texture: {
|
|
2304
|
+
roles: {
|
|
2305
|
+
...kitRoles("acoustic"),
|
|
2306
|
+
perc: maybe("drums"),
|
|
2307
|
+
chords: role("electric@clean", "piano:0.6"),
|
|
2308
|
+
lead: role("sing"),
|
|
2309
|
+
counter: role("trumpet", "aah:0.6"),
|
|
2310
|
+
},
|
|
2311
|
+
},
|
|
2312
|
+
}),
|
|
2313
|
+
card({
|
|
2314
|
+
id: "northern-soul",
|
|
2315
|
+
summary:
|
|
2316
|
+
"Northern soul: up-tempo Motown-style stomp, four-to-the-floor snare and claps on every beat, driving eighth bass, strings and horns, major key",
|
|
2317
|
+
seedSalt: 1966,
|
|
2318
|
+
tempo: { bpm: [120, 150], typical: 134 },
|
|
2319
|
+
groove: { subdivision: 2, swingRatio: [1, 1.05] },
|
|
2320
|
+
pitch: {
|
|
2321
|
+
scales: [
|
|
2322
|
+
["major", 0.8],
|
|
2323
|
+
["minor", 0.2],
|
|
2324
|
+
],
|
|
2325
|
+
},
|
|
2326
|
+
harmony: {
|
|
2327
|
+
presets: [
|
|
2328
|
+
["turnaround", 0.5],
|
|
2329
|
+
["axis", 0.5],
|
|
2330
|
+
],
|
|
2331
|
+
sevenths: 0.3,
|
|
2332
|
+
},
|
|
2333
|
+
rhythm: {
|
|
2334
|
+
onsets: {
|
|
2335
|
+
kick: grid("x.x.x.x."),
|
|
2336
|
+
snare: grid("x.x.x.x."),
|
|
2337
|
+
clap: grid("x.x.x.x."),
|
|
2338
|
+
hat: grid(".x.x.x.x"),
|
|
2339
|
+
},
|
|
2340
|
+
},
|
|
2341
|
+
bass: {
|
|
2342
|
+
behaviour: [
|
|
2343
|
+
["octave", 0.5],
|
|
2344
|
+
["arpeggio", 0.5],
|
|
2345
|
+
],
|
|
2346
|
+
onsets: grid("xxxxxxxx"),
|
|
2347
|
+
},
|
|
2348
|
+
texture: {
|
|
2349
|
+
roles: {
|
|
2350
|
+
...kitRoles("acoustic", ["kick", "snare", "hat"], ["clap"]),
|
|
2351
|
+
chords: role("piano"),
|
|
2352
|
+
bass: role("motown"),
|
|
2353
|
+
lead: role("sing"),
|
|
2354
|
+
pad: maybe("strings", "trumpet:0.5"),
|
|
2355
|
+
},
|
|
2356
|
+
},
|
|
2357
|
+
}),
|
|
2358
|
+
card({
|
|
2359
|
+
id: "philly-soul",
|
|
2360
|
+
summary:
|
|
2361
|
+
"Philadelphia soul: lush string and horn orchestration, open hi-hat on the off-beat over four-on-the-floor, major-seventh and ninth chords, ii-V turnarounds",
|
|
2362
|
+
seedSalt: 1972,
|
|
2363
|
+
tempo: { bpm: [100, 125], typical: 112 },
|
|
2364
|
+
groove: { subdivision: 4, swingRatio: [1, 1.05] },
|
|
2365
|
+
pitch: {
|
|
2366
|
+
scales: [
|
|
2367
|
+
["major", 0.7],
|
|
2368
|
+
["dorian", 0.3],
|
|
2369
|
+
],
|
|
2370
|
+
},
|
|
2371
|
+
harmony: {
|
|
2372
|
+
presets: [
|
|
2373
|
+
["ii-v-i", 0.5],
|
|
2374
|
+
["turnaround", 0.5],
|
|
2375
|
+
],
|
|
2376
|
+
sevenths: 1,
|
|
2377
|
+
voicing: {
|
|
2378
|
+
types: [
|
|
2379
|
+
["open", 0.6],
|
|
2380
|
+
["close", 0.4],
|
|
2381
|
+
],
|
|
2382
|
+
notes: [4, 5],
|
|
2383
|
+
},
|
|
2384
|
+
},
|
|
2385
|
+
rhythm: {
|
|
2386
|
+
onsets: {
|
|
2387
|
+
kick: grid("x...x...x...x..."),
|
|
2388
|
+
snare: grid("....x.......x..."),
|
|
2389
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2390
|
+
openhat: grid("..x...x...x...x."),
|
|
2391
|
+
},
|
|
2392
|
+
},
|
|
2393
|
+
texture: {
|
|
2394
|
+
roles: {
|
|
2395
|
+
...kitRoles("acoustic", ["kick", "snare", "hat", "openhat"]),
|
|
2396
|
+
chords: role("electric@clean", "epiano:0.6"),
|
|
2397
|
+
bass: role("ebass"),
|
|
2398
|
+
lead: role("sing"),
|
|
2399
|
+
pad: role("strings"),
|
|
2400
|
+
counter: maybe("horn", "vibes:0.5"),
|
|
2401
|
+
},
|
|
2402
|
+
},
|
|
2403
|
+
}),
|
|
2404
|
+
card({
|
|
2405
|
+
id: "psychedelic-soul",
|
|
2406
|
+
summary:
|
|
2407
|
+
"psychedelic soul: long dorian one-chord vamps, wah guitar sixteenths, fuzz bass, phased drums and extended jams over the backbeat",
|
|
2408
|
+
seedSalt: 1969,
|
|
2409
|
+
tempo: { bpm: [90, 120], typical: 104 },
|
|
2410
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
2411
|
+
pitch: {
|
|
2412
|
+
scales: [
|
|
2413
|
+
["dorian", 0.6],
|
|
2414
|
+
["minor-pentatonic", 0.4],
|
|
2415
|
+
],
|
|
2416
|
+
},
|
|
2417
|
+
harmony: { presets: [["dorian-vamp", 1]], rhythm: [[2, 1]], sevenths: 0.9 },
|
|
2418
|
+
bass: { behaviour: [["ostinato", 1]], onsets: grid("x..x..x...x.x...") },
|
|
2419
|
+
texture: {
|
|
2420
|
+
roles: {
|
|
2421
|
+
...kitRoles("acoustic"),
|
|
2422
|
+
chords: role("electric@wah"),
|
|
2423
|
+
bass: role("ebass"),
|
|
2424
|
+
lead: role("sing", "electric@fuzz:0.6"),
|
|
2425
|
+
pad: maybe("hammond"),
|
|
2426
|
+
},
|
|
2427
|
+
},
|
|
2428
|
+
mix: { space: 0.5, fx: { chords: { phaser: "slow" } } },
|
|
2429
|
+
}),
|
|
2430
|
+
card({
|
|
2431
|
+
id: "quiet-storm",
|
|
2432
|
+
summary:
|
|
2433
|
+
"quiet storm: slow late-night ballad, soft rim-click backbeat, electric-piano ninths and elevenths, fretless-style sustained bass, ii-V-I with smooth voice leading",
|
|
2434
|
+
seedSalt: 1976,
|
|
2435
|
+
tempo: { bpm: [60, 84], typical: 70 },
|
|
2436
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
2437
|
+
pitch: {
|
|
2438
|
+
scales: [
|
|
2439
|
+
["major", 0.6],
|
|
2440
|
+
["dorian", 0.4],
|
|
2441
|
+
],
|
|
2442
|
+
},
|
|
2443
|
+
harmony: {
|
|
2444
|
+
presets: [
|
|
2445
|
+
["ii-v-i", 0.6],
|
|
2446
|
+
["turnaround", 0.4],
|
|
2447
|
+
],
|
|
2448
|
+
sevenths: 1,
|
|
2449
|
+
voicing: { types: [["open", 1]], notes: [4, 5] },
|
|
2450
|
+
},
|
|
2451
|
+
rhythm: {
|
|
2452
|
+
onsets: {
|
|
2453
|
+
kick: grid("x.........x....."),
|
|
2454
|
+
snare: null,
|
|
2455
|
+
rim: grid("....x.......x..."),
|
|
2456
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2457
|
+
},
|
|
2458
|
+
},
|
|
2459
|
+
bass: {
|
|
2460
|
+
behaviour: [
|
|
2461
|
+
["root", 0.6],
|
|
2462
|
+
["arpeggio", 0.4],
|
|
2463
|
+
],
|
|
2464
|
+
onsets: grid("x.........x....."),
|
|
2465
|
+
},
|
|
2466
|
+
melody: { density: [1, 2] },
|
|
2467
|
+
texture: {
|
|
2468
|
+
roles: {
|
|
2469
|
+
...kitRoles("acoustic", ["kick", "rim", "hat"]),
|
|
2470
|
+
snare: null,
|
|
2471
|
+
chords: role("epiano"),
|
|
2472
|
+
bass: role("ebass"),
|
|
2473
|
+
lead: role("sing", "sax:0.5"),
|
|
2474
|
+
pad: maybe("strings"),
|
|
2475
|
+
},
|
|
2476
|
+
},
|
|
2477
|
+
mix: { space: 0.6 },
|
|
2478
|
+
}),
|
|
2479
|
+
card({
|
|
2480
|
+
id: "neo-soul",
|
|
2481
|
+
summary:
|
|
2482
|
+
"neo soul: drunk unquantised hip-hop pocket (late snare, early kick), extended ninth and eleventh chords, dorian ii-V vamps, warm Rhodes and upright-style bass",
|
|
2483
|
+
seedSalt: 1997,
|
|
2484
|
+
tempo: { bpm: [70, 98], typical: 84 },
|
|
2485
|
+
groove: {
|
|
2486
|
+
subdivision: 4,
|
|
2487
|
+
swingRatio: [1.2, 1.5],
|
|
2488
|
+
roleOffset: { snare: 0.15, kick: -0.05, hat: 0.08 },
|
|
2489
|
+
humanize: { timingMs: 14, velocity: 0.12 },
|
|
2490
|
+
},
|
|
2491
|
+
pitch: {
|
|
2492
|
+
scales: [
|
|
2493
|
+
["dorian", 0.6],
|
|
2494
|
+
["major", 0.4],
|
|
2495
|
+
],
|
|
2496
|
+
},
|
|
2497
|
+
harmony: {
|
|
2498
|
+
presets: [
|
|
2499
|
+
["ii-v-i", 0.4],
|
|
2500
|
+
["dorian-vamp", 0.6],
|
|
2501
|
+
],
|
|
2502
|
+
sevenths: 1,
|
|
2503
|
+
voicing: {
|
|
2504
|
+
types: [
|
|
2505
|
+
["open", 0.6],
|
|
2506
|
+
["shell", 0.4],
|
|
2507
|
+
],
|
|
2508
|
+
notes: [4, 5],
|
|
2509
|
+
},
|
|
2510
|
+
},
|
|
2511
|
+
rhythm: {
|
|
2512
|
+
onsets: {
|
|
2513
|
+
kick: grid("x......x..x....."),
|
|
2514
|
+
snare: grid("....x.......x..."),
|
|
2515
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2516
|
+
},
|
|
2517
|
+
},
|
|
2518
|
+
texture: {
|
|
2519
|
+
roles: {
|
|
2520
|
+
...kitRoles("lofi"),
|
|
2521
|
+
chords: role("rhodes", "wurli:0.5"),
|
|
2522
|
+
bass: role("ebass", "contrabass:0.4"),
|
|
2523
|
+
lead: role("sing"),
|
|
2524
|
+
},
|
|
2525
|
+
},
|
|
2526
|
+
}),
|
|
2527
|
+
card({
|
|
2528
|
+
id: "uk-street-soul",
|
|
2529
|
+
summary:
|
|
2530
|
+
"UK street soul: mid-tempo programmed swingbeat, minor dorian vamps, synth pads and electric piano, dub-weighted sub bass with off-beat skank",
|
|
2531
|
+
seedSalt: 1989,
|
|
2532
|
+
tempo: { bpm: [86, 104], typical: 96 },
|
|
2533
|
+
groove: { subdivision: 4, swingRatio: [1.2, 1.5] },
|
|
2534
|
+
pitch: {
|
|
2535
|
+
scales: [
|
|
2536
|
+
["dorian", 0.5],
|
|
2537
|
+
["minor", 0.5],
|
|
2538
|
+
],
|
|
2539
|
+
},
|
|
2540
|
+
harmony: {
|
|
2541
|
+
presets: [
|
|
2542
|
+
["dorian-vamp", 0.6],
|
|
2543
|
+
["aeolian", 0.4],
|
|
2544
|
+
],
|
|
2545
|
+
sevenths: 0.8,
|
|
2546
|
+
},
|
|
2547
|
+
rhythm: {
|
|
2548
|
+
onsets: {
|
|
2549
|
+
kick: grid("x.....x...x....."),
|
|
2550
|
+
snare: grid("....x.......x..."),
|
|
2551
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2552
|
+
},
|
|
2553
|
+
},
|
|
2554
|
+
texture: {
|
|
2555
|
+
roles: {
|
|
2556
|
+
...kitRoles("syn808"),
|
|
2557
|
+
chords: role("epiano", "keys:0.5"),
|
|
2558
|
+
bass: role("bass"),
|
|
2559
|
+
lead: role("sing"),
|
|
2560
|
+
pad: maybe("strings"),
|
|
2561
|
+
},
|
|
2562
|
+
},
|
|
2563
|
+
}),
|
|
2564
|
+
card({
|
|
2565
|
+
id: "contemporary-rnb",
|
|
2566
|
+
summary:
|
|
2567
|
+
"contemporary R&B: half-time programmed groove, rolled sixteenth and triplet hi-hats, 808 sub bass, minor-ninth loops (vi-IV-I-V) and melismatic vocal",
|
|
2568
|
+
seedSalt: 2010,
|
|
2569
|
+
tempo: { bpm: [60, 100], typical: 76 },
|
|
2570
|
+
pitch: {
|
|
2571
|
+
scales: [
|
|
2572
|
+
["minor", 0.6],
|
|
2573
|
+
["dorian", 0.4],
|
|
2574
|
+
],
|
|
2575
|
+
},
|
|
2576
|
+
harmony: {
|
|
2577
|
+
presets: [
|
|
2578
|
+
["sad-pop", 0.5],
|
|
2579
|
+
["aeolian", 0.5],
|
|
2580
|
+
],
|
|
2581
|
+
sevenths: 0.9,
|
|
2582
|
+
},
|
|
2583
|
+
rhythm: {
|
|
2584
|
+
onsets: {
|
|
2585
|
+
kick: grid("x......x..x....."),
|
|
2586
|
+
snare: grid("........x......."),
|
|
2587
|
+
hat: grid("xxx.x.xxx.x.x.xx"),
|
|
2588
|
+
},
|
|
2589
|
+
},
|
|
2590
|
+
texture: {
|
|
2591
|
+
roles: {
|
|
2592
|
+
...kitRoles("trap"),
|
|
2593
|
+
chords: role("epiano", "keys:0.5"),
|
|
2594
|
+
bass: role("bass"),
|
|
2595
|
+
lead: role("sing"),
|
|
2596
|
+
pad: maybe("strings"),
|
|
2597
|
+
},
|
|
2598
|
+
},
|
|
2599
|
+
}),
|
|
2600
|
+
card({
|
|
2601
|
+
id: "new-jack-swing",
|
|
2602
|
+
summary:
|
|
2603
|
+
"new jack swing: hard swung sixteenth drum-machine shuffle (swing ratio 1.6), gated snare on 2 and 4, synth brass stabs, gospel-tinged ninth chords",
|
|
2604
|
+
seedSalt: 1988,
|
|
2605
|
+
tempo: { bpm: [100, 118], typical: 108 },
|
|
2606
|
+
groove: { subdivision: 4, swingRatio: [1.5, 1.7] },
|
|
2607
|
+
pitch: {
|
|
2608
|
+
scales: [
|
|
2609
|
+
["dorian", 0.5],
|
|
2610
|
+
["minor", 0.5],
|
|
2611
|
+
],
|
|
2612
|
+
},
|
|
2613
|
+
harmony: {
|
|
2614
|
+
presets: [
|
|
2615
|
+
["dorian-vamp", 0.5],
|
|
2616
|
+
["ii-v-i", 0.5],
|
|
2617
|
+
],
|
|
2618
|
+
sevenths: 0.9,
|
|
2619
|
+
},
|
|
2620
|
+
rhythm: {
|
|
2621
|
+
onsets: {
|
|
2622
|
+
kick: grid("x..x..x...x..x.."),
|
|
2623
|
+
snare: grid("....x.......x..."),
|
|
2624
|
+
hat: grid("x.xxx.xxx.xxx.xx"),
|
|
2625
|
+
},
|
|
2626
|
+
},
|
|
2627
|
+
texture: {
|
|
2628
|
+
roles: {
|
|
2629
|
+
...kitRoles("syn909"),
|
|
2630
|
+
chords: role("keys", "epiano:0.5"),
|
|
2631
|
+
bass: role("bass"),
|
|
2632
|
+
lead: role("sing"),
|
|
2633
|
+
counter: role("saw", "trumpet:0.4"),
|
|
2634
|
+
},
|
|
2635
|
+
},
|
|
2636
|
+
}),
|
|
2637
|
+
card({
|
|
2638
|
+
id: "hip-hop-soul",
|
|
2639
|
+
summary:
|
|
2640
|
+
"hip hop soul: boom-bap breakbeat (kick on 1 and the and-of-2, snare on 2 and 4), looped soul-chord vamp, live-feel bass, gospel vocal over hip-hop drums",
|
|
2641
|
+
seedSalt: 1994,
|
|
2642
|
+
tempo: { bpm: [84, 100], typical: 92 },
|
|
2643
|
+
groove: { subdivision: 4, swingRatio: [1.2, 1.5] },
|
|
2644
|
+
pitch: {
|
|
2645
|
+
scales: [
|
|
2646
|
+
["minor", 0.5],
|
|
2647
|
+
["dorian", 0.5],
|
|
2648
|
+
],
|
|
2649
|
+
},
|
|
2650
|
+
harmony: {
|
|
2651
|
+
presets: [
|
|
2652
|
+
["aeolian", 0.5],
|
|
2653
|
+
["dorian-vamp", 0.5],
|
|
2654
|
+
],
|
|
2655
|
+
sevenths: 0.8,
|
|
2656
|
+
},
|
|
2657
|
+
rhythm: {
|
|
2658
|
+
onsets: {
|
|
2659
|
+
kick: grid("x......x..x....."),
|
|
2660
|
+
snare: grid("....x.......x..."),
|
|
2661
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2662
|
+
},
|
|
2663
|
+
},
|
|
2664
|
+
texture: {
|
|
2665
|
+
roles: {
|
|
2666
|
+
...kitRoles("syn808"),
|
|
2667
|
+
chords: role("epiano", "piano:0.5"),
|
|
2668
|
+
bass: role("ebass", "bass:0.5"),
|
|
2669
|
+
lead: role("sing"),
|
|
2670
|
+
},
|
|
2671
|
+
},
|
|
2672
|
+
}),
|
|
2673
|
+
card({
|
|
2674
|
+
id: "alternative-rnb",
|
|
2675
|
+
summary:
|
|
2676
|
+
"alternative R&B: sparse half-time beats with wide space, detuned pads, modal minor and lydian color, sub bass and reverb-washed vocal",
|
|
2677
|
+
seedSalt: 2012,
|
|
2678
|
+
tempo: { bpm: [60, 90], typical: 72 },
|
|
2679
|
+
pitch: {
|
|
2680
|
+
scales: [
|
|
2681
|
+
["minor", 0.4],
|
|
2682
|
+
["dorian", 0.3],
|
|
2683
|
+
["lydian", 0.3],
|
|
2684
|
+
],
|
|
2685
|
+
},
|
|
2686
|
+
harmony: {
|
|
2687
|
+
model: "modal",
|
|
2688
|
+
presets: null,
|
|
2689
|
+
rhythm: [[2, 1]],
|
|
2690
|
+
sevenths: 1,
|
|
2691
|
+
},
|
|
2692
|
+
rhythm: {
|
|
2693
|
+
onsets: {
|
|
2694
|
+
kick: grid("x.........x....."),
|
|
2695
|
+
snare: grid("........x......."),
|
|
2696
|
+
hat: grid("x...x.x.x...x.xx"),
|
|
2697
|
+
},
|
|
2698
|
+
},
|
|
2699
|
+
melody: { density: [1, 2] },
|
|
2700
|
+
texture: {
|
|
2701
|
+
roles: {
|
|
2702
|
+
...kitRoles("trap"),
|
|
2703
|
+
chords: role("keys", "epiano:0.5"),
|
|
2704
|
+
bass: role("bass"),
|
|
2705
|
+
lead: role("sing"),
|
|
2706
|
+
pad: role("strings", "saw:0.5"),
|
|
2707
|
+
},
|
|
2708
|
+
},
|
|
2709
|
+
mix: { space: 0.7 },
|
|
2710
|
+
}),
|
|
2711
|
+
card({
|
|
2712
|
+
id: "classic-funk",
|
|
2713
|
+
summary:
|
|
2714
|
+
"classic funk: emphasis on the one, interlocking sixteenth-note scratch guitar, ghosted snare, dominant ninth one-chord vamp, horn stabs, syncopated bass anchoring beat 1",
|
|
2715
|
+
seedSalt: 1967,
|
|
2716
|
+
tempo: { bpm: [96, 120], typical: 108 },
|
|
2717
|
+
harmony: { presets: null, rhythm: [[4, 1]] },
|
|
2718
|
+
rhythm: {
|
|
2719
|
+
onsets: {
|
|
2720
|
+
kick: grid("x.....x.x.....x."),
|
|
2721
|
+
snare: grid("....x..1.1..x..1"),
|
|
2722
|
+
hat: grid("xxxxxxxxxxxxxxxx"),
|
|
2723
|
+
chords: grid(".x.x.xx..x.x.xx."),
|
|
2724
|
+
},
|
|
2725
|
+
},
|
|
2726
|
+
texture: {
|
|
2727
|
+
roles: {
|
|
2728
|
+
...kitRoles("acoustic"),
|
|
2729
|
+
chords: role("funk"),
|
|
2730
|
+
bass: role("ebass"),
|
|
2731
|
+
lead: role("sing", "sax:0.5"),
|
|
2732
|
+
counter: maybe("trumpet", "sax:0.6"),
|
|
2733
|
+
},
|
|
2734
|
+
},
|
|
2735
|
+
}),
|
|
2736
|
+
card({
|
|
2737
|
+
id: "p-funk",
|
|
2738
|
+
summary:
|
|
2739
|
+
"P-Funk: slower heavy on-the-one groove, synth bass and Moog leads, layered chant vocals, mixolydian and dorian vamps, cosmic synth textures",
|
|
2740
|
+
seedSalt: 1975,
|
|
2741
|
+
tempo: { bpm: [92, 108], typical: 100 },
|
|
2742
|
+
// Parliament ("Give Up the Funk", "Flash Light"): a plain heavy backbeat,
|
|
2743
|
+
// eighth hats with the open hat on the off-beats, and a busy sliding synth
|
|
2744
|
+
// bass carrying the syncopation instead of the drums.
|
|
2745
|
+
rhythm: {
|
|
2746
|
+
onsets: {
|
|
2747
|
+
kick: grid("x.....x...x....."),
|
|
2748
|
+
snare: grid("....x.......x..."),
|
|
2749
|
+
hat: grid("x...x...x...x..."),
|
|
2750
|
+
openhat: grid("..x...x...x...x."),
|
|
2751
|
+
},
|
|
2752
|
+
},
|
|
2753
|
+
bass: { behaviour: [["ostinato", 1]], onsets: grid("x.xx..x..xx.x.x.") },
|
|
2754
|
+
texture: {
|
|
2755
|
+
roles: {
|
|
2756
|
+
...kitRoles("acoustic", ["kick", "snare", "hat", "openhat"]),
|
|
2757
|
+
chords: role("clav", "funk:0.6"),
|
|
2758
|
+
bass: role("bass", "ebass:0.4"),
|
|
2759
|
+
lead: role("lead", "saw:0.6"),
|
|
2760
|
+
pad: maybe("choir", "strings:0.5"),
|
|
2761
|
+
},
|
|
2762
|
+
},
|
|
2763
|
+
}),
|
|
2764
|
+
card({
|
|
2765
|
+
id: "bayou-funk",
|
|
2766
|
+
summary:
|
|
2767
|
+
"New Orleans funk: second-line syncopation, kick and snare displaced off the grid around a tresillo, open loose sixteenths, clavinet and organ",
|
|
2768
|
+
seedSalt: 1969,
|
|
2769
|
+
tempo: { bpm: [90, 112], typical: 100 },
|
|
2770
|
+
groove: { swingRatio: [1.15, 1.35] },
|
|
2771
|
+
rhythm: {
|
|
2772
|
+
onsets: {
|
|
2773
|
+
kick: grid("x..x..x...x..x.."),
|
|
2774
|
+
snare: grid("...x..1..1..x..."),
|
|
2775
|
+
hat: grid("x.xxx.xxx.xxx.xx"),
|
|
2776
|
+
},
|
|
2777
|
+
},
|
|
2778
|
+
bass: { onsets: TRESILLO },
|
|
2779
|
+
texture: {
|
|
2780
|
+
roles: {
|
|
2781
|
+
...kitRoles("acoustic"),
|
|
2782
|
+
chords: role("clav", "hammond:0.6"),
|
|
2783
|
+
bass: role("ebass"),
|
|
2784
|
+
lead: role("electric@clean", "hammond:0.5"),
|
|
2785
|
+
},
|
|
2786
|
+
},
|
|
2787
|
+
}),
|
|
2788
|
+
card({
|
|
2789
|
+
id: "go-go",
|
|
2790
|
+
summary:
|
|
2791
|
+
"go-go: the pocket beat with congas and cowbell in a swung sixteenth, kick-snare figure with the bell on 1 and the and-of-2, call and response over one-chord vamps",
|
|
2792
|
+
seedSalt: 1978,
|
|
2793
|
+
tempo: { bpm: [92, 112], typical: 100 },
|
|
2794
|
+
groove: { swingRatio: [1.3, 1.6] },
|
|
2795
|
+
rhythm: {
|
|
2796
|
+
onsets: {
|
|
2797
|
+
kick: grid("x..x......x....."),
|
|
2798
|
+
snare: grid("....x.......x..."),
|
|
2799
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
2800
|
+
bell: grid("x..x...x..x.x..."),
|
|
2801
|
+
perc: grid("x.xx..x.x.xx..x."),
|
|
2802
|
+
},
|
|
2803
|
+
},
|
|
2804
|
+
texture: {
|
|
2805
|
+
roles: {
|
|
2806
|
+
...kitRoles("acoustic"),
|
|
2807
|
+
bell: role("bell"),
|
|
2808
|
+
perc: role("drums"),
|
|
2809
|
+
chords: role("keys", "funk:0.5"),
|
|
2810
|
+
bass: role("ebass"),
|
|
2811
|
+
lead: role("sing", "trumpet:0.5"),
|
|
2812
|
+
},
|
|
2813
|
+
},
|
|
2814
|
+
}),
|
|
2815
|
+
card({
|
|
2816
|
+
id: "minneapolis-sound",
|
|
2817
|
+
summary:
|
|
2818
|
+
"Minneapolis sound: LinnDrum-style straight sixteenth machine groove, synth stabs replacing horns, clipped funk guitar, mixolydian vamps",
|
|
2819
|
+
seedSalt: 1981,
|
|
2820
|
+
tempo: { bpm: [110, 130], typical: 120 },
|
|
2821
|
+
groove: { swingRatio: [1, 1.05] },
|
|
2822
|
+
rhythm: {
|
|
2823
|
+
onsets: {
|
|
2824
|
+
kick: grid("x.....x...x....."),
|
|
2825
|
+
snare: grid("....x.......x..."),
|
|
2826
|
+
hat: grid("xxxxxxxxxxxxxxxx"),
|
|
2827
|
+
clap: grid("....x.......x..."),
|
|
2828
|
+
},
|
|
2829
|
+
},
|
|
2830
|
+
texture: {
|
|
2831
|
+
roles: {
|
|
2832
|
+
...kitRoles("electro", ["kick", "snare", "hat", "clap"]),
|
|
2833
|
+
chords: role("saw", "funk:0.6"),
|
|
2834
|
+
bass: role("bass"),
|
|
2835
|
+
lead: role("sing", "lead:0.5"),
|
|
2836
|
+
counter: maybe("square", "saw:0.5"),
|
|
2837
|
+
},
|
|
2838
|
+
},
|
|
2839
|
+
}),
|
|
2840
|
+
card({
|
|
2841
|
+
id: "boogie",
|
|
2842
|
+
summary:
|
|
2843
|
+
"boogie (post-disco): mid-tempo four-on-the-floor slowed to a funk pocket, synth bass octaves, ninth and eleventh chords, ii-V cycles, clap backbeat",
|
|
2844
|
+
seedSalt: 1982,
|
|
2845
|
+
tempo: { bpm: [104, 122], typical: 112 },
|
|
2846
|
+
groove: { swingRatio: [1, 1.1] },
|
|
2847
|
+
pitch: {
|
|
2848
|
+
scales: [
|
|
2849
|
+
["dorian", 0.5],
|
|
2850
|
+
["major", 0.5],
|
|
2851
|
+
],
|
|
2852
|
+
},
|
|
2853
|
+
harmony: {
|
|
2854
|
+
model: "functional",
|
|
2855
|
+
presets: [
|
|
2856
|
+
["ii-v-i", 0.5],
|
|
2857
|
+
["dorian-vamp", 0.5],
|
|
2858
|
+
],
|
|
2859
|
+
rhythm: [[1, 1]],
|
|
2860
|
+
},
|
|
2861
|
+
rhythm: {
|
|
2862
|
+
onsets: {
|
|
2863
|
+
kick: grid("x...x...x...x..."),
|
|
2864
|
+
snare: grid("....x.......x..."),
|
|
2865
|
+
clap: grid("....x.......x..."),
|
|
2866
|
+
hat: grid("..x...x...x...x."),
|
|
2867
|
+
},
|
|
2868
|
+
},
|
|
2869
|
+
bass: {
|
|
2870
|
+
behaviour: [
|
|
2871
|
+
["octave", 0.6],
|
|
2872
|
+
["ostinato", 0.4],
|
|
2873
|
+
],
|
|
2874
|
+
onsets: grid("x.xx..x.x.xx..x."),
|
|
2875
|
+
},
|
|
2876
|
+
texture: {
|
|
2877
|
+
roles: {
|
|
2878
|
+
...kitRoles("syn808", ["kick", "snare", "hat", "clap"]),
|
|
2879
|
+
chords: role("epiano", "keys:0.5"),
|
|
2880
|
+
bass: role("bass"),
|
|
2881
|
+
lead: role("sing"),
|
|
2882
|
+
pad: maybe("strings", "saw:0.5"),
|
|
2883
|
+
},
|
|
2884
|
+
},
|
|
2885
|
+
}),
|
|
2886
|
+
card({
|
|
2887
|
+
id: "free-funk",
|
|
2888
|
+
summary:
|
|
2889
|
+
"free funk: harmolodic funk with free-jazz soloing over tight sixteenth grooves, odd accents, unison lines that drift, few or no fixed chord changes",
|
|
2890
|
+
seedSalt: 1977,
|
|
2891
|
+
tempo: { bpm: [100, 140], typical: 120 },
|
|
2892
|
+
harmony: { model: "modal", presets: null, rhythm: [[4, 1]] },
|
|
2893
|
+
melody: {
|
|
2894
|
+
density: [3, 4],
|
|
2895
|
+
intervals: intervals(4, 2, 1.5, 1.2),
|
|
2896
|
+
chordToneRate: 0.3,
|
|
2897
|
+
},
|
|
2898
|
+
texture: {
|
|
2899
|
+
roles: {
|
|
2900
|
+
...kitRoles("acoustic"),
|
|
2901
|
+
chords: role("electric@crunch"),
|
|
2902
|
+
bass: role("ebass"),
|
|
2903
|
+
lead: role("sax", "trumpet:0.5"),
|
|
2904
|
+
counter: maybe("electric@clean"),
|
|
2905
|
+
},
|
|
2906
|
+
},
|
|
2907
|
+
}),
|
|
2908
|
+
card({
|
|
2909
|
+
id: "funk-band",
|
|
2910
|
+
summary:
|
|
2911
|
+
"big-band and soul revue funk: full horn section riffing in unison on the one, stop-time hits, tight sixteenth rhythm section, dominant ninth vamps",
|
|
2912
|
+
seedSalt: 1970,
|
|
2913
|
+
tempo: { bpm: [104, 126], typical: 114 },
|
|
2914
|
+
// James Brown revue ("Cold Sweat", "Funky Drummer"): a dense ghosted
|
|
2915
|
+
// snare against the backbeat, sixteenth hats, and a bass line that lands
|
|
2916
|
+
// hard on the one then leaves space.
|
|
2917
|
+
rhythm: {
|
|
2918
|
+
onsets: {
|
|
2919
|
+
kick: grid("x.....x.x.....x."),
|
|
2920
|
+
snare: grid("3.3.x.3x3x3.x.33"),
|
|
2921
|
+
hat: grid("xxxxxxxxxxxxxxxx"),
|
|
2922
|
+
},
|
|
2923
|
+
},
|
|
2924
|
+
bass: { behaviour: [["ostinato", 1]], onsets: grid("x......x.x..x...") },
|
|
2925
|
+
texture: {
|
|
2926
|
+
roles: {
|
|
2927
|
+
...kitRoles("acoustic"),
|
|
2928
|
+
chords: role("funk", "hammond:0.5"),
|
|
2929
|
+
bass: role("ebass"),
|
|
2930
|
+
lead: role("trumpet", "sax:0.8", "sing:0.6"),
|
|
2931
|
+
counter: role("trombone", "barisax:0.6"),
|
|
2932
|
+
},
|
|
2933
|
+
},
|
|
2934
|
+
}),
|
|
2935
|
+
// -------------------------------------------------------------------------
|
|
2936
|
+
// Gospel and sacred leaves. References: Horace Clarence Boyer, "How Sweet
|
|
2937
|
+
// the Sound: The Golden Age of Gospel" (1995); Eileen Southern, "The Music
|
|
2938
|
+
// of Black Americans" (3rd ed., 1997).
|
|
2939
|
+
card({
|
|
2940
|
+
id: "traditional-gospel",
|
|
2941
|
+
summary:
|
|
2942
|
+
"traditional black gospel: slow 12/8 ballad with triplet piano and organ, claps on 2 and 4, plagal IV-I amens, passing diminished chords, Hammond and piano, lead vocal with choir call and response",
|
|
2943
|
+
seedSalt: 1940,
|
|
2944
|
+
// The slow 12/8 gospel ballad ("Precious Lord"): triplet piano and organ
|
|
2945
|
+
// over a dotted-quarter pulse, claps on 2 and 4.
|
|
2946
|
+
tempo: { bpm: [56, 88], typical: 68 },
|
|
2947
|
+
meter: { signatures: [["12/8", 1]], hypermeter: [[4, 1]] },
|
|
2948
|
+
groove: { swingRatio: [1.7, 2.1] },
|
|
2949
|
+
pitch: {
|
|
2950
|
+
scales: [
|
|
2951
|
+
["major", 0.7],
|
|
2952
|
+
["major-blues", 0.3],
|
|
2953
|
+
],
|
|
2954
|
+
},
|
|
2955
|
+
harmony: {
|
|
2956
|
+
chain: {
|
|
2957
|
+
I: [
|
|
2958
|
+
["IV", 2],
|
|
2959
|
+
["V7/IV", 1.5],
|
|
2960
|
+
["vi", 1],
|
|
2961
|
+
],
|
|
2962
|
+
"V7/IV": [["IV", 3]],
|
|
2963
|
+
IV: [
|
|
2964
|
+
["#ivo7", 1.5],
|
|
2965
|
+
["I", 2],
|
|
2966
|
+
["V7", 1],
|
|
2967
|
+
],
|
|
2968
|
+
"#ivo7": [["I", 3]],
|
|
2969
|
+
vi: [
|
|
2970
|
+
["ii", 2],
|
|
2971
|
+
["IV", 1],
|
|
2972
|
+
],
|
|
2973
|
+
ii: [["V7", 3]],
|
|
2974
|
+
V7: [["I", 3]],
|
|
2975
|
+
},
|
|
2976
|
+
presets: null,
|
|
2977
|
+
sources: { chain: 1 },
|
|
2978
|
+
cadences: [
|
|
2979
|
+
["IV-I", 0.6],
|
|
2980
|
+
["V-I", 0.4],
|
|
2981
|
+
],
|
|
2982
|
+
},
|
|
2983
|
+
rhythm: {
|
|
2984
|
+
onsets: {
|
|
2985
|
+
kick: grid("x...x..."),
|
|
2986
|
+
snare: grid("..x...x."),
|
|
2987
|
+
clap: grid("..x...x."),
|
|
2988
|
+
hat: grid("x.x.x.x."),
|
|
2989
|
+
},
|
|
2990
|
+
},
|
|
2991
|
+
texture: {
|
|
2992
|
+
roles: {
|
|
2993
|
+
...kitRoles("acoustic", ["kick", "snare", "hat"], ["clap"]),
|
|
2994
|
+
chords: role("gospel", "piano:0.6"),
|
|
2995
|
+
bass: role("ebass", "hammond:0.4"),
|
|
2996
|
+
lead: role("sing"),
|
|
2997
|
+
counter: role("choir"),
|
|
2998
|
+
},
|
|
2999
|
+
},
|
|
3000
|
+
}),
|
|
3001
|
+
card({
|
|
3002
|
+
id: "gospel-quartet",
|
|
3003
|
+
summary:
|
|
3004
|
+
"gospel quartet: four-part male close harmony, syncopated jubilee bass voice on every beat, minimal guitar, I-IV-V with secondary dominants, call and response lead",
|
|
3005
|
+
seedSalt: 1937,
|
|
3006
|
+
tempo: { bpm: [80, 150], typical: 112 },
|
|
3007
|
+
groove: { swingRatio: [1.5, 1.9] },
|
|
3008
|
+
pitch: { scales: [["major", 1]] },
|
|
3009
|
+
harmony: {
|
|
3010
|
+
presets: [
|
|
3011
|
+
["turnaround", 0.5],
|
|
3012
|
+
["fifties", 0.5],
|
|
3013
|
+
],
|
|
3014
|
+
sevenths: 0.5,
|
|
3015
|
+
},
|
|
3016
|
+
bass: {
|
|
3017
|
+
behaviour: [
|
|
3018
|
+
["root-fifth", 0.6],
|
|
3019
|
+
["walking", 0.4],
|
|
3020
|
+
],
|
|
3021
|
+
onsets: grid("x.x.x.x."),
|
|
3022
|
+
},
|
|
3023
|
+
texture: {
|
|
3024
|
+
roles: {
|
|
3025
|
+
kick: null,
|
|
3026
|
+
snare: null,
|
|
3027
|
+
hat: null,
|
|
3028
|
+
clap: maybe("drums"),
|
|
3029
|
+
chords: role("aah", "electric@clean:0.4"),
|
|
3030
|
+
bass: role("aah", "contrabass:0.5"),
|
|
3031
|
+
lead: role("sing"),
|
|
3032
|
+
},
|
|
3033
|
+
},
|
|
3034
|
+
}),
|
|
3035
|
+
card({
|
|
3036
|
+
id: "urban-gospel",
|
|
3037
|
+
summary:
|
|
3038
|
+
"urban contemporary gospel: R&B production, ii-V-I and IV-iii-ii-I chromatic walk-downs, ninth and eleventh chords, half-time drums and choir stabs, shout vamp sections",
|
|
3039
|
+
seedSalt: 1993,
|
|
3040
|
+
tempo: { bpm: [70, 130], typical: 96 },
|
|
3041
|
+
groove: { subdivision: 4, swingRatio: [1.1, 1.4] },
|
|
3042
|
+
pitch: {
|
|
3043
|
+
scales: [
|
|
3044
|
+
["major", 0.6],
|
|
3045
|
+
["dorian", 0.4],
|
|
3046
|
+
],
|
|
3047
|
+
},
|
|
3048
|
+
harmony: {
|
|
3049
|
+
presets: [
|
|
3050
|
+
["ii-v-i", 0.5],
|
|
3051
|
+
["turnaround", 0.5],
|
|
3052
|
+
],
|
|
3053
|
+
sevenths: 1,
|
|
3054
|
+
voicing: {
|
|
3055
|
+
types: [
|
|
3056
|
+
["open", 0.6],
|
|
3057
|
+
["close", 0.4],
|
|
3058
|
+
],
|
|
3059
|
+
notes: [4, 5],
|
|
3060
|
+
},
|
|
3061
|
+
},
|
|
3062
|
+
rhythm: {
|
|
3063
|
+
onsets: {
|
|
3064
|
+
kick: grid("x......x..x....."),
|
|
3065
|
+
snare: grid("....x.......x..."),
|
|
3066
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
3067
|
+
},
|
|
3068
|
+
},
|
|
3069
|
+
texture: {
|
|
3070
|
+
roles: {
|
|
3071
|
+
...kitRoles("syn808"),
|
|
3072
|
+
chords: role("gospel", "epiano:0.5"),
|
|
3073
|
+
bass: role("bass", "ebass:0.5"),
|
|
3074
|
+
lead: role("sing"),
|
|
3075
|
+
counter: role("choir"),
|
|
3076
|
+
},
|
|
3077
|
+
},
|
|
3078
|
+
}),
|
|
3079
|
+
card({
|
|
3080
|
+
id: "southern-gospel",
|
|
3081
|
+
summary:
|
|
3082
|
+
"Southern gospel: white quartet with tenor-lead-baritone-bass stacked harmony, piano-driven country two-beat, I-IV-V and the half-step lift key change",
|
|
3083
|
+
seedSalt: 1950,
|
|
3084
|
+
tempo: { bpm: [80, 140], typical: 108 },
|
|
3085
|
+
groove: { swingRatio: [1, 1.5] },
|
|
3086
|
+
pitch: { scales: [["major", 1]] },
|
|
3087
|
+
harmony: {
|
|
3088
|
+
presets: [
|
|
3089
|
+
["fifties", 0.5],
|
|
3090
|
+
["turnaround", 0.5],
|
|
3091
|
+
],
|
|
3092
|
+
sevenths: 0.2,
|
|
3093
|
+
},
|
|
3094
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
3095
|
+
rhythm: {
|
|
3096
|
+
onsets: { kick: grid("x...x..."), snare: grid("..x...x."), hat: null },
|
|
3097
|
+
},
|
|
3098
|
+
texture: {
|
|
3099
|
+
roles: {
|
|
3100
|
+
...kitRoles("acoustic", ["kick", "snare"]),
|
|
3101
|
+
hat: null,
|
|
3102
|
+
chords: role("piano"),
|
|
3103
|
+
bass: role("ebass", "contrabass:0.5"),
|
|
3104
|
+
lead: role("sing"),
|
|
3105
|
+
counter: role("aah"),
|
|
3106
|
+
},
|
|
3107
|
+
},
|
|
3108
|
+
}),
|
|
3109
|
+
card({
|
|
3110
|
+
id: "spirituals",
|
|
3111
|
+
summary:
|
|
3112
|
+
"spirituals: unaccompanied pentatonic melody, call and response, ring-shout handclap and foot-stomp timeline, slow ballad or shout, plagal color",
|
|
3113
|
+
seedSalt: 1867,
|
|
3114
|
+
tempo: { bpm: [56, 120], typical: 72 },
|
|
3115
|
+
groove: { swingRatio: [1.3, 1.9] },
|
|
3116
|
+
pitch: {
|
|
3117
|
+
scales: [
|
|
3118
|
+
["major-pentatonic", 0.6],
|
|
3119
|
+
["minor-pentatonic", 0.4],
|
|
3120
|
+
],
|
|
3121
|
+
},
|
|
3122
|
+
harmony: {
|
|
3123
|
+
presets: [["fifties", 1]],
|
|
3124
|
+
sevenths: 0,
|
|
3125
|
+
cadences: [["IV-I", 1]],
|
|
3126
|
+
},
|
|
3127
|
+
rhythm: {
|
|
3128
|
+
onsets: {
|
|
3129
|
+
kick: grid("x...x..."),
|
|
3130
|
+
clap: grid("..x...x."),
|
|
3131
|
+
snare: null,
|
|
3132
|
+
hat: null,
|
|
3133
|
+
},
|
|
3134
|
+
},
|
|
3135
|
+
melody: { chordToneRate: 0.6, repetition: 0.7, density: [1, 2] },
|
|
3136
|
+
texture: {
|
|
3137
|
+
roles: {
|
|
3138
|
+
...kitRoles("acoustic", ["kick"], ["clap"]),
|
|
3139
|
+
snare: null,
|
|
3140
|
+
hat: null,
|
|
3141
|
+
chords: role("aah"),
|
|
3142
|
+
bass: maybe("aah"),
|
|
3143
|
+
lead: role("sing"),
|
|
3144
|
+
counter: maybe("choir"),
|
|
3145
|
+
},
|
|
3146
|
+
},
|
|
3147
|
+
}),
|
|
3148
|
+
card({
|
|
3149
|
+
id: "ccm",
|
|
3150
|
+
summary:
|
|
3151
|
+
"contemporary Christian music: pop-rock song form, I-V-vi-IV loops, straight eighths backbeat, verse-chorus-bridge with a lifted final chorus",
|
|
3152
|
+
seedSalt: 1985,
|
|
3153
|
+
tempo: { bpm: [72, 132], typical: 100 },
|
|
3154
|
+
groove: { subdivision: 4, swingRatio: [1, 1.05] },
|
|
3155
|
+
pitch: { scales: [["major", 1]] },
|
|
3156
|
+
harmony: {
|
|
3157
|
+
presets: [
|
|
3158
|
+
["axis", 0.5],
|
|
3159
|
+
["sad-pop", 0.3],
|
|
3160
|
+
["canon", 0.2],
|
|
3161
|
+
],
|
|
3162
|
+
sevenths: 0.1,
|
|
3163
|
+
},
|
|
3164
|
+
rhythm: {
|
|
3165
|
+
onsets: {
|
|
3166
|
+
kick: grid("x.......x.x....."),
|
|
3167
|
+
snare: grid("....x.......x..."),
|
|
3168
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
3169
|
+
},
|
|
3170
|
+
},
|
|
3171
|
+
texture: {
|
|
3172
|
+
roles: {
|
|
3173
|
+
...kitRoles("acoustic"),
|
|
3174
|
+
chords: role("acoustic", "piano:0.6"),
|
|
3175
|
+
bass: role("ebass"),
|
|
3176
|
+
lead: role("sing"),
|
|
3177
|
+
counter: maybe("electric@clean"),
|
|
3178
|
+
},
|
|
3179
|
+
},
|
|
3180
|
+
form: {
|
|
3181
|
+
plans: [[["verse", "chorus", "verse", "chorus", "bridge", "chorus"], 1]],
|
|
3182
|
+
},
|
|
3183
|
+
}),
|
|
3184
|
+
card({
|
|
3185
|
+
id: "worship",
|
|
3186
|
+
summary:
|
|
3187
|
+
"praise and worship: slow-build anthem on I-V-vi-IV, sustained pads, dotted-eighth delay guitar, tom-driven build into a congregational chorus",
|
|
3188
|
+
seedSalt: 2000,
|
|
3189
|
+
tempo: { bpm: [64, 80], typical: 72 },
|
|
3190
|
+
groove: { subdivision: 4, swingRatio: [1, 1.05] },
|
|
3191
|
+
pitch: { scales: [["major", 1]] },
|
|
3192
|
+
harmony: {
|
|
3193
|
+
presets: [
|
|
3194
|
+
["axis", 0.5],
|
|
3195
|
+
["sad-pop", 0.5],
|
|
3196
|
+
],
|
|
3197
|
+
sevenths: 0,
|
|
3198
|
+
},
|
|
3199
|
+
rhythm: {
|
|
3200
|
+
onsets: {
|
|
3201
|
+
kick: grid("x.......x......."),
|
|
3202
|
+
snare: grid("........x......."),
|
|
3203
|
+
tom: grid("x..x..x...x..x.."),
|
|
3204
|
+
hat: null,
|
|
3205
|
+
},
|
|
3206
|
+
},
|
|
3207
|
+
texture: {
|
|
3208
|
+
roles: {
|
|
3209
|
+
...kitRoles("acoustic", ["kick", "snare"], ["tom"]),
|
|
3210
|
+
hat: null,
|
|
3211
|
+
chords: role("piano", "acoustic:0.6"),
|
|
3212
|
+
bass: role("ebass"),
|
|
3213
|
+
lead: role("sing"),
|
|
3214
|
+
pad: role("strings", "saw:0.4"),
|
|
3215
|
+
counter: maybe("electric@clean"),
|
|
3216
|
+
},
|
|
3217
|
+
},
|
|
3218
|
+
mix: { space: 0.6, fx: { counter: { chorus: "wide" } } },
|
|
3219
|
+
form: {
|
|
3220
|
+
plans: [
|
|
3221
|
+
[["intro", "verse", "chorus", "verse", "chorus", "build", "chorus"], 1],
|
|
3222
|
+
],
|
|
3223
|
+
},
|
|
3224
|
+
}),
|
|
3225
|
+
// -------------------------------------------------------------------------
|
|
3226
|
+
// Country leaves. References: Bill C. Malone, "Country Music, U.S.A." (3rd
|
|
3227
|
+
// ed., 2010); Neil V. Rosenberg, "Bluegrass: A History" (1985).
|
|
3228
|
+
card({
|
|
3229
|
+
id: "old-time",
|
|
3230
|
+
summary:
|
|
3231
|
+
"old-time string band: fiddle tune AABB strains in 2/4, droning double stops, clawhammer banjo bum-ditty, I-IV-V and mixolydian or dorian modal tunes",
|
|
3232
|
+
seedSalt: 1925,
|
|
3233
|
+
meter: {
|
|
3234
|
+
signatures: [
|
|
3235
|
+
["2/4", 0.6],
|
|
3236
|
+
["4/4", 0.4],
|
|
3237
|
+
],
|
|
3238
|
+
hypermeter: [[8, 1]],
|
|
3239
|
+
},
|
|
3240
|
+
tempo: { bpm: [100, 140], typical: 120 },
|
|
3241
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
3242
|
+
pitch: {
|
|
3243
|
+
scales: [
|
|
3244
|
+
["major", 0.5],
|
|
3245
|
+
["mixolydian", 0.3],
|
|
3246
|
+
["dorian", 0.2],
|
|
3247
|
+
],
|
|
3248
|
+
},
|
|
3249
|
+
harmony: {
|
|
3250
|
+
presets: [
|
|
3251
|
+
["mixolydian-rock", 0.5],
|
|
3252
|
+
["fifties", 0.5],
|
|
3253
|
+
],
|
|
3254
|
+
sevenths: 0,
|
|
3255
|
+
},
|
|
3256
|
+
rhythm: { onsets: { kick: null, snare: null, chords: grid("x.xxx.xx") } },
|
|
3257
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
3258
|
+
melody: {
|
|
3259
|
+
density: [3, 4],
|
|
3260
|
+
intervals: intervals(7, 2, 0.6, 0.6),
|
|
3261
|
+
repetition: 0.7,
|
|
3262
|
+
},
|
|
3263
|
+
texture: {
|
|
3264
|
+
roles: {
|
|
3265
|
+
kick: null,
|
|
3266
|
+
snare: null,
|
|
3267
|
+
bass: maybe("contrabass", "steel:0.4"),
|
|
3268
|
+
chords: role("banjo"),
|
|
3269
|
+
lead: role("fiddle"),
|
|
3270
|
+
},
|
|
3271
|
+
},
|
|
3272
|
+
form: { archetype: "AABB" },
|
|
3273
|
+
}),
|
|
3274
|
+
card({
|
|
3275
|
+
id: "bluegrass",
|
|
3276
|
+
summary:
|
|
3277
|
+
"bluegrass: fast cut-time with mandolin chop on the backbeat, Scruggs three-finger banjo rolls in sixteenths, upright bass root-fifth on 1 and 3, G-run turnarounds, high lonesome harmony",
|
|
3278
|
+
seedSalt: 1946,
|
|
3279
|
+
tempo: { bpm: [140, 200], typical: 168 },
|
|
3280
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
3281
|
+
pitch: {
|
|
3282
|
+
scales: [
|
|
3283
|
+
["major", 0.8],
|
|
3284
|
+
["mixolydian", 0.2],
|
|
3285
|
+
],
|
|
3286
|
+
},
|
|
3287
|
+
harmony: {
|
|
3288
|
+
presets: [
|
|
3289
|
+
["fifties", 0.4],
|
|
3290
|
+
["mixolydian-rock", 0.6],
|
|
3291
|
+
],
|
|
3292
|
+
sevenths: 0.1,
|
|
3293
|
+
},
|
|
3294
|
+
rhythm: {
|
|
3295
|
+
onsets: {
|
|
3296
|
+
kick: null,
|
|
3297
|
+
snare: null,
|
|
3298
|
+
hat: null,
|
|
3299
|
+
chords: grid("....x.......x..."),
|
|
3300
|
+
arp: grid("xxxxxxxxxxxxxxxx"),
|
|
3301
|
+
},
|
|
3302
|
+
},
|
|
3303
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x.......x.......") },
|
|
3304
|
+
melody: { density: [3, 4] },
|
|
3305
|
+
texture: {
|
|
3306
|
+
roles: {
|
|
3307
|
+
kick: null,
|
|
3308
|
+
snare: null,
|
|
3309
|
+
hat: null,
|
|
3310
|
+
bass: role("contrabass"),
|
|
3311
|
+
chords: role("steel"),
|
|
3312
|
+
arp: role("banjo"),
|
|
3313
|
+
lead: role("fiddle", "sing:0.6"),
|
|
3314
|
+
},
|
|
3315
|
+
},
|
|
3316
|
+
}),
|
|
3317
|
+
card({
|
|
3318
|
+
id: "progressive-bluegrass",
|
|
3319
|
+
summary:
|
|
3320
|
+
"progressive bluegrass (newgrass): bluegrass instrumentation with jazz and rock harmony, seventh and suspended chords, modal vamps, odd-meter and extended improvisations",
|
|
3321
|
+
seedSalt: 1972,
|
|
3322
|
+
meter: {
|
|
3323
|
+
signatures: [
|
|
3324
|
+
["4/4", 0.8],
|
|
3325
|
+
["7/8", 0.2],
|
|
3326
|
+
],
|
|
3327
|
+
hypermeter: [[4, 1]],
|
|
3328
|
+
},
|
|
3329
|
+
tempo: { bpm: [110, 180], typical: 140 },
|
|
3330
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
3331
|
+
pitch: {
|
|
3332
|
+
scales: [
|
|
3333
|
+
["major", 0.4],
|
|
3334
|
+
["dorian", 0.3],
|
|
3335
|
+
["lydian", 0.3],
|
|
3336
|
+
],
|
|
3337
|
+
},
|
|
3338
|
+
harmony: {
|
|
3339
|
+
presets: [
|
|
3340
|
+
["ii-v-i", 0.4],
|
|
3341
|
+
["axis", 0.3],
|
|
3342
|
+
["mixolydian-rock", 0.3],
|
|
3343
|
+
],
|
|
3344
|
+
sevenths: 0.6,
|
|
3345
|
+
},
|
|
3346
|
+
rhythm: {
|
|
3347
|
+
onsets: {
|
|
3348
|
+
kick: null,
|
|
3349
|
+
snare: null,
|
|
3350
|
+
hat: null,
|
|
3351
|
+
arp: grid("xxxxxxxxxxxxxxxx"),
|
|
3352
|
+
},
|
|
3353
|
+
},
|
|
3354
|
+
texture: {
|
|
3355
|
+
roles: {
|
|
3356
|
+
kick: null,
|
|
3357
|
+
snare: null,
|
|
3358
|
+
hat: null,
|
|
3359
|
+
bass: role("contrabass"),
|
|
3360
|
+
chords: role("steel"),
|
|
3361
|
+
arp: maybe("banjo"),
|
|
3362
|
+
lead: role("fiddle", "steel:0.6"),
|
|
3363
|
+
},
|
|
3364
|
+
},
|
|
3365
|
+
}),
|
|
3366
|
+
card({
|
|
3367
|
+
id: "western-swing",
|
|
3368
|
+
summary:
|
|
3369
|
+
"western swing: jazz swing feel (ratio 1.7) on a two-beat country bass, steel guitar and twin fiddles, sixth and dominant seventh chords, ii-V turnarounds",
|
|
3370
|
+
seedSalt: 1936,
|
|
3371
|
+
tempo: { bpm: [120, 200], typical: 160 },
|
|
3372
|
+
groove: { subdivision: 2, swingRatio: [1.6, 1.9] },
|
|
3373
|
+
harmony: {
|
|
3374
|
+
presets: [
|
|
3375
|
+
["turnaround", 0.5],
|
|
3376
|
+
["ii-v-i", 0.3],
|
|
3377
|
+
["fifties", 0.2],
|
|
3378
|
+
],
|
|
3379
|
+
sevenths: 0.8,
|
|
3380
|
+
},
|
|
3381
|
+
rhythm: {
|
|
3382
|
+
onsets: {
|
|
3383
|
+
kick: grid("x...x..."),
|
|
3384
|
+
snare: grid("..x...x."),
|
|
3385
|
+
hat: grid("..x...x."),
|
|
3386
|
+
},
|
|
3387
|
+
},
|
|
3388
|
+
bass: {
|
|
3389
|
+
behaviour: [
|
|
3390
|
+
["walking", 0.5],
|
|
3391
|
+
["root-fifth", 0.5],
|
|
3392
|
+
],
|
|
3393
|
+
onsets: grid("x.x.x.x."),
|
|
3394
|
+
},
|
|
3395
|
+
texture: {
|
|
3396
|
+
roles: {
|
|
3397
|
+
...kitRoles("acoustic"),
|
|
3398
|
+
bass: role("contrabass"),
|
|
3399
|
+
chords: role("electric@clean", "piano:0.6"),
|
|
3400
|
+
lead: role("fiddle", "electric@glide:0.6"),
|
|
3401
|
+
counter: maybe("fiddle", "trumpet:0.4"),
|
|
3402
|
+
},
|
|
3403
|
+
},
|
|
3404
|
+
}),
|
|
3405
|
+
card({
|
|
3406
|
+
id: "honky-tonk",
|
|
3407
|
+
summary:
|
|
3408
|
+
"honky-tonk: shuffle two-beat with brush snare on 2 and 4, alternating root-fifth bass, crying pedal-steel fills, simple I-IV-V, plain-spoken strophic verses",
|
|
3409
|
+
seedSalt: 1950,
|
|
3410
|
+
tempo: { bpm: [120, 170], typical: 140 },
|
|
3411
|
+
groove: { subdivision: 2, swingRatio: [1.3, 1.7] },
|
|
3412
|
+
// Ray Price shuffle: walking bass in a 4/4 shuffle, brush snare on 2 and
|
|
3413
|
+
// 4, honky-tonk piano.
|
|
3414
|
+
harmony: {
|
|
3415
|
+
presets: [
|
|
3416
|
+
["fifties", 0.4],
|
|
3417
|
+
["mixolydian-rock", 0.6],
|
|
3418
|
+
],
|
|
3419
|
+
sevenths: 0.2,
|
|
3420
|
+
},
|
|
3421
|
+
rhythm: {
|
|
3422
|
+
onsets: {
|
|
3423
|
+
kick: grid("x...x..."),
|
|
3424
|
+
snare: grid("..x...x."),
|
|
3425
|
+
hat: grid("x.xxx.xx"),
|
|
3426
|
+
},
|
|
3427
|
+
},
|
|
3428
|
+
bass: { behaviour: [["walking", 1]] },
|
|
3429
|
+
texture: {
|
|
3430
|
+
roles: {
|
|
3431
|
+
...kitRoles("acoustic"),
|
|
3432
|
+
chords: role("acoustic", "honkytonk:0.6"),
|
|
3433
|
+
lead: role("sing", "fiddle:0.6"),
|
|
3434
|
+
counter: role("electric@glide", "fiddle:0.4"),
|
|
3435
|
+
},
|
|
3436
|
+
},
|
|
3437
|
+
}),
|
|
3438
|
+
card({
|
|
3439
|
+
id: "nashville-sound",
|
|
3440
|
+
summary:
|
|
3441
|
+
"Nashville sound: smooth countrypolitan ballads, string section and background vocal pads replacing fiddle and steel, slip-note piano, I-vi-IV-V",
|
|
3442
|
+
seedSalt: 1958,
|
|
3443
|
+
tempo: { bpm: [64, 96], typical: 78 },
|
|
3444
|
+
meter: {
|
|
3445
|
+
signatures: [
|
|
3446
|
+
["4/4", 0.6],
|
|
3447
|
+
["3/4", 0.4],
|
|
3448
|
+
],
|
|
3449
|
+
},
|
|
3450
|
+
groove: { swingRatio: [1, 1.2] },
|
|
3451
|
+
harmony: {
|
|
3452
|
+
presets: [
|
|
3453
|
+
["fifties", 0.6],
|
|
3454
|
+
["turnaround", 0.4],
|
|
3455
|
+
],
|
|
3456
|
+
sevenths: 0.3,
|
|
3457
|
+
},
|
|
3458
|
+
// Studio-polished ballad: the kick only on the one, a cross-stick backbeat,
|
|
3459
|
+
// Floyd Cramer's slip-note piano on the off-beats.
|
|
3460
|
+
rhythm: {
|
|
3461
|
+
onsets: {
|
|
3462
|
+
kick: grid("x.......2......."),
|
|
3463
|
+
snare: null,
|
|
3464
|
+
rim: grid("....x.......x..."),
|
|
3465
|
+
hat: null,
|
|
3466
|
+
chords: grid("x...x...x...x..."),
|
|
3467
|
+
},
|
|
3468
|
+
},
|
|
3469
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x.......x.......") },
|
|
3470
|
+
texture: {
|
|
3471
|
+
roles: {
|
|
3472
|
+
...kitRoles("acoustic", ["kick", "rim"]),
|
|
3473
|
+
snare: null,
|
|
3474
|
+
hat: null,
|
|
3475
|
+
chords: role("piano"),
|
|
3476
|
+
bass: role("ebass", "contrabass:0.4"),
|
|
3477
|
+
lead: role("sing"),
|
|
3478
|
+
pad: role("strings", "ooh:0.6"),
|
|
3479
|
+
},
|
|
3480
|
+
},
|
|
3481
|
+
}),
|
|
3482
|
+
card({
|
|
3483
|
+
id: "bakersfield",
|
|
3484
|
+
summary:
|
|
3485
|
+
"Bakersfield sound: bright twangy Telecaster lead, driving straight-eighth train beat, root-fifth bass, raw I-IV-V honky-tonk harmony, electric pedal steel",
|
|
3486
|
+
seedSalt: 1963,
|
|
3487
|
+
harmony: {
|
|
3488
|
+
presets: [
|
|
3489
|
+
["fifties", 0.4],
|
|
3490
|
+
["mixolydian-rock", 0.6],
|
|
3491
|
+
],
|
|
3492
|
+
},
|
|
3493
|
+
tempo: { bpm: [120, 170], typical: 144 },
|
|
3494
|
+
groove: { subdivision: 2, swingRatio: [1, 1.15] },
|
|
3495
|
+
rhythm: {
|
|
3496
|
+
onsets: {
|
|
3497
|
+
kick: grid("x...x..."),
|
|
3498
|
+
snare: grid("..x...x."),
|
|
3499
|
+
hat: grid("xxxxxxxx"),
|
|
3500
|
+
},
|
|
3501
|
+
},
|
|
3502
|
+
texture: {
|
|
3503
|
+
roles: {
|
|
3504
|
+
...kitRoles("acoustic"),
|
|
3505
|
+
chords: role("electric@clean", "acoustic:0.4"),
|
|
3506
|
+
lead: role("electric@clean", "electric@glide:0.5"),
|
|
3507
|
+
},
|
|
3508
|
+
},
|
|
3509
|
+
mix: { fx: { lead: { tremolo: "gentle" } } },
|
|
3510
|
+
}),
|
|
3511
|
+
card({
|
|
3512
|
+
id: "outlaw-country",
|
|
3513
|
+
summary:
|
|
3514
|
+
"outlaw country: stripped-down rock-leaning band, loose mid-tempo backbeat, mixolydian bVII color, blues-inflected leads, unpolished vocals",
|
|
3515
|
+
seedSalt: 1973,
|
|
3516
|
+
tempo: { bpm: [96, 132], typical: 112 },
|
|
3517
|
+
pitch: {
|
|
3518
|
+
scales: [
|
|
3519
|
+
["mixolydian", 0.6],
|
|
3520
|
+
["major", 0.4],
|
|
3521
|
+
],
|
|
3522
|
+
},
|
|
3523
|
+
harmony: {
|
|
3524
|
+
presets: [
|
|
3525
|
+
["mixolydian-rock", 0.7],
|
|
3526
|
+
["fifties", 0.3],
|
|
3527
|
+
],
|
|
3528
|
+
},
|
|
3529
|
+
rhythm: {
|
|
3530
|
+
onsets: {
|
|
3531
|
+
// Waylon's thump: kick on every beat under a hard 2 and 4.
|
|
3532
|
+
kick: grid("x...x...x...x..."),
|
|
3533
|
+
snare: grid("....x.......x..."),
|
|
3534
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
3535
|
+
},
|
|
3536
|
+
},
|
|
3537
|
+
bass: { behaviour: [["root", 1]], onsets: grid("x.x.x.x.x.x.x.x.") },
|
|
3538
|
+
texture: {
|
|
3539
|
+
roles: {
|
|
3540
|
+
...kitRoles("acoustic"),
|
|
3541
|
+
chords: role("acoustic", "electric@crunch:0.5"),
|
|
3542
|
+
bass: role("ebass"),
|
|
3543
|
+
lead: role("sing", "electric@crunch:0.5"),
|
|
3544
|
+
},
|
|
3545
|
+
},
|
|
3546
|
+
}),
|
|
3547
|
+
card({
|
|
3548
|
+
id: "cowboy-western",
|
|
3549
|
+
summary:
|
|
3550
|
+
"cowboy and western song: loping horse-gait two-beat (clip-clop woodblock), close vocal-trio harmony, yodel leaps of a sixth and octave, simple I-IV-V waltzes and ballads",
|
|
3551
|
+
seedSalt: 1935,
|
|
3552
|
+
meter: {
|
|
3553
|
+
signatures: [
|
|
3554
|
+
["4/4", 0.6],
|
|
3555
|
+
["3/4", 0.4],
|
|
3556
|
+
],
|
|
3557
|
+
hypermeter: [[4, 1]],
|
|
3558
|
+
},
|
|
3559
|
+
tempo: { bpm: [80, 130], typical: 100 },
|
|
3560
|
+
groove: { subdivision: 2, swingRatio: [1.2, 1.5] },
|
|
3561
|
+
pitch: { scales: [["major", 1]] },
|
|
3562
|
+
harmony: {
|
|
3563
|
+
presets: [
|
|
3564
|
+
["fifties", 0.5],
|
|
3565
|
+
["turnaround", 0.5],
|
|
3566
|
+
],
|
|
3567
|
+
sevenths: 0.2,
|
|
3568
|
+
},
|
|
3569
|
+
rhythm: {
|
|
3570
|
+
onsets: { kick: null, snare: null, hat: null, rim: grid("x.x.x.x.") },
|
|
3571
|
+
},
|
|
3572
|
+
melody: { intervals: intervals(4, 3, 1.4, 0.4), ambitus: [9, 16] },
|
|
3573
|
+
texture: {
|
|
3574
|
+
roles: {
|
|
3575
|
+
kick: null,
|
|
3576
|
+
snare: null,
|
|
3577
|
+
hat: null,
|
|
3578
|
+
rim: role("drums"),
|
|
3579
|
+
bass: role("contrabass"),
|
|
3580
|
+
chords: role("acoustic"),
|
|
3581
|
+
lead: role("sing", "fiddle:0.4"),
|
|
3582
|
+
pad: maybe("aah"),
|
|
3583
|
+
},
|
|
3584
|
+
},
|
|
3585
|
+
}),
|
|
3586
|
+
card({
|
|
3587
|
+
id: "country-pop",
|
|
3588
|
+
summary:
|
|
3589
|
+
"country pop: pop song form with country instrumentation, I-V-vi-IV loops, straight sixteenth groove, big lifted choruses, acoustic strum plus steel and fiddle color",
|
|
3590
|
+
seedSalt: 2000,
|
|
3591
|
+
tempo: { bpm: [80, 130], typical: 104 },
|
|
3592
|
+
groove: { subdivision: 4, swingRatio: [1, 1.05] },
|
|
3593
|
+
harmony: {
|
|
3594
|
+
presets: [
|
|
3595
|
+
["axis", 0.6],
|
|
3596
|
+
["sad-pop", 0.2],
|
|
3597
|
+
["fifties", 0.2],
|
|
3598
|
+
],
|
|
3599
|
+
sevenths: 0,
|
|
3600
|
+
},
|
|
3601
|
+
rhythm: {
|
|
3602
|
+
onsets: {
|
|
3603
|
+
kick: grid("x.......x.x....."),
|
|
3604
|
+
snare: grid("....x.......x..."),
|
|
3605
|
+
hat: grid("x.x.x.x.x.x.x.x."),
|
|
3606
|
+
},
|
|
3607
|
+
},
|
|
3608
|
+
texture: {
|
|
3609
|
+
roles: {
|
|
3610
|
+
...kitRoles("acoustic"),
|
|
3611
|
+
chords: role("acoustic"),
|
|
3612
|
+
bass: role("ebass"),
|
|
3613
|
+
lead: role("sing"),
|
|
3614
|
+
counter: maybe("fiddle", "electric@glide:0.6"),
|
|
3615
|
+
},
|
|
3616
|
+
},
|
|
3617
|
+
form: {
|
|
3618
|
+
plans: [[["verse", "chorus", "verse", "chorus", "bridge", "chorus"], 1]],
|
|
3619
|
+
},
|
|
3620
|
+
}),
|
|
3621
|
+
card({
|
|
3622
|
+
id: "alt-country",
|
|
3623
|
+
summary:
|
|
3624
|
+
"alt-country: punk and indie energy on country forms, ragged mixolydian rock chords, twangy reverb guitar, unadorned backbeat, minor-key ballads",
|
|
3625
|
+
seedSalt: 1990,
|
|
3626
|
+
tempo: { bpm: [70, 150], typical: 104 },
|
|
3627
|
+
// Uncle Tupelo to Whiskeytown: punk train-beat ragers on a washy open
|
|
3628
|
+
// hat, beside minor-key laments.
|
|
3629
|
+
pitch: {
|
|
3630
|
+
scales: [
|
|
3631
|
+
["major", 0.4],
|
|
3632
|
+
["mixolydian", 0.3],
|
|
3633
|
+
["minor", 0.3],
|
|
3634
|
+
],
|
|
3635
|
+
},
|
|
3636
|
+
harmony: {
|
|
3637
|
+
presets: [
|
|
3638
|
+
["mixolydian-rock", 0.5],
|
|
3639
|
+
["aeolian", 0.2],
|
|
3640
|
+
["axis", 0.3],
|
|
3641
|
+
],
|
|
3642
|
+
},
|
|
3643
|
+
rhythm: {
|
|
3644
|
+
onsets: {
|
|
3645
|
+
kick: grid("x.......x......."),
|
|
3646
|
+
snare: grid("....x.......x..."),
|
|
3647
|
+
hat: null,
|
|
3648
|
+
openhat: grid("x.x.x.x.x.x.x.x."),
|
|
3649
|
+
},
|
|
3650
|
+
},
|
|
3651
|
+
texture: {
|
|
3652
|
+
roles: {
|
|
3653
|
+
...kitRoles("acoustic", ["kick", "snare", "openhat"]),
|
|
3654
|
+
hat: null,
|
|
3655
|
+
chords: role("ragged", "acoustic:0.5"),
|
|
3656
|
+
bass: role("ebass"),
|
|
3657
|
+
lead: role("sing", "electric@crunch:0.5"),
|
|
3658
|
+
},
|
|
3659
|
+
},
|
|
3660
|
+
}),
|
|
3661
|
+
card({
|
|
3662
|
+
id: "texas-red-dirt",
|
|
3663
|
+
summary:
|
|
3664
|
+
"Texas country and red dirt: dance-hall two-step shuffle, fiddle and steel answering the vocal, loose roadhouse rock backbeat, I-IV-V with bVII",
|
|
3665
|
+
seedSalt: 1995,
|
|
3666
|
+
tempo: { bpm: [150, 200], typical: 172 },
|
|
3667
|
+
// The dance-hall two-step: a cut-time feel, kick on 1 and 3 with the
|
|
3668
|
+
// snare on 2 and 4 and the shuffle on the snare in the turnarounds.
|
|
3669
|
+
groove: { subdivision: 2, swingRatio: [1.2, 1.5] },
|
|
3670
|
+
harmony: {
|
|
3671
|
+
presets: [
|
|
3672
|
+
["mixolydian-rock", 0.6],
|
|
3673
|
+
["fifties", 0.4],
|
|
3674
|
+
],
|
|
3675
|
+
},
|
|
3676
|
+
rhythm: {
|
|
3677
|
+
onsets: {
|
|
3678
|
+
kick: grid("x...x..."),
|
|
3679
|
+
snare: grid("..x.3.x3"),
|
|
3680
|
+
hat: grid("..x...x."),
|
|
3681
|
+
},
|
|
3682
|
+
},
|
|
3683
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
3684
|
+
texture: {
|
|
3685
|
+
roles: {
|
|
3686
|
+
...kitRoles("acoustic"),
|
|
3687
|
+
chords: role("acoustic", "electric@clean:0.5"),
|
|
3688
|
+
bass: role("ebass"),
|
|
3689
|
+
lead: role("sing", "fiddle:0.6"),
|
|
3690
|
+
counter: role("fiddle", "electric@glide:0.6"),
|
|
3691
|
+
},
|
|
3692
|
+
},
|
|
3693
|
+
}),
|
|
3694
|
+
// -------------------------------------------------------------------------
|
|
3695
|
+
// North American folk leaves. References: Alan Lomax, "The Folk Songs of
|
|
3696
|
+
// North America" (1960); Barry Jean Ancelet, "Cajun and Creole Music
|
|
3697
|
+
// Makers" (1999); Jean-Jacques Nattiez, "Inuit Vocal Games" (1983).
|
|
3698
|
+
card({
|
|
3699
|
+
id: "appalachian",
|
|
3700
|
+
summary:
|
|
3701
|
+
"Appalachian ballad: gapped pentatonic and hexatonic modal melody (dorian, mixolydian, aeolian), unmetered-feeling strophic ballad, dulcimer drone on tonic and fifth",
|
|
3702
|
+
seedSalt: 1916,
|
|
3703
|
+
meter: {
|
|
3704
|
+
signatures: [
|
|
3705
|
+
["3/4", 0.4],
|
|
3706
|
+
["4/4", 0.6],
|
|
3707
|
+
],
|
|
3708
|
+
hypermeter: [[4, 1]],
|
|
3709
|
+
},
|
|
3710
|
+
tempo: { bpm: [60, 110], typical: 80 },
|
|
3711
|
+
pitch: {
|
|
3712
|
+
scales: [
|
|
3713
|
+
["dorian", 0.3],
|
|
3714
|
+
["mixolydian", 0.3],
|
|
3715
|
+
["minor", 0.2],
|
|
3716
|
+
["major-pentatonic", 0.2],
|
|
3717
|
+
],
|
|
3718
|
+
},
|
|
3719
|
+
harmony: { model: "drone", presets: null, rhythm: [[1, 1]], sevenths: 0 },
|
|
3720
|
+
melody: {
|
|
3721
|
+
density: [1, 2],
|
|
3722
|
+
repetition: 0.6,
|
|
3723
|
+
contour: [
|
|
3724
|
+
["arch", 0.6],
|
|
3725
|
+
["descending", 0.4],
|
|
3726
|
+
],
|
|
3727
|
+
},
|
|
3728
|
+
texture: {
|
|
3729
|
+
roles: {
|
|
3730
|
+
chords: null,
|
|
3731
|
+
bass: null,
|
|
3732
|
+
drone: role("dulcimer"),
|
|
3733
|
+
lead: role("sing", "fiddle:0.4"),
|
|
3734
|
+
},
|
|
3735
|
+
},
|
|
3736
|
+
}),
|
|
3737
|
+
card({
|
|
3738
|
+
id: "sacred-harp",
|
|
3739
|
+
summary:
|
|
3740
|
+
"Sacred Harp shape-note singing: four-part dispersed harmony in open fifths and fourths, modal minor tunes, tenor-carried melody, square-beat 4/4 and 3/2, fuging entries, unaccompanied",
|
|
3741
|
+
seedSalt: 1844,
|
|
3742
|
+
meter: {
|
|
3743
|
+
signatures: [
|
|
3744
|
+
["4/4", 0.6],
|
|
3745
|
+
["3/4", 0.4],
|
|
3746
|
+
],
|
|
3747
|
+
hypermeter: [[4, 1]],
|
|
3748
|
+
},
|
|
3749
|
+
tempo: { bpm: [80, 130], typical: 104 },
|
|
3750
|
+
groove: { subdivision: 2, swingRatio: [1, 1] },
|
|
3751
|
+
pitch: {
|
|
3752
|
+
scales: [
|
|
3753
|
+
["minor", 0.5],
|
|
3754
|
+
["major", 0.3],
|
|
3755
|
+
["dorian", 0.2],
|
|
3756
|
+
],
|
|
3757
|
+
},
|
|
3758
|
+
harmony: {
|
|
3759
|
+
presets: [
|
|
3760
|
+
["aeolian", 0.5],
|
|
3761
|
+
["fifties", 0.5],
|
|
3762
|
+
],
|
|
3763
|
+
sevenths: 0,
|
|
3764
|
+
voicing: {
|
|
3765
|
+
types: [
|
|
3766
|
+
["power", 0.5],
|
|
3767
|
+
["open", 0.5],
|
|
3768
|
+
],
|
|
3769
|
+
},
|
|
3770
|
+
cadences: [
|
|
3771
|
+
["V-I", 0.5],
|
|
3772
|
+
["IV-I", 0.5],
|
|
3773
|
+
],
|
|
3774
|
+
},
|
|
3775
|
+
rhythm: { onsets: { chords: grid("x.x.x.x.") } },
|
|
3776
|
+
bass: { behaviour: [["root", 1]], onsets: grid("x.x.x.x.") },
|
|
3777
|
+
texture: {
|
|
3778
|
+
roles: {
|
|
3779
|
+
chords: role("chorale"),
|
|
3780
|
+
bass: role("aah"),
|
|
3781
|
+
lead: role("choir"),
|
|
3782
|
+
counter: role("aah"),
|
|
3783
|
+
},
|
|
3784
|
+
},
|
|
3785
|
+
form: { plans: [[["verse", "verse", "chorus", "chorus"], 1]] },
|
|
3786
|
+
}),
|
|
3787
|
+
card({
|
|
3788
|
+
id: "american-folk-revival",
|
|
3789
|
+
summary:
|
|
3790
|
+
"American folk revival: Travis-picked alternating-bass acoustic guitar, protest and topical strophic songs, I-IV-V and I-vi-IV-V, harmonica breaks, unison group chorus",
|
|
3791
|
+
seedSalt: 1962,
|
|
3792
|
+
tempo: { bpm: [80, 140], typical: 104 },
|
|
3793
|
+
groove: { subdivision: 4, swingRatio: [1, 1.15] },
|
|
3794
|
+
harmony: {
|
|
3795
|
+
presets: [
|
|
3796
|
+
["fifties", 0.5],
|
|
3797
|
+
["mixolydian-rock", 0.5],
|
|
3798
|
+
],
|
|
3799
|
+
},
|
|
3800
|
+
rhythm: { onsets: { arp: grid("x.x.x.x.x.x.x.x.") } },
|
|
3801
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...x...x...") },
|
|
3802
|
+
texture: {
|
|
3803
|
+
roles: {
|
|
3804
|
+
bass: role("steel"),
|
|
3805
|
+
chords: role("steel"),
|
|
3806
|
+
arp: role("steel"),
|
|
3807
|
+
lead: role("sing"),
|
|
3808
|
+
counter: maybe("reeds", "banjo:0.5"),
|
|
3809
|
+
},
|
|
3810
|
+
},
|
|
3811
|
+
}),
|
|
3812
|
+
card({
|
|
3813
|
+
id: "singer-songwriter",
|
|
3814
|
+
summary:
|
|
3815
|
+
"singer-songwriter: intimate fingerpicked guitar or piano, sus2 and add9 color, I-V-vi-IV and vi-IV-I-V, verse-chorus-bridge with confessional melody close to speech rhythm",
|
|
3816
|
+
seedSalt: 1971,
|
|
3817
|
+
tempo: { bpm: [64, 120], typical: 88 },
|
|
3818
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
3819
|
+
pitch: {
|
|
3820
|
+
scales: [
|
|
3821
|
+
["major", 0.7],
|
|
3822
|
+
["minor", 0.3],
|
|
3823
|
+
],
|
|
3824
|
+
},
|
|
3825
|
+
harmony: {
|
|
3826
|
+
presets: [
|
|
3827
|
+
["axis", 0.4],
|
|
3828
|
+
["sad-pop", 0.3],
|
|
3829
|
+
["canon", 0.3],
|
|
3830
|
+
],
|
|
3831
|
+
sevenths: 0.2,
|
|
3832
|
+
},
|
|
3833
|
+
rhythm: { onsets: { arp: grid("x.x.x.x.x.x.x.x.") } },
|
|
3834
|
+
melody: { intervals: intervals(7, 2, 0.5, 1.2), density: [2, 2] },
|
|
3835
|
+
texture: {
|
|
3836
|
+
roles: {
|
|
3837
|
+
bass: maybe("steel"),
|
|
3838
|
+
chords: role("steel", "piano:0.6"),
|
|
3839
|
+
arp: role("steel", "piano:0.4"),
|
|
3840
|
+
lead: role("sing"),
|
|
3841
|
+
},
|
|
3842
|
+
},
|
|
3843
|
+
form: {
|
|
3844
|
+
plans: [[["verse", "chorus", "verse", "chorus", "bridge", "chorus"], 1]],
|
|
3845
|
+
archetype: "verse-chorus",
|
|
3846
|
+
},
|
|
3847
|
+
}),
|
|
3848
|
+
card({
|
|
3849
|
+
id: "contemporary-folk",
|
|
3850
|
+
summary:
|
|
3851
|
+
"contemporary and indie folk: stomp-and-clap four-on-the-floor kick, banjo and acoustic strum, gang-vocal choruses, I-IV-vi-V, building dynamics",
|
|
3852
|
+
seedSalt: 2010,
|
|
3853
|
+
tempo: { bpm: [80, 130], typical: 112 },
|
|
3854
|
+
groove: { subdivision: 4, swingRatio: [1, 1.1] },
|
|
3855
|
+
harmony: {
|
|
3856
|
+
presets: [
|
|
3857
|
+
["axis", 0.5],
|
|
3858
|
+
["canon", 0.5],
|
|
3859
|
+
],
|
|
3860
|
+
},
|
|
3861
|
+
rhythm: {
|
|
3862
|
+
onsets: {
|
|
3863
|
+
kick: grid("x...x...x...x..."),
|
|
3864
|
+
clap: grid("....x.......x..."),
|
|
3865
|
+
snare: null,
|
|
3866
|
+
hat: null,
|
|
3867
|
+
},
|
|
3868
|
+
},
|
|
3869
|
+
texture: {
|
|
3870
|
+
roles: {
|
|
3871
|
+
...kitRoles("acoustic", ["kick", "clap"]),
|
|
3872
|
+
snare: null,
|
|
3873
|
+
hat: null,
|
|
3874
|
+
bass: maybe("contrabass"),
|
|
3875
|
+
chords: role("acoustic", "banjo:0.5"),
|
|
3876
|
+
lead: role("sing"),
|
|
3877
|
+
counter: maybe("choir"),
|
|
3878
|
+
},
|
|
3879
|
+
},
|
|
3880
|
+
}),
|
|
3881
|
+
card({
|
|
3882
|
+
id: "cajun",
|
|
3883
|
+
summary:
|
|
3884
|
+
"Cajun: diatonic accordion and twin fiddles, two-step (2/4 boom-chick) and 3/4 waltz, I-V alternation in major, triangle on every eighth, high-pitched declamatory vocal",
|
|
3885
|
+
seedSalt: 1928,
|
|
3886
|
+
meter: {
|
|
3887
|
+
signatures: [
|
|
3888
|
+
["2/4", 0.5],
|
|
3889
|
+
["3/4", 0.5],
|
|
3890
|
+
],
|
|
3891
|
+
hypermeter: [[8, 1]],
|
|
3892
|
+
},
|
|
3893
|
+
tempo: { bpm: [100, 170], typical: 136 },
|
|
3894
|
+
groove: { subdivision: 2, swingRatio: [1.1, 1.4] },
|
|
3895
|
+
pitch: { scales: [["major", 1]] },
|
|
3896
|
+
harmony: {
|
|
3897
|
+
chain: {
|
|
3898
|
+
I: [
|
|
3899
|
+
["V7", 3],
|
|
3900
|
+
["IV", 1],
|
|
3901
|
+
],
|
|
3902
|
+
V7: [["I", 3]],
|
|
3903
|
+
IV: [
|
|
3904
|
+
["I", 2],
|
|
3905
|
+
["V7", 1],
|
|
3906
|
+
],
|
|
3907
|
+
},
|
|
3908
|
+
presets: null,
|
|
3909
|
+
sources: { chain: 1 },
|
|
3910
|
+
sevenths: 0,
|
|
3911
|
+
},
|
|
3912
|
+
rhythm: { onsets: { kick: null, snare: null, hat: grid("xx") } },
|
|
3913
|
+
bass: { behaviour: [["root-fifth", 1]] },
|
|
3914
|
+
texture: {
|
|
3915
|
+
roles: {
|
|
3916
|
+
kick: null,
|
|
3917
|
+
snare: null,
|
|
3918
|
+
hat: role("drums"),
|
|
3919
|
+
bass: maybe("contrabass"),
|
|
3920
|
+
chords: role("reeds", "steel:0.5"),
|
|
3921
|
+
lead: role("fiddle", "reeds:0.6"),
|
|
3922
|
+
counter: maybe("fiddle"),
|
|
3923
|
+
},
|
|
3924
|
+
},
|
|
3925
|
+
}),
|
|
3926
|
+
card({
|
|
3927
|
+
id: "zydeco",
|
|
3928
|
+
summary:
|
|
3929
|
+
"zydeco: Creole accordion over a syncopated R&B backbeat, rubboard (frottoir) scraping straight sixteenths, blues-scale riffs, I-IV-V and one-chord vamps",
|
|
3930
|
+
seedSalt: 1955,
|
|
3931
|
+
tempo: { bpm: [110, 160], typical: 132 },
|
|
3932
|
+
groove: { subdivision: 4, swingRatio: [1.1, 1.3] },
|
|
3933
|
+
pitch: {
|
|
3934
|
+
scales: [
|
|
3935
|
+
["mixolydian", 0.5],
|
|
3936
|
+
["major-blues", 0.5],
|
|
3937
|
+
],
|
|
3938
|
+
},
|
|
3939
|
+
harmony: {
|
|
3940
|
+
forms: [[BLUES_FORM, 0.5]],
|
|
3941
|
+
presets: [["mixolydian-rock", 1]],
|
|
3942
|
+
sources: { forms: 1, presets: 1 },
|
|
3943
|
+
sevenths: 0.6,
|
|
3944
|
+
},
|
|
3945
|
+
rhythm: {
|
|
3946
|
+
onsets: {
|
|
3947
|
+
kick: grid("x.....x.x......."),
|
|
3948
|
+
snare: grid("....x.......x..."),
|
|
3949
|
+
shaker: grid("xxxxxxxxxxxxxxxx"),
|
|
3950
|
+
hat: null,
|
|
3951
|
+
},
|
|
3952
|
+
},
|
|
3953
|
+
texture: {
|
|
3954
|
+
roles: {
|
|
3955
|
+
...kitRoles("acoustic", ["kick", "snare"]),
|
|
3956
|
+
hat: null,
|
|
3957
|
+
shaker: role("drums"),
|
|
3958
|
+
bass: role("ebass"),
|
|
3959
|
+
chords: role("reeds", "electric@clean:0.5"),
|
|
3960
|
+
lead: role("reeds", "sing:0.5"),
|
|
3961
|
+
},
|
|
3962
|
+
},
|
|
3963
|
+
}),
|
|
3964
|
+
card({
|
|
3965
|
+
id: "swamp-pop",
|
|
3966
|
+
summary:
|
|
3967
|
+
"swamp pop: slow 12/8 triplet ballad, pounded piano triplets, I-vi-IV-V doo-wop changes, tenor sax break, emotional falsetto-edged vocal",
|
|
3968
|
+
seedSalt: 1958,
|
|
3969
|
+
meter: { signatures: [["12/8", 1]], hypermeter: [[4, 1]] },
|
|
3970
|
+
tempo: { bpm: [56, 80], typical: 66 },
|
|
3971
|
+
groove: { subdivision: 2, swingRatio: [1.9, 2.1] },
|
|
3972
|
+
pitch: { scales: [["major", 1]] },
|
|
3973
|
+
harmony: { presets: [["fifties", 1]], sevenths: 0.2 },
|
|
3974
|
+
rhythm: {
|
|
3975
|
+
onsets: {
|
|
3976
|
+
kick: grid("x...x..."),
|
|
3977
|
+
snare: grid("..x...x."),
|
|
3978
|
+
hat: null,
|
|
3979
|
+
chords: grid("xxxxxxxx"),
|
|
3980
|
+
},
|
|
3981
|
+
},
|
|
3982
|
+
bass: { behaviour: [["arpeggio", 1]] },
|
|
3983
|
+
texture: {
|
|
3984
|
+
roles: {
|
|
3985
|
+
...kitRoles("acoustic", ["kick", "snare"]),
|
|
3986
|
+
hat: null,
|
|
3987
|
+
bass: role("ebass", "contrabass:0.5"),
|
|
3988
|
+
chords: role("piano", "honkytonk:0.5"),
|
|
3989
|
+
lead: role("sing"),
|
|
3990
|
+
counter: maybe("sax"),
|
|
3991
|
+
},
|
|
3992
|
+
},
|
|
3993
|
+
}),
|
|
3994
|
+
card({
|
|
3995
|
+
id: "native-american",
|
|
3996
|
+
summary:
|
|
3997
|
+
"powwow and Native American song: unison big-drum straight pulse with honor-beat accents, terraced descending pentatonic melody on vocables starting high, no chordal harmony",
|
|
3998
|
+
seedSalt: 1880,
|
|
3999
|
+
meter: { signatures: [["4/4", 1]], hypermeter: [[4, 1]] },
|
|
4000
|
+
tempo: { bpm: [90, 150], typical: 120 },
|
|
4001
|
+
groove: { subdivision: 2, swingRatio: [1, 1.1] },
|
|
4002
|
+
pitch: {
|
|
4003
|
+
scales: [
|
|
4004
|
+
["minor-pentatonic", 0.7],
|
|
4005
|
+
["major-pentatonic", 0.3],
|
|
4006
|
+
],
|
|
4007
|
+
},
|
|
4008
|
+
harmony: { model: "none", presets: null, sevenths: 0 },
|
|
4009
|
+
rhythm: {
|
|
4010
|
+
onsets: {
|
|
4011
|
+
kick: grid("x.x.x.x."),
|
|
4012
|
+
snare: null,
|
|
4013
|
+
hat: null,
|
|
4014
|
+
perc: grid("x.x.x.x."),
|
|
4015
|
+
},
|
|
4016
|
+
},
|
|
4017
|
+
melody: {
|
|
4018
|
+
contour: [
|
|
4019
|
+
["terraced", 0.6],
|
|
4020
|
+
["descending", 0.4],
|
|
4021
|
+
],
|
|
4022
|
+
intervals: intervals(2, 4, 1.4, 1),
|
|
4023
|
+
chordToneRate: 0,
|
|
4024
|
+
ambitus: [10, 17],
|
|
4025
|
+
density: [1, 2],
|
|
4026
|
+
},
|
|
4027
|
+
texture: {
|
|
4028
|
+
roles: {
|
|
4029
|
+
...kitRoles("acoustic", ["kick"]),
|
|
4030
|
+
snare: null,
|
|
4031
|
+
hat: null,
|
|
4032
|
+
perc: maybe("framedrum"),
|
|
4033
|
+
chords: null,
|
|
4034
|
+
bass: null,
|
|
4035
|
+
lead: role("sing", "flute:0.3"),
|
|
4036
|
+
},
|
|
4037
|
+
},
|
|
4038
|
+
}),
|
|
4039
|
+
card({
|
|
4040
|
+
id: "inuit-throat",
|
|
4041
|
+
summary:
|
|
4042
|
+
"Inuit katajjaq: two-voice throat-singing game, a short voiced motif on the beat answered by a breathed tonic pulse on every off-beat (hocket), repeated in a fixed cycle, narrow range, no harmony",
|
|
4043
|
+
seedSalt: 1950,
|
|
4044
|
+
meter: { signatures: [["4/4", 1]], hypermeter: [[2, 1]] },
|
|
4045
|
+
tempo: { bpm: [110, 160], typical: 132 },
|
|
4046
|
+
groove: { subdivision: 2, swingRatio: [1, 1] },
|
|
4047
|
+
pitch: {
|
|
4048
|
+
scales: [
|
|
4049
|
+
["minor-pentatonic", 0.6],
|
|
4050
|
+
["major-pentatonic", 0.4],
|
|
4051
|
+
],
|
|
4052
|
+
},
|
|
4053
|
+
harmony: { model: "none", presets: null, sevenths: 0 },
|
|
4054
|
+
rhythm: {
|
|
4055
|
+
// The second singer's pulse fills the gaps between the first's.
|
|
4056
|
+
onsets: { kick: null, snare: null, hat: null, arp: grid(".x.x.x.x") },
|
|
4057
|
+
},
|
|
4058
|
+
melody: {
|
|
4059
|
+
ambitus: [3, 7],
|
|
4060
|
+
intervals: intervals(2, 3, 0.2, 2),
|
|
4061
|
+
repetition: 0.9,
|
|
4062
|
+
density: [1, 1],
|
|
4063
|
+
contour: [
|
|
4064
|
+
["wave", 0.6],
|
|
4065
|
+
["flat", 0.4],
|
|
4066
|
+
],
|
|
4067
|
+
phraseBars: [[1, 1]],
|
|
4068
|
+
},
|
|
4069
|
+
texture: {
|
|
4070
|
+
roles: {
|
|
4071
|
+
kick: null,
|
|
4072
|
+
snare: null,
|
|
4073
|
+
hat: null,
|
|
4074
|
+
chords: null,
|
|
4075
|
+
bass: null,
|
|
4076
|
+
lead: role("sing", "kargyraa:0.5"),
|
|
4077
|
+
arp: role("kargyraa"),
|
|
4078
|
+
},
|
|
4079
|
+
},
|
|
4080
|
+
}),
|
|
4081
|
+
card({
|
|
4082
|
+
id: "sea-shanty",
|
|
4083
|
+
summary:
|
|
4084
|
+
"sea shanty: work-song call and response (shantyman solo, crew chorus), stamped downbeats for hauling, 6/8 or 4/4, plain major and dorian tunes, unaccompanied or concertina",
|
|
4085
|
+
seedSalt: 1850,
|
|
4086
|
+
meter: {
|
|
4087
|
+
signatures: [
|
|
4088
|
+
["6/8", 0.5],
|
|
4089
|
+
["4/4", 0.5],
|
|
4090
|
+
],
|
|
4091
|
+
hypermeter: [[4, 1]],
|
|
4092
|
+
},
|
|
4093
|
+
tempo: { bpm: [80, 120], typical: 100 },
|
|
4094
|
+
groove: { subdivision: 2, swingRatio: [1, 1.5] },
|
|
4095
|
+
pitch: {
|
|
4096
|
+
scales: [
|
|
4097
|
+
["major", 0.5],
|
|
4098
|
+
["dorian", 0.3],
|
|
4099
|
+
["minor", 0.2],
|
|
4100
|
+
],
|
|
4101
|
+
},
|
|
4102
|
+
harmony: {
|
|
4103
|
+
presets: [
|
|
4104
|
+
["fifties", 0.4],
|
|
4105
|
+
["aeolian", 0.3],
|
|
4106
|
+
["mixolydian-rock", 0.3],
|
|
4107
|
+
],
|
|
4108
|
+
sevenths: 0,
|
|
4109
|
+
},
|
|
4110
|
+
rhythm: { onsets: { kick: grid("x......."), snare: null, hat: null } },
|
|
4111
|
+
melody: { repetition: 0.7, density: [1, 2] },
|
|
4112
|
+
texture: {
|
|
4113
|
+
roles: {
|
|
4114
|
+
...kitRoles("acoustic", ["kick"]),
|
|
4115
|
+
snare: null,
|
|
4116
|
+
hat: null,
|
|
4117
|
+
bass: null,
|
|
4118
|
+
chords: maybe("reeds"),
|
|
4119
|
+
lead: role("sing"),
|
|
4120
|
+
counter: role("choir"),
|
|
4121
|
+
},
|
|
4122
|
+
},
|
|
4123
|
+
form: {
|
|
4124
|
+
plans: [[["verse", "chorus", "verse", "chorus", "verse", "chorus"], 1]],
|
|
4125
|
+
archetype: "call-and-response",
|
|
4126
|
+
},
|
|
4127
|
+
}),
|
|
4128
|
+
card({
|
|
4129
|
+
id: "barbershop",
|
|
4130
|
+
summary:
|
|
4131
|
+
"barbershop: unaccompanied four-part close harmony with melody in the lead (second voice), barbershop dominant sevenths around the circle of fifths (III7-VI7-II7-V7-I), ringing tags",
|
|
4132
|
+
seedSalt: 1905,
|
|
4133
|
+
tempo: { bpm: [60, 120], typical: 84 },
|
|
4134
|
+
groove: { subdivision: 2, swingRatio: [1, 1.4] },
|
|
4135
|
+
pitch: { scales: [["major", 1]] },
|
|
4136
|
+
harmony: {
|
|
4137
|
+
chain: {
|
|
4138
|
+
I: [
|
|
4139
|
+
["III7", 2],
|
|
4140
|
+
["VI7", 2],
|
|
4141
|
+
["IV", 1],
|
|
4142
|
+
],
|
|
4143
|
+
III7: [["VI7", 3]],
|
|
4144
|
+
VI7: [["II7", 3]],
|
|
4145
|
+
II7: [["V7", 3]],
|
|
4146
|
+
IV: [
|
|
4147
|
+
["#ivo7", 1],
|
|
4148
|
+
["I", 1],
|
|
4149
|
+
],
|
|
4150
|
+
"#ivo7": [
|
|
4151
|
+
["I", 1],
|
|
4152
|
+
["V7", 1],
|
|
4153
|
+
],
|
|
4154
|
+
V7: [["I", 3]],
|
|
4155
|
+
},
|
|
4156
|
+
presets: null,
|
|
4157
|
+
sources: { chain: 1 },
|
|
4158
|
+
sevenths: 0.8,
|
|
4159
|
+
voicing: { types: [["close", 1]], notes: [4, 4] },
|
|
4160
|
+
cadences: [["V-I", 1]],
|
|
4161
|
+
},
|
|
4162
|
+
rhythm: { onsets: { chords: grid("x...x...") } },
|
|
4163
|
+
bass: { behaviour: [["root-fifth", 1]], onsets: grid("x...x...") },
|
|
4164
|
+
texture: {
|
|
4165
|
+
roles: {
|
|
4166
|
+
kick: null,
|
|
4167
|
+
snare: null,
|
|
4168
|
+
hat: null,
|
|
4169
|
+
chords: role("ooh", "aah:0.6"),
|
|
4170
|
+
bass: role("aah"),
|
|
4171
|
+
lead: role("sing"),
|
|
4172
|
+
},
|
|
4173
|
+
},
|
|
4174
|
+
}),
|
|
4175
|
+
]);
|