'Go to the Zel home page: http://www.zelsoftware.com
'This is just a modification of the blujam.zel file with different chords
'and an additional rhythm part. It ended up in a folk-rock idiom
'which was not entirely what I had in mind originally :-) ...Andrew
include gm.zel include drum.zel
'GENERATES A VIRTUALLY INFINITE NUMBER OF VARIATIONS
'=====================INSTRUCTIONS:========================
'ZEL CREATES ALL THE MELODIES FOR YOU. ALL YOU DO IS
'PUT DIFFERENT NUMBERS IN THE MACROS BELOW.
'ZEROS WILL CREATE RANDOM TUNES.
set [bassTheme {{thread,14,26,3,4}}
theme1 {{thread,34,37,450,984}}
theme2 {{thread,3,37,45,49}}
rhythm {{thread,5,5,5,5}}]
'==========================================================
title [reel34] author [Andrew MacLean]
key=C meter 4/8 tempo=60 duration /3 |2 restart time intro
track [ bass Fiddle Squeeze ]
'====================== THE GENERATOR: =====================
'?1 IS THE TRANSPOSE, ?2 IS THE REPEAT COUNT, ?3 IS THE SEED:-
set play { ?1 seed ?3 (( x
!+10 M0+{xa} {q}{xb} {q}{xc} {q}{xa} {q}{xb} {q}{xc} )?2~ )2~ }
'THE CHORD PROGRESSION, ?1,?2,?3,?4 ARE SEEDS YOU SUPPLY:
set thread { {play, ^Cmaj,4,?1, ^amin,2,?2, ^Dmin,2,?3, ^gdom7,1,?4,
^Cmaj,1,?4, ^Gdom7,1,?4, ^Cmaj,1,?4} }
'========================== DRUMS ==========================
'FROM drum.zel:
intro 12 {BluesGenA,1 {busy,2},1,3,6,1,1,3,3} end
'========================== SETUP ==========================
'RHYTHMIC VARIATIONS:
set [ x1 { set [ xa {1} xb {1} xc {1} ] }
x2 { set [ xa {2} xb {0} xc {1} ] }
x3 { set [ xa {3} xb {0} xc {0} ] } ]
'MELODIC VARIATIONS:
set [ q1 {M1+} q2 {m1+} q3 {m1-}
q4 {M1-} q5 {M0+} q6 {m0+} q7 {t1+} q8 {t1-} q9 {T1+} q10 {T1-} ]
pick q [ q1 q2 q3 q4 q5 q6 q7 2 q8 2 ]
'MODEs:
mode maj [ C E G ]
mode min [ C E& G ]
mode dom7 [C E G B&]
'========================== BASS ===========================
|1 bass $$3 @@3 acousticBass !!90 accent 20
'FAVOR THE x2 AND x3 TIMING IN THE BASS:
pick x [ x2 x3 ] 12 time start [{bassTheme}]3~ ^C M0=6
'======================== SOLOS ===========================
Fiddle $$4 @@6 !!80 viola pan =40
Squeeze $$6 @@6 !!90 accordian ><40 pan =80
'RHYTHM VARIATION:
pick x [ x1 x2 x3 ]
Fiddle start theme1 start |+25 theme2 [@-1 CE@6G@]
Squeeze start |+13 theme2 start |+25 theme1 [@-1 C6EGE@]
'======================= RHYTHM ==========================
'IN THE RHYTHM GENERATOR WE NEED TO GENERATE CHORDS INSTEAD OF NOTES
'USED TO MAKE THE RHYTHM A BIT SNAPPIER (CHORD QUALIFIER "$" TURNS CHORD OFF)
set [ ON {} OFF {$}] pick OO [ ON 2 OFF]
'THIS IS A WAY TO PICK FROM A SET OF NOTES IN THE MODE
set [ q11 {m2+} q12 {m2-} q13 {m3+}
q14 {m3-} q15 {m4+} q16 {m4-}
q17 {m5+} q18 {m5-} empty {} ]
pick y [ q2 q3 q6 q11 q12 q13 q14 q16 empty 5 ]
pick q [ q1 q2 q3 q4 q5 q6 ]
'mn WILL GENERATE A CHORD OF ZERO TO FIVE NOTES FROM THE NOTES in "y":
set mn {[{y}]5}
'INCREASING THE DURATION FOR THIS GENERATOR HALVES THE NUMBER OF NOTES
duration 2/3
set play { ?1 (( seed ?3 x
*{xa} M0=mn OO {q}*{xb}mn OO {q}*{xc}{q}mn x OO {q}*{xa}mn OO {q}*{xb}mn OO {q}*{xc}mn )?2~ )1~ }
track strings $$8 @@5 intro jazzGuitar [@-1 ~cgeCGEC@] !!-10 start [rhythm]3