DNEWS #17 - INSTRUCTIONS FOR MIDIPLAYER CZ VERSION By Craig Chamberlain 10/29/88 COPYRIGHT NOTICE The Enhanced Sidplayer Promotional Player, including the MIDI edition, is copyrighted by COMPUTE! Publications, Inc. and is not in the Public Domain. Permission is granted to freely distribute the program, however, provided that it is not modified and not sold. INTRODUCTION The MIDIPLAYER program plays Enhanced Sidplayer songs on any MIDI-capable synthesizer. The Casio CZ version of MIDIPLAYER has special support for the Casio CZ-101, CZ-1000, CZ-2000, CZ-3000, CZ-5000 and CZ-1 synthesizers, including the ability to load patch files. This document explains the differences between the CZ version of MIDIPLAYER and the non-handshaking version for use with all MIDI synthesizers. For complete information on the general features of MIDIPLAYER, please read "SIDNEWS #14 - Instructions for Playing Songs on MIDIPLAYER." For information on how to edit songs to take advantage of all the features of MIDIPLAYER, see "SIDNEWS #15 - Instructions for Creating Songs for MIDIPLAYER." NECESSARY EQUIPMENT In addition to a Casio CZ synthesizer and a Passport, Sequential, Datel, or compatible MIDI interface, you will need at least one MIDI cable. The cable connects MIDI OUT from the interface to MIDI IN on the synthesizer. If you want to use patch files, a second MIDI cable is needed, to connect MIDI OUT on the synthesizer to MIDI IN on the interface. SETUP With all of your equipment turned off, connect the synthesizer and MIDI interface with the MIDI cables, and hook up the audio output of the synthesizer to a stereo or your computer's monitor. Now turn on the synthesizer and the other equipment. When you press the keys on the synthesizer, you should hear notes play. Load the MIDIPLAYER program and LIST it. Change line 30 to select the MIDI interface type as appropriate. Now examine lines 31 through 33: 31 POKE 781,0:REM 0 = PATCH FILE LOADING DISABLED, 32 REM 1 = CZ-101 OR CZ-1000, 3 = CZ-101 OR CZ-1000 WITH CARTRIDGE, 33 REM 5 = CZ-2000 OR CZ-3000 OR CZ-5000 OR CZ-1 If you have a CZ-101 or CZ-1000 without the optional RA-3 RAM cartridge, the POKE value should be 1, and if you do have a cartridge inserted, the value should be 3. If you have a CZ-2000, CZ-3000, CZ-5000, or CZ-1, the POKE value should be 5. (The CZ-1 has a different patch file format than the other CZ synthesizers, but can still load and use patch files created for the other CZ synthesizers.) If you want to disable the loading of patch files, the POKE value should be 0. If the current number is not correct, change the number in the line and re-enter the line, being careful not to change the line length. SYNTHESIZER POKE VALUE CZ-101 or CZ-1000 1 CZ-101 or CZ-1000 with cartridge 3 CZ-2000, CZ-3000, or CZ-5000 5 synthesizer other than CZ 0 patch file loading turned off 0 Finally, look at line 40: 40 SYS 2751,01,02,03:REM DEFAULT CHANNELS FOR VOICES 1, 2, AND 3 The default values of 1, 2, and 3 should work just fine on your CZ synthesizer. MIDIPLAYER will play voices 1, 2, and 3 on channels 1, 2, and 3. However, if you would like to be able to play along on the keyboard while MIDIPLAYER plays a song, change the default channels to 2, 3, and 4. The keyboard plays on channel 1, so this arrangement leaves channel 1 free. Remember that if you have made any changes, you can save the modified version of the player to the disk, so that you don't have to make the same changes every time you run the program. PLAYING A SONG Run the MIDIPLAYER program and make sure that the synthesizer is turned on. If you are using a CZ-2000, CZ-3000, or CZ-5000, press the button labeled MIDI, and then press the VALUE up button once, so that the word Mono appears in the upper left corner of the display. If you are using a CZ-101 or CZ-1000, it is not necessary to press any special buttons. Select a song on the player and load it. You should hear the song playing on the synthesizer. When MIDIPLAYER starts playing a song, it first sends a MIDI message that puts the synthesizer in Mono mode with Omni mode off, so that each voice is assigned its own channel. It then transmits note information over the specified channels. The CZ-2000, CZ-3000, and CZ-5000 ignore the MIDI Mono channel mode command, which is why you have to select the Mono mode manually on those synthesizers. MIDIPLAYER CZ SYNTHESIZER DEMO SONG The COMMODORE.MUS demonstration song from the Enhanced Sidplayer book has been revised to demonstrate how MIDIPLAYER can work with a Casio CZ synthesizer. The song has been edited to use various preset tones and channel changes. If you have a CZ synthesizer, be sure to play the song COMMODORE-CZ. You may get some pretty weird results if you play the song on a different synthesizer. OCTAVE RANGE The Casio CZ synthesizers have a limited octave range and can play notes only from C2 to C7 (where C4 is "middle C"). If the synthesizer receives a Note On event for a pitch below octave 2, it transposes the note up to octave 2 to play it. Similarly, notes above C7 are transposed down to octave 6 before they are played. MONO MODE When MIDIPLAYER is playing in its default Mono mode, each voice can be set to have a different sound. To set up the voices before playing a song on the CZ-101 or CZ-1000, press the button marked MIDI so that the synthesizer display shows the word "MIDI," and press the SOLO button so that the red light above it is on (indicating that Mono mode is on). The display should read "MIDI CH=01,VO=01" with a blinking cursor under the 01 in "CH=01." Press the CURSOR right button so that the cursor moves to the 01 in "VO=01." Voice 1 corresponds to Sidplayer song voice 1 (if the default channels on line 40 of the program are 1, 2, and 3), so choosing a sound (Preset or Internal, 1 through 8 and Select 1 through 8) for VO=01 sets the sound that is heard for the first voice. Next press the VALUE up key so that the display shows "VO=02." Synthesizer voice 2 corresponds to Sidplayer voice 2, so the sound chosen for VO=02 sets the sound for the second voice in the song. Continue the procedure so that you have chosen sounds for the three song voices. Each voice can have a different sound if you like. When you are done setting the sounds, press the SOLO button twice to turn Mono mode off and on again. This resets the synthesizer to start on channel 1, and resets the display to show "MIDI CH=01,VO=01" again. The synthesizer is now ready to play a song using the selected sounds. You can also change the sounds for voices while a song is playing by following the above procedure. This can be a lot of fun. The synthesizer will be somewhat confused by the changes, however, and will not play the correct sounds for the voices until you press the SOLO button twice to reset the Mono mode. Mono mode works similarly on the CZ-2000, CZ-3000, and CZ-5000, except that Mono mode has to be selected manually, and the display is different. You still use the CURSOR and VALUE buttons to change the voice numbers. POLY MODE Some songs for MIDIPLAYER may have been edited to put the synthesizer in Poly mode rather than the default Mono mode. In that case, the notes for all three voices are sent on the same channel, generally channel 1. The voices must all share the same sound, but the polyphonic effect may be more desirable in some situations. On the CZ-101 and CZ-1000, Poly mode is selected instead of Mono mode when the SOLO button is pressed so that the red light is off. Poly mode is the default mode when the synthesizer is turned on. If you play a song intended for Mono mode with the synthesizer set for Poly mode, you will only hear the notes played on channel 1. You can press the MIDI button and then the VALUE up button to listen to the notes played on channels 2 and 3, but you will be able to hear only one voice at a time. The companion document explains how to edit a song so that it automatically selects Poly mode and plays all three voices on channel 1. On the CZ-2000, CZ-3000, and CZ-5000, Poly mode has to be selected manually. The text lines of a song should indicate if the synthesizer should be left in its default Poly mode instead of switching to Mono mode. PATCH FILES FOR THE CZ SYNTHESIZERS The CZ version of MIDIPLAYER has the capability of loading CZ patch files along with music, words, and picture files. A "patch" is a definition of how a voice should sound, consisting of waveform, envelope, and other information for the synthesizer. The player loads a file containing sixteen patches and sends the patches to the synthesizer, which can then use the new sounds when playing a song. This lets a person creating a song for MIDIPLAYER distribute sounds along with the music, so that you can hear the song the exact same way as the person who created it. The player can load patches to redefine the sixteen internal voices or the sixteen cartridge voices (if the optional cartridge is present), or both, on the CZ-101 or CZ-1000. For the CZ-2000, CZ-3000, or CZ-5000, the player can load patches to redefine memory banks A through D. For the CZ-1, the player can load patches to redefine banks E through H. The preset voices on the synthesizers cannot be redefined. Patch files for the synthesizers are indicated by the filename extensions ".CZI," ".CZC," and ".CZ5." NAME VOICES .CZI CZ-101 or CZ-1000 Internal Voices 1-16 CZ-2000 Memory Bank A-1 to A-8 and B-1 to B-8 CZ-3000 Memory Bank A-1 to A-8 and B-1 to B-8 CZ-5000 Memory Bank A-1 to A-8 and B-1 to B-8 CZ-1 Internal Voices E-1 to E-8 and F-1 to F-8 .CZC CZ-101 or CZ-1000 Cartridge Voices 1-16 .CZ5 CZ-2000 Memory Bank C-1 to C-8 and D-1 to D-8 CZ-3000 Memory Bank C-1 to C-8 and D-1 to D-8 CZ-5000 Memory Bank C-1 to C-8 and D-1 to D-8 CZ-1 Internal Voices G-1 to G-8 and H-1 to H-8 For example, let's say that you have set up MIDIPLAYER for CZ-101 or CZ-1000 patch file loading. If the player is to play the song COMMODORE.MUS, and there is also the file COMMODORE.CZI on the disk, the player will load the COMMODORE.CZI file and redefine the sixteen internal voices before loading and playing the music file. If there is a COMMODORE.CZC file as well, and patch file loading for the cartridge has been enabled, the COMMODORE.CZC file will also be loaded and its patches sent to the cartridge. If instead the player was set up for CZ-2000, CZ-3000, or CZ-5000 patch file loading, the program would load the file COMMODORE.CZI to redefine the voices in memory banks A and B if the file existed, and would load the file COMMODORE.CZ5 to redefine the voices in memory banks C and D if the file existed. MIDIPLAYER will not load patch files if patch file loading is turned off. As was explained in the "Setup" section of this document, a POKE value of 1, 3, or 5, depending on the synthesizer, must be used in line 31 to enable patch file loading. The POKE value 0 disables the loading of patch files, even if they exist on the disk. PATCH FILE LOADING ERRORS If there is a problem in loading a patch file, or the player encounters a MIDI error when transmitting the patches to the synthesizer, the program will stop the song loading and print a message saying that there was an error in loading the patch file. If the program doesn't print the error message and just freezes up, you can press the Run/Stop key to cancel the load. Be sure you have the synthesizer turned on before you load a song, especially one with a patch file. The second MIDI cable running from MIDI OUT on the synthesizer to MIDI IN on the interface is also needed in order for patch file loading to work. The PROTECT switch on the back panel of your CZ synthesizer must be in the OFF position in order for the synthesizer to accept new patches. CAUTION ON LOADING PATCH FILES When MIDIPLAYER loads a patch file and redefines the voices, it overwrites the existing voice definitions. If you don't want to lose the existing definitions, either save them in a patch file by using a patch file librarian program, or run the player with the patch file loading turned off. TRANSMIT PROGRAM CHANGE The term "program" also means "tone" or "sound." The Casio CZ-101, for example, has sixteen "preset" tones and sixteen "internal" tones. The tone selected for a voice can be changed during a song. The AUX command values 128 to 255 correspond to program numbers 0 to 127. To make the synthesizer switch to a different tone, you simply have to determine the number for the tone, add 128 to the number to bring it into the range 128 to 255, and use the number in the AUX command. This is similar to using the WAV command to change the waveform on the SID chip. The chart below gives the tone numbers and AUX values for the Casio CZ synthesizers. CZ-101/1000 TONES TONE NUMBERS AUX VALUES Preset 1 to 16 0 to 15 128 to 143 Internal No. 1 to No. 16 32 to 47 160 to 175 Cartridge No. 1 to No. 16 64 to 79 192 to 207 CZ-2000/3000/5000 TONES TONE NUMBERS AUX VALUES Preset A-1 to A-8 0 to 7 128 to 135 Preset B-1 to B-8 8 to 15 136 to 143 Preset C-1 to C-8 16 to 23 144 to 151 Preset D-1 to D-8 24 to 31 152 to 159 Memory Bank A-1 to A-8 32 to 39 160 to 167 Memory Bank B-1 to B-8 40 to 47 168 to 175 Memory Bank C-1 to C-8 48 to 55 176 to 183 Memory Bank D-1 to D-8 56 to 63 184 to 191 CZ-1 TONES TONE NUMBERS AUX VALUES Internal A-1 to A-8 0 to 7 128 to 135 Internal B-1 to B-8 8 to 15 136 to 143 Internal C-1 to C-8 16 to 23 144 to 151 Internal D-1 to D-8 24 to 31 152 to 159 Internal E-1 to E-8 32 to 39 160 to 167 Internal F-1 to F-8 40 to 47 168 to 175 Internal G-1 to G-8 48 to 55 176 to 183 Internal H-1 to H-8 56 to 63 184 to 191 If you are using a Casio CZ-101 or CZ-1000 synthesizer, the following chart should also be very helpful. It lists the program (tone) change AUX command values and tone names for the preset and internal voices. The tones for the internal voices can be redefined, and the names in parentheses are the names for the initial factory-programmed tones. AUX TONE NAME 128 0 Preset 1 Brass Ensemble 1 129 1 Preset 2 Trumpet 130 2 Preset 3 Violin 131 3 Preset 4 String Ensemble 1 132 4 Preset 5 Electric Piano 133 5 Preset 6 Electric Organ 134 6 Preset 7 Flute 135 7 Preset 8 Synth. Bass 136 8 Preset 9 Brass Ensemble 2 137 9 Preset 10 Vibraphone 138 10 Preset 11 Crispy Xylophone 139 11 Preset 12 Synth. Strings 140 12 Preset 13 Fairy Tale 141 13 Preset 14 Accordion 142 14 Preset 15 Whistle 143 15 Preset 16 Percussion 160 32 Internal No. 1 (Fantastic Piano) 161 33 Internal No. 2 (Brass Ensemble 3) 162 34 Internal No. 3 (Synth. Glockenspiel) 163 35 Internal No. 4 (String Ensemble 2) 164 36 Internal No. 5 (Blues Harmonica) 165 37 Internal No. 6 (Xylophone) 166 38 Internal No. 7 (Fantastic Sound 1) 167 39 Internal No. 8 (Fat Bass) 168 40 Internal No. 9 (Funky Clavi.) 169 41 Internal No. 10 (Soft Organ) 170 42 Internal No. 11 (Carillon) 171 43 Internal No. 12 (Southern Wing) 172 44 Internal No. 13 (Synth. String 2) 173 45 Internal No. 14 (Synth. Blocks) 174 46 Internal No. 15 (Fantastic Sound 2) 175 47 Internal No. 16 (Steel Drum 1) SET VOICE CHANNEL The Casio CZ synthesizers support only four channels in Mono mode. In Poly mode, either four or eight notes may be played simultaneously on one channel, depending on the tone (most tones support only four). TRANSMIT CHANNEL MODE When MIDIPLAYER starts playing a song, it first transmits a Channel Mode message on channel 1 to turn off Omni mode, followed by another message to select Mono mode using all available channels. This puts the synthesizer into what is known as channel mode number 4, according to the chart. MODE OMNI POLY/MONO 1 ON POLY 2 ON MONO 3 OFF POLY 4 OFF MONO The Casio CZ synthesizers do not support Omni mode and ignore Omni on/off messages. TRANSMIT PORTAMENTO TIME The Casio CZ synthesizers allow the portamento time to be set to any value in the range 0 to 99. Smaller values for the AUX commands that set the portamento rate give faster rates. SET NOTE ON VELOCITY The Casio CZ synthesizers do not support keyboard velocities, so using the AUX commands to change the velocity value will have no effect on these synthesizers. HOW TO MAKE A CZ PATCH FILE Making a Casio CZ synthesizer patch file for a MIDIPLAYER song is easy. Just take a patch file in the Dr. T patch file format and rename it to have the name of the music file and the appropriate filename extension. The extension indicates which synthesizer tones are to be redefined by the patches in the file, as shown in this chart: NAME VOICES .CZI CZ-101 or CZ-1000 Internal Voices 1-16 CZ-2000 Memory Bank A-1 to A-8 and B-1 to B-8 CZ-3000 Memory Bank A-1 to A-8 and B-1 to B-8 CZ-5000 Memory Bank A-1 to A-8 and B-1 to B-8 CZ-1 Internal Voices E-1 to E-8 and F-1 to F-8 .CZC CZ-101 or CZ-1000 Cartridge Voices 1-16 .CZ5 CZ-2000 Memory Bank C-1 to C-8 and D-1 to D-8 CZ-3000 Memory Bank C-1 to C-8 and D-1 to D-8 CZ-5000 Memory Bank C-1 to C-8 and D-1 to D-8 CZ-1 Internal Voices G-1 to G-8 and H-1 to H-8 Dr. T patch files are 10 block long SEQ files containing sixteen patches. They can be created by using the CZ Patch File Librarian sold by Dr. T, or by using the Public Domain patch file librarian programs that support Dr. T patch files. These programs let you create new patches on your synthesizer and save them on disk, or load patch files from other people and send them to your synthesizer. They also let you move individual patches from one file to another, so you can create one patch file consisting of just the patches you want.