• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are daily reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

VB Matrix

OP
boxerfan88

boxerfan88

Senior Member
Joined
Oct 23, 2018
Messages
334
Likes
381
@dualazmak what sample rate are you running your Matrix at?

I am running mine at 176400.
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,760
Likes
2,882
Location
Ichihara City, Chiba Prefecture, Japan
@dualazmak what sample rate are you running your Matrix at?

I am running mine at 176400.

Even though I successfully tested/evaluated 176.4 kHz and 192 kHz, I mainly use VB Matrix and DSP EKIO as well as JRiver MC (and VB VAIO as Windows WDM default device, if needed) at 88.2 kHz or 96 kHz.

At least for my personal rationales/justifications, please refer to my post here #532 on my project thread.;)
- Summary of rationales for "on-the-fly (real-time)" conversion of all music tracks (including 1 bit DSD tracks) into 88.2 kHz or 96 kHz PCM format for DSP (XO/EQ) processing: #532


BTW, my latest post #851 on my project thread responding to inquiries from @etc6849 would be also your interest and reference relating to VB Matrix, I assume.
 
Last edited:
OP
boxerfan88

boxerfan88

Senior Member
Joined
Oct 23, 2018
Messages
334
Likes
381
I run the VBMatrix core at 176400 sps, and drive the DACs at the same rate. Recently I started to switch off the SMSL DAC every night, and when I power on the DAC the next day, it defaults to 44100 sps. I found a small little niggle, VBMatrix will operate the DAC at the default 44100 sps (which is not what I want). There is no way to configure VBMatrix to "force" or initialize the DAC to a preferred sample rate before the VBMatrix routing engine starts.

As a workaround, I have to "force" the DAC to my preferred sample rate, before I start up VBMatrix app. Here's a Python script that I cooked up to initialize my DACs before starting up VBMatrix. Some may find this useful...

Python:
import sys, os, argparse, acoustics
import numpy as np
import sounddevice as sd   # {sounddevice} is different from {soundcard} library

# Updated 2023-11-28
# Created by boxerfan88
#
# This tool sets sample rate of SMSL DAC & Soekris DAC
# Takes in sample rate as argument
# Generates pink noise @ sample rate for 3 secs
# then plays it to SMSL DAC and Soekris DAC.
#

parser = argparse.ArgumentParser(add_help=False)
parser.add_argument("-s", "--samplerate", required=True, type=int, help="sample rate")
args = parser.parse_args()

# set sample rate (defaults to 176400)
srt = {44100,48000,88200,96000,176400,192000,352800,384000}
mysamplerate = 176400
if args.samplerate:
    if args.samplerate in srt:
        mysamplerate = args.samplerate
        print('Sample rate set to: ',mysamplerate)
    else:
        print('Invalid sample rate: ',args.samplerate)
else:
    print('No sample rate provided.')

print('Final sample rate: ',mysamplerate,'\n')

# generate pink noise (3secs)
left = acoustics.generator.pink(mysamplerate*3,None)
# scale it by -80dB
left = left * 0.0001
# copy pink noise from left to right channel
right = left
# generate stereo data
stereo_data = np.array([left,right]).T

# Playback to SMSL DAC

print('Playing pink noise at',mysamplerate,'sps to SMSL...')
wasapi_exclusive = sd.WasapiSettings(exclusive=True)
# play stereo data to SMSL device (subwoofer)
try:
    sd.play(stereo_data,samplerate=mysamplerate,blocking=True,device='SMSL DO100 (SMSL USB DAC), Windows WASAPI',extra_settings=wasapi_exclusive)
except:
    print('Encountered problem playing data to SMSL.')
print('Finish playing...','\n')

# Playback to Soekris DAC

print('Playing pink noise at',mysamplerate,'sps to Soekris...')
wasapi_exclusive = sd.WasapiSettings(exclusive=True)
# play stereo data to Soekris device (main speakers)
try:
    sd.play(stereo_data,samplerate=mysamplerate,blocking=True,device='Soekris dac1541 (Soekris dac1xx1), Windows WASAPI',extra_settings=wasapi_exclusive)
except:
    print('Encountered problem playing data to Soekris.')
print('Finish playing...','\n')



sys.exit (0)


#===============================================
 
Last edited:

billybuck

Member
Joined
Jan 1, 2020
Messages
37
Likes
36
Location
U.S.
No, you can use both of VAIO (as Windows default audio output device) and VASIO routings "simultaneously" if you like to do so. Please carefully read and look at my such routing diagram shared in my above post #48.

In this case (since you would use Out 1-2 only), on Windows default output "properties" settings, you need to configure the audio device in 2-CH stereo and also make them full-range stereo so that avoiding loss of low-Fq bass sound.

And, please be careful enough that the default gain settings in VAIO routing is Windows maximum full gain (maximum sound volume level), and you usually need digital gain attenuation/suppression (in my case in #48, I carefully set -16 dB, as you know well some of the Youtube clips has very high audio gain!) for routing/redirect into VASIO routings for proper/suitable level matching with your VASIO audio device(s).

I believe this flexible digital gain attenuation in VAIO on VB Matrix's Routing Grid is really nice when I (we) use either of JRiver MC's YouTube window (which feeds stereo 2CH into VAIO as Windows default audio) and usual SSD music library play (which feeds stereo 2CH into VASIO).

In my case, both of VAIO(2CH) input and VASIO(2CH) input are then fed into system-wide DSP Center "EKIO" for multichannel DSP (XO/EQ/Delay/Relative-Gain) processing.
I seem to have a problem that when the PC returns from sleep mode, I no longer get system audio unless I either disable/enable the device in Control Panel > Sounds, or sometimes restarting the Matrix audio engine works. This is despite the fact that all USB is set to not power-down at sleep.
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,760
Likes
2,882
Location
Ichihara City, Chiba Prefecture, Japan
I seem to have a problem that when the PC returns from sleep mode, I no longer get system audio unless I either disable/enable the device in Control Panel > Sounds, or sometimes restarting the Matrix audio engine works. This is despite the fact that all USB is set to not power-down at sleep.

Thank you for sharing this "recovery after PC's sleep mode" issue which so far I have not yet experienced since I never use Windows 11 "sleep mode" in my audio dedicated PCs.

I used to have experienced other problems on several software wakeups and on Windows background procedures after recovery from "sleep mode" (especially often in my laptop notebook PCs); I essentially do not trust/rely-on, therefore, Windows "sleep mode" which is semi-shutdown (or should I say pseud-shutdown?) of OS.
 
Last edited:

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,760
Likes
2,882
Location
Ichihara City, Chiba Prefecture, Japan
I run the VBMatrix core at 176400 sps, and drive the DACs at the same rate. Recently I started to switch off the SMSL DAC every night, and when I power on the DAC the next day, it defaults to 44100 sps. I found a small little niggle, VBMatrix will operate the DAC at the default 44100 sps (which is not what I want). There is no way to configure VBMatrix to "force" or initialize the DAC to a preferred sample rate before the VBMatrix routing engine starts.

Fortunately, I have no such sampling-reset issue at all in "my audio rig" using VB Matrix routing shared in my above post #48 even on full shutdown with all the AC power off.

If you would be interested, please refer here post #776 on my project thread for my "Ignition/Start-up Sequences" and full "Shutdown Sequences" .

As you may know well, JRiver MC memorizes its output sampling rate (Option - DSP_Output_Format - DSP_Studio).

My main 8-CH multichannel DAC unit, OKTO DAC8PRO, memorizes all of its configuration including sampling rate saving into non-volatile memory chip on soft-shutdown even followed by complete AC power supply shutdown. For rare occasion of changing sampling rate of DAC8PRO, I tentatively directly feed the specific rate digital audio signal from JRiver into DAC8PRO without using VB Matrix but using direct output into DAC8PRO's DIYINHK USB driver.

My secondary stereo DAC unit, KORG DS-DAC-10 (which I use only for total digital signal level/gain monitoring by physical VU meters) can instantaneously adjust its sampling rate to the input digital signal sampling rate.

The VB Matrix's VAIO4 selected as Windows default audio playback device, of course, memorizes its sampling rate set by "Control_Panel - Sound - Playback_Device - VBMatrix_4 (selected as default) - Properties - Details".

The system-wide independent DSP center "EKIO" memorizes the operating sampling rate in its configuration files; EKIO can be automatically started-up with Windows startup with reading my-specified configuration file.

And, of course, VB Matrix, can memorize its total configuration, and can be automatically started-up with Windows startup with reading the saved configuration including the sampling rate.


You would please note, as I shared in the above post #70, that I never use Windows "sleep mode" for quasi- or pseud-shutdown of OS.
 
Last edited:
OP
boxerfan88

boxerfan88

Senior Member
Joined
Oct 23, 2018
Messages
334
Likes
381
If you would be interested, please refer here post #776 on my project thread for my "Ignition/Start-up Sequences" and full "Shutdown Sequences" .

Oh wow!! A 25-step startup/ignition sequence.

For power saving reasons, I power down parts of my setup nightly.

My power down sequence is quite simple, just 3 steps.
  1. Physically switch off SMSL DAC.
  2. Physically power down my Neumann speakers.
  3. My PC auto-sleeps just before 0200am, and auto-wakes-up at 0600am.

Next day, my ignition sequence is quite simple, just 3 steps.
  1. Power up Neumann speakers
  2. Switch on SMSL DAC
  3. Execute Autohotkey script that will automatically:
    • Shutdown foobar2000
    • Shutdown VBMatrix
    • Execute the python script to play pink noise @ 176400 to both DACs
    • Start VBMatrix
    • Set CPU affinity for VBMatrix
    • Start foobar2000
    • Set CPU affinity for foobar2000
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,760
Likes
2,882
Location
Ichihara City, Chiba Prefecture, Japan
VB Matrix has been working very nicely with no routing/gain issue for almost two months as system-wide ASIO/VASIO/VAIO routing/gain center, and I finally paid the donation to fully activate it in two of my PCs; now no donation-request screen appears on starting VB Matrix.

I like the cool I/O peak meters on Routing Grid Matrix View as well as the small green peak meters on the Main View. Consequently, my present standard PC screen layout is like the photo below also showing JRiver MC's small dancing peak meters (L & R) and all the output peak meters of DSP "EKIO" (as system-wide XO/EQ/Group-Delay/Relative-Gain center). Please refer to my posts #858, #774, #535[physical DIY 12-VU-Meter Array] on my project thread.
WS00006788.JPG
 
Last edited:

9h9m

Member
Joined
Aug 19, 2021
Messages
5
Likes
1
Both.
The Master DAC drives the LR channel. Master DAC is a Soekris dac1541. VB Matrix is configured to use the Soekris ASIO driver as master.
The slave DAC drives the subwoofer. Slave DAC is a SMSL DO100. VB Matrix is configured to use the SMSL WDM driver as slave.
It was playing background music throughout my workday (at home) ... I did not hear any click/pop/dropout.
Nor detect any DAC drift.

//
If you're wondering how I detect DAC clock drifted (ASIO4ALL):
  • usually happens after 25-45 mins of playback
  • songs with reasonable bass content will have this weird "whoop whoop" bass tune
  • and it progressively gets worse.
  • when I stop playback & start playback of the same song ... the weird "whoop whoop" bass sound does not happen anymore
  • until 25-45 mins later ... it repeats

=> after I switched over from ASIO4ALL to VB Matrix this "whoop whoop" bass has never occurred once. Even after hours of continuous playback.
Hi boxerfan88, have you tried setting your SMSL DO100 as Master? I try VB Matrix with Benchmark DAC3 and Topping DX1, and the time shift on the Topping is horrible. But the DAC3 has none. Since I cannot set Topping as Master, I guess this has something to do with the time shift
 
OP
boxerfan88

boxerfan88

Senior Member
Joined
Oct 23, 2018
Messages
334
Likes
381
Hi boxerfan88, have you tried setting your SMSL DO100 as Master? I try VB Matrix with Benchmark DAC3 and Topping DX1, and the time shift on the Topping is horrible. But the DAC3 has none. Since I cannot set Topping as Master, I guess this has something to do with the time shift

Hi there,

I have tried all 3 combinations:
a. Soekris as master
b. SMSL as master
c. internal as master

All resulted in phase shift around the crossover point.

That’s why I went to buy another DAC - the Topping DM7 which has 8 channels. No more phase shift.
 

9h9m

Member
Joined
Aug 19, 2021
Messages
5
Likes
1
Hi there,

I have tried all 3 combinations:
a. Soekris as master
b. SMSL as master
c. internal as master

All resulted in phase shift around the crossover point.

That’s why I went to buy another DAC - the Topping DM7 which has 8 channels. No more phase shift.
Thanks for your reply. I gave up on VB Marix and am looking into DM7 too.
 
Top Bottom