Casio CZ Envelopes—Machine Values

Machine Versus Human Values

To really understand envelopes in Casio CZ synthesizers, you have to get the concept of machine values, which are different from human values.

Human Values
Human values are easy to understand. These are the values that we see when we program the LCD of the synthesizer, or when we use an editor, or any time a “friendly” value is needed. Because we’re humans, not robots, and we want to see small decimal numbers in a certain range that our little brains can handle.
Machine Values
Machine values are also easy to understand in contrast to human values. The machine has a computer brain, and it often needs binary or hexadecimal values to do its job. The machine doesn’t get confused by hexadecimal or binary.

Casio uses this distinction between human and machine values all throughout the Casio CZ system exclusive data. The strategy makes sense:

  • What the machine wants to see is different from what we want to see.
  • Both values are stored in the sysex data.
  • There are discrete functions to translate one value into the other.

Envelope data makes use of this distinction between human and machine data. Humans are asked to select from a range of human values. Those values are then mapped to certain machine values, which are then used by the machine.

Human Values In Envelope Data

All of the human values in envelope data range from zero to 99. 99 is the maximum value as recorded in all the Casio documentation, and it is the maximum that can be shown on the LCD of the synthesizer.

I suspect that the number 99 was chosen for the following reasons. First, the numbers needed to be decimal numbers, because the synthesizers were being sold to humans, not robots. Second, if the numbers were three digits long, it would have disrupted the display on the LCD, which has a limited amount of space.

99 cents

And I would say 99 is a pretty good number anyway, especially for anybody who ever used pennies. It reminds me of a trip to the dollar store. As long as you are stuck with a base 10 counting system, it is a pretty good upper limit.

Machine Values In Envelope Data

Binary Decimal Hexadecimal
0000000 0 0x00
1000000 64 0x40
1001000 72 0x48
1111111 127 0x7F

All of the machine values for envelope steps are 7-bit data What this means is that machine values can never be greater than 0x7F. In case you are a little rusty on hexadecimal counting, I have prepared the adjacent table that explains how 7-bit data, 0x7F, and 127 are related.

7-bit data can't be any number greater than 0x7F. That is important to understand when addressing the myth.

How Human Values Are Mapped To Machine Values

sample_human_machine_table.png

Sample table mapping human and machine values

Each human value in the range zero to 99 can be mapped to a machine value in the range 0x00 to 0x7F.

The way that the human values map to the machine values is specified by Casio in their system exclusive specification. They provide both tables and formulas that do this translation.

I found several problems in Casio’s tables and formulas, so I created a new version that is easier to read and understand. Download the new version to see the tables and equations mapping human values to machine values.

Casio CZ Envelopes Index