Yahoo Groups archive

Casio CZ/ VZ/ FZ - Pro Series

Index last updated: 2026-04-28 22:42 UTC

Message

Re: CZ-Emulation...

2008-04-13 by jdcx64

--- In CZsynth@yahoogroups.com, "katzenhans2000" <gzuz55@...> wrote:
> ... I started to create an emulation of a CZ, but its still hard for
> me to create the right waveforms. But thats another forum :-)
> 
> michael

A CZ emulator would be great, CZ lovers are starving for a CZ with knobs!

About the waveform generation, ...from a sin table. For example, when
'Square Wave' is selected:

For parameter 'WAVE'=0 the CZ fetches values linearly from the sin
table. The resulting sound is a pure sin wave (the same as a square
wave with the harmonics filtered out)

For 'WAVE'=99, the CZ still fetches values from the sine wave but it
does it in a special way: it helds the table pointer at the pi/2
position from where it reads the +1 value repeateadly. T/2 seconds
later the table pointer jumps to the -pi/2 position, from where it
keeps reading -1 for another T/2 seconds. The result is a square wave.

For values of 'WAVE' 1 to 98 the table pointer is advanced at a rate
that is probably a weighted sum of the 'WAVE'=0 linear advance and the
'WAVE'=99 pi/2 jumps. Something like: (expressed in C with floats)

advance(t) = ( advance_wave0[t] * (99-'WAVE')/99 ) + 
             ( advance_wave99[t] * 'WAVE'/99 );

Multiplications or floats must be too painful for the CZ's CPU so it
probably does it with table reads, shifts and additions.

Joaquim

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.