ASIO Drivers with SCS internal mixer
-
- Posts: 5
- Joined: Sun Mar 01, 2009 12:48 am
ASIO Drivers with SCS internal mixer
I once read that ASIO drivers were the best to use when triggering files on an external sound card. I'm having problems with stuttering audio (machine gun effect) and although it is recommended to disable the scs internal mixer, that also disables the use of the ASIO drivers. Is this normal? Should I try using other drivers? Current set-up involves using an Edirol sound card (FA 101) with firewire and a quality laptop (Toshiba) using xp. The latest version of SCS I was having problems with was 10.3.1.
Please advise
Please advise
-
- Site Admin
- Posts: 3632
- Joined: Sun Jul 24, 2005 8:58 am
- Location: Brisbane, Queensland, Australia. TZ:GMT+10
- Contact:
Re: ASIO Drivers with SCS internal mixer
The stuttering audio is caused by buffer underrun, so you could try increasing the pre-buffer and playback buffer sizes. When using the internal mixer the defaults are 200ms, so you could try increasing these settings to, say, 500ms. The disadvantage is that changes to level and pan are applied pre-mixer, so these can get delayed by the length of the playback buffer (ie delayed by up to 1/2 second if you have 500ms buffers).
When NOT using the internal mixer the level and pan changes are applied instantly so are not affected by the playback buffer size, which is why SCS uses a default buffer size of 5000ms (5 seconds) when not using the internal mixer.
The internal mixer was added in SCS 10 for a number of reasons, and one of these was so that ASIO drivers could be supported. When using ASIO, each ASIO output is a mono channel, and stereo and multi-channel audio files are played to multiple adjacent ASIO outputs by 'joining' as many channels as required. Using the facilities of the BASS audio library (which is the audio library used in SCS), outputs to ASIO channels are effectively 'pulled' from sources, whereas outputs to WDM channels are 'pushed'. The difference is significant if you want to play two or more audio files simultaneously to specific outputs. With the WDM 'push' model, SCS can play multiple files simultaneously to, say, your FOH stereo outputs, and the WDM drivers will mix the audio from these files. With the ASIO 'pull' model, every few milliseconds SCS is requested to supply audio for selected channels, such as your FOH stereo pair. The ASIO model doesn't care where the audio comes from - whether it is from one file or 20 files, or is entirely generated in memory, etc. So if the audio is to come from more than one file then SCS itself has to mix the audio before presenting it on demand to the ASIO driver. The easiest way to implement this mixing was to make use of the BASS Mixer, so in SCS 10 I added BASSASIO and BASSMix. BASSMix is what I have referred to as the 'SCS Internal Mixer', although technically it is the BASS Mixer.
Due to the buffer underrun problems that several users reported which was caused by having such a small playback buffer size, I later provided the option to NOT use the internal mixer, but sadly that also means the mixing audio for the ASIO 'pull' model cannot be supported, unless I write my own mixing functionality into the ASIO 'pull' procedure.
Could you try my suggestion of increasing the buffer sizes to 500ms (1/2 second) and checking (a) if this fixes the stuttering, and (b) if level and pan change response times are acceptable? I suggest you close and restart SCS after changing the buffer sizes to make sure the cues are opened using the new buffer sizes. These changes, of course, require that you DO use the internal mixer, and preferably also use ASIO outputs. Check also that the response time in stopping a cue is acceptable.
Please let me know how you get on. If you cannot get a satisfactory result then your best plan at the moment will be to NOT use the internal mixer, and use the WDM outputs. I'm confident this will fix the stuttering audio (if you also use the default buffer sizes).
When NOT using the internal mixer the level and pan changes are applied instantly so are not affected by the playback buffer size, which is why SCS uses a default buffer size of 5000ms (5 seconds) when not using the internal mixer.
The internal mixer was added in SCS 10 for a number of reasons, and one of these was so that ASIO drivers could be supported. When using ASIO, each ASIO output is a mono channel, and stereo and multi-channel audio files are played to multiple adjacent ASIO outputs by 'joining' as many channels as required. Using the facilities of the BASS audio library (which is the audio library used in SCS), outputs to ASIO channels are effectively 'pulled' from sources, whereas outputs to WDM channels are 'pushed'. The difference is significant if you want to play two or more audio files simultaneously to specific outputs. With the WDM 'push' model, SCS can play multiple files simultaneously to, say, your FOH stereo outputs, and the WDM drivers will mix the audio from these files. With the ASIO 'pull' model, every few milliseconds SCS is requested to supply audio for selected channels, such as your FOH stereo pair. The ASIO model doesn't care where the audio comes from - whether it is from one file or 20 files, or is entirely generated in memory, etc. So if the audio is to come from more than one file then SCS itself has to mix the audio before presenting it on demand to the ASIO driver. The easiest way to implement this mixing was to make use of the BASS Mixer, so in SCS 10 I added BASSASIO and BASSMix. BASSMix is what I have referred to as the 'SCS Internal Mixer', although technically it is the BASS Mixer.
Due to the buffer underrun problems that several users reported which was caused by having such a small playback buffer size, I later provided the option to NOT use the internal mixer, but sadly that also means the mixing audio for the ASIO 'pull' model cannot be supported, unless I write my own mixing functionality into the ASIO 'pull' procedure.
Could you try my suggestion of increasing the buffer sizes to 500ms (1/2 second) and checking (a) if this fixes the stuttering, and (b) if level and pan change response times are acceptable? I suggest you close and restart SCS after changing the buffer sizes to make sure the cues are opened using the new buffer sizes. These changes, of course, require that you DO use the internal mixer, and preferably also use ASIO outputs. Check also that the response time in stopping a cue is acceptable.
Please let me know how you get on. If you cannot get a satisfactory result then your best plan at the moment will be to NOT use the internal mixer, and use the WDM outputs. I'm confident this will fix the stuttering audio (if you also use the default buffer sizes).
-
- Posts: 5
- Joined: Sun Mar 01, 2009 12:48 am
Re: ASIO Drivers with SCS internal mixer
I originally set the buffer to 400 ms, but the stuttering continued. Yesterday, I went all out and increased it to 5000 ms and the stuttering disappeared. A few fade-out cues failed to trigger and one cue seemed to jump ahead before I activated the GO button. All-in-All the best show up to now. (We are doing the Wizard of Oz stage production. 11 shows in total with 4 to go!). I'm still looking into using alternate drivers for the Edirol Fa 101. If I disable the SCS internal mixer, the drivers being used for the Edirol sound distorted.
Thanks Mike, I will keep you posted.
Thanks Mike, I will keep you posted.
-
- Posts: 5
- Joined: Sun Mar 01, 2009 12:48 am
Re: ASIO Drivers with SCS internal mixer
Also, are there any issues with using mp3 files vs wave files?
-
- Posts: 5
- Joined: Sun Mar 01, 2009 12:48 am
Re: ASIO Drivers with SCS internal mixer
Set for 500ms today. Stuttering continued but only once I believe.
-
- Site Admin
- Posts: 3632
- Joined: Sun Jul 24, 2005 8:58 am
- Location: Brisbane, Queensland, Australia. TZ:GMT+10
- Contact:
Re: ASIO Drivers with SCS internal mixer
Try clearing the checkbox Use Software Mixer instead of Hardware Mixer under Permanent Options / Audio Driver. If that doesn't correct the distortion, make sure the audio levels going to your sound board are not too high and causing clipping. You should be able to get clean output using WDM.sounddesignereye wrote:If I disable the SCS internal mixer, the drivers being used for the Edirol sound distorted.
-
- Posts: 5
- Joined: Sun Mar 01, 2009 12:48 am
Re: ASIO Drivers with SCS internal mixer
When I did that the following error message came up:
ERROR 9 SUBSCRIPT OUT OF RANGE
ProgName=populateWaveBuffFromViewString
I now need to replace all of the wave files with MP3 files in order to remove the error.
ERROR 9 SUBSCRIPT OUT OF RANGE
ProgName=populateWaveBuffFromViewString
I now need to replace all of the wave files with MP3 files in order to remove the error.
-
- Site Admin
- Posts: 3632
- Joined: Sun Jul 24, 2005 8:58 am
- Location: Brisbane, Queensland, Australia. TZ:GMT+10
- Contact:
Re: ASIO Drivers with SCS internal mixer
Update: after discussions via email with sounddesignereye, the subscript out of range error seems to have been due to using a mixed-down Adobe Audition 1.5 session file which contained both MP3 and WAV file formats. The error was cleared by just using a single format (MP3 in this case).