GfABASIC>@:x**66RZZZMCNSPLITIVOICESSP2VPRGNPHYSADRLOGADRREZ OUT_OF_RANGEASP1SP2SP3BTMCSPLIT1SPLIT2SPLIT4SPLIT3SP4NNSPLITCZTCZSLOHI OUT_OF_RANGENUMBERIN_RANGEIVOICESPVPRGSPVPRGABXCDDUN BEGIN_PROGRAMMONOSET CHECK_RANGEProgram CZSPLIT By Jim Pierson-Perry w(c) 1988 Antic Publishing  y8Play up to 4 separate patches at once on the CZ synth 4Each patch gets its own play area on the keyboard  aFF * ! F|F;2initialize split point and patch number arrays rfEGFF EF  EF BFGYFE"Get CZ MIDI channel for sending F(:Enter MIDI base channel (1-13) "FrM!P! Fs ZFF EFBIdentify brand of CZ synth for use in selecting patch programs F#$What is your brand of CZ synth:F "1 = CZ-101/1000F "2 = CZ-3000/5000F " "3 = Other (CZ-230S/CZ-1)FhF(: What is your brand (1, 2, or 3) " FM!! Fb ZFFYFDSet up keyboard areas for patches: patch 1 goes from left end to @split point #1, patch 2 goes from split point #1 to #2, etc. Fa&:Enter # of split points (1-3) " FM!! Ft ZF~FVEG FF< ".Enter MIDI key value (36-96) for split point #""F : FM!@! F LZFF FGYF#(Chose patches for the keyboard areas iHIf cartridge selected as bank and it is not present, the default bank $is the corresponding Preset patch pEG F2(Enter voice selection for keyboard zone "F  JFF(6 "+Bank (Preset=1, Internal=2, Cartridge=3) = "Fc:FM!! F ZF>FF" "Program Number (1-16) = "F:FM!! Fi ZFF-F F  JFF( "Source (Preset=1, Memory=2) = "F:FM!! F TZFFF& "Bank (A=1, B=2, C=3, D=4) = "F:FM!! Fi ZFXFF" "Program Number (1-8) = "F :FM!! Fi ZFFE# F--F FEF " Program # = "F:F|FF E# Fe F E F E F E F0Subroutine to set up mono playing mode for CZ ,! ! FtYF("CZ setup complete - ready to play.Fr82Press PORTMENTO ON/OFF button on CZ to end programF*Real-time MIDI data processing section f|FeGet current MIDI byte Ea F|F 8If it is Portamento button on/off then branch to exit  0JFF-F FTest for note on command n Z JFF2Not a note on - pass it straight through to CZ oE!F -FF F Note on processing section aBGet following MIDI key data byte (tells what note was pressed) uEa F|F BDetermine what keyboard area the note was in and set up for the corresponding patch to sound t RJF E!F-F~ F zJF E!F-F~ F JF E!F-F~ FE!F|F~0Send the note on MIDI key data byte to the CZ E!F&Get the note on velocity data byte Ea F$And send it right back to the CZ eE!FDTest next MIDI byte for command byte or another note on data pair Ea F JF It was another note on event n-F FIt was a new command byte EF-FF F F|FF6Exit gracefully - first clear out the MIDI pipeline ` FEa FDFF*Return Local control to the CZ keyboard E!0FE!tFE!~F&Reset the Portamento on/off button oE!0FE!FE!F"Return CZ to poly playing mode tE!0FE!~FE!F*See if user wants to run program again rF2:)Would you like to start again (N to exit)"F ;@ N;@ nFFF F-F;<Procedure to set up CZ in N+1 separate monophonic voices a(Max # of voices is 4) i+! ! Fp.Mc = base MIDI channel that CZ receives on N = # of voices - 1 @Vprg = array with patch ID program values for the N+1 voices p p<First turn off local keyboard control, all notes will now &come solely from MIDI in to the CZ oE!0FE!tF#E!FSet CZ to Mono mode E!0FE!|FE!F6Set the N+1 patches for MIDI channels Mc thru Mc+N lEG FE!@Fp E! F F 6Clear out the MIDI pipeline before starting to play H FEa F,FF.F+!! FtE# #  F F0+Please enter a number in the correct range.F F.F 2$$bF*L