back to buchty.net
Section Ensoniq
back to Ensoniq heaven

 
The complete truth about "hidden" waveforms 
Trying to reach me?
We all know that there are so called "hidden" waveforms on the ESQ-1, some sound banks make use of them (at least the ones offered by OS V3.5). But
does the SQ80 have such waveforms also?
Sad but true... These days one really calls for spam when publishing an email address on a website. But what the heck.

rainer@buchty.net

If you expect an answer please send plain text emails. HTML-formatted mails will be dumped automatically.


 
Demystification 

Yes, it has. As you might know (if not, have a look at page 202 of your manual :) the waveform can range between 0 and 255 - normally, the user can access only 0 to 74 (SAW to DRUMS5). Each of these is a "virtual" waveform made up of 16 multisamples built from zones, this zone entry points to a waveform parameter set (raw wave, coarse & fine tune plus an additional parameter).
 

How to access

Normally, we can't access waveforms above 74 - but by editing program dumps we can. If you want to experiment yourself, the oscillator waveforms are stored at positions 0x56, 0x60 and 0x6a of an SQ80 toolkit's program dump (or at these locations plus P times 102 if you want to edit bank dump files, P is the program number ranging from 0 to 39). The OS is prepared for these unusual waves since it lists them as WAV075 to WAV255. But what does happen internally?
 

Tech Talk  (referring to OS Version 1.8)

Looking at the OS sources we know that the wave number is multiplied by 16 and taken as an offset to the multisample table base (pointing to the appropriate waveform - read: multisample), the played note (MIDI key value) is divided by 8 to get the referring offset to the respective raw sample pointer (multisample zone) - this pointer now is multiplied by 4 and taken as an offset to the raw sample parameter base. (Confused now? Read again slowly }:-)

Now, what a "hidden" waveform really does is just pointing somewhere "behind" the multisample table accessing the whole area between $1000 and $1fff of ROMLOW as multisample table (instead of $1000 to $14af). These values are taken as an offset for the raw sample parameter table at $14b0: If the addressed raw wave is between 0 and 150 just the ordinary waves ($14b0 to $170b) with their parameters are accessed, between 150 and 255 we point somewhere "behind" that table (up to $18af) into other tables or even menu routines which results in wrong wave offsets (accessing wrong pages), incorrect wave sizes and weird playback frequencies.

From this it´s clear that these hidden waveforms might sound different on diverse OS releases as that tables and code behind the wave might not be the same on the various OS revisions.
 

So what does it sound like?

Mostly, these hidden waveforms are quite unusable since the waveform changes drastically from one sample zone (8 keys) to another. But if you stay within a zone you can get very athmospheric, dense and noisy sounds - sometimes you hear the waves you already know but somewhat distorted, crackling or with a underlying hiss. If you are composing "ambient" music such as Future Sound of London (just to name an example I like very much) you might find these waveforms useful (especially when playing melodies you get some sort of rhythmic "wave sequencing" due to jumping between very different waves).
 

What about expanding waveforms?

Looking at the OS that´s an easy task: We just need to point to different memory locations holding multisample zones and raw wave parameters. Unfortunately, there´s not much space left in the OSROMs so we need to do this in an extra memory area, easiest would be a special cartridge, more sophisticated is a ROM expansion done by fully decoding the memory area between $6000 and $6fff where the peripherals (DOC, DUART, FDC, Mapper and DAC) reside.