| Title: | * * Computer Music, MIDI, and Related Topics * * |
| Notice: | Conference has been write-locked. Use new version. |
| Moderator: | DYPSS1::SCHAFER |
| Created: | Thu Feb 20 1986 |
| Last Modified: | Mon Aug 29 1994 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 2852 |
| Total number of notes: | 33157 |
Having just purchased a Casio CZ101, I have a few questions
on programming. Please bear with me on what may seem obvious.
I'm intrigued by the style of sound production and programming in
this instrument.
1.) The documentation states that the components of the
CZ correspond to analog components. The DCA seems simple enough
to parallel. It's the DCW -> VCF that I need clarification. On
an analog synth you have Cutoff, resonance, EG depth, and of course
the EG. Now, the CZ has the EG (eight stage, no less). What I've
been able to come up with is that the Cutoff is programmed into
the 'level' portion of the DEG. Is that right? As far as resonance
and EG depth, well, resonance seems like it comes when you choose
a 'resonanant' wave form in the DCO (or combination thereof) and
EG depth must come simply in the programming of the DEG. Have I
got it right, or is there something I'm missing?
2.) I've studied some of the patches supplied in the
documentation and have had a hard time catching on to the use of
the DCO EG. I can understand setting pitches and pitch movement,
but what do I make of setting, say, a rate of fifty (50) and a level
of zero (0)? It seems that you're moving at a rate of 50 to level
zero - what use is that? Is it performming something to the sound
that I'm not hearing? Wouldn't it be less confusing to leave the
rate at 00 also? Any help on this would be appreciated.
Always learning,
Dan
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 490.1 | fazed again | JON::ROSS | Fri Sep 05 1986 10:25 | 19 | |
1. The only thing I see you confusing is cutoff and EG depth.
You only get cutoff changed by the EG (and the keyboard
tracking.)
The phase distortion technique differs from VCF's in one
important way: with PD, if the EG is "0", the wave is a
sine wave of 'full' amplitude, whereas decreasing the
cutoff of a VCF will result first a sine, but then results
in decreasing amplitude to 0 cutoff well below the input
frequency.
I find it easier to think of the wave produced as 'somewhere'
between a sine, and the one you selected based on the EG level.
Back with reply to 2. in a second
ron
| |||||
| 490.2 | FUDD: "Gimme a twill, baby" | JON::ROSS | Fri Sep 05 1986 10:37 | 10 | |
yup, some rates/levels arent as useful as others. Since in your
example is the first 'segment', it doesnt do much.
You can get trills, vibrato, chiffs, and other wierdness of
transient pitch modulation with that EG with more meaningful
envelopes. For experimentation it's better to keep the
"filter" UN-modulated to focus your ear on pitch change effects.
Ron
| |||||
| 490.3 | Some feedback... | AKOV68::EATON | Fri Sep 05 1986 11:32 | 27 | |
> 1. The only thing I see you confusing is cutoff and EG depth.
> You only get cutoff changed by the EG (and the keyboard
> tracking.)
I thought I said I saw cutoff as a function of the 'level' in
the DEG. Is that different from what you're saying?
> The phase distortion technique differs from VCF's in one
> important way: with PD, if the EG is "0", the wave is a
> sine wave of 'full' amplitude, whereas decreasing the
When you say 'EG is "0"' are you refering to the 'rate' or the
'level'?
> yup, some rates/levels arent as useful as others. Since in your
> example is the first 'segment', it doesnt do much.
My example was a case in which it was the ONLY step in the DCO
EG. Does it still perform any function or is it simply a case where
some programmer may have been editing a sound and forgot to take
out a step that made no effect on the sound?
Thanks for the help so far.
Dan
| |||||
| 490.4 | upandback | JON::ROSS | EbMaj9+5 | Sun Sep 07 1986 10:43 | 13 |
Letsee:
1: Youve got it. Level of EG is "cutoff". Rate is how long it takes
to get there.
2: The example starts at 0 level, right? Then it goes at whatever
rate to 0 level. Exciting or meaningful it aint.
You want to at least go "up" to some level and then back down.
Some voices have a little quick blip on the attack which would
be more like R1:90,L1=50 (gets you "up" there) R2=75,L2=0.
Experiment with the values. Its just important that L1 is non-0.
Try:
| |||||
| 490.5 | messwithit | JON::ROSS | EbMaj9+5 | Sun Sep 07 1986 10:53 | 18 |
more:
The "difference" that I mentioned of DCW and VCF you
probably dont need to worry about now. It only means
that the VCA EG must be used to control volume, where
in some voices a VCF can be used without a VCA following
it. It must be my analog background....
The strange 'segment' were talking about may actually
"do" something on the 101 (I have a 5000). Especially
if you got it as a purchased preset. The way to find
out again is to get the OTHER parameters (DCW,VCA,vibrato,etc)
out of the patch manually so that you can twiddle with
the one in question- pitch modulation. *You* go see/hear
what it does or doesnt do. Then change it till it does/doesnt.
Thats how to learn.
enjoy.
| |||||
| 490.6 | Key follow? | NIMBUS::DAVIS | Mon Sep 08 1986 08:57 | 9 | |
The function that is baffling me at the moment is the "Key follow".
I thought that this would open the DCW or DCA as you go up the
keyboard. But either I don't understand this correctly or the effect
is very subtle. Even with a value of 9 here, I can't hear any noticable
difference. Are my ears shot or have I just not hit the right
combinations yet?
Rob
| |||||
| 490.7 | Get Sleazy with Your CZ | ERLANG::FEHSKENS | Mon Sep 08 1986 15:09 | 18 | |
Key Follow changes the rates of the envelopes. It does not work
like key follow on an analog synth. To make the effect obvious,
set a very slow rate, then hit two keys simultaneously, one at the
low end and one at the high end. At key follow 9 you should hear
an obvious difference in the rates.
Going from 0 to 0 at any rate is a no-op. The default rates set
by the initialize button are 50. That's 'cause 50 is halfway between
0 and 100. I think the initial envelope segment rate defaults to
99. A lot of patches do little or no pitch modulation. An 8 segment
EG for pitch is mild overkill, but it didn't cost them anything.
You can make really bizarre SF noises using heavy pitch (DCO) EG
and ring modulation. Put different envelopes on the two oscillators.
I wish they had put an EG on LFO rate instead.
len.
| |||||
| 490.8 | Sounds good | NIMBUS::DAVIS | Tue Sep 09 1986 09:10 | 16 | |
Len,
Thanks for the info on Key follow. Being the hep analog synth cat
that I am, I figured I knew what key follow meant and didn't read
the manual closely enough.
I agree 100% on your comments about the lack of LFOs. If only they
had included some sort of "looping" action on the EGs instead of
making them one shot only, you could create some real fancy LFO
mod. Oh well, just wishful thinking.
BTW, there hasn't been any action in the CZ patch exchange note
lately. I've finally found some time to play with programming my
beast and I'll try to put a couple of patches in soon. Anybody else
have any interesting sounds to share?
| |||||
| 490.9 | For the midiots amongst us | BAXTA::BOTTOM_DAVID | Wed Nov 19 1986 21:36 | 643 | |
This came today in the net.music.synth...I assume no responsibility
for it's accuracy but it seemd to me to be appropriate to enter
as a reply to this note. Enjoy.....
Newsgroups: net.music.synth
Path: decwrl!hplabs!hao!nbires!seismo!mcvax!ukc!reading!ellis
Subject: Casio CZ MIDI manual
Posted: 17 Nov 86 09:25:29 GMT
Organization: Comp. Sci. Dept., Reading Univ. UK.
Keywords: casio cz
[ Discerning line eaters like Larry Niven ]
-------------------------------------------------------------------------------
----------------- CASIO CZ MIDI GUIDE condensed version ----------------------
-------------------------------------------------------------------------------
---- or: Everything you Never Wanted to Know about MIDI but are going to ------
------------------- Find Out Anyway -------------------------------------------
-------------------------------------------------------------------------------
THIS IS AIMED SPECIFICALLY AT CZ101,CZ1000 and CZ5000 OWNERS.
NOTE: I beleive the data given to me by Casio to be a) correct, and b) public
domain ( since they just give it to you if you are persistent enough.
Please forgive spelling, syntactic, or grammatical errors since I am
trying to condense the manual as I go along...
-------------------------------------------------------------------------------
Right, at long last, I have been able to get a reply out of CASIO UK about the
MIDI standards of the CZ series of synthesizers. For those of you who know
how to play your keyboard by remote control from a computer, this will be of
some interest, since it covers transmission of programming information ( both
to and from the CZ ), setting of the controllers you previously couldn't access
like tone mix level, and other bits besides.
First off, let's recap on the simple stuff. The MIDI is a digital interface to
musical instruments, and relies on serial transmission of data. These data are
usually talked of in terms of bytes, and I shall be using hexadecimal numbers
in this posting.
There are basically two types of bytes sent over MIDI - control bytes and data
bytes. Control bytes are distinguished by having values over 0x80 ( 80 hex,
128 decimal ), and these have valious meanings:
1) NOTE ON
----------
A note on message consists of sending a "NOTE ON" control byte, the note number
you want to turn on, and the velocity at which you want to play the note. The
note on control is 90 plus the channel number. So, for example, if you want to
play note 32 ( = hex 20) at speed 64 (= hex 40), on the midi instrument receiv-
ing on channel two, then you would send:
92 20 40
NOTE ON, channel 2 Note #32 Velocity 64
If you wish to turn two or more notes on at the same time, the control byte
need not be retransmitted. Eg to turn note 35 on as well, you could send
92 20 40 23 40
NOTE ON, ch2 ---32 on-- ---35 on--
These codes can be transmitted both ways on all the CZ 101,1000,5000, but since
they do not detect note velocity, it is always transmitted and recognized as
64 (= 40 hex).
2) NOTE OFF
-----------
Just send a note on message with velocity 0. Eg to turn note 35 off, send
92 23 00
NOTE ON,Ch 2 --35 off--
3) CONTROL CHANGE
-----------------
There are several controls that can be set from MIDI. Just send a "CONTROL CH"
byte , which is B0 plus the channel number, the number of the control that you
wish to change, then the value you wish to set it to. Eg for CZ101 portamento
time, send
B0 05 10
CONTROL, ch 0 --ctrl 5=16--
The controls are:
CZ101/1000
01 Vibrato on/off Send 0 for off, 7F for ON
05 Portamento time Send number 00..63 (0..99)
06 Master tune Send number 00..7F
41 Portamento on/off Send 0 for OFF, 7F for ON
CZ5000
01 Modulation wheel Send number 00..7F
05 Portamento time Send number 00..63
06 Master tune Send number 00..7F
40 Sustain pedal Send 0 for OFF, 7F for ON
41 Portamento on/off Send 0 for OFF, 7F for ON
4) PROGRAM CHANGE
-----------------
This allows you to change between the preset sounds ( and your internal
sounds and cartridges ). Just send C0 plus the channel number, then the
program number. Eg to set CZ101 on channel 1 to Synth Bass:
C1 07
PROGRAM ch 1 Program 7
Note that the preset tones are given numbers :
CZ101/1000
0..0F Preset sounds 1..16
20..2F Internal sounds 1..16
40..4F Cartridge sounds 1..16
CZ5000
00..1F Preset sounds A1,A2,A3....D6,D7,D8
20..3F Internal sounds A1,A2.....D6,D7,D8
5) PITCH BEND CHANGE
--------------------
This is acheived by sending E0 plus the channel number, then two bytes
denoting the new value of pitch bend. The first byte is the most significant,
and the second the least significant. Note also that the lower 6 bits of the
lower byte are not used, and that the central position of the wheel corres-
ponds to the byte sequence 40 00.
HIGHEST 7F 40
HIGHER
CENTER 40 00
LOWER
LOWEST 00 00
So, to bend the instrument on channel two UP by about half its maximum amount,
send
E2 60 00
BEND channel two ---1/2 up--
6) AFTER TOUCH
--------------
Is not supported on the CZ101/1000/5000. Sorry!
7) MODE CHANGE
--------------
This is very similar to the CONTROL CHANGE message, and can be regarded as a
special case.
OMNI ON send E0 + channel, 7D, 00
OMNI OFF send B0 + channel, 7C, 00
POLY ON send B0 + channel, 7F, 00
POLY OFF send B0 + channel, 7E, 00
OMNI mode plays any MIDI data received at the MIDI IN plug on the back of
the machine, regardless of channel. POLY mode is equivalent to the SOLO button
on the front panel. With the CZ101, for instance, POLY OFF ( =SOLO ) allows
the synth to be used as four monophonic synthesizers under remote control.
LOCAL ON send B0 + channel, 7A, 7F
LOCAL OFF send B0 + channel, 7A, 00
Local mode means that the keyboard is "connected" to the sound producing
part of the CZ within the machine itself. With LOCAL ON ( the default setting ),
playing the keyboard both sends note messages out of the MIDI port, and also
makes sounds at the same time. If you want to do wierd things like keyboard
splitting, LOCAL OFF will allow you to see what the keyboard is doing without
the CZ making any sound at all. You could then act on that information and send
the keyboard a command depending on the keys that has nothing to do with them,
eg program change or pitch bend. The possibilities are endless !
SEQUENCER MESSAGES
------------------
The CZ5000 has its own internal sequencer, which can be controlled by:
F8 Clock byte: transmitted 24 times per quarter note ( crotchet )
FA Start: same as pressing the PLAY button on the front panel
FB Continue: continue song where last stopped
FC Stop: stops song play at current position
FD Active sense: basically, a cry of "Is there anybody out there". If no
reply is received within about 1/3 second, it shuts the voice off.
SYSTEM EXCLUSIVE MESSAGES
-------------------------
At last, the really meaty stuff. :-)
These all have the basic form:
F0 machine ID some bytes F7
SYS EX MESSG YES, YOU DO THIS END OF SYS EX
Ok, so not very specific, bu that was deliberate to allow manufacturers to use
all the lovely bells and whistles they put on their machine over the MIDI !
Since these are usually controlled by computer, I have set them out as a
computer/synthesizer dialogue. Note that the computer MUST wait for replies
before proceding, or all will fail !
Here we go, then
1) SET BEND RANGE
-----------------
Computer: F0 44 00 00 70+channel 40 data F7
Eg to set bend range to 8 on channel 4, send
F0 44 00 00 74 40 08 F7
2) KEY TRANSPOSE
----------------
Computer: F0 44 00 00 70+channel 41 data F7
Data is as follows:
Key: G A A# B B# C C# D E E# F F#
Data: 45 44 43 41 41 00 01 02 03 04 05 06
Eg to set key on channel 0 to C#, send
F0 44 00 00 70 41 01 F7
3) TONE MIX
-----------
Computer: F0 44 00 00 70+channel 42 data F7
The data is 00 to turn tone mix off, or 41..49 for mix level 1..9
Eg to set tone mix on channel 0 to 7, send
F0 44 00 00 70 42 47 F7
4) ASK ABOUT PROGRAMMER ( Send request 2 )
-----------------------
Computer: F0 44 00 00 70+channel 19 00
CZ101/1000: F0 44 00 00 70+channel 30
Computer: 70+channel 31
CZ101/1000: data1 data2 F7
Computer: F7
data1 is the program selected ( see PROGRAM CHANGE )
data2 returns the vibrato/portamento on/off setting:
data2 00 10 20 30
Vibrato OFF OFF ON ON
Port'o OFF ON OFF ON
Eg an exchange such as
Computer: F0 44 00 00 70 19 00 "Want data on channel 0"
CZ101: F0 44 00 00 70 30 "Gotcha.. data ready"
Computer: 70 31 "Ok, give it to me"
CZ101: 27 30 F7 "Internal 8, v on, p on"
Computer: F7
REMOTE PROGRAMMING
------------------
The send request 1 and receive request 1 messages.
These dump a lot of data across the MIDI, which is the same for both messages,
except that the data go the other way. The exchanges are:
Send request
Computer: F0 44 00 00 70+channel 10 program
CZ101/1000: F0 44 00 00 70+channel 30
Computer: 70+channel 31
CZ101/1000: <tone data> F7
Computer: F7
Receive request
Computer: F0 44 00 00 70+channel 20 program
CZ101/1000: F0 44 00 00 70+channel 30
Computer: <tone data> F7
Cz101/1000: F7
The program byte is the same as that set by the PROGRAM CHANGE function, with
the addition that you can request the temporary sound area as well ( number is
60 ). This is the area that is used if you have altered a preset and not saved
it into internal memory.
<tone data> is a sequence of 256 bytes containing a LOT of info. Now Casio have
done a lot of funny things with these, like splitting bytes in half and encoding
things in wierd ways so please bear with me.
To keep everything this side of infinite length, I shall adopt the same strategy
as the manual, which is to write data in bytes, although they are transmitted
in half- bytes. For example, me writing a byte as 5F requires you to transmit or
receive as 0F 05 ( wierd, huh ? ). This will obvoiusly save a lot of space.
So, here goes again :-)
There are 25 distinct sections within <tone data>
Sec# Length Symbol Contents
(bytes)
1 1 pflag line select data, octave range
2 1 pds detune up or down
3 2 pdl,pdh detune range
4 1 pvk vibrato wave number
5 3 pvdld,pvdlv vibrato delay time
6 3 pvsd,pvsv vibrato rate
7 3 pvdd,pvdv vibrato depth
8 2 mfw dco1 waveform
9 2 mamd,mamv dca1 key follow
10 2 mwmd,mwmv dcw1 key follow
11 1 pmal end step number of dca1 envelope
12 16 pma dca1 envelope rate/level
13 1 pmwl end step number of dcw1 envelope
14 16 pmw dcw1 envelope rate/level
15 1 pmpl end step number of dco1 envelope
16 16 pmp dco1 envelope rate/level
17 2 sfw dco2 waveform
18 2 samd,samv dca2 key follow
19 2 swmd,swmv dcw2 key follow
20 1 psal end step number of dca2 envelope
21 16 psa dca2 rate/level
22 1 pswl end step number of dcw2 envelope
23 16 psw dcw2 rate/level
24 1 pspl end step number of dco2 envelope
25 16 psp dco2 rate/level
1) PFLAG
Looking at bits,
0000 00 00
Not used^ OCTV LS
OCTV controls octave range: 00=octave 0, 01=+1, 10=-1
LS is the line select: 00=1, 01=2, 10=1+1', 11=1+2'
So, fo Octave +1, line select 1+1', PFLAG=00000110 = 06
2)PDS
For detune +, PDS is 0, for detune - it is 01
3)PDETL,PDETH
Two bytes controlling the depth of the detune.
The first byte is the FINE data.
FINE: 0..15 16..30 31..45 46..60
Byte: 00..0F 11..1F 21..2F 31..3F
The second contains both the octave and note data:
OCT: 0 1 2 3
NOTE: 0..11 0..11 0..11 0..11
Byte: 00..0B 0C..17 18..23 24..2F
4) PVK
This is the vibrato wave number, encoded as follows
WAVE NUMBER: 1 2 3 4
Byte: 08 04 20 02
5) PVDLD,PVDLV
This is the vibrato delay time, transmitted in three bytes.
Delay Bytes Delay Bytes Delay Bytes
25 19 00 19 50 32 00 4B 75 4B 00 DF
26 1A 00 1A 51 33 00 4F 76 4C 00 E7
27 1B 00 1B 52 34 00 53 77 4D 00 EF
28 1C 00 1C 53 35 00 57 78 4E 00 F7
29 1D 00 1D 54 36 00 5B 79 4F 00 FF
30 1E 00 1E 55 37 00 5F 80 50 01 0F
31 1F 00 1F 56 38 00 63 81 51 01 1F
32 20 00 21 57 39 00 67 82 52 01 2F
33 21 00 23 58 3A 00 6B 83 53 01 3F
34 22 00 25 59 3B 00 6F 84 54 01 4F
35 23 00 27 60 3C 00 73 85 55 01 5F
36 24 00 29 61 3D 00 77 86 56 01 6F
37 25 00 2B 62 3E 00 7B 87 67 01 7F
38 26 00 2D 63 3F 00 7F 88 58 01 8F
39 27 00 2F 64 40 00 87 89 59 01 9F
40 28 00 31 65 41 00 8F 90 5A 01 AF
41 29 00 33 66 42 00 97 91 5B 01 BF
42 2A 00 35 67 43 00 9F 92 5C 01 CF
43 2B 00 37 68 44 00 A7 93 5D 01 DF
44 2C 00 39 69 45 00 AF 94 5E 01 EF
45 2D 00 3B 70 46 00 B7 95 5F 01 FF
46 2E 00 3D 71 47 00 BF 96 60 02 1F
47 2F 00 3F 72 48 00 C7 97 61 02 3F
48 30 00 43 73 49 00 CF 98 62 02 5F
49 31 00 47 74 4A 00 D7 99 63 02 7F
For delays in the range 0..31, just transmit 00..1F, 00, 00..1F eg for delay
of 12, send 0C 00 0C. This is convenient since it saves me typing in another
column of boring numbers ;-)
6) PVSD,PVSV
Again, here comes another table for conversions. The first column (0..24) is
omitted since the only difficult thing needed is to add 01 00 20 to each entry
( The first few go 00 00 20, 01 00 40, 02 00 60, ... 06 00 E0, 07 01 00, ..)
Rate Bytes Rate Bytes Rate Bytes
25 19 03 40 50 32 09 E0 75 4B 1C E0
26 1A 03 60 51 33 0A 60 76 4C 1D E0
27 1B 03 80 52 34 0A E0 77 4D 1E E0
28 1C 03 A0 53 35 0B 60 78 4E 1F E0
29 1D 03 C0 54 36 0B E0 79 4F 20 E0
30 1E 03 E0 55 37 0C 60 80 50 23 E0
31 1F 04 00 56 38 0C E0 81 51 25 E0
32 20 04 60 57 39 0D 60 82 52 27 E0
33 21 04 A0 58 3A 0D E0 83 53 29 E0
34 22 04 E0 59 3B 0E 60 84 54 2B E0
35 23 05 20 60 3C 0E E0 85 55 2D E0
36 24 05 60 61 3D 0F 60 86 56 2F E0
37 25 05 A0 62 3E 0F E0 87 57 31 E0
38 26 05 E0 63 3F 10 60 88 58 33 E0
39 27 06 20 64 40 11 E0 89 59 35 E0
40 28 06 60 65 41 12 E0 90 5A 37 E0
41 29 06 A0 66 42 13 E0 91 5B 39 E0
42 2A 06 E0 67 43 14 E0 92 5C 3B E0
43 2B 07 20 68 44 15 E0 93 5D 3D E0
44 2C 07 60 69 45 16 E0 94 5E 3F E0
45 2D 07 A0 70 46 17 E0 95 5F 41 E0
46 2E 07 E0 71 47 18 E0 96 60 47 E0
47 2F 08 20 72 48 19 E0 97 61 4B E0
48 30 08 E0 73 49 1A E0 98 62 4F E0
49 31 09 60 74 4A 1B E0 99 63 53 E0
7) PVDD,PVDV
These are again encoded as three bytes in a most obscure way. Below 32, the
encoding is 00..1F, 00, 01..20 eg for depth 13, send 0D 00 0E.
Depth Bytes Depth Bytes Depth Bytes
25 19 00 1A 50 32 00 4F 75 4B 00 E7
26 1A 00 1B 51 33 00 53 76 4C 00 EF
27 1B 00 1C 52 34 00 57 77 4D 00 F7
28 1C 00 1D 53 35 00 5B 78 4E 00 FF
29 1D 00 1E 54 36 00 5F 79 4F 01 07
30 1E 00 1F 55 37 00 63 80 50 01 1F
31 1F 00 20 56 38 00 67 81 51 01 2F
32 20 00 23 57 39 00 6B 82 52 01 3F
33 21 00 25 58 3A 00 6F 83 53 01 4F
34 22 00 27 59 3B 00 73 84 54 01 5F
35 23 00 29 60 3C 00 77 85 55 01 6F
36 24 00 2B 61 3D 00 7B 86 56 01 7F
37 25 00 2D 62 3E 00 7F 87 57 01 8F
38 26 00 2F 63 3F 00 83 88 58 01 9F
39 27 00 31 64 40 00 8F 89 59 01 AF
40 28 00 33 65 41 00 97 90 5A 01 BF
41 29 00 35 66 42 00 9F 91 5B 01 CF
42 2A 00 37 67 43 00 A7 92 5C 01 DF
43 2B 00 39 68 44 00 AF 93 5D 01 EF
44 2C 00 3B 69 45 00 B7 94 5E 01 FF
45 2D 00 3D 70 46 00 BF 95 5F 02 0F
46 2E 00 3F 71 47 00 C7 96 60 02 3F
47 2F 00 41 72 48 00 CF 97 61 02 5F
48 30 00 47 73 49 00 D7 98 62 02 7F
49 31 00 4B 74 4A 00 DF 99 63 03 00
8) MFW
These two bytes transmit the waveform for DCO1, and also the modulation ie
ring, noise or none.
First byte Second byte
000 000 0 0 00 000 000
First=1 000 0 00
Fisrt=2 001 0 00
First=3 010 0 00
First=4 100 0 00
First=5 101 0 00
First=6 110 0 01
First=7 110 0 10
First=8 110 0 11
Second=1 000 1 0 00
Second=2 001 1 0 00
Second=3 010 1 0 00
Second=4 100 1 0 00
Second=5 101 1 0 00
Second=6 110 1 0 01
Second=7 110 1 0 10
Second=8 110 1 0 11
NO MODULATION 000
RING MODULATION 100
NOISE MODULATION 011
So, for instance, to set first = 4, second= 2, ring modulation, we have
100 001 1 0 00 100 000 = 1000 0110 0010 0000 = 86 20
9) MAMD,MAMV
These two bytes set the DCA1 key follow:
Key follow: 0 1 2 3 4 5 6 7 8 9
1st byte: 00 01 02 03 04 05 06 07 08 09
2nd byte: 00 08 11 1A 24 2F 3A 45 52 5F
10) MWMD, MWMV
These two bytes set the DCW1 key follow
Key follow: 0 1 2 3 4 5 6 7 8 9
1st byte: 00 01 02 03 04 05 06 07 08 09
2nd byte: 00 1F 2C 39 46 53 60 6E 92 FF
11) PMAL
This sets the position of the end step on DCA1. Step 1..8 gives bytes 00..07.
12) PMA
This consists of 8 repetitions of Rate,Level.
Given that you wish to set rate r, the data you need to send is
Byte= 119 x r
-------
99
Conversely, if byte=0, rate=0, if byte=7F, rate=99, otherwise
r=99 x byte
--------- + 1
119
Add 80 hex if the level will be coming down on this step.
The level goes up linearly, with 0 being 00, up to 99 is 7F, so that
Byte= 127 x level
-----------
99
and Level= 99 x byte
--------- + 1
127
except at byte=0 where level=0, and byte=127, where level=99
In all these conversions, fractional parts are ignored, so a result of
byte=24.6987 would be taken as byte=24.
13) PMWL
End step number for DCW1. Same as PMAL
14) PMW
This sets the steps in DCW1, and consists of 8 repetitions of Rate,Level.
The format is similar to PMA, so that you add 80 ( 128 dec ) to the rate if
the level is coming down this step, and that you add 80 to the level if you
wish to set a sustain point. The level data is handled the same as PMA, but
for some strange reason the rate data is encoded differently.
So byte= 119 x level
----------- + 8
99
and level= 99 x (byte-8)
------------- +1
119
except where byte=8, level=0, and where byte=77, level=99
15) PMPL
Another end step setting, this time for DCO1. Same as PMAL and PMWL
16) PMP
Another envelope setting, this time for the DCO1 rates and levels. Again uses a
completely different encoding scheme.
byte= 127 x rate
----------
99
and
rate= 99 x byte
--------- + 1
127
except where byte=00, rate=0, where byte=7F, rate=99
For the level, level data 0..63 translate as bytes 00..3F, and level data
64..99 translate as bytes 44..67.
17) SFW
These two bytes set the waveform for DCO2. They use the same format as MFW
does for DCO1, except that the modulation bits are ignored ( it is best to set
these bits to zero , just in case ).
18) SAMD,SAMV
19) SWMD,SWMV
20) PSAL
21) PSA
22) PSWL
23) PSW
24) PSPL
25) PSP
All the above use the same formats as their counterparts for the first set of
DCO,DCW,DCA, and perform exactly the same functions on the DCA2,DCW2,and DCO2.
This concludes what I hope has been an informative article ( if rather a long
one :-) ).
Thong
[ The views above are my own (except any quotes !) and not anyone elses.. so ]
[ flame me personally, not them ]
+------------------------------------------------------------------------------+
| |
| "Thong" Ellis, Reading University Computer Science VAX "Sage", England |
| |
| "But there aren't any REAL people here at all..." : Roosta |
| |
+------------------------------------------------------------------------------+
| |||||
| 490.10 | A novice question ...?? | RDGE43::DUCE | I bet Bach never had this problem | Mon Nov 24 1986 12:53 | 23 |
OK Guys. I have had my CZ5000 for about six months and I am
trying to master the method of creating sounds, and getting
there slowly. I heard recently on a DX21 the "Sample and
Hold" preset, which I would dearly like to create on the
Casio. I know the method for the creation of sounds on the
Casio is different than the DX, but I had hoped I understood
enough about the "sound" from the DX and the method of
creating on the CZ to accomplish it.
I was wrong.
I am getting nowhere.
Can anybody tell me:-
a) Can it be done on a CZ
b) If so, where do I start
Bear with me if I am asking the obvious!!
Peter.
| |||||
| 490.11 | No, a HARD Question | DRUMS::FEHSKENS | Mon Nov 24 1986 14:28 | 26 | |
First of all, the CZs and DXs produce their sounds by *totally*
different mechanisms. People who argue that the CZs are a "poor
man's DX" simply don't know what they're talking about. This
is not directed at you, but just a general comment. There is
no "real" FM capability in the CZ, and while the DXs may use a timevarying
readout rate from a basic wavetable, they do so in a way completely
different from the CZs.
OK. It's possible that the CZ can reproduce or closely approximate
some DX patches, but it depends on the patch in question. Without
knowing anything about this "Sample and Hold" patch, I couldn't
tell you where to start, and from what you say you don't understand
enough about either the patch's sound or the CZ architecture to
put the two together. Note that even if you did, the answer might
still be "can't be done".
Given that, I'd suggest you start by finding a CZ sound that's at
least vaguely similar to the DX patch you covet, look at its
parameters,and try to alter them to get it closer.
Good luck. Sorry to be so "negative", but you've asked a *very*
difficult question that only a joint CZ/DX expert could answer.
len.
| |||||
| 490.12 | worse than you thought | SAUTER::SAUTER | John Sauter | Mon Nov 24 1986 15:27 | 3 |
re: .11--The DXs don't use a timevarying readout rate from a basic
wavetable.
John Sauter
| |||||
| 490.13 | No way, well...... | GNERIC::ROSS | untitled | Mon Nov 24 1986 15:45 | 28 |
Good point: what is the patch?
I have a CZ5000 too, and sorry, it doesnt have a sample and hold
function. The typical use is to sample noise (or other signal) to
produce a random values at a given (slowish) rate. Then this value
is used to modulate timbre,pitch, or what_have_you.
The only way I see to emulate this (if its a sample/hold into filter)
is to use the sequencer to cycle through different user-defined presets.
You'd dedicate all the definable banks to one voice, but each
would have a different filter cutoff value (tone). The seq. rate
And of course the big problem is that you'd have to sequence the
the entire 'random' phrase instead of it happening while you play.
Hmmm, that means that maybe you could get away with fewer than
all 64 slots having different voices.
Still, it may be a good patch, even tho it takes most of the machine!
If the CZ were velocity sensitive, you could also
put a computer between the kbd midi out and midi in, and have it
modify your note messages with random (velocity) values at a
certain rate...
Get the idea?
ron
| |||||
| 490.14 | Are we talking about waitresses? | JAWS::COTE | Develop Arresting Rock Drummers | Mon Nov 24 1986 16:01 | 6 |
The main characteristic of that patch is it's dependency on the
LFO using the S/H waveform. (As opposed to triangle, square or saw)
The patch itself just kinda bounces around 'randomly'.
Edd
| |||||
| 490.15 | CZ/FM/DCO/EG/LFO city | DRUMS::FEHSKENS | Mon Nov 24 1986 16:19 | 9 | |
John - the book you loaned me strongly implied that the DX family
read out of a sine wavetable at a timevarying rate. Maybe it was
just an analogy to explain FM to the masses.
The CZ has no random/noise waveform on the LFO. Just sine, square
(useful for trills) and saws (up and down). You can get some FM-like
effects by pitch modulating one DCO with its EG and using
ring modulation to modulate the other DCO. The LFO doesn't go high
enough to get into real FM effects.
| |||||
| 490.16 | Please Hold - your call is being sampled... | BARNUM::RHODES | Mon Nov 24 1986 16:43 | 16 | |
Let me reinforce some of the things that have been pointed out. 1. The DX is a wavetable machine in the sense that it has a global sinewave stored in a wavetable that is used for each operator. 2. The DX does have the Sample/Hold (random) LFO waveform. The S/Hold patch on the DX uses this random LFO to change the output level of a modulator in a random fashion, which alters the overall timbre of the sound generated in a random fashion. It sounds kinda like an analog synth with a random voltage generator modulating the VCF. Unless the CZ has some sort of random-somthing-or-other, you can't make it do "Sample and Hold". Hope this helps... Todd. | |||||
| 490.17 | Once a DX, always a DX..... | RDGE43::DUCE | I'm going back to playing the piano! | Tue Nov 25 1986 03:01 | 10 |
Thanks for your help. You confrimed what I thought, if it
were possible it is still way beyond my capabilities! I'll
study the info you left, even if only to understand the CZ
better, but I'll leave option 2 open:-
Buy a DX ...... :-)
Peter
| |||||
| 490.18 | LFO:== Let's Find Our (waitress) | JAWS::COTE | Develop Arresting Rock Drummers | Tue Nov 25 1986 08:17 | 10 |
BTW -
The Sample and Hold patch uses the S/H LFO wave to effect
1 operator only. Amplitude Modulation Sensitivity is the
affected parameter...
LFO Wave - S/H
Speed 34
Sync nah....
Edd
| |||||
| 490.19 | you can sort of! | GNERIC::ROSS | untitled | Tue Nov 25 1986 08:53 | 12 |
You CAN get a pseudo-sample/hold effect on the CZ
if you *must* have it.
Some restrictions, but it should be good enuf for
an effect.
See note 490.13
Scheme, dont give up.
ron
| |||||
| 490.20 | Reverb in Brass Patch | 4TRACK::LAQUERRE | Tue Sep 29 1987 12:16 | 20 | |
I've got a CZ-1000 programming question. One of the presets you get
with the CZ-1000 is the familiar brass patch--on my keyboard it's
Internal No.2. The nicest thing about that patch is the reverb
sound when you let off the keys.
My problem is I can't for the life of me figure out what parameters
are causing that reverb affect. I'd like to add some reverb qualities
to some other patches, but first I've got to identify which parameter
creates that sound. To make it a little easier, the brass patch
I'm talking about uses only one line (1+1'). Obviously, the reverb
sound is coming from one of the settings in line 1.
But after analyzing and comparing those settings with other patches,
I can't seem to find the which rates and level settings are causing
the reverb when I lift off the keys.
Any ideas?
Peter
| |||||
| 490.21 | SWAG | JAWS::COTE | Special Delivery for Hoops McCann... | Tue Sep 29 1987 12:23 | 5 |
Does the CZ use any permutation of the standard ADSR envelope?
'Reverb' can be added by using a slower release rate...
Edd
| |||||
| 490.22 | SWAG? | AKOV68::EATOND | The Mike Mongeon Band: 10/9, Holden | Tue Sep 29 1987 12:51 | 8 |
RE < Note 490.20 > Edd's got the idea. Reverb can be simulated by causing the filter EG to close earlier than the Amplifier EG. This is explained in a programming example in one of the books you get with the CZ (it is even talking about modifying a brass patch). Dan | |||||
| 490.23 | It works that way | DYO780::SCHAFER | Dragons is *so* stupid ... | Tue Sep 29 1987 13:11 | 12 |
RE: .22 No swag, just fact. 8-) That's a standard on most analog units that have seperate filter and amp envelopes. Been doing the same thing on my Xa for years. Another cute trick to make a non-velocity unit sound touch sensitive is to shut filter attack down to 0 for a given patch, then adjust amp attack (of ADSR, of course). Try around 10-15% of wide open. Should give you a pretty convincing percussive hit. 8^) | |||||
| 490.24 | Hozabout posting it? | ECADSR::SHERMAN | Sure... blame the *computer* | Tue Sep 29 1987 14:18 | 5 |
How about posting the patch? We can compare it with the CZ-101
patch (assuming there's enough similarity and that the CZ-101 factory
preset doesn't have the reverb...)
Steve
| |||||
| 490.25 | Love Those CZ EGs | DRUMS::FEHSKENS | Wed Sep 30 1987 15:13 | 39 | |
You want to look at the rate parameter for the envelope stage(s)
after the SUStain stage. Note that just closing the filter down
faster than the amplitude (DCA) envelope will not result in "reverb" -
the decay times need to be long enough to be perceived as reverb,
probably greater than .1 second, out to as long as 2 seconds. A
2 second decay though will probably be useless, because neighboring
(in time) tones will "overlap". You can hold the filter envelope
constant (on the CZs, that's the waveform envelope) after SUS
and get a usable reverb, but you will get a more realistic effect
by causing the high frequencies to decay faster (as Dan suggested,
by having the filter envelope decay faster than the amplitude
envelope).
For those not familiar with CZ envelopes, they are 8 stage, with
each stage having a rate and level parameter. Rates and levels
range over the values 0..99. Two of the stages can be tagged
as SUS(tain) and END. On a NOTE-ON, the envelopes do their rate/
level thing until they get to the SUS(tain) stage, at which level
they remain until NOTE-OFF at which point they proceed through the
rest of the stages until they get to END. The level for END is
always forced to be zero (you can't set it to anything else). If
a NOTE-OFF comes in before you reach the SUS(tain) level, the EG
just jumps to the stage after SUS(tain). These EGs allow you to
define arbitrarily (well, within 8 stages) complex Attack, Decay
and Release shapes (using traditional ADSR terminology).
The low rate values correspond to very long times - I once clocked
a CZ EG at over 90 seconds, and that wasn't the longest it was capable
of!
Also, the CZs allow you to apply envelopes to oscillator pitch (the
level is pitch above the base pitch), oscillator waveform (0 ->
sine wave, 99 -> no "smoothing" of basic waveform; you get to pick
from 34 different waveforms for each oscillator, not all of which
are usefully distinguishable) and amplitude.
len.
| |||||
| 490.26 | CZ Mono mode program | MUNCSS::BURKE | Mon Jul 11 1988 11:52 | 20 | |
re: CZ's and Atari-ST's
I contacted Casio (UK) last year, and they sent me a fairly
detailed MIDI spec. From this, I was able to get some things going
without much hassle. However, who wants to mess about, when you
can buy cheap sequencers/notators ?
However, I did write a program which saves LOTS of hassle when
manipulating a CZ from an Atari. As you may know, setting up the
CZ to act as a multi-timbral expander (ie. MONO mode) is untidy
(ie. cable-swapping, button-bashing, etc). So; from the MIDI spec
(in particular, the CZ sys-exclusive formats), I put this program
together with the function of assigning different (MONO) voices
to particular channels. It means that you can set up your CZ's voices
(8 on my CZ-3000) without getting up from your seat - mouse only
required. It's fully GEM'd, so it's easy to use. If anybody wants
a copy, then let me know. [It's available in some PD Librarys under
the name - CZMONO; written in Modula-2].
Jim Burke (a Scotsman in Munich)
so it's easy to use.
| |||||
| 490.27 | On the Cheapo ! | WARMTH::KENT | Mon Jul 11 1988 12:10 | 8 | |
I'me afraid I gave up using my CZ in multi mode some time ago. I
would however be interested in a PD patch librarian for Atari/Cz1000.
Any clues anyone?
Paul.
| |||||