The music was created from the Zel code below. It's a straightforward copy of a guitar arrangement I have. The example illustrates the use of groups of tracks to funnel multiple notes. Notes destined for track-group top are copied to both the piano and strings tracks. The macro dist does the actual distribution
title [J.S. Bach: Air on the GM string]
include gm.zel
key D meter 4/4 duration /2 tempo=37
'===========================TRACK SET UP============================
'NOTES ALLOCATED TO THE top TRACK-GROUP ARE FUNNELED INTO
'BOTH THE strings AND THE piano TRACK
track [ all [[top [strings piano ] ] bass ] ]
'SET UP THE TRACK MIDI CHANNEL AND OCTAVE AND SEND GM PATCHES
strings $$1 @@5 stringEnsemble2
piano $$3 @@5 acousticGrandPiano sustain=100
bass $$2 @@3 acousticBass
'NOW SWITCH TO TRACK GROUP "all"
all
'ALTERNATE THE DISTRIBUTION INTO top (WHICH IS PIANO/STRINGS) and bass:
'THE dist MACR0 TAKES 2 ARGUMENTS AT A TIME ?1 FOR PIANO/STRINGS and ?2 FOR BASS
'THE |^ REMOVES ACCIDENTALS. WE DO 8 QUARTER NOTES AT A TIME
set dist { ( ?1 |^ )( ?2 |^ ) 8 }
set p1 {~aDEea/bCDEGFE} 'BUT CHANGE ON SECOND PASS
'============== PIANO/STRINGS ================= BASS ==============
[{dist,
F8a1D, ~DD@C@CbBAa,
bD ~B/GF//ED/CD C2ae4 b// a7// , ~gGG#gaaag^1,
A4+/ ~F/C^bED#AG, ~fFeEd#DbB,
G4+/b~E/baDCGF, ~eE/DEFGEC1CaA,
aDF3 3 EG#/ A/ Df d/g#D// E// F/ F/b E/ E/ D/, ~DD@C@Cbb/AG1E,
ea/C b/ b//f2 C// D/ abD eg#C/ b/ a4e, p1 set p1 {~aDEeC4} } ]2~
[{dist, C2+/a ~D//CbCa/ A3 / b/ C/D# E b/ C^ , ~aAG^gfFEe,
b B.a A/ G/D# F/ G2+//E ~F//ED^C/b, ~d#DDbeED^d,
a#/ec b/d C.e/ f/ g/ f/D E.g/b1@
e F/D G2C/eb@ b/d a#/c b/ FCa@, ~CeGba#bCa,
'HERE, THE THREE THREADS IN [] CONTEXTS OCCUR AT THE SAME TIME:
[~E/DCbCD//ED/Cb4] [~Fbba#fba^ ]
[~b@e/dg1f/ed ], ~bEGa#bBA^a,
[~D5/F/EDB6/A/G#] [~b2fg#1ed~eb]
[~eba/g#a1 bg ~e/fgab1], ~g#GFfeEDd,
[~F//EA/a1b.C//DC.b/a4] [~c2d1ea@a@]
[1 ~efg#a.d/g^1e] , ~CCDEaa/DCDEC,
[~D3F/EE3G/F] [ 2 ~gg@g#@ga@ ]
[ a b/d4 C/ b/g C#/ D2b C/g# b/ C/a D#/ C2E ] , ~daDgg#DDa,
[ ~F3A/GG4]
[ 1 D#/a#f2 C/ D/b E/ F3/D1 be / ~D/Ebebge3/], ~a#A#BbeEDd,
[ ~a5/C/EGGEF5/G//A ] [~a/@ce1a@cddc^C^ ]
[ 1 ~eFedd@ c^d3a c ], ~CCaCDdC^C,
[ ~D5/F/AC^@C@AB2D ] [ ~b@efa@g3d ]
[ 1 gb f2a g4d1 ] , ~bgaaggdF,
[ ~C#/EG2b1aE/F//GG/F1E/ ] [ ~c#/eg2b1@ca@ag ]
[ / b/@ b/e g/ E2 0 ~b/agfeDCba1 gb ] , ~EedDCaDg,
[ ~D//Cb1C/D1C///DCDCD// D4] [ ~a@g e2a@ d4 ]
[ a2f ~g///agagfg1 D4fa@d@ ], ~agaa a4d } ]2~