As a starting point I have uploaded a set of graphical images that attempt to depict the logical architecture of this instrument. These are not complete and are only a rough sketch of how I think the instrument is organized. It is important to note that the .ds8 bank file format stores bank settings, program settings, and layer settings--but it does not contain any patches or waveform data. The patch data and waveform data is referenced by a full path name to the corresponding .dp8 file for each layer. The .dp8 patch file actually stores the audio multisamples. Synth settings (like filters, envelopes, LFO settings, etc) are stored in both a .dp8 file and within a layer in a .ds8 file. I have observed that when a .dp8 patch is loaded into a layer in a program in a bank the layer receives the .dp8 file's synth settings and stores them in the .ds8 bank file. However, the synth settings may be modified in the layer and saved to the .ds8 thereby overriding the defaults loaded from the .dp8 file, but the .dp8 file itself is not altered.
I've been researching the .ds8 bank file format and have developed a small software application that is able to copy programs within a bank and between banks. I have contacted Cakewalk to see if they would give me permission to release this software to the Project5 user community. It is not complete and it does not interpret the file format within the DS864 files other than to identify a program as one large chunk. It would be great if Cakewalk could help me understand the file format better so I could finish this tool and release it with their blessing as an external patch editor for the DS864.
While experimenting with the DS864 again I suddenly had a thought. Why couldn't the 8 layers within a program be used as a fundamental tone with 7 additional overtones? So I set out to create an Additive synthesis bank. Through some trial and error experimentation and with the help of Sound Forge 7.0 I was able to create a set of .wav files of various frequencies. The wave files contain two seconds of periodic sine waves. Each wave file is named for the frequency it contains. To make things easy on myself I chose to use the 'A' note. Once I had a set of wave files I used the DS864's keymap editor to keymap 7 octaves worth on each layer, but I start each layer on the low-end at the next overtone harmonic. So in Layer 1 I have 27.5Hz mapped across the keyboard. In Layer 2 I have the 1st overtone (2 x 27.5Hz) which is 55Hz. In Layer 3 I have the 2nd overtone (3 x 27.5Hz). And so on up to the 7th overtone in Layer 8. Once the multisamples were laid into the layers I saved each layer as a .dp8 file so they could be quickly loaded into new programs.
With the layers loaded with samples in harmonic overtone series we can now manipulate the relative volumes of the harmonics against each other. The result is an additive synthesis mechanism that lets us create a new single sound and we can do extensive automation control and modulation routings to dynamically morph the sound.
Creating the samples for this experiment took quite some time, so for anyone who wants to experiment with these ideas I have made my sine waves available. Pull them down with this link: Additive.zip. This is a .zip file containing my file hierarchy, wave files, .dp8 files, a single .ds8 bank file, and a .pdf file containing my frequency chart. I have created a few example programs within the bank to demonstrate the techniques. The first program is a square wave where only the first eight odd harmonics 1, 3, 5, 7, 9, 11, 13, and 15 are embedded in the eight layers. The relative levels of these harmonics are set to 1/3, 1/5, 1/7, 1/9, 1/11, 1/13, and 1/15 of the fundamental frequency's level. The resulting waveform exported to a wave file from a P5 sequence using this program looks very much like a square wave. The second program is a sawtooth wave and the third program is a triangle wave. The next several programs experiment with using LFO1 to control pitch or pan of some of the harmonics. The final program also shows how an amplitude envelope generator can be used to vary the harmonic structure over time.
First, load the bank "Grand Piano, Gold.ds8". You see in the program drop-down list (first row) that it contains only one program. Within that one program you can see that it has three layers (or parts) in the second row drop-down. Each layer has a different set of multisamples (select a layer on the second-row dropdown then click on the third row). Each layer's multisamples are keymapped and velocity mapped separately. All three layers are set to the same MIDI input and the same audio output. The result is a single Grand Piano, Gold program with three velocity layers made of lots of mutlisamples. It is not configured as multitimbral and this is the only program in the entire bank.
Second, load the bank "Grand Piano, Silver.ds8". You see in the program drop-down list (first row) that it contains two programs. The first program is the same as the program in the bank"Grand Piano, Gold.ds8" above. However, the second program is different. It contains only two layers.
Third, load the bank "Piano, Bowed.ds8". Now you see that this bank contains three programs (the two above) plus the "Piano, Bowed" program. If you select the "Grand Piano, Gold" program you see what we already covered. Same with the second program. But if you select the 3rd program you'll see that it is made of only one layer.
Fourth, load the bank "Piano, Gold.ds8". Now you see that this bank contains only one program called "Default Program". That program consists of a single layer containing the "Piano, Gold.dp8" patch file that was used in the "Piano, Bowed" patch from the "Piano, Bowed.ds8" bank.
As you continue loading the different .ds8 bank files you see they contain various numbers of programs with various numbers of layers and .dp8 files referenced.
Let's use the included piano .dp8 patches to create our own bank with all the DS864 piano patches loaded as programs within a single bank. In the default installation the piano patches are spread across separate banks; we'll bring them into a single .ds8 bank file.
Just keep repeating these steps to add up to 128 programs with up to 8 layers each. And remember, each layer can be configured to go to any of the 8 audio outputs of the DS864 and respond to any of the MIDI channels being routed to the DS864.