I’ve done some surface-level research into toy Casio keyboards. (With apologies for plugging my own music, the ending to my track “Trickster Deity” is an imitation of the Casio VL-Tone drawing from these investigations, but it’s not meant to be an exact emulation.)
For these super-super cheap keyboards, 95% of the sound is static wavetable synthesis with vibrato and an ADSR envelope. Once you have a single-cycle waveform, you’ve basically emulated the whole thing. I like to make rich single-cycle waveforms without actually using a wavetable buffer by using 8 partials of additive synthesis, randomly typing in amplitudes and phases, and then running it through a wavefolder of some kind to get a bunch of upper harmonics.
When emulating an old hardware synthesizer it’s often useful to track down the owner’s manual, and the service manual if there is one. I was able to find both in this case. The synthesis behavior is locked up in a uC, which isn’t too helpful, but the service manual has a few useful diagrams. Here is the percussion:
This suggests that the percussion envelopes might have some weird stairstepping/quantization going on.
Here is the whole schematic:
The waveform to the right is put into an envelope follower. Its envelope is smoothed and then multiplied by a distorted, 1-bit version of itself, probably because the actual output from the DAC had really bad stairstepping. I don’t think it’s super useful to emulate this process, just use an ordinary ADSR envelope, but it does tell us that the single-cycle waveforms in question have to be 1-bit.
A simple way to simulate reduced sample rate would be lowpass filter at 8 kHz (antialiasing filter) → sample-and-hold at 16 kHz → lowpass filter again at 8 kHz (reconstruction filter). That said, I couldn’t find sample rate info in the service manual, I’d have to look at some audio samples to see if there’s detectable alias. (It’s also possible the uC is bitbanging the oscillators and there isn’t a real sample rate to speak of.)
Speaker cabinet emulation I’d tune by ear with an RHPF, a few parallel comb filters, a bunch of random peaking filters for “box tone,” and some saturation distortion sandwiched between those stages.