Master Class top

to MAIN MENU

Back to Section Menu

Software- versus Hardware mixing
Claus Riethmueller
spacer
Read this article for understanding more about the waveplay-devices, the virtual channels, and the limitations of the ISA bus. How much do you ask from your system?

Two types of Virtual Channels

Theoretically the EWS64 has two types of virtual channels (=wave playback device): logical and physical. Each of the wave output devices (8 in default) uses one logical virtual channel. Each application that opens a wave output uses one physical virtual channel (vc).
The EWS64 firmware has implemented 32 vc's and you can select under properties of the synth in control panel how much of them you want to assign to a wave output device (8 in default). However, you can however use up to 32 vc's, even if you don't have enabled all 32 devices. This may happen since a wave output device can be opened by more than one application at the same time. You can try this by double-clicking on a wave-file in the explorer and then double-click on another file while the first one is still playing. The two waveforms are mixed together by the firmware (=hardware mixing) and played together.

With most other soundcards you would get a error msg when clicking on the second file. This also works even if you only assigned one single playback device. So: up to (theoretically) 32 applications can open one device at the same time if no other device is oppend. All together not more than output devices can't be opened more than 32 times at the same time. It's hard to describe but I hope you did get it ...

The way the EWS64 mixes these wave streams together is called 'hardware mixing' and is advertised as one of the features of the card (=the soundcard is mixing the stuff from the devices within the DSP to one output signal). The problem is, that this sounds theoretically very good, even excellent, but it also has some hard limitations.

The alternative is to use only one single device (like you would do with a normal soundcard). As the device is not able to mix different wave streams (it is opened only one single time!), the playing software (CoolEdit Pro, Cubase, Cakewalk, Samplitude, SAW, etc.) needs to perform this task. This is made differently by different software. Normally in memory of the PC or directly on the harddisk (=the software mixes the stuff to one single wave which is played afterwards).

If you compare these two methods you may think (of course!) that the first one is better since it does not use as much CPU power and since it is able to reduce the latency on playback (harddiskmixing takes time).

The ISA bottleneck

The problem that now appears is not the soundcard or the driver. It's the PC itself, or better: it's the ISA-Bus. The data-transfer rate on the ISA-Bus (where you placed your EWS) is limited. If you are using more than one device at the same time and the stuff needs to be mixed within the DSP on the card (hardware mixing) this also means that the wave-data of all tracks you are playing needs to go through the ISA-Bus. If the transfer-rate needs to be higher you are getting timing problems. On most mainboards this
will happen somewhere between 5 or 7 tracks - with some luck you can play 8 tracks (depends on BIOS settings, the chipset, etc.).

When using software mixing (with higher latency of course), this won't appear because only one wave stream needs to go through ISA-Bus to the soundcard. However, if the software performs harddisk mixing (like Cubase and Samplitude for example) the data of the streams goes to the harddisk. So if you have a slower harddisk (or you're using an older ISA controller) you won't be able to play as much tracks as with hardware mixing. If the transferrate is high enough, you will be able to play more tracks at the same time but with a higher latency (only a bit normally).

It will be TerraTec's secret forever I guess why they did invent 32 virtual channels. The original Dream firmware has 8 vc's (and that's even a bit more optimistic than just realistic).

The only solution to solve this problem is (sounds hard...): PCI.

© 1998-1999, Computer ConText, Amsterdam, The Netherlands, except for contributions made by others.

Latest update on page: 08-02-99

!--webbot bot="Timestamp" endspan i-checksum="13908" -->