As you said, a faster sensing, but otherwise a similar DAC would not help. Usually the tracks start with practicaly no silence before the audio content. If the album tracks have silence between them it is usually located at the end of each track.
Definitely.
Regarding using a script, what event you would like to access? I don't think MC has any kind of built-in initialiazation codes that it could send to a device before a sample rate change occurs. MC just outputs audio data in the new format. The OS/device driver/devices are responsible of correctly adapting to the content or if the device is not auto-sensing you would need to do that by hand. A device manufaturer can provide an auto-sensing driver, but as you said, the BelCanto device doesn't have or need a driver and you are by-passing all OS "intelligence" by using WASAPI Exclusive.
Well, what I did with the other player is :
- Look for manual track changes (mainly through double-click listener)
- Look for track start
In the script, I am remembering the previous sample rate (as you say afterwards, the output is fixed to 24bits, that is perfectly harmless (and monitored by my dac)).
For manual track change, I am tagging my pause flag to true.
For track change, I am comparing previous sample rate, if any (or if it makes sense) to current one, leading to the flag being true or false.
Then, if the flag is true, the track is paused, a timer of 5s is set, which handler resumes playback, and sets the flag back to false.
In your situation I would just add an audibly silent 5-second track in the playback queue whenever a sample rate change is needed. When a "trigger" track is in the new sample rate the following track should play correctly.
That was my first feeling too, but I finally got out of here, as I discovered that pausing was enough.
I can test your attachement in a dedicated playlist, to see what happens.
In my case, I would rather, considering MC automation APIs :
- Register to track changes, saving sample rate and next track on playing list
- By default, if no comparison is available, then a pause is required
- On next track change, I would compare track with persisted one (to avoid breaking continuous playback) and sample rate. If a difference exists, then a pause is required
Then there is no need to try and tweak the playing list, but rather enable the system to stabilize before playing.
Of course that won't work if the new track event is launched asynchronously or on a late basis.
To make testing a "trigger track system" easier I created two example tracks with an audio editor - a 24/96 and a 16/44.1 track. Both tracks are exactly 5.5 seconds long. The files are in the attached zip package. (Log in to the forum if you can't see an attachment.)
I am speaking only about the sample rate change because for all purposes you can set the bit depth in DSP Studio to 24-bit and keep it there. It only adds 8 lower zero bits to a 16-bit signal when no other processing is set to happen. It does not apply dithering or anyhow alter the upper 16-bits. If some processing is actually set it is better to output 24-bit anyway (for instance, sometimes even an audio purist may prefer to adjust EQ a bit when a certain recording is too bright/bass-heavy/etc.)
Downloaded, thx. And yes, I already do that in DSP studio (this is required by the BelCanto in fact).
There are devices that need to be set manually each time the sample rate changes, so in that sense you would still be better off. We may easily forgot that there was a time when it was necsssary to actually go to the player device and change the record or tape by hand.
Yes ! That's most of the point, although in the end, the quality of the playback through MC is impressing too, and a big plus (not related to a car brand).